МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
БЕРДЯНСЬКИЙ УНІВЕРСИТЕТ МЕНЕДЖМЕНТУ І БІЗНЕСУ
Кафедра інформаційних систем і технологій
ПОЯСНЮВАЛЬНА ЗАПИСКА
на дипломний проект освітньо-кваліфікаційного рівня ” спеціаліст ”
за напрямком підготовки (спеціальностю) 7.080403
Програмне забезпечення автоматизованих систем
за темою: «Розробка автоматизованого робочого місця науково-технічної бібліотеки університету»
Студент группи ПЗАС-52АМ.В. Журавльов
Керівник ДПдоцент Е.Ю. Лактіонов
Консультанти:
Проектно-констр. Розділ доцент Е.Ю. Лактіонов
Графічна документація ст.викл. Н.В. Тітова
Нормо контроль ст.викл. Н.В. Тітова
201
Реферат
Дипломна робота: 99 с., 24 рис., 7 табл., 25 джерел, 1 додаток.
Об’єкт дослідження – науково-технічна бібліотека учбового закладу.
Предмет дослідження – інформаційні процеси у організації роботи науково-технічної бібліотеки Бердянського університету менеджменту і бізнесу.
Ціль роботи – розробка інформаційних моделей та розробка програмного забезпечення автоматизованого робочого місця науково-технічної бібліотеки університету.
Методи дослідження – системний аналіз, об’єктно-орієнтований аналіз.
Методи розробки – об’єктно-орієнтований аналіз, об’єктно-орієнтоване проектування і програмування, сучасні інструменти розробки програмного забезпечення, такі, як Microsoft Visio, Microsoft Visual Studio, Microsoft Access.
Практична значущість результатів, отриманих в ході проведеного дослідження та розробки, полягає в тому, що застосування на практиці результатів дипломної роботи дає можливість поліпшити організацію роботи науково-технічної бібліотеки університету.
Реферат
Дипломнаяробота: 99 с., 24 рис., 7 табл., 25 источников, 1 приложение.
Объект исследования – научно-техническая библиотека учебного заведения.
Предмет исследования – информационные процессы в организации работы научно-технической библиотеки Бердянского университета менеджмента и бизнеса.
Цель работы – разработка информационных моделей и разработка программного обеспечения автоматизированного рабочего места научно-технической библиотеки университета.
Методы исследования – системный анализ, объектно-ориентированный анализ.
Методы разработки – объектно-ориентированный анализ, объектно-ориентированное проектирование и программирование, современные инструменты программного обеспечения, такие, как Microsoft Visio, Microsoft Visual Studio, Microsoft Access.
Практическое значение результатов, полученных в ходе проведеного исследования и разработки состоит в том, что использование на практике результатов дипломной работы дает возможность улучить организацию работы научно-технической библиотеки Бердянского университета менеджмента и бизнеса.
Abstract
Degree work: 99 p., 24 pic., 7 tabl., 25 sourc., 1 app.
Research object – school scientific and technical library .
Subject of investigation — Information processes in the organization of scientific-technical library Berdyansk University of Management and Business.A purpose of work is creation of the automated subsystem of managemen.
Research methods – systemanalysis, methods of construction of the informative systems.
Methods of development are the object-oriented analysis, object-oriented planning and programming, modern instruments of software development — як Microsoft Visio,Microsoft Visual Studio, Microsoft Access.
The practical significance of the results obtained in the course of research and development is that the use of the result of thesis provides an opportunity to seize the organization of workers of cientific and Technical Library of the University of Berdyansk management and busines.
ЗМІСТ
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, ОДИНИЦЬ, СКОРОЧЕНЬ І ТЕРМІНІВ
ВСТУП
1 ПРОЕКТНО-КОНСТРУКТОРСЬКИЙ РОЗДІЛ
1.1 Загальносистемні рішення
1.1.1 Загальні положення
1.1.1.1 Мета, задачі та принципи створення інформаційних систем
1.1.1.2 Основні поняття автоматизованого робочого місця
1.1.1.3 Бібліотечні системи на Україні
1.1.2 Опис процесу діяльності
1.1.2.1 Сценарій роботи АРМ науково-технічної бібліотеки
1.1.2.2 Вибір засобів проектування
1.1.2.3 Опис функцій, які автоматизуються
1.1.2.4 Діаграмма прецедентів
1.1.2.5 Головна діаграма класів
1.1.2.6 Детальна діаграма класів системи
1.1.3 Постановка задачі
1.1.3.1 Компоненти проекту
1.1.3.2 Програма редагування
1.1.3.3 Сайт для пошуку
1.2 Рішення з інформаційного забезпечення
1.2.1 Перелік вхідних даних
1.2.2 Перелік вихідних даних
1.2.3 Вибір СУБД
1.2.4 Розробка моделі даних
1.3 Рішення з технічного забезпечення
1.4 Рішення з математичного забезпечення
1.4.1 Пошук у тексті
1.4.2 Обозначення та терміни
1.4.3 Аналіз алгоритму текстового пошуку
1.4.4 Швидкий алгоритм текстового пошуку
1.4.5 Регулярні вирази у VB.NET
1.5 Опис програмного забезпечення
1.5.1 Структура програмного забезпечення АРМ
1.5.2 Опис модулів і класів системи редагування
1.5.3 Модулі програми пошуку
2 ТЕХНОЛОГІЧНИЙ РОЗДІЛ
2.1 Керівництво користувача
2.1.1 Головна форма програми введення та редагування
2.1.2 Форма Клієнти
2.1.3 Форма Книги
2.1.4 Інші форма програми редагування
2.1.5 Програма пошука
3 ТЕХНІКО-ЕКОНОМІЧНИЙ РОЗДІЛ
3.1 Загальні положення
3.2 Вихідні дані для розрахунку
3.3 Визначення трудомісткості та тривалості розробки програми
3.4 Розрахунок витрат на розробку програми
3.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми
3.6 Економія у споживача програмного продукту
3.7 Розрахунок економічної ефективності проекту
3.8 Висновки
ВИСНОВКИ
ПЕРЕЛІК ПОСИЛАНЬ
ДОДАТКИ
Додаток А Вихідний код програми
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, ОДИНИЦЬ, СКОРОЧЕНЬ І ТЕРМІНІВ
АРМ–автоматизоване робоче місце;
АС–автоматизована система;
БД–база даних;
ІЗ–інформаційне забезпечення;
ІС–інформаційна система;
ПЗ–програмне забезпечення;
ПП–програмний продукт;
СУБД–система управління базами даних;
ТР–теорія розкладу;
CASE–Computer-AidedSoftware/SystemEngineering– система автоматизованої розробки програмного забезпечення;
CLR–CommonLanguageRuntime– середовище часу виконання коду, в якому забезпечується ефективна взаємодія застосувань;
DDL–Data Definition Language – мовавизначенняданих;
ER-модель–Entity Relationship – модель”суть-зв’язок”;
IDE– Integrated Development Environment – интегрированесередовищерозробки;
IDEF– Integrated Computer-Aided Manufacturing– методологіякомп’ютерногомоделюванняскладнихсистем;
RAD – Rapid Application Development — методологіяшвидкоїрозробкизастосувань;
RUP– Rational Unified Process – методологіяуніфікованихпроцесіврозробкипрограмногозабезпечення;–PAGE_BREAK–
VB – мова програмування и середовище розробки Visual Basic;
SADT–Structured Analysis and Design Technique – методологіяфункціональногомоделювання;
SQL–Structured Query Language – структурованамовазапитів;
VBA–VisualBasicforApplications– технологія програмування у офісних застосуваннях Microsoft;
UML–Unificated Model Language – уніфікованамовамоделювання.
ВСТУП
Інформація на сучасному світі перетворилася на один з найбільш важливих ресурсів, а інформаційні системи (ІС) стали необхідним інструментом практично у всіх сферах діяльності.
Різноманітність завдань, які вирішуються з допомогою ІС, привела до появи безлічі різнотипних систем, які відрізняються принципами побудови і закладеними в них правилами обробки інформації.
Завдання накопичення, обробки і розповсюдження (обміну) інформації стояло перед людством на всіх етапах його розвитку. Протягом довгого часу основними інструментами для її вирішення були мозок, мова і слух людини. Перша кардинальна зміна відбулася з приходом писемності, а потім винаходом книгодрукування. Оскільки в епоху книгодрукування основним носієм інформації став папір, то технологію накопичення і розповсюдження інформації природно називати “паперовою інформатикою”.
Положення в корені змінилося з появою електронних обчислювальних машин (ЕОМ). Принципово новий крок був здійснений, коли від застосування ЕОМ для вирішення окремих завдань перейшли до їх використання для комплексної автоматизації закінчених ділянок діяльності по переробці інформації.
Зберігання інформації в пам’яті ЕОМ додає цій інформації принципово нову якість динамічності, тобто здібності до швидкої перебудови і безпосереднього її використання у вирішуваних на ЕОМ завданнях. Пристрої автоматичного друку, якими забезпечені сучасні ЕОМ, дозволяють у разі потреби швидко представити будь-яку вибірку з цієї інформації у формі уявлення на папері.
Напередодні XXI століття в розвитку людської цивілізації відбуваються глобальні зміни, що ведуть до її нового етапу — постіндустріального суспільства, що все ширше використовує компью-терізірованниє знаряддя праці і інформаційні технології.
Інформація в такому суспільстві стає одним з основних продуктів діяльності людини, і бібліотекам зі своїм величезним інформаційним потенціалом належить увійти до процесу розвитку інформаційної індустрії, збагачуючи зміст і розширюючи асортимент вироблюваного ними інформаційного продукту, включаючи в полі діяльності разом з бібліографічною інформацією фактографічну і аналітичну, а також створення традиційної і нової продукції (фонди, каталоги в паперовому і машиночитаємом видах, банки даних). Всього цього можна досягти, якщо бібліотеки вже зараз, не втрачаючи часу, приступлять до виконання комплексних програм автоматизації бібліотечних процесів.
Традиційно користувачі звикли до думки, що в бібліотеці можна отримати будь-яку інформацію. Тепер, в умовах інформаційного перенасичення, бібліотеці все складніше виконувати основні функції: фондообразованіє, інформаційно-бібліографічне і абонементне обслуговування. Поліпшити збір, зберігання і забезпечення доступу до інформації бібліотека зможе тільки за умови зміни її технічного оснащення.
Наскільки ж необхідно обзаводитися обчислювальною технікою, і, що нам можуть дати автоматизовані бібліотечно-інформаційні системи (АБІС)?
Найчастіше приводиться наступний аргумент — підвищення швидкості пошуку інформації. Насправді це не головне. Врешті-решт, у відносно невеликому масиві даних ручний пошук займає не дуже багато час.
Істотніші наступні можливості:
«одноразове введення даних і багатоцільове їх використання для пошуку документів, друку підібраної інформації, передачі масивів даних іншим організаціям, підготовки видань і т.д.;
багатоаспектний пошук даних по різних ознаках і їх поєднаннях без формування додаткових картотек і покажчиків;
пошук в каталогах інших бібліотек і звідних каталогах, який здійснюється з дисплея свого комп’ютера в теледоступе по каналах зв’язку або в базах даних на оптичних дисках великої ємкості, що встановлюються на комп’ютерах в своїй бібліотеці;
організація комплектування фонду з використанням баз даних видаючих або книготоргових видань, з автоматичним формуванням замовлень і обліком їх виконання;
автоматизований облік і ведення статистики у всіх процесах, включаючи обслуговування читачів;
надійне зберігання бібліотечних каталогів в декількох копіях;
скорочення витрат на комплектування фондів і обробку вхідних потоків документів;
розширення сфери послуг за рахунок залучення нових інформаційних джерел.
На практиці це означає виконання автоматизованої обробки нових надходжень в бібліотеку; звільнення співробітників від ряду рутинних робіт з підготовки картотек, видань, списків, замовлень, листів, звітної документації; створення бази даних про надходження; здійснення операцій по створенню і копіюванню тематичних архівів літератури. Завдяки автоматизації можна виконувати наочний пошук інформації по запитах читачів, обслуговування баз даних інформаційних і періодичних видань бібліотеки, ведення масиву бібліографічних описів журнальних статей, пошук записів за ключовими словами, створення електронних довідників, контроль за виданою літературою: облік читачів і їх формулярів; автоматичний запис у формуляр читача виданої літератури; контроль терміну повернення книг. А головне — забезпечення читачам своєї бібліотеки виходу у вітчизняний і світовий інформаційний простір.
Дослідивши роботу науково-технічної бібліотеки університети були виявлені істотні недоліки традиційного робочого місцяу бібліотеці, що і послужило метою для постановки завданнядиплому.
Об’єкт розробки — електронна бібліотека.
Мета розробки — створення електронної бібліотеки. Вона має бути простій в розробці і супроводі, надійною і зручною для адміністрування, має бути доступна через інтернет. Електронна бібліотека є досить простої бази даних. Такі системи успішно розробляються вже декілька десятиліть, методологія і практичні прийоми вирішення таких завдань добре відпрацьовані. Проте з розвитком обчислювальної техніки і вдосконаленням методологій і інструментів розробки з’являються нові варіанти вирішень старих завдань.
До таких новітніх засобів розробки відноситься, насамперед, обширний набір інструментів створення програмного забезпечення для платформи Visual Basic. Найважливішим з них є інтегроване середовище розробки (IDE) Microsoft Visual Studio, до складу якої входять декілька мов програмування (Visual C++, Visual C#, Visual Basic і так далі), велике число інструментів проектування, редагування, відладки, обширна і добре складена документація.
З Visual Studio тісно інтегрована СУБД від Microsoft — Microsoft SQL Server.І VisualStudio, і SQLServerдобре пристосовані, перш за все, до створення Інтернет — застосувань, але і класичні настільні Windows– застосуваня з їх допомогою розробляються швидко, надійно і легко.
Основне завдання дипломного проекту — розробка корисної для користувача програми. Програмування, за своєю суттю, — це не мистецтво використання корисних алгоритмів і розумних інструментів, а професійна діяльність, направлена на створення продукту (програмного забезпечення) з корисними споживчими властивостями.
Окрім можливості отримання довідки по Інтернету є, наприклад, можливість пошуку книги не тільки в базі даних програми але і в усесвітній павутині. Електронна бібліотека, що розробляється, також може бути використана як індивідуальна довідкова система, що настроюється, для окремого користувача.
Розроблена по нових технологіях програмна система, крім усього іншого, володітиме великими перевагами по частині її супроводу, модифікації і розвитку, що дасть серйозний економічний ефект в частині експлуатації системи.
1 ПРОЕКТНО-КОНСТРУКТОРСЬКИЙ РОЗДІЛ
1.1 Загальносистемні рішення
1.1.1 Загальні положення
1.1.1.1 Мета, задачі та принципи створення інформаційних систем
Мета створення інформаційних систем – у гранично короткі терміни створити систему обробки даних, яка має задані споживчі якості. До них належать: функціональна повнота, своєчасність, функціональна надійність, адаптивна надійність, економічна ефективність[1].
Функціональна повнота – це властивість інформаційної системи, яка характеризує рівень автоматизації управлінських робіт.
Своєчасність – це властивість інформаційної системи, яка характеризує можливість отримання апаратом керівництва необхідної інформації.
Функціональна надійність – це властивість інформаційної системи виконувати свої функції з обробки даних. Це сукупність надійностей програмного, інформаційного та технічного забезпечення.
Адаптивна надійність – це властивість інформаційної системи виконувати свої функції, якщо вони змінюються в межах умов, зумовлених розвитком системи керування об’єкта впродовж заданого проміжку часу.
Економічна ефективність інформаційної системи виявляється в покращенні економічних результатів функціонування об’єкта в результаті впровадження інформаційної системи.
Створення інформаційної системи передбачає частковий чи повний перегляд методів і засобів функціонування інформаційної системи економічного об’єкта і виконання таких завдань:
виявлення його суттєвих характеристик;
створення математичних і фізичних моделей досліджуваної системи та її елементів;
встановлення умов взаємодії людини та комплексу технічних засобів;
детальна розробка окремих проектних рішень;
аналіз проектних рішень, практична апробація та впровадження.
Принципи створення інформаційної системи поділяють на дві частини: загальні та часткові.
Загальні принципи мають універсальний характер і визначають методологічний підхід до створення будь-яких об’єктів. Це такі принципи: науковості, нормативності, неперервності, розвитку, ефективності, послідовності, від загального до часткового, системний, комплексності, використання типових і керівних матеріалів.
Часткові принципи: систему управління потрібно розглядати як людино-машинну; чіткий поділ системи на складові, забезпечення сумісності й зв’язку між усіма видами забезпечення; забезпечення єдності обліку, типізація, уніфікація та стандартизація.
При створенні інформаційної системи треба керуватися принципами, визначеними РД 50–680–88 «АС Основные положения»: системності, розвитку (відкритості), сумісності, стандартизації (уніфікації) та ефективності[1].
Принцип системності: при декомпозиції мають бути встановлені такі зв’язки між структурними елементами системи, які забезпечують цілісність інформаційної системи та її взаємодію з іншими системами.
Принцип розвитку (відкритості): виходячи із перспектив розвитку об’єкта автоматизації інформаційну систему треба створювати з урахуванням можливості поповнення та обновлення функцій і складу інформаційної системи, не порушуючи її функціонування.
Принцип сумісності: при створенні систем мають бути реалізовані інформаційні інтерфейси, завдяки яким вона може взаємодіяти з іншими системами за встановленими правилами.
Принцип стандартизації (уніфікації): при створенні систем мають бути раціонально використані типові, уніфіковані й стандартизовані елементи, проектні рішення, пакети прикладних програм, комплекси, компоненти. продолжение
–PAGE_BREAK–
Принцип ефективності: досягнення раціонального співвідношення між затратами і цільовими ефектами, включаючи кінцеві результати, отримані завдяки автоматизації.
Однією з основних умов створення високоефективної інформаційної системи є орієнтація на користувача. При функціонуванні інформаційної системи, розв’язанні завдань управління діє велика кількість обмежень, які потрібно враховувати під час її розробки. Крім того, в процесі самого проектування виникає багато обмежень. Це призводить до того, що в пошуках найкращого шляху, за який часто беруть найбільш простий, швидкий і дешевий, розробники свідомо чи підсвідомо перекладають частину проблем, що виникли, на користувача. Цей шлях може призвести до згубних наслідків. Користувачі, в свою чергу, прагнучи мінімізувати обсяги своєї роботи, не виконують інструкцій розробника й ігнорують систему, яка не полегшує, а ускладнює їм життя. При цьому слід ураховувати основну особливість об’єкта: до створення інформаційної системи завдання управління можуть розв’язуватись «вручну», без використання ЕОМ. Тому основне питання в якості та ефективності рішень, які приймаються. Отож інколи інформаційна система функціонує сама по собі, а управління об’єктом здійснюється майже без неї. Інформаційна система має бути інструментом управління, в якому основну роль відіграє людина.
1.1.1.2 Основні поняття автоматизованого робочого місця
Автоматизоване робоче місце (АРМ) – це програмно-технічний комплекс інформаційної системи, призначений для автоматизації діяльності певного виду.
АРМ в основному орієнтовані на людину, яка не має професійної підготовки з користування обчислювальною технікою, але професійно знає конкретну проблемну сферу. За допомогою АРМ можна набути навичок розв’язання нових задач. Гнучкість і динамічність АРМ, здатність порівняно легко адаптуватися до умов, які міняються, привертає увагу багатьох спеціалістів.
Використання АРМ дозволяє уникнути багатьох труднощів, які стоять перед користувачем. Цього досягають організацією дружнього інтерфейсу, інтерактивним аналізом результатів обробки інформації в режимі реального часу, ітеративністю прийняття рішень, агрегуванням і дезагревуванням даних.
При розробці АРМ крім загальних принципів створення інформаційних систем дотримуються ще таких принципів[1,2]:
персоніфікація обчислень і самонавчання спеціаліста, який не може програмувати;
автоформалізація професійних знань;
автоматизація нових задач;
безпаперова технологія;
раціональне сполучення розподіленої, децентралізованої та централізованої обробки даних.
АРМ можемо поділити на: АРМ для особи, яка приймає рішення (АРМ ОПР) (АРМ керівника); АРМ спеціаліста (АРМ бухгалтера, АРМ майстра, АРМ оператора-технолога, АРМ інженера і т.п.); АРМ дослідника (АРМ проектувальника, САПР і т.п.).
АРМ спеціаліста призначене для користувачів, які вміють працювати з клавіатурою і користуються нею для отримання даних у інформаційно-довідковому режимі.
АРМ мають створювати автоматизоване середовище для людино-машинного розв’язання задач і є структурними (системоутворюючими) елементами сучасних ІС різних рівнів, типів і призначень, які дають змогу розв’язувати широкий спектр задач на робочих місцях.
Досвід розробки і впровадження ІС показує, що одним із перспективних напрямків їх розвитку є створення інтегрованих ІС. Вони характеризуються більшими функціональними можливостями і засобами, інтеграцією окремих функцій в рамках єдиної системи, а також застосуванням ускладненого комплексу видів забезпечення, що сприяє створенню систем з якісно новими характеристиками. При цьому центральним питанням створення ІС є вибір її функціональної структури.
Одним із напрямків створення структури ІС є створення на основі функціонально-спеціалізованих АРМ, які в цьому разі є системоутворюючими модулями інтегрованої ІС (див. рис. 1.1).
/>
Рисунок 1.1 – Загальна схема ІС економічного об’єкта на базі АРМ
Від структури залежить кожний з видів забезпечення АРМ: буде це автономна АРМ чи АРМ у системі, мережі й т.п. Завжди можемо виділити ту частину, яка безпосередньо належить до даного АРМ.
1.1.1.3 Бібліотечні системи на Україні
Вперше поняття «електронна бібліотека» з’явилося в зарубіжних публікаціях у середині 80-х років [4]. Електронна бібліотека — це “інформаційна система, що дозволяє надійно зберігати і ефективно використовувати будь-які колекції електронних документів (текстових, графічних, звукових, відео, аудіо тощо), локалізованих в самій системі, а також доступних їй через телекомунікаційні мережі” [5].
Набуває нового рівня міжбібліотечна взаємодія та зв’язок бібліотек з іншими суб’єктами інформаційної сфери. Метою інформаційної співпраці стає створення корпоративних бібліотечних систем, організація певної каталогізації першоджерел та систем розподілених ресурсів з онлайновим доступом, зокрема електронних бібліотек.
Отже, інформаційна діяльність бібліотек активно переміщується в нове інформаційно-комунікаційне середовище. За цих обставин важливим є підбір необхідного програмного забезпечення (ПЗ), що відповідало б вимогам щодо основних функцій та завдань електронної бібліотеки [6, 7], а саме, керування і користування такими її основними блоками як: електронний фонд, електронний каталог, віртуальна читальна зала .
Дослідження в галузі опису і каталогізації Інтернет-ресурсів у Європі та США звертають значну увагу на програмні системи, що побудовані за принципом Дублінського ядра метаданих (Dublin Core) [8].
Дублінське ядро — це сукупність елементів метаданих, значення яких описують вміст інформаційного ресурсу. Специфікації Дублінське ядро, прийняті як рекомендація створеною для їх розробки і розвитку організацією Dublin Core Metadata Initiative (1998), включають п’ятнадцять елементів. У 2001 р. ці специфікації отримали статус американського національного стандарту Z39.85-2001. Стандарт містить 15 метаданих з відповідними множинами кваліфікаторів та пропонує правила опису загальних характеристик електронних ІР, що містять :
вміст ресурсу: Title — Назва, Subject — Предмет, Description — Опис, Type — Тип, Source — Джерело, Relation — Відношення;
інтелектуальну власність ресурсу: Creator — Створювач, Publisher — Видавець, Contributor — Співавтор, Rights management — Права, Coverage — Охоплення;
стан ресурсу: Date — Дата, Format — Формат, Identifier — Ідентифікатор, Language — Мова.
Популярності набувають і програмні системи на основі Дублінського ядра, наприклад, такі як: Greenstone, Koha, Fedora, DSpace тощо.
Так програмну систему Greenstone розроблено на факультеті комп’ютерних наук університету Вайкато в Новій Зеландії в рамках проекту зі створення цифрових бібліотек. Керівник проекту — Ян Віттен (Ian H. Witten). Розробка проводилася за сприяння ЮНЕСКО і неурядової організації Human info. Розповсюджується з листопада 2000 року.
Існує дві версії Greenstone — локальна та мережева. Система працює на платформах Windows (95/98/NT/XP/2000) та Unix з використанням стандартних Web-серверів. Плагіни написані мовою Perl. Усі вхідні документи, внесені в цю систему, конвертуються у формат архіву XML (Greenstone Archive Format). Система кожному документа автоматично привласнює унікальний ідентифікатор OID (Object Identifier).
На сайтах greenstone.org, www.nzdl.org представлено декілька прикладів колекцій цифрових бібліотек Greenstone. Ці колекції включають статті з газет, технічні документи, художні книжки, наукові журнали, фольклор, аудіо і відео інформацію тощо.
Greenstone надає можливості:
створювати колекції електронних документів;
детально визначати документи залежно від метаданих;
зберігати великий обсяг тексту, зображень, аудіо і відеодокументи;
здійснювати повнотекстовий пошук, а також пошук і перегляд документів за полями метаданих;
зберігати документи в різних форматах;
здійснювати обробку документів на будь-якій мові і підтримувати багатомовний інтерфейс користувача;
організовувати і публікувати інформацію в Інтернеті або на компакт-дисках;
використовувати стандартні та нестандартні метадані для опису вмісту документів;
ієрархічно структурувати у вигляді вкладених розділів (sections) (розділи, підрозділи тощо) кожен текстовий документ.
Користувачі можуть задавати формати документів HTML, Word, PDF, Postscript, PowerPoint, Exсel або формати зображень TIFF, GIF, PNG, JPEG тощо. Крім того можна задавати набір доступних метаданих MARK, архіви OAI, BibTex, бази даних CDS/ISIS [8].
Koha — це автоматизована бібліотечна інформаційна система (АБІС). Вона була створена у 1999 році новозеландською компанією Katipo Communications для бібліотечного консорціуму Хороунеуа (Horowhenua Library Trust).
В Україні ця система використовується у Львові. Її адаптація проводилася у 2005–2006 роках [7]. Веб-сторінка адаптації АБІС Koha для України розміщується на сайті www.library.lviv.ua/software/koha/.
Koha є інтегрованою бібліотечною системою з відкритим кодом, що включає модулі для розповсюдження, каталогізації, нових надходжень, періодичних видань тощо. Ця АБІС використовує двоїсте проектування бази даних, яке об’єднує потужність двох масових типів баз даних, що орієнтовані на галузевий стандарт, а саме, текст-орієнтовані та реляційні.
Вона створена на основі бібліотечних стандартів та протоколів, що дозволяє взаємодіяти з іншими системами.
Koha надає можливості:
створювати каталоги і колекції електронних документів, інтерфейс електронного каталогу відповідає стандарту розмітки веб-сторінок XHTML 1.0;
підтримувати стандарти MARC 21, UNIMARC та їхні похідні;
відслідковувати рух книги, дати повернення, плати за затримку тощо;
«вибір мови інтерфейсу» (доступні українська, французька, англійська, польська, італійська, арабська, китайська, японська, корейська, болгарська, ма́орі);
пошуку за ключовими словами, автором, заголовком, тематикою, тощо; є можливість і повного пошуку згідно вибраного у бібліотеці стандарту машинописної каталогізації (MARC);
збагачення бібліографічного опису інформацією із сайту Amazon.com, проекту Ґутенберґ [6] та пошуку у WorldCat [27];
комунікації в електронній бібліотеці, а саме, надає можливість робити підбірки літератури і ділитися ними з іншими читачами;
керувати користувачами;
керувати підрозділами.
Fedora — Fedora Commons (англ. Fedora — Flexible Extensible Digital Object Repository Architecture) — заснована на сервісах система з відкритим кодом для керування репозиторіями цифрових об’єктів. На відміну від систем з фіксованим інтерфейсом, таких як DSpace та EPrints, дозволяє створювати системи для різних галузей. Об’єкт у системі може мати декілька представлень, наприклад, форматів, також за допомогою заснованих на RDF моделей зв’язків, об’єкти можуть бути пов’язані між собою та із зовнішніми ресурсами. Центральний сервіс репозиторію, на якому базується архітектура системи, надає чотири основних API – керування, доступу, пошуку та OAI сервіс для харверстингу метаданих.
Серед особливостей Fedora:
управління великою кількістю цифрових об’єктів;
зберігання як безпосередньо цифрових об’єктів, так і лише метаданих;
збереження інформації про версії цифрових об’єктів;
система надає два види доступу: клієнт для внесення, підтримки та експорту електронних об’єктів та веб-сервіси доступу через інтерфейси SOAP або REST (використовує стандартні HTTP методи для запиту та маніпулювання веб-ресурсами);
формує основу для похідних дистрибутивів, таких як Red Hat Enterprise Linux, Laptop Per Child XO та Content DVDs від Creative Commons;
підтримкаOAI PMH (Open Archives Initiative Protocol for Metadata Harvesting).
DSpace — пакет вільного/відкритого ПЗ, що надає інструменти для керування цифровими активами, використовується як основа для колективних архівів. Цей пакет також пропонується як платформа для цифрового зберігання. Від першого виходу, у 2002 році, спершу як продукт альянсу HP-MIT, DSpace був встановлений і використовується у понад 240 установах по всьому світу, від великих університетів до невеличких освітніх коледжів, культурних організацій та дослідницьких центрів. DSpace підтримує широку різноманітність даних, зокрема книги, тези, 3D сканування об’єктів, фотографії, фільми, відео, набори дослідницьких даних та інші форми вмісту. ПЗ розповсюджується під ліцензією BSD, що дозволяє користувачам налаштовувати та розширювати програмне забезпечення за їхніми потребами. продолжение
–PAGE_BREAK–
DSpace підтримує всі популярні формати файлів .
Функціональні аспекти DSpace [8] такі:
для базової організації даних зафіксована певна модель даних;
система зберігає та індексує метадані у будь-яких форматах;
система зберігає інформацію про користувачів системи;
обмежує доступ до певних функцій системи, відповідно до типу користувача, тобто має функцію авторизації;
оновлення матеріалу;
редагування: матеріали або пов’язані з ними метадані, що вносяться до архіву, перевіряються або доповняються призначеними користувачами Ця послідовність дій називається робочим процесом (workflow);
матеріали в архіві доступні через певні посилання, що наводяться в описі конкретного елементу, за цим описом можна робити бібліографічні посилання на даний матеріал;
останні користувачі мають можливість переглядати і знаходити вміст репозиторія, тобто система забезпечує функцію пошуку і перегляду, має зручну навігацію;
для надання можливості інтегрованого пошуку елементів (документів) підтримується протокол збору метаданих OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting);
можливість повідомлення останніх користувачів системи про нові надходження в репозиторій, а саме, система надає автоматичне розсилання повідомлень електронною поштою через службу підписки;
можливість обробляти дані довільних форматів, від простих текстових документів до наборів даних і цифрового відео;
доступ до перерахованих функціональних можливостей надається за допомогою веб-інтерфейсу.
Eprints — найпоширеніша система у сфері управління репозиторіями цифрових об’єктів. Система розроблена в групі Інтелекту, агентів і мультимедія у відділі Електроніки і комп’ютерних наук Саутгемптонського університету в 2000 році. EPrints вільно розповсюджується під ліцензією GNU General Public License [http://software.eprints.org/gnu.php].
В Україні Eprints використовується в Бібліотеці Інституту програмних систем Національної академії наук України, Цифровому репозиторію Харківського національної академії міського господарства (ХНАМГ), Житомирському державному університеті та ін.
Ця система:
забезпечує створення електронних каталогів бібліотечних фондів та їх повноцінне функціонування і розвиток;
підвищує рівень автоматизації бібліотек шляхом використання сучасних ліцензійних програмних продуктів;
полегшує створення інтернет-порталу бібліотеки;
має можливість використовувати наявне апаратне забезпечення;
забезпечує високу ефективність, безпеку та надійність;
підтримує формати файлів: HTML, PDF, Postscript ,MS PowerPoint, MS Word, JPEG, PNG, GIF, BMP, TIFF, MPEG, QuickTime, AVI.
Крім описаних ПЗ, у бібліотеках України використовуються такі системи як ІРБІС, Aleph [4], АБІС “Славутич” тощо.
АБІС “Славутич” — перша українська бібліотечна система, що підтримує корпоративну каталогізацію і роботу в розподілених інформаційних бібліотечних мережах на базі протоколу Z39.50 v3, яка використовує новітні бібліотечні технології, які упроваджуються в провідних світових бібліотечних організаціях. Створені ПП “Центр інформаційних технологій Макссофт” і запропоновані для розповсюдження в 2006 році, АБІС “Славутич” та АБІС “Славутич-шкільний” одержали гриф “Рекомендований Міністерством освіти і науки України” (протокол №5 від 27.03.2006). На базі Черкаського обласного інституту післядипломної освіти педагогічних працівників впроваджується регіональна система інформаційно-ресурсної підтримки шкільних бібліотек. У рамках пілотного проекту системи в інституті встановлена АБІС “Славутич”, у школах м. Черкаси і Черкаській обласній бібліотеці для дітей імені Олега Кошевого встановлена АБІС “Славутич-шкільний”.
На офіційному сайті АБІС “Славутич” — slavutich.ed-sp.net/, дається така характеристика цій системі:
багаторівнева архітектура «Клієнт — сервер WWW-додатків — сервер баз даних»;
відкритість: система підтримує взаємодію із зовнішніми бібліотеками за протоколом Z 39.50;
Internet/Intranet і Web-технології: використання Internet як транспортного середовища та реалізація доступу користувачів через Web-браузер;
розподіленість: можливість створення систем різної конфігурації — від повністю локальної, функціонуючої на одному комп’ютері, до складних мереж із необмеженою кількістю серверних і клієнтських компонентів, що взаємодіють видалено через Інтернет, водночас можливе використовування звичайних телефонних ліній;
масштабованість: довільне нарощування кількості компонентів, користувачів, обсягів баз даних, підвищення продуктивності системи за рахунок додавання нових обчислювальних засобів без заміни існуючих;
розширюваність: модульна організація системи, можливість додавання нових компонентів і модулів для нарощування функціональних можливостей;
надійність: технологія захисту вилучених транзакцій і повернення до попередніх версій записів у випадку системного збою або розриву мережевого з’єднання;
безпека: контроль доступу до даних відповідно до категорій користувачів, IP-авторизація, моніторинг роботи користувачів в реальному режимі часу;
керованість: настроювання основних параметрів системи адміністратором;
підтримка реплікації даних;
налаштованість: графічний інтерфейс, функціональні можливості, інструментарій для настройки форматів записів, створення шаблонів;
багатомовність даних і діагностичних повідомлень;
формати даних: сімейство MARC (ISO 2709), GRS-1, HTML, XML;
кодування: Win1251, KOI8, UTF-8 та ін.;
формат вихідних форм: MS Word, MS Excel.
Активно використовується АБІС “ІРБІС”. Наприклад, у Херсоні цю систему використовують: Наукова бібліотека Херсонського державного аграрного університету, Науково-технічна бібліотека УААН Інституту землеробства Південного регіону, Наукова бібліотека Інституту тваринництва степових районів ім. М. Ф. Іванова «Асканія – Нова» Національного наукового селекційно-генетичного центру з вівчарства, Бібліотека Інституту південного овочівництва і баштанництва, Науково-технічна бібліотека Інституту рису УААН, Наукова бібліотека Біосферного заповідника «Асканія – Нова» ім. Ф. С. Фальц Фейна, Бібліотека Каховського державного аграрного технікуму, Бібліотека Скадовського технікуму Херсонського ДАУ .
Так, у системі ІРБІС 64 є можливим:
створення баз даних на основі довільних текстів практично будь-яких форматів (TXT, DOC, RTF, PDF, HTML);
пошук у повнотекстових базах даних за запитами рідною мовою з використанням оригінальних алгоритмів ранжирування знайдених текстів;
автоматизована технологія створення тематичних класифікаторів, на основі яких реалізується смисловий пошук «схожих» текстів (т. з. контекстний пошук);
пошуковий інтерфейс останнього користувача повнотекстових базах даних;
засоби публікації повнотекстових баз даних на CD-ROM і в Інтернеті;
спеціальні засоби користувача-експерта для смислового аналізу текстів.
АБІС “ІРБІС” підтримує такі функції:
робота в локальних обчислювальних мережах будь-якого типу без обмежень кількості користувачів;
інтегрована технологія на основі підтримки протоколу Z39.50 і web-технологій;
сумісність з міжнародними і російськими комунікативними форматами;
підтримка довільної кількості баз даних;
технологія автоматичного формування словників;
засоби для ведення і використання авторитетних файлів;
підтримка традиційних технологій: від друкування листів замовлення і книги сумарного обліку до друкування всіх видів карток каталогу;
технологія використання штрих-коду на виданнях і читацьких квитках;
підтримка повних текстів, графічних даних та інших зовнішніх об’єктів, зокрема ресурсів Інтернету;
засоби для перекладу інтерфейсів іншими мовами;
широкий набір сервісних засобів, що забезпечують зручність і наочність призначених для користувача інтерфейсів, які виключають помилки і дублювання інформації;
широкі можливості для адаптації до умов роботи конкретної бібліотеки.
У системі реалізовані всі типові бібліотечні технології: комплектування, систематизація, каталогізація, книговидача, читацький пошук; адміністрування.
Досвід створенню ПЗ для електронних бібліотек і колекцій інформаційних ресурсів у багатьох країнах світу, безумовно, буде сприяти створенню інфраструктури для підтримки наукових досліджень та інших сфер діяльності і в Україні.
Під час створення електронної бібліотеки актуальне значення буде мати підбір програмних систем, що відповідатимуть міжнародним стандартам, основним функціям бібліотеки та вимогам користувачів.
При цьому проблеми інтероперабельності та масштабованості є одними з ключових. У зв’язку з цим особливу увагу слід звертати на вибір стандартів, що будуть закладені в основу технічних і технологічних рішень.
Загалом наявні на комп’ютерному ринку України технічні засоби дозволяють вирішити питання архівації інформаційних потоків і створення електронних копій історико-культурних документів. Водночас необхідно констатувати відсутність в Україні фірм, які забезпечували б супроводження програмних систем для інформатизації бібліотек.
1.1.2Опис процесу діяльності
1.1.2.1 Сценарій роботи АРМ науково-технічної бібліотеки
Електронна бібліотека має бути значно краще і зручніше, ніж існуюча електронна бібліотека. Розвиток бібліотеки слід здійснювати по наступних трьом напрямам:
функціональность – додати нові можливості для користувача;
спрощення роботи з даними — відсутність підвищених вимог до кваліфікації користувача;
можливість видаленого доступу до довідника через інтернет або локальну мережу.
Виходячи з цього, пропонується наступний сценарій роботи системи.
База даних встановлюється на сервері бібліотеки. Дані редагуються оператором за допомогою ідентифікації користувача, тобто введення логіну та паролю. Програма здійснює захист інформації від несанкціонованого доступу. Програма також має розвинені засоби пошуку, що не вимагають, проте, спеціальної кваліфікації від оператора.
Доступ до даних також здійснюється через Інтернет-сервер. Для цього розробляються програмні засоби, що дозволяють здійснювати доступ бібліотеки і пошук інформації через WEB — браузер, встановлений на комп’ютері видаленого користувача. Редагувати дані видалений користувач можливості не має. Засоби пошуку — розвинені і прості у використанні.
1.1.2.2 Вибір засобів проектування
Для успішного проектування необхідні три складових процесу: організація, нотація і інструмент [9].
Успішно розроблений проект задовольняє або перевершує очікування замовника, виконується у заданий термін з оптимальними витратами і може бути адаптований до зміни умов. Життєвий цикл розробки повинен сприяти творчим і новаторським ідеям. В той же час для своєчасного завершення процес розробки повинен контролюватися. Тобто, для ефективної роботи потрібна дисципліна. Але дуже жорстка дисципліна приводить до розвитку бюрократії, яка, у свою чергу, душить новаторські ідеї. Правильно керований ітеративний і інкрементальний життєвий цикл забезпечує необхідний контроль і підтримує творчий процес на потрібному рівні.
Для успішної організації процесу проектування розроблені різні, достатньо численні методології, наприклад:
методологія швидкої розробки застосуватнь RAD (Rapid Application Development);
методологіяфункціональногомоделюванняSADT (Structured Analysis and Design Technique);
методологія моделювання даних IDEF;
методологіяRUP (Rational Unified Process);
методологія екстремального програмування (XP).
Однією з найуспішніше вживаних методологій, що розвиваються, сьогодні є методологія RUP («уніфікований процес»), за допомогою якої можна детально описати технічні і організаційні аспекти створення програмного забезпечення на стадіях визначення вимог, аналізу і проектування. продолжение
–PAGE_BREAK–
Методологія Rational Unified Process структурована в двох напрямах:
час (розділення життєвого циклу на фази і версії);
компоненти процесу (створення необхідного набору засобів для виконання чітко певних завдань).
Робота над проектом складається з наступних часових етапів:
задум — визначення загальної ідеї проекту;
опрацьовування — планування необхідних робіт і ресурсів, зазначення особливостей і створення архітектури;
створення — побудова продукту за допомогою серії послідовних версій;
перехідний період — постачання продукту користувачам (виробництво, розповсюдження, навчання).
У розрізі компонентів процес ділиться на наступні стадії:
побудова бізнес-моделі — визначення необхідних можливостей системи і потреб користувачів;
визначення вимог до системи — виклад загальної ідеї системи сумісний з функціональними і нефункціональними умовами її роботи;
аналіз і проектування — опис способів виконання системи на етапі реалізації;
реалізація — кодування і генерація працюючих програмних модулів системи;
тестування — перевірка функціонування системи;
впровадження — постачання системи кінцевим користувачам і їх навчання.
Нотація є важливою складовою будь-якої моделі, використовуваної при проектуванні, — вона служить сполучною ланкою між процесами.
«Нотація виконує три функції:
є мовою для опису взаємодій, які неочевидні або не можуть бути отримані безпосередньо з коду;
забезпечує достатню семантику, що дозволяє охопити важливі стратегічні і тактичні рішення;
пропонує конкретну форму, що допомагає людина міркувати про предметну область, а засобам моделювання утілювати описані ідеї» [8].
Уніфікована мова моделювання (Unified Modeling Language — UML) пропонує достатньо повну нотацію, яка розширюється при переході від аналізу до проектування.
Методи створення програмного забезпечення успішно підтримуються відповідними інструментами розробками (CASE — системами). Однією з найбільш розвинених систем такого роду є сімейство продуктів Rational Rose. Для побудови моделей при проектування програм також можна використовувати такі програми, як Microsoft Visual Modeler і Microsoft Visio, StarUML та досить багато інших програмних засобів
У дипломному проекті для проектування використовувається програма Microsoft Visio, як найбільш поширене середовище проектування різноманітних моделей.
1.1.2.3 Опис функцій, які автоматизуються
Загальна функціональна схема інформаційної підсистеми, що розроблюється, приведена на рис. 1.2.
На схемі зображені основні функції підсистеми, що розроблюється і основні актори, що приймають участь у цій діяльності. На схемі також зображений адміністратор локальної мережі, який є у штатному розкладі і займається усіма проблемами, зв’язаними з комп’ютерами.
/>
Рисунок 1.2 – Функціональна схема автоматизованого робочого місця науково-технічної бібліотеки
Метою розробки АРМ є — скорочення часу обробки оперативних даних, зменшення кількості помилок при обробці інформації.
Основні функціональні вимоги до розроблюваного автоматизованого робочого місця зводяться до наступного:
гнучкі можливості пошуку;
можливість видаленого доступу;
засоби захисту від несанкціонованого доступу.
Під гнучким пошуком розуміється наступний алгоритм пошуку:
задане прізвище автора спочатку шукається в таблиці книг;
якщо шуканого прізвища немає в списку, визначається назва книги по цій же таблиці;
задане прізвище спочатку шукається в таблиці авторів;
якщо шуканого прізвища немає в списку, виводиться повідомлення що пошук не дав результатів.
Під пошуком по класифікаторові розуміється наступне:
кожна бібліотека має свою назву;
користувач здійснює ієрархічний пошук потрібної йому книги шляхом послідовного вибору в сформованій ієрархічній структурі.
Під пошуком за зразком розуміється наступне:
користувач указує текстовий зразок, пошук якого потрібно здійснити в довіднику;
користувач указує, в яких структурах довідника потрібно шукати заданий зразок для пошуку (у заголовку, скрізь);
користувач указує, де потрібно шукати заданий зразок (починається з, містить).
1.1.2.4 Діаграмма прецедентів
Поведінка системи, що розробляється, описується за допомогою функціональної моделі, яка відображає системні прецеденти, системне оточення (дійових осіб або акторів) і зв’язки між прецедентами і акторами (діаграми прецедентів). Основне завдання моделі прецедентів — бути спільним засобом, що дає можливість фахівцеві в предметній області і розробникові — фахівцеві в інформаційних технологіях спільно обговорювати функціональність і поведінку системи.
Актори — це користувачі, або інші системи, які унікальним чином взаємодіють з даною системою.
У інформаційній системі, що розробляється, претендентами на роль акторів єнаступні сутності:
Адміністратор — користувач, що здійснює налаштування і конфігурування системи;
Оператор — користувач, що здійснює налаштування і конфігурування курсів;
Читач (або клієнт) — користувач, що одержує існуючу в системі інформацію про книги та авторів.
За допомогою прецедентів моделюється діалог між актором і системою. Прецеденти визначають можливості, що забезпечуються системою для актора. Набір всіх прецедентів системи визначає всі способи її використання. Можна сказати, що прецедент — це послідовність транзакцій, що виконуються системою, яка приводить до деякого результату для певного актора.
У системі, що розробляється, повинні забезпечуватися наступні потреби:
актор Адміністратор реєструється в системі, як користувач, що володіє відповідними правами доступу до даних;
актор Адміністратор конфігурує систему;
актор Оператор реєструється в системі, як користувач, що володіє відповідними правами доступу до даних;
актор Оператор вводить і редагує дані в базі даних системи;
актор Клієнт реєструється в системі, як користувач, що володіє відповідними правами доступу до даних;
актор Клієнт виконує пошук необхідної йому інформації.
На підставі перерахованих потреб можна виділити наступні прецеденти:
реєстрація в системі;
конфігурація системи;
введення і редагування даних;
пошук даних.
Список акторів і прецедентів системи показаний на рис.1.3.
/>
Рисунок 1.3 – Список акторів и прецедентів системи
Діаграма прецедентів — це графічне уявлення всіх або частини акторів, прецедентів і їх взаємодій в системі. У кожній системі зазвичай є головна діаграма прецедентів, яка відображає межі системи (акторів) і основну функціональну поведінку системи (прецеденти).
Головна діаграма прецедентів системи приведена на рис. 1.4.
На даному етапі життєвого циклу також можуть бути побудовані діаграми дій. Вони відображають динаміку проекту і є схемами потоків управління в системі від дії до дії, а також паралельні дії і альтернативні потоки управління.
Діаграма дій оператора при редагуванні даних зображена на рис. 1.5. Оператор зобов’язаний ввести пароль. У разі невірного пароля редагування неможливе. У разі правильного пароля Оператор вводить всі необхідні дані, формує списки авторів та книжок.
/>
Рисунок 1.4 – Головна діаграма прецедентів
/>
Рисунок 1.5 – Діаграмма дійпри редагуванніданих
1.1.2.5 Головна діаграма класів
Діаграми класів дозволяють створювати логічне представлення системи. Значки діаграми дозволяють відображати складну ієрархію об’єктів, взаємозв’язки класів і інтерфейсів.
Якщо в системі існує небагато класів, управляти ними достатньо легко. Проте, для систем, що складаються з великої кількості класів, необхідний механізм, що дозволяє розбити їх на групи і що полегшує управління і повторне використання. Тут виявляється корисною концепція пакетів. Пакет в логічному представленні моделі — це набір класів і інших пакетів.
Створюємо необхідні для системи класи: Автори, Книги, Клієнти, Картки, Рух книжок, Теми.
Переміщаємо класи у відповідні пакети: Книги, Кліенти, Рух.
Cтворюємо головну діаграму класів, на якій представлені пакети системи (див. рис. 1.6).
Пакет Книги містить класи, що описують книги і їх атрибути.
Пакет Клієнти містить класи, що описують читачів.
Пакет РухКниг містить класи, що описують видання та повернення книг.
/>
Рисунок 1.6 – Головна діаграма класів системи
1.1.2.6 Детальна діаграма класів системи продолжение
–PAGE_BREAK–
При проектуванні класів системи необхідно визначити стереотипи класів, стосунки між класами, а також основні атрибути і операції класів.
Всі проектовані класи є класами — суттю. Цим класам в системі, що розробляється, відповідатимуть таблиці бази даних і програмні класи.
Між классами- суттю існують стосунки асоціації. Потужності стосунків, виходячи з аналізу предметної області, будуть наступними:
Предмет — Книга (1 — 1..*);
Книга — Картка (1 — 1..*);
Картка — Рух (1 — 1..*);
Рух — Клієнт (1..* — 1);
Книга — Автор (1..* — 1..*).
Склад атрибутів класів, в принципі, зрозумілий, детальне уточнення його буде проведено при проектуванні бази даних.
Те ж відноситься і до операцій класів. Для класів — суті основними операціями будуть стандартні операції редагування:
додавання
зміна
видалення
пов’язання з іншими класами.
Класи проектованої системи і відношення між ними приведені на рис. 1.7.
/>
Рисунок 1.7 – Детальна діаграма класів системи
1.1.3 Постановка задачі
1.1.3.1 Компоненти проекту
Наша систем буде складатися з кількох окремих компонентів (див. рис. 1.8).
/>
Рисунок 1.8 – Діаграма компонентів системи
База даних буде встановлена на файл-сервері організації. Сайт з ASP-страницами буде встановлений на Інтернет-сервері організації. Фізично це буде може бути й один комп’ютер — сервер організації. Програма редагування буде встановлена на декількох комп’ютерах в локальній мережі організації. Доступ до сайту для пошуку здійснюватиметься через web-браузери з будь-якого комп’ютера, підключеного до Інтернету.
1.1.3.2 Програма редагування
Програма редагування буде MDI — додаток Windows. Головне меню включатиме наступні меню:
Дані;
Перегляд;
Довідка.
Меню Дані включатиме наступні пункти:
Теми (книг);
Книги;
Картки (екземпляри книг);
Типи (клієнтів);
Факультети;
Клієнти;
Рухи (видача, повернення книг);
Надходження;
Списання;
Вихід.
По команді Клієнти буде Відкрито наступне вікно в якому можна дізнатися:
П.І.Б.;
Факультет;
Групу;
Адреса;
Телефон;
Дату народження;
Місце роботи або навчання
Дата реєстрації
Посада.
У цьому вікні реалізовані стандартні команди редагування (додавання, видалення, зміна) даних цього вікна. Таким чином здійснюватиметься редагування всіх даних, пов’язаних з клієнтом.
Аналогічно, через команду Книги здійснюватиметься редагування всіх даних, пов’язаних з Книгами:
Книга;
Тема книги;
Автори
Дата видання.
Команди меню Перегляд дають доступ до тих же даних в іншому вигляді, зручнішому для пошуку даних. Наприклад, команда Книги виводить список книг не з розбиттям по групах класифікатора, а в алфавітному порядку.
Класифікатор книг організований за ієрархічним принципом і дозволяє користувачеві бібліотеки вводити додаткові групи і підгрупи будь-якого рівня.
Меню Довідка містить стандартну для цього меню команду Про програму.
Для доступу до програми редагування користувач повинен буде вказати своє ім’я і пароль, заведені адміністратором бази даних.
1.1.3.3 Сайт для пошуку
Сайт для пошуку міститиме ряд ASP-страниц, організованих за ієрархічним принципом:
Головна сторінка електронної бібліотеки;
Довідник книг по бібліотеках;
Довідник книг.
Довідник книг дозволять шукати книги по повному і по частково завданню назви книги, а довідник книг по бібліотеках шукає книги в бібліотеках в яких встановлена ця програма.
1.2 Рішення з інформаційного забезпечення
1.2.1 Перелік вхідних даних
У даному проекті вхідними даними для програми редагування є дані бібліотеки:
Бібліотечна картка;
Журнал списання;
Журнал надходження;
Журнал реєстрації.
У бібліотечній картці відображається наступна інформація:
Назва книги;
Автори;
Видавництво і рік видання;
Тема;
Реєстраційний номер;
Історія видачі і повернення книги.
У журналі списання відображається наступна інформація:
Назва книги;
Автори;
Видавництво і рік видання;
Тема;
Реєстраційний номер;
Дата списання;
Підстава для списання.
У журналі надходження відображається наступна інформація:
Назва книги;
Автори;
Видавництво і рік видання;
Тема;
Реєстраційний номер;
Дата реєстрації;
Дата надходження.
У журналі реєстрації відображається наступна інформація:
П.І.Б.;
Домашня адреса;
Номер телефону;
Місце роботи або навчання.
Вхідними даними для програми пошуку є:
Дані для запиту.
Даними для запиту по книзі є назва або тема.
1.2.2 Перелік вихідних даних
Вихідними даними програми пошуку є база даних бібліотеки.
Формат списку наступний:
Назва книги;
Автори;
Видавництво і рік видання;
Тема;
Реєстраційний номер;
Історія видачі і повернення книги.
У даному проекті вихідних даних у програми редагування не передбачається. При можливому розвитку програми, в наступній версії можна буде спроектувати звіти. Формат цих звітів відповідатиме складу списку.
1.2.3 Вибір СУБД
Вибір апаратної платформи і конфігурації визначається вимогами, які пред’являються до характеристик сучасних обчислювальних систем.
До них відносяться:
відношення вартість/продуктивність;
надійність і відмовостійкість;
масштабованість;
сумісність і мобільність програмного забезпечення.
СУБД із розряду архітектури «клієнт-сервер» можна відразу прибрати, — в нашому завданні не потрібна дуже велика продуктивність і обробка складних запитів, і властива цим СУБД складність адміністрування.
Вибиратимемо із настільних СУБД типа Microsoft Access, Visual FoxPro або Paradox.
Розглянемо можливості Access і типи задач, які можна вирішувати за допомогою цієї СУБД. Зокрема: Access — це, перш за все, система управління базами даних (СУБД). Як і інші продукти цієї категорії, вона призначена для зберігання і пошуку даних, представлення інформації в зручному вигляді і автоматизації операцій, що часто повторюються (таких, як ведення рахунків, облік, планування і т.і.). За допомогою Access можна розробляти прості і зручні форми введення даних, а також здійснювати обробку даних і видачу складних звітів.
При всьому цьому Access — не просто СУБД. Як реляційна СУБД Access забезпечує доступ до всіх типів даних і дозволяє використовувати одночасно декілька таблиць бази даних. При цьому можна істотно спростити структуру даних, полегшуючи тим самим виконання поставлених завдань. Таблицю Access можна пов’язати з даними, що зберігаються на великій ЕОМ або на сервері. З іншого боку, можна використовувати таблиці, створені в середовищі Paradox або dBASE. Отримані результати можна швидко і легко зв’язати і об’єднати з даними з електронних таблиць Excel
У Access повною мірою реалізовано управління реляційними базами даних. Система підтримує первинні і зовнішні ключі і забезпечує цілісність даних на рівні ядра (що запобігає несумісним операціям оновлення або видалення даних). Крім того, таблиці в Access забезпечені засобами перевірки допустимості даних, що запобігають некоректному введенню незалежно від того, як він здійснюється, а кожне поле таблиці має свій формат і стандартні описи, що істотно полегшує введення даних. Access підтримує всі необхідні типи полий, зокрема текстовий, числовий, лічильник, грошовий, дата/час, MEMO, логічний, гіперпосилання і поля об’єктів OLE. Якщо в процесі спеціальної обробки в полях не опиняються ніякі значення, система забезпечує повну підтримку пустих значень. продолжение
–PAGE_BREAK–
Реляційна обробка даних в Access за рахунок гнучкої архітектури системи здатна задовольнити будь-які потреби. При цьому Access може використовуватися як автономна СУБД в режимі файл-сервера або клієнтського компоненту таких продуктів, як SQL Server. Крім того. Access підтримує протокол ODBC (Open Database Connectivity), що дозволяє підключатися до баз даних безлічі різних форматів, таких як SQL Server, Oracle, Sybase і навіть DB/2 для великих ЕОМ фірми IBM.
Система Access підтримує обробку транзакцій з гарантією їх цілісності. Крім того, передбачений захист на рівні користувача, що дозволяє контролювати доступ даним окремих користувачів і цілих груп.
І, нарешті, MS Access, на сьогоднішній день найбільш популярна настільна СУБД, по ній можна легко знайти будь-яку необхідну довідкову інформацію
Виходячи зі всього цього, вибираємо для розробки системи MS Access 2003
1.2.4 Розробка моделі даних
Логічна структура бази даних практично розроблена раніш (див. рис. 1.7. — Докладна діаграма класів системи і пункт 1.2.1 — Перелік вхідних даних). Далі слід уточнити список фізичних таблиць БД і їх структуру, спроектувати ключі таблиць і зв’язку між ними. Після виконання цієї роботи отримаємо наступну схему БД системи (див. рис. 1.9).
/>
Рисунок 1.9 – Схема бази даних системи
База даних складається з наступних основних таблиць:
Book– Список книг;
BookSubj– Список тем;
Card– Список карт клієнтів;
CardCome– Список дат видання;
CardRem– Список дат повернення;
Client– Список клієнтів;
ClientStudy– Список факультетів;
ClientType– Список типівклієнтів;
Move– Список рухукниг у бібліотеці.
Розглянемо структуру таблиць.
Таблиця 1.1 – Структура даних бібліотеки
Таблиця
Поле
Тип даних
Обов’язкове
Індексування
Book
Book
Integer
Так
Ключове
Title
String, 50
Так
З повтореннями
Auth
String, 50
Так
З повтореннями
Auth2
String, 50
Ні
З повтореннями
Auth3
String, 50
Ні
З повтореннями
PubDate
Date
Так
Ні
Subj
Integer
Так
З повтореннями
BookSubj
Subj
Integer
Так
Ключове
Title
String, 50
Так
Без повторень
Card
Card
Integer
Так
Ключове
Book
Integer
Так
З повтореннями
Enabled
Bool
Так
Ні
CardCome
Card
Integer
Так
Ключове
Date
Date
Так
З повтореннями продолжение
–PAGE_BREAK–
CardRem
Card
Integer
Так
Ключове
Date
Date
Так
З повтореннями
Client
Client
Integer
Так
Ключове
Name
String, 50
Так
З повтореннями
Addr
String, 50
Ні
Ні
Phone
String, 10
Ні
Ні
BirthDate
Date
Ні
Ні
RegDate
Date
Ні
Ні
Type
Integer
Так
З повтореннями
Study
Integer
Так
З повтореннями
Year
Integer
Ні
З повтореннями
Group
String, 50
Ні
З повтореннями
Work
String, 50
Ні
Ні
Post
String, 50
Ні
Ні
ClientStudy
Study
Integer
Так
Ключевое
Name
String, 50
Так
Без повторень
ClientType
Type
Integer
Так
Ключевое
Name
String, 50
Так
Без повторень
Move
Client
Integer
Так
З повтореннями
Card
Integer
Так
З повтореннями
DateOut
Date
Так
З повтореннями
DateRet
Date
Ні
Ні
1.3 Рішення з технічного забезпечення
Як платформа розробки проекту була вибрана платформа Microsoft.
Ідея Microsoftв тому, щоб перемістити центр уваги обчислювального співтовариства зі світу, що складається з різних пристроїв і Web-узлов, зв’язаних між собою через інтернет, в світ, де висока якість рішень для користувачів забезпечується спільною роботою пристроїв, служб і комп’ютерів. Основу Microsoftскладають чотири базові компоненти [11]: продолжение
–PAGE_BREAK–
BuildingBlockServices— засоби програмного доступу до таких служб, як сховище файлів (filestorage), календар (calendar), служба аутентифікації “Passport”;
ПО для пристроїв, яке виконуватиметься на нових пристроях Інтернету;
засоби для роботи з користувачами, що включають природний інтерфейс (naturalinterface), інформаційні агенти (informationagents) і інтелектуальні теги (smarttags) — технологію, яка автоматизує перехід по гіперпосиланнях до інформації, пов’язаної із словами і фразами в документах користувачів;
інфраструктура .NET, що складається з .NETFramework, MicrosoftVisualStudio, EnterpriseServersі MicrosoftWindows.
Frameworkскладається з CommonLanguageRuntime(CLR) і набору бібліотек класів .NETFramework, який іноді називають BaseClassLibrary(BCL). CLR— це по суті віртуальна машина, в якій функціонують застосування .NET. Всі мови .NETмають в своєму розпорядженні бібліотеки класів Framework. Якщо ви знайомі з MicrosoftFoundationClasses(MFC) або ObjectWindowsLibrary(OWL) компанії Borland, то вам не треба пояснювати, що це таке. Бібліотеки класів Frameworkвключають підтримку практично всіх технологій від файлового введення-виводу і обміну з БД до XMLі SOAP. Взагалі бібліотеки класів Frameworkтакі обширні, що навіть поверхневий огляд всіх підтримуваних класів зажадає окремої книги.
CommonLanguageRuntime(CLR) — це серце технології Microsoft. Як випливає з назви, це середовище часу виконання коду, в якій забезпечується ефективна взаємодія додатків, що перетинає межі різних мов програмування (cross-languageinteroperability). Як досягається ця взаємодія? CommonLanguageSpecification(CLS) — це набір правив, яких повинен дотримуватися компілятор мови при створенні .NET-приложений, CLR, що запускаються в середовищі. Будь-який, хто захоче написати компілятор .NET, повинен слідувати цим правилам і — будь ласка! — додатки, що згенерували цим компілятором, працюватимуть разом з іншими .NET-прило-жениями і матимуть таку ж можливість взаємодії.
У середовищі Windowsє декілька глобальних правил поведінки додатків, що відносяться до їх взаємодії один з одним, розподілу пам’яті, а також до залучення засобів самою ОС для роботи від їх імені. Навпаки, в середовищі керованого коду є набір правив, що забезпечують одноманітну в глобальному сенсі поведінку всіх застосувань незалежно від того, на якій мові вони написані. Одноманітна поведінка .NET-приложений — характерна межа технології .NET, і його не можна ігнорувати. На щастя, ці глобальні правила розповсюджуються головним чином тільки на творців компіляторів.
Бібліотеки класів .NET Frameworkграють надзвичайно важливу роль в забезпеченні міжмовної взаємодії додатків, оскільки вони дозволяють розробникам використовувати єдиний програмний інтерфейс до всіх функціональних засобів CLR. Якщо вам доводилося писати програми для Windowsна декількох мовах, то вам сподобається це нововведення. Бібліотеки класів .NET Frameworkроблять фактично революційний прорив в розробці компіляторів. До .NET майже кожен автор компілятора розробляв мову, що володіє здатністю робити велику частину своєї власної роботи. Навіть C++, розроблений як набір функціональних можливостей, що працюють спільно з бібліотекою класів, має деякі засоби для власних потреб. Тоді як роль мов в оточенні .NET не вичерпується наданням синтаксичних інтерфейсів до бібліотек класів .NET Framework.
Найважливіший аспект будь-якого середовища розробки розподілених застосувань — спосіб забезпечення безпеки. Завдяки тим з нас, хто довго скаржився, що ніхто серйозно не розглядатиме Microsoftвідносно серверних рішень для підприємств, поки вона повністю не відновить підхід до безпеки, в .NET з’явилося відразу декілька нових концепцій. Робота системи безпеки починається з того моменту, коли CLRзавантажує клас, оскільки завантажувач класів є частиною системи безпеки .NET. Так, при завантаженні класу в .NET під час виконання перевіряються правила доступу і його внутрішня цілісність. Крім того, в ході такої перевірки з’ясовується, яка частина коду має належні дозволи на доступ до певних ресурсів. Система безпеки гарантує перевірку наказаних ролей і ідентифікаційних даних. Щоб не піддавати ризику найбільш відповідальні дані в розподілених обчислювальних середовищах, ці перевірки безпеки не обмежуються рамками окремих процесів і машин.
Розгортання — найбільш неприємна процедура розробки крупних розподілених систем. Будь-який розробник Windows-программ може сказати, що, зіткнувшись з масою різноманітних двійкових файлів, проблемами реєстру Windows, компонентами СОМ, установкою бібліотек підтримки таких продуктів, як OpenDatabaseConnectivity(ODBC) і DataAccessObjects(DAO), ви міцно задумаєтеся, а чи правильно ви вибрали рід занять. Слава богу, розгортання — це та частина .NET, над якою проектувальники добре потрудилися.
Ключ до розгортання .NET-приложений — концепція складок (assemblies). Збіркою називають пакет з семантично близьких об’єктів, що складається з одного або декількох файлів. Особливості розгортання залежать від того, що ви розробляєте: Web-серверноезастосування або персональне застосування для Windows. Проте з введенням збірки як повністю інкапсульованого набору функціональних можливостей розгортання зводиться до простого копіювання потрібних складок в місце призначення.
Маса проблем, що мучили програмістів до появи .NET Framework, тепер усунено. Тепер, наприклад, не треба реєструвати компоненти (як це вимагають СОМ і елементи управління ACTIVEX), оскільки завдяки метаданим і віддзеркаленню всі компоненти містять в собі власний опис. Під час виконання .NET відстежує також роботу з файлами і версії файлів, пов’язаних з додатком. Тому будь-яке встановлюване застосування, автоматично зв’язується з файлами, що є частиною його збірки. Якщо програма установки спробує перезаписати файл, необхідний іншому застосуванню .NET поступить достатньо розумно, дозволивши встановити потрібні файли, не видаливши при цьому попередні версії файлу, оскільки вони ще потрібні іншому застосуванню.
Для роботи .NET — застосування на комп’ютері має бути встановлене середовище .NET Framework.
Мінімальні характеристики комп’ютера необхідного для комфортної роботи програми в операційній системі WindowsXP:
процесорIntel Pentium/amd Athlon 2000 Гц;
ОЗУ 512 Мб;
Вінчестер 100 Гб.
Але оскільки нам потрібна нормальна робота Інтернет-сервера і MicrosoftSQLServerна нашому комп’ютері, то конфігурація має бути значно посилена:
процесор не менше 3000 Гц;
ОЗУ не менше 1 Гб;
вінчестер не менше 200 Гб.
1.4 Рішення з математичного забезпечення
1.4.1 Пошук у тексті
У нашому проекті для повноцінного пошуку використовуються засоби текстового пошуку. В даний час такі засоби посилено розвиваються. До складу MicrosoftSQLServer2005 навіть включений новий для СУБД спеціальний компонент Full-textSearch(повнотекстовий пошук).
Одним з наймогутніших інструментів пошуку в текстах є регулярні вирази.
Регулярні вирази підтримуються багатьма програмами (редакторами, системними утилітами, ядрами баз даних і так далі), але їх можливості повною мірою виявляються в мовах програмування, зокрема Java, Jscript, VisualBasic, Vbscript, Javascript, C, C++, C#, elisp, Perl, Python, Ruby, PHP, awkі тому подібне Регулярні вирази займають центральне місце в багатьох програмах, написаних на цих мовах.
Підтримка регулярних виразів в таких різнорідних застосуваннях пояснюється тим, що регулярні вирази володіють виключно багатими можливостями. На низькому рівні регулярний вираз описує якийсь фрагмент тексту. Їм можна скористатися для перевірки даних, введених користувачем, або, наприклад, для фільтрації великих об’ємів даних. На більш високому рівні регулярні вирази дозволяють управляти даними.
За допомогою регулярних виразів ви можете проводити пошук, заміну підрядків, використовуючи шаблони. Вони складаються із звичайних символів і так званих метасимволів (metacharacters) — символів, що управляють. Список метасимволів достатньо обширний. Нижче приведені найбільш часто використовувані символи:
* — сооветствуєт виразу, що знаходиться до знаку “*”, узятому нуль або більше разів. Наприклад, шаблон “[0-9]*” визначає рядок, що містить нуль або більш за цифри;
— призначений для визначення символу, що є метасимволом. Наприклад, шаблон “.” відповідає будь-якому символу, а шаблон “\.” відповідатиме крапці;
^ — визначає початок вхідного рядка;
$ — визначає кінець вхідного рядка;
+ — відповідає виразу, що знаходиться до знаку “+”, узятому один або більше разів. Наприклад, шаблон “[0-9]+” визначає рядок, що містить одну або більш за цифри;
. — визначає будь-який символ окрім символу перекладу рядка;
| — розділяє два вирази. Наприклад, шаблону «a|b» відповідатимуть рядки «a» і «b»;
[a-z] — визначає діапазон символів. Наприклад, шаблон “[0-9]” визначає цифру;
[^.] — визначає будь-який символ, не відповідний заданому набору. Наприклад, шаблон “[^0-9]” визначає будь-який символ, окрім цифри;
w — слово. Те ж, що і [a-za-z_0-9];
W — все, окрім слів. Те ж, що і [^a-zA-Z_0-9];
s — будь-яке порожнє місце. Те ж, що і [ \f\n\r\t\v];
|S — будь-яке непорожнє місце. Те ж, що і [^ \f\n\r\t\v];
d — десяткова цифра. Те ж, що і [0-9];
D — не цифра. Те ж, що і [^0-9].
Ось простий приклад регулярного виразу — шаблон номера телефону. продолжение
–PAGE_BREAK–
^(\(\d+\)){0,1}d{3}-\d{2}-\d{2}$
Цей вираз може показатися складним, хоча насправді все досить просто:
^ — цей символ указує, що тут починається шуканий рядок;
(- код міста розташовується усередині дужок;
( — відкриваюча дужка;
d+ — після дужки повинні розташовуватися код міста — одна або декілька цифр;
) — Закриваюча дужка;
) — Закриваюча дужка — метасимвол, вказуючий, що тут закінчується групований вираз (в даному випадку, код міста);
0,1} — Цей метасимвол указує, що вираз в дужках (код міста) може повторюватися від нуля до одного разу, тобто код міста можна не указувати;
d{3}-\d{2}-\d{2} — Три групи цифр — одна група по три і дві по дві цифри. Цифри розділені дефісами;
$ — Цей знак показує, що тут закінчується підрядок.
Найчастіше регулярні вирази використовуються для пошуку і порівняння рядків. Оскільки таке завдання при обробці даних зустрічається дуже часто, бажано, щоб пошук рядків виконувався швидко.
Розглянемо деякі алгоритми пошуку заданого слова (підрядки) в рядку.
Відмітимо, що дане завдання не зводиться тільки до обробки текстів. Це, наприклад, і пошук даного ланцюжка нуклеотідов в молекулі ДНК, і пошук заданої послідовності дій в реалізації алгоритму. У загальному випадку, кажучи формально, завдання пошуку підрядків (string-matching problem) полягає в наступному [12].
Хай дані «текст» — масив T[1..n] довжини n і «зразок» — масив P[1..m] довжини m. Ми вважаємо, що елементи масивів P і T — символи деякого кінцевого алфавіту Ќ (наприклад Ќ = {0,1} або Ќ = {а, b ., z}). Масиви, що складаються з символів алфавіту Ќ, часто називають рядками символів, або словами в цьому алфавіті.
Говоритимемо, що зразок P входить із зрушенням s, або, еквівалентно, входить з позиції s + 1 в текст T, якщо 0
1.4.2 Обозначення та терміни
Через Ќ* позначається множина всіх кінцевих рядків над алфавітом Ќ, включаючи порожню рядок, що має нульову довжину і е, що позначається. Довжина рядка xпозначається |x|. З’єднання, або конкатенація рядків xі у виходить, якщо виписати рядок x, а за нею — рядок у. Конкатенація рядків xі у позначається xy; очевидно |xy| = |x|+|y|.
Говоритимемо, що рядок w — префікс, або початок рядка x, якщо x = wy для деякого у € Ќ*. Говоритимемо, що рядок w — суфікс, або кінець рядка x, якщо x = yw для деякого у € Ќ*. Писатимемо w [ x, якщо w — префікс x, і w ] x, якщо w — суфікс x. Наприклад, ab [ abcca і cca ] abcca.
Порожній рядок є префіксом і суфіксом будь-якого рядка; якщо w — префікс або суфікс x, то |w|
Хай x, у і z — рядки, для яких x ] z і x [ z. Тоді x ] у, якщо |x| = |y|, і x = у, якщо |x| = |y|.
Якщо S[1..r] — рядок довжини r, то його префікс довжини до
1.4.3 Аналіз алгоритму текстового пошуку
Найпростіший алгоритм пошуку зразка P в тексті T послідовно перевіряє рівність P[1..m]= T[s + 1..s + m] для всіх n — m + 1 можливих значень s:
for s = 0 to n — m
if P[1..m]= T[s+1..s+m]
then print «рядок входить із зрушенням» s
Можна сказати, що ми рухаємо зразок уздовж тексту і перевіряємо всі його положення. Відзначимо, що перевірка рівності рядків (P[1..m]= T[s+1..s+m]) є ще одним внутрішнім циклом.
Час роботи приведеної процедури пошуку у гіршому разі є І((n — m + 1)m). Насправді, хай T = an (буква а, повторена n разів), а P = am. Тоді для кожної з n — m + 1 перевірок буде виконано m порівнянь символів, всього (n — m + 1)m, що є І(n2) (при m = n / 2).
Простий алгоритм — не кращий. Неефективність пов’язана з тим, що інформація про текст T, що отримується при перевірці даного зрушення s, ніяк не використовується при перевірці подальших зрушень. Тим часом, така інформація може дуже допомогти. Хай, наприклад, P = aaab і ми з’ясували, що зрушення s = 0 допустимий. Тоді зрушення 1, 2 і 3 свідомо недопустимі, оскільки T[4]= b.
1.4.4 Швидкий алгоритм текстового пошуку
Цей алгоритм, запропонований Кнутом, Морісом і Праттом, працює за час І(n + m). Таке прискорення досягається за рахунок того, що при подальшому пошуку заздалегідь обчислюється спеціальна «префікс-функція» на основі вже відомої інформації.
Префікс-функція, асоційована із зразком P, несе інформацію про те, де в рядку P повторно зустрічаються різні префікси цього рядка. Використання цієї інформації дозволяє уникнути перевірки свідомо неприпустимих зрушень.
Хай простий алгоритм шукає входження підрядка P = ababaca в текст T. Припустимо, що для деякого зрушення s виявилось, що q перших символів зразків збігаються з символами тексту, а в наступному символі є розбіжність, де q = 5). Отже, ми знаємо q символів тексту, від T[s+1] до T[s+q], і з цієї інформації можна укласти, що деякі подальші зрушення будуть свідомо недопустимі.
У загальному випадку префікс-функція повинна відповісти на таке питання:
Хай P[1..q]= T[s + 1..s + q]; яке найменше значення зрушення s` > s, для якого
P[1..k]= T[s` + 1..s` + до](1.1)
деs` + до= s + q.
Число s` — це найменше значення зрушення, більше s, яке не можна відкинути. Щоб знайти s`, нам не потрібно нічого знати про текст T, достатньо знання зразка P і числа q. Саме, T[s` + 1..s` + до] — суфікс рядка Pq. Тому число до у формулі (1.1) — це найбільше число до
Префікс-функцией, що асоціюється з рядком P[1..m], називається функція f:{1,2., m} Ќ {0,1., m — 1}, визначена таким чином:
f[q]= max{k:k
Іншими словами, f[q] — довжина найбільшого префікса P, що є (власним) суфіксом Pq.Приведемо псевдокод алгоритму Кнута — Моріса — Пратта.
n = length(T)
m = length(P)
q = 0
fori = 1 ton
whileq > 0 andP[q+1] T[i]
q = pf[q]
ifP[q+1]=T[i]
thenq = q+1
ifq=m
thenprint«рядок входить із зрушенням» i-m
q = pf(q)
m = length[P]
pi[1]= 0
до = 0
forq = 2 tom
whileдо > 0 andP[k+1] P[q]
до = pi[k]
ifP[k+1]=P[q]
thenдо = k+1
pi[q]= до
returnpi
Час виконання префікс — функції пропорційно довжині рядка mі, отже, є O(m). Аналогічно, час виконання операторів процедури пошуку пропорційно довжині підрядка і є O(n). Отже, загальний час виконання приведеного алгоритму є O(m+n), що дає значний виграш в порівнянні з простий процедурою пошуку.
Проаналізувавши два методи пошуку були виявлені як позитивні так і негативні сторони. Для даної роботи необхідний пошукач який працює з невеликим часом і частковим текстом (див. рис. 1.1)
/>
Рисунок 1.1– Схема роботипрограми пошука
1.4.5 Регулярні вирази у VB.NET
Для роботи з регулярними виразами в VB.NET використовується клас Regex, що знаходиться в просторі імен System.Text.RegularExpressions. За допомогою цього класу ви можете проводити наступні дії: продолжение
–PAGE_BREAK–
пошук підрядків за шаблоном;
заміна підрядків за шаблоном;
порівняння рядка з шаблоном;
розділення рядка на підрядки з використанням шаблонів.
Для твору дій з регулярними виразами необхідно створити екземпляр класу Regex. Для цього використовується стандартний конструктор New. Він переобтяжений і має дві комбінації параметрів. Ви можете задати тільки шаблон (змінна типу String), який використовуватиметься надалі, або шаблон і параметри об’єкту. Параметри задаються константами з перерахування Regexoptions.
Пошук підрядків, відповідних шаблону проводиться за допомогою переобтяженого методу Matches. Він може приймати 4 комбінації параметрів. Перший параметр — рядок, в якому проводитиметься пошук. Як другий параметр можна встановити позицію, з якою буде початий пошук. Також другим параметром можна вказати шаблон (якщо він не збігається з шаблоном, вказаним в конструкторі при створенні об’єкту). І остання комбінація параметрів — рядок для пошуку, шаблон і параметри пошуку, задані комбінацією констант перерахування Regexoptions.
Метод повертає об’єкт Matchcollection. Це колекція, яка містить об’єкти Match. Отримати об’єкт Matchможна за допомогою індексованої властивості Itemколекції. Нумерація елементів починається з нуля. Щоб отримати знайдений підрядок, слід використовувати властивість Valueоб’єкту Macth.
Нижче приведений невеликий приклад пошуку тегів в HTMLкоді.
DimregexpAsNewRegex(“”)
DimhtmlAsString
Dimi AsInteger
Dimm AsMatchcollection
html= “етопример поїська”
m = regexp.Matches(html)
Fori = 0 Tom.Count – 1
Msgbox(m.Item(i).Value)
Next
Інша часто використовувана дія, вироблювана за допомогою класу Regex, — заміна підрядків з використанням шаблонів. Для заміни використовується метод Replace. Він, як і метод Matches, переобтяжений. Replaceможе приймати 10 комбінацій параметрів. Метод може приймати комбінації з наступних параметрів:
input — початковий рядок;
replacement — рядок, на який будуть замінені знайдені підрядки;
count — максимальна кількість замін;
startat — позиція в рядку input, з якою проводитиметься заміна;
pattern — замінюваний шаблон;
options — опції. Може приймати константи з перерахування Regexoptions;
evaluator — об’єкт Matchevaluator.
Метод повертає змінну типу String— рядок, в якому були вироблені заміни.
DimregexpAsNewSystem.Text.RegularExpressions.Regex(“”)
DimInputstringAsString
Inputstring= “p>ето пример pfvtys”
txttext.Text = regexp.Replace(txttext.Text, “[вирізаний]”, Regexoptions.Multiline)
Порівняння рядка з шаблоном — найпростіша операція, яку можна провести за допомогою класу Regex. Порівняння здійснюється методом Ismatch. Він переобтяжений і може приймати такі ж параметри, як і метод Matches. Значення, що повертається, має тип Boolean. Метод повертає True, якщо тестований рядок збігається з шаблоном і Falseінакше.Нижче приведений приклад порівняння рядка з шаблоном.
DimregexpAsNewSystem.Text.RegularExpressions.RegEx (“[0-9]+”)
DimstrAsString
str= «1234567890»
Msgbox(regexp.IsMatch(str).ToString)
str= “abc”
Msgbox(regexp.IsMatch(str).ToString)
Розділення рядка використовується рідше за решту операцій. Розділення рядка з використанням регулярних виразів дуже схоже із звичайним розділенням рядка функцією Split. Але якщо в Splitяк роздільник використовувався рядок, то тут роздільником є регулярний вираз.
Для розділення рядка використовується переобтяжений метод Splitкласу Regex. Він може приймати такі ж комбінації параметрів, як і методи Matchesі Ismatch. Splitповертає масив типу String, який містить рядки, отримані з початкового рядка. Масив індексується з нуля.
Допустимо, потрібно розбити рядок по декількох роздільниках (скажімо, “-“, “.” і “,”). Можна використовувати для цього функцію Split, але при цьому буде багато метушні з масивами, код буде сильно захаращений і знизиться швидкодія. А зараз подивимося, як легко ця операція буде проведена з використанням регулярних виразів. Роздільником буде наступний вираз: “[-\.,]”. Наступний код розбиває рядок на підрядки з використанням цього шаблону.
DimregexpAsNewRegex(“[-\.,]”)
Dimi AsInteger
Dims() AsString
DimstrAsString
str= «раз-два, трі.четире, пять»
s = regexp.Split(str)
Fori = 0 Tos.GetUpperBound(0)
Console.WriteLine(s(i))
Next
За умовчанням Regexкомпілює регулярні вирази в послідовність внутрішніх байт-кодов регулярних виразів (це високорівневий код). При виконанні регулярних виразів відбувається інтерпретація байт-кода.
Якщо при створенні об’єкту Regexв конструкторі Newбула встановлена константа Compiled, то Regexбуде скомпільований в MSIL(Microsoftintermediatelanguage). Це дозволить JIT-компилятору перетворити вираз в машинний код, що значно підвищує продуктивність.
Проте у виразах, що компілюють, є і погана сторона — їх не можна вивантажити з пам’яті. Регулярні вирази, що компілюють, вивантажуються тільки при завершенні роботи всього застосування. Regex залишається в пам’яті, навіть коли сам об’єкт звільнений і знищений складальником сміття.
Тому, слід задуматися над тим, чи варто встановлювати прапор Compiled. Якщо ви постійно використовуєте декілька регулярних виразів, то краще буде їх скомпілювати.
Регулярні вирази — могутня технологія для роботи з текстом. Розробники Microsoft все-таки вбудували підтримку цієї технології в .NET Framework. Можливо, вони зробили це тому що .NET Framework використовується в Web-застосуваннях (ASP .NET), де регулярні вирази більше всього необхідні. продолжение
–PAGE_BREAK–
1.5 Опис програмного забезпечення
1.5.1 Структура програмного забезпечення АРМ
Програмна частина нашого проекту достатньо проста. Проте, вона складається з двох частин:
настільне застосування для редагування бази даних електронної бібліотеки;
WEB— сайт — для здійснення пошуку книг.
Ці дві частини складають собою одне рішення (solution). Склад рішення приведений на рис. 1.11.
Додаток для редагування БД складається з наступних модулів:
frmMain.vb — головна форма MDI— застосування;
frmBook- форма зберігає інформацію про книги;
frmBookSub — форма з кодами всіх тим;
frmClient — форма з інформацією про клієнта;
frmClientStudy — форма з кодами всіх факультетів;
frmClientType — форма з кодами типів клієнтів;
frmAbout.vb — форма Про програму.
/>
Рисунок 1.11 – Структура VB-проекта
WEB— сайт пошуку телефонних номерів складається з наступних модулів:
Default.aspx — стартова сторінка сайту;
BookHome.aspx — сторінка пошуку книг;
BookBibl.aspx — сторінка пошуку книги по бібліотеках.
1.5.2 Опис модулів і класів системи редагування
Mainform.vb — MDI— форма додатку, стартова форма. При її запуску з’являється форма входу в систему. Якщо користувач не ввів правильне ім’я і пароль, головна форма не завантажується.
Форма містить меню і панель інструментів. По командах меню завантажуються дочірні форми, в яких ведеться редагування окремих таблиць бази даних. По натисненню кнопок на панелі інструментів здійснюються команди редагування даних. Методи головної форми приведені на рис. 1.12.
/>
Рисунок 1.12– Методы головноїформи
Методи Mainformвключають:
frmMainLoad — обробка завантаження програми;
LoadSubForm(Of frmtype) — процедура завантаження вказаної дочірньої форми;
btnAdd_Click — виклик процедури почала додавання даних в активній дочірній формі;
btnDelete_Click — виклик процедури видалення даних в активній дочірній формі;
btnEdit_Click — виклик процедури редагування даних;
btnOk_Click — виклик процедури завершення додавання або редагування даних в активній дочірній формі;
btnCancel_Click — виклик процедури відміни додавання або редагування даних в активній дочірній формі;
Головний модуль Mainmodule.vb містить глобальні дані програми, використовувані у всіх модулях дочірніх вікон:
ConnString — рядок з’єднання з БД;
frmMain — посилання на головну форму.
Всі модулі дочірніх форм мають однакове призначення — редагування даних відповідних таблиць БД. Тому вони мають однакову структуру і практично однаковий набір елементів.
На рис. 1.13 приведена структура модуля форми Книги (frmbook)
/>
Рисунок 1.13 – Поля, методы и типи форми книг
Змінні рівня модуля: тексти запитів, стан форми.
Змінна стану форми може приймати одне з трьох значень:
-stateView — перегляд;
-stateEdit — редагування;
-stateAdd — додавання запису.
При завантаженні форми в список завантажуються назви всіх книг. Змінна стану форми встановлюється в значення Перегляд. При переміщенні курсора за списком в полях форми відображаються всі поля запису. Користувач, натиснувши на кнопку на панелі інструментів головної форми, може виконати одну з відповідних дій:
-видалення запису;
-перехід в режим редагування;
-перехід в режим додавання.
При видаленні запису програма вимагає підтвердження особи: логін і пароль. Якщо логін і пароль введений вірно програма вимагає підтвердження видалення. Якщо користувач підтверджує видалення, виконується SQL— запит видалення вказаного запису в БД, запис також віддаляється із списку і курсор переходить на наступний запис.
При переході в режим редагування змінна стану форми встановлюється в значення Редагування. При переході в режим додавання змінна стану встановлюється в значення Додавання.
Після введення або зміни даних користувач може натиснути на одну з кнопок на панелі інструментів (OKабо Відміна) і тим самим занести нові дані в базу даних або відмінити всі зміни на формі. У разі додавання або зміни виконується відповідний SQL— запит (INSERTабо UPDATE) і зміни відображаються в списку. У будь-якому випадку курсор повертається на список і стан форми встановлюється в значення Перегляд.
Далі форма чекає подальших дій користувача — натиснення відповідної кнопки на панелі інструментів.
Оброблювані події форми Strform:
-StrForm_Load — завантаження форми. Завантажується список всіх книг, ініціалізувалися змінні;
-Lvw_ItemSelectionChanged — переміщення курсора в списку. У полях форми виводяться значення полів нового поточного запису;
-Lvw_MouseDoubleClick — подвійне клацання на назві книги. Завантажується форма книги із списком.
-Методи форми Strform:
-InitData — заповнення списку книги, ініціалізація змінних форми. Викликається при завантаженні форми;
-FillItem — заповнення полів форми даними з БД. Викликається при завантаженні форми і при переміщенні курсора в списку;
-ClearItem — очищення полів форми для додавання новому запису. Викликається при переході в режим додавання запису;
-BeginAddEdit — переклад форми в режим додавання або редагування. Метод викликається головною MDI— формою при натисненні на кнопки Додати або Редагувати на панелі інструментів, коли дочірня форма книги активна;
-DeleteItem — видалення запису. Метод викликається головною MDI— формою при натисненні на кнопку Видалити на панелі інструментів, коли дочірня форма Вулиці активна;
-CompleteEdit — завершення редагування. Залежно від стану форми виконується метод Updateitemабо Additem. Метод викликається головною MDI— формою при натисненні на кнопку OKна панелі інструментів, коли дочірня форма книги активна;
-CancelEdit — відміна редагування. Курсор повертається на список, значення полів форми відновлюються на підставі запиту поточного запису БД. Метод викликається головною MDI— формою при натисненні на кнопку Відміна на панелі інструментів, коли дочірня форма Вулиці активна;
-AddItem — додавання новому запису. Виконується SQL— запит вставки запису (INSERT) із значеннями полів, введеними в полях форми. Додається рядок в списку вулиць, цей рядок стає поточним, форма переходить в режим перегляду;
-UpdateItem — зміна запису. Виконується SQL— запит оновлення запису (UPDATE) із значеннями полів, введеними в полях форми. Змінюється рядок в списку книги, цей рядок стає поточним, форма переходить в режим перегляду;
-EnableItem — переклад форми в режим додавання або редагування;
-ViewList — переклад форми в режим перегляду.
Структура модулів інших дочірніх форм аналогічна структурі описаної вище форми Strform. З форми Історія видачі і повернення книг викликається форма журнал реєстрації даної людини який останній брав книгу.
Робота зі всіма формами здійснюється однаково — командами кнопок головної панелі інструментів і розкриттям позиції списку в новий список. Такий уніфікований підхід дозволяє користувачеві швидко звикнути до програми, а програмістові — мінімізувати кількість помилок і тому швидко розробити програму.
1.5.3 Модулі програми пошуку
Стартова сторінка є ASP— сторінкою, на якій просто розташовано посилання на сторінку пошуку книг по назві.
На сторінці пошуку книги по назві розташовано поле для введення назви книги і кнопку Знайти. Після введення даних і натиснення на кнопку програма аналізує введені дані після чого знайдені дані виводяться на сторінці в списку книги.
Змінні сторінки:
-SqlFullName — текст запиту по повній назві книги.
Оброблювані події сторінки:
-завантаження форми;
-натиснення на кнопку Знайти;
-перезавантаження даних на сторінці.
Методи сторінки:
-Page_Load — обробка завантаження сторінки. Ініціалізація змінних і елементів управління;
-btnRun_Click — обробка натиснення на кнопку Знайти. Аналіз введених даних, формування і виконання запиту;
grvphonehome_databound — перевірка даних, вибраних за запитом. Формування повідомлення «Не знайдене!» у разі порожньої вибірки.
2 ТЕХНОЛОГІЧНИЙ РОЗДІЛ
2.1 Керівництво користувача продолжение
–PAGE_BREAK–
2.1.1 Головна форма програми введення та редагування
Головна форма програми електронної бібліотеки Bookapp.exe приведена на рис. 2.1
/>
Рисунок 2.1 — Головна форма програми електронної бібліотеки
Головна форма є MDI— форму з меню.
Перед завантаженням головної форми з’являється форма входу в програму (див. рис. 2.2).
У цій формі користувач повинен ввести своє ім’я і пароль входу в програму. Якщо користувач три рази вводить невірне ім’я або пароль, головна форма програми не завантажується.
/>
Рисунок 2.2 – Форма входу в програму редагування
По командах меню головної форми виконуються наступні дії:
-Видача — завантажується дочірня форма Клієнти, з якої можна вибрати клієнта і всі його дані ;
-Книги — завантажується дочірня форма Книги в якій описана назва книги, автори, дата видання;
-Теми книг — завантажується дочірня форма Теми книг в якій оброблюється тема книг і код цієї теми;
-Клієнти — завантажується дочірня форма Клієнти в яку заносяться всі дані клієнта, Ф.І.О., Адреса, Телефон, Тип, Дата народження, Дата реєстрації, Місце роботи і посада або якщо Студент те Групу Факультет, Курс;
-Факультети — завантажується дочірня форма Факультетів в якій Найменування факультету і його код;
-Тип клієнтів — завантажується дочірня форма Типу клієнтів в якій Найменування клієнтів і код
-Вихід — програма завершує свою роботу;
-Про програму — завантажується стандартний діалог Про програму.
2.1.2 Форма Клієнти
Дочірня форма для перегляду і редагування списку клієнтів приведена на рис. 2.3.
/>
Рисунок 2.3 – Форма для редагування даних про клієнтів
Форма дозволяє додавати нових клієнтів, видаляти із списку, та редагувати.
Для додавання нового клієнта потрібно зробити форму активною (клацнувши на формі Клієнт) і потім натиснути кнопку Додати на панелі інструментів головної форми. При цьому поля форми очищаються і курсор переміщається на полі П.І.Б.
Для редагування даних клієнта потрібно зробити форму активною (клацнувши на формі Клієнт) і потім перейти на те місце яке нам треба змінити і набираємо зміни на панелі інструментів головної форми і підтверджуємо кнопкою змінити. Після цього всі дані зміни збережені.
Для видалення клієнта із списку потрібно зробити форму активною і потім натиснути кнопку Видалити на панелі інструментів головної форми. При цьому програма просить підтвердити видалення.
2.1.3 Форма Книги
Дочірня форма для перегляду і редагування списку книг приведена на рис. 2.4.
Форма дозволяє додавати нові книги, видаляти ті, що існують, із списку, редагувати дані про книги. Виконання цих операцій аналогічно описаному в 2.1.2.
/>
Рисунок 2.4 – Форма для редагування даних про книги
2.1.4 Інші форма програми редагування
Дочірня форма для проглядання тем і їх створення приведена на рис. 2.5.
/>
Рисунок 2.5 – Форма для редагування даних про теми книг
Видаляти існуючі номери не можна, оскільки цей код використовуватиметься постійно з книгами відповідними під цю тему.
Дочірня форма для перегляду і редагуванню клієнта приведена на рис. 2.6.
/>
Рисунок 2.6 – Форма для редагування даних про клієнтів
Форма дозволяє додавати нових клієнтів, видаляти ті, що існують, із списку не можна, вони віддаляються тільки із списку, коли видаляється один з клієнтів.
Дочірня форма для перегляду і створення списку Факультетів приведена на рис. 2.7.
/>
Рисунок 2.7 – Форма для редагування даних про факультети
Форма дозволяє додавати нові підрозділи, видаляти ті, що існують, із списку не можна.
2.1.5 Програма пошука
Стартова сторінка сайта пошуку інформаціїї в бібліотеці приведена на рис. 2.8
На стартовій сторінці розташовані посилання на сторінки пошуку книг різними способами.
. />
Рисунок 2.8 – Стартова сторінка сайта пошуку
Сторінка пошуку книг приведена на рис. 2.9.
/>
Рисунок 2.9 – Сторінка пошуку книг за назвою
У поля введення потрібно ввести назву книги (можна тільки початок). Після натиснення на кнопку Знайти виводиться список знайдених книг з авторами і роком видання або виводиться повідомлення «Не знайдено!»
Сторінка пошуку книг по бібліотеках приведена на рис. 2.10.
У поля введення потрібно ввести назву книги (можна тільки початок. Після натиснення на кнопку Знайти виводиться список знайдених книг в бібліотеках або виводиться повідомлення «Не знайдено!»
/>
Рисунок 2.10 – Сторінка пошуку книг за бібліотеками
Проект складається з двох частин: бази даних яка зберігається на сервері бібліотеки і сайт для пошуку засобами Internet(або Intranet). Розробка показала, що інструменти MicrosoftVisualStudioдуже зручні для розробки обох класів застосувань. Особливо зручні ці інструменти для розробки Інтернет-застосувань. Така розробка в середовищі MicrosoftVisualStudio.NETабсолютно аналогічна розробці настільних застосувань, тому, програмісти, що мають досвід розробки на VisualBasic6, можуть легко перейти до нових для себе завдань.
3 ТЕХНІКО-ЕКОНОМІЧНИЙ РОЗДІЛ
3.1 Загальні положення
В результаті застосування нового ПС користувач може понести значні капітальні витрати на придбання і освоєння ПС, доукомплектованія ЕОМ новими технічними засобами і поповнення оборотних коштів. Проте, якщо придбане ПС буде достатньою мірою ефективніший базового, то додаткові капітальні витрати швидко окупляться. Ефект може бути досягнутий за рахунок скорочення об’єму ПС (зменшення кількості машинних команд, кількості рядків і так далі), зниження трудомісткості підготовки даних, обробки інформації, аналізу результатів, зменшення витрат машинного часу і матеріалів.
Для визначення економічного ефекту від використання нового ПС у споживача необхідно порівняти витрати по всіх основних статтях кошторису витрат на експлуатацію нового ПС (витрати на заробітну плату з нарахуваннями, матеріали, машинний час) з витратами по відповідних статтях базового варіанту. При порівнянні базового і нового варіантів як економічний ефект виступатиме загальна економія всіх видів ресурсів щодо базового варіанту. При цьому створення нового ПС виявиться економічно доцільним лише в тому випадку, якщо всі капітальні витрати окупляться за рахунок отримуваної економії в найближчих 1-2 року.
Абсолютна величина економічного ефекту без співставлення з витратами на його отримання не дозволяє однозначно оцінити, наскільки вдалим виявився відповідний іноваційний проект. Таку оцінку дають показники економічної ефективності (прибутковості) проекту.
При використанні іновацій підприємство-споживач отримує певний економічний ефект, що зазвичай виражається економією витрат на виконання виробничих та управлінських функцій. За умов обгрунтування поліпшення співвідношення ціна-якість у нової продукції в порівнянням з базовим варіантом підприємство-виробник може встановити певну добавку до ціни іноваційної продукції.
Зміст техніко-економічного обгрунтування розробки програмного продукту полягає в наступному:
розрахунок трудомісткості та тривалості розробки;
визначення величини капітальних витрат розробника та максимальної ціни продажу програмного продукту;
розрахунок поточних витрат реалізації та мінімальної ціни продажу;
розрахунок річної економії споживача програмного продукту та остаточне встановлення ціни продажу програмного продукту;
визначення показників економічної ефективності проекту.
В даному проекті розроблено програмний продукт, що має наступні переваги перед аналогами:
зменшується час рішення одної задачі в середньому з 10 до 3 год/од.
3.2 Вихідні дані для розрахунку
Вихідні дані для розрахунку економічної ефективності проекту наведено в таблиці 3.1.
Таблиця 3.1 – Вихідні дані для розрахунку ефективності продолжение
–PAGE_BREAK–
Позначення
Найменування показника
Значення
Вм
Вартість ПЕОМ, грн
6000
Тсл
Плановий строк служби ПЕОМ, років
4
Nп
Кількість розроблюваних проектів, од./рік
4
Зо
Посадовий оклад інженера-програміста, грн/міс
1700
Кд
Коефіціент додаткової заробітної плати
0,3
Кс
Коефіціент відрахувань до страхових фондів
0,369
Кн
Коефіціент накладних витрат організації
0,4
Рн
Норматив рентабельності організації-розробника
0,35
Ппдв
Ставка податку на додану вартість, %
20
Пп
Потенційна ємність ринку для нової програми, од.
100
На
Норма амортизації, %
25
Вт
Витрати на тиражування програми, грн/од.
25
Ка
Коефіціент витрат на адаптацію програми, грн/од.
0,08
П1
Плановий обсяг продажу програми в 1-му році, од.
15
П2
Плановий обсяг продажу в 2-му році, од.
30
П3
Плановий обсяг продажу в 3-му році, од.
15
Пс
Середній плановий річний обсяг продажу, од.
20
Цб
Ціна продажу базової програми-аналога, грн
1000
Nз
Кількість задач, що вирішуються протягом року, од.
30
tзб
Витрати машинного часу на вирішення задачі базовою програмою, годин/од.
12
tзн
Витрати машинного часу на вирішення задачі новою програмою, годин/од.
3
Ен
Нормативний коефіціент ефективності
0,2
Де
Доля ефекту споживача – добавка до ціни
0,25
Тпр
Термін реалізації проекту, років
2
3.3 Визначення трудомісткості та тривалості розробки програми
Серед чинників, що визначають величину витрат на розробку програмного додатку, одним з основних є тривалість розробки. Її можна визначити за формулою:
/>,(3.1)
де Т – суммарні трудовитрати;
Nр – кількість виконавців.
Загальна трудомісткість розробки складається з трудомісткості виконання окремих етапів роботи: вивчення предметної області та формулювання постановки задачі, складання алгоритму й схеми рішення задачі, розробка й налагодження програми, підготовка документації.
Трудозатрати по окремих етапах всіх видів визначені за допомогою експертої оцінки. Розрахунок трудозатрат зведено до таблиці 3.2.
Таблиця 3.2 — Розрахунок трудових затрат
Етапи робіт
Позначення
Трудо-витрати(чол-дн)
Вивчення предметної області та формулювання постановки задачі
Тпз
5
Розробка алгоритму рішення задачі
Та
3
Складання схеми програми
Тс
4
Розробка програми
Тп
15
Налагодження програми
Те
5
Оформлення документації
Тд
3
РАЗОМ
3
Розробку програми виконує один інженер-програміст. Отже, тривалість розробки складає 30 робочих днів. З урахуванням середньої кількості робочих днів у місяці ( 22 дні ) тривалість розробки складе:
Тр = 30 / 22 = 1,37 (міс)
3.4 Розрахунок витрат на розробку програми
Розрахунок витрат на розробку програмного продукту, тобто суми капітальних витрат, оформлюється документом – кошторис витрат по формі таблиці 3.3.
Таблиця 3.3 – Кошторис витрат на проектування
Найменування статей витрат
Сума, грн.
Обгрунтування
Спеціальне обладнання
513,75
з розрахунку
Розходні матеріали
154,13
30% ст.1
Зарплата проектувальників
4018,18 продолжение
–PAGE_BREAK–
з розрахунку
Відрахування до фондів соціального страхування
1482,70
36.9% ст.3
Усього прямих витрат
6168,77
ст.1 + ст.2+ ст.3+ ст.3
Накладні витрати
2467,5
40% ст.5
Усього, кошторисна вартість проекту
8636,27
ст.5 + ст.6
Витрати, пов’язані з придбанням ПЕОМ (спеціальне обладнання) можна розрахувати за формулою:
Sоб = Вм+Sтм+Sпз+Sд+Sпл,(3.2)
де
Вм – прейскурантна вартість ПЕОМ;
Sтм – витрати на транспортування, монтаж та налаштування ПЕОМ;
Sпз – вартість загальносистемного програмного забезпечення;
Sд – вартість допоміжного офісного обладнання;
Sпл – вартість додаткової виробничої площі для встановлення ПЕОМ.
З урахуванням вихідних даних та прийнятих розрахункових коефіціентах
Sтм = 0,02 · Вм; Sтм = 0,02 · 6000 = 120 (грн);
Sпз = 0,2 · Вм; Sпз = 0,2 · 6000 = 1200 (грн) ;
Sд = 0,15 · Вм; Sд = 0,15 · 6000 = 900 (грн) .
Потреби в додатковій виробничій площі немає. Таким чином, загальна сума витрат на спеціальне обладнання становить:
Sоб = 6000 + 120 + 1200 + 900 = 8220 (грн)
З урахуванням кількості розроблюваних проектів та прийнятого строку служби ПЕОМ (Тсл=4роки) вартість спеціального обладнання, що включається до кошторису витрат складе:
Sоб
sоб = ————– ;(3.3)
Nп · Тсл
8220
sоб = — = 513,75 (грн)
4 · 4
Вартість розходних матеріалів, необхідних на час розробки проекту:
Sрм = 0,3· sоб; (3.4)
Sрм = 0,3 · 513,75 = 154,13 (грн) ;
Заробітна плата працівників визначається, виходячи з кількості виконавців, діючих посадових окладів та кількості місяців участі виконавців у розробці проекту, за формулою:
Sз = Зо · (1+Кд) · Тр ,(3.5)
де Зо – місячний посадовий оклад виконавця;
Кд – коефіціент урахування додаткової заробітної плати (щорічна тарифна відпустка, доплати та премії);
Тр – тривалість розробки, міс.
Таким чином, витрати по заробітній платі інженера-програміста складуть:
Sз = 1700 · (1+ 0,3) ·1,81 = 4018,18 (грн)
Відрахування до фондів соціального страхування – це фактично податок на фонд заробітної плати, що сплачується до Пенсійного фонду, фонду зайнятості та фондів страхування від загальних та професійних захворювань та виробничого травматизму. Нормативи цих відрахувань встановлюються централізовано на державному рівні.
Отже, сума відрахувань до фондів соціального страхування складе:
Sc = Sз · Кс ; (3.6)
Sс = 4018,18 · 0,369 = 1482,70 (грн)
Загальна сума прямих витрат становить:
Sпр = Sоб + Sрм + Sз + Sс;(3.7)
Sпр = 513,75 + 154,13 + 4018,18 + 1482,70 = 6168,77 (грн)
Накладні витрати враховують загальногосподарчі витрати по забезпеченню проведення роботи: витрати на опалення, електроенергію, амортизацію або аренду приміщень, зарплату адміністративного персоналу та інше. Вони визначаються в процентах від суми прямих витрат по даному проекту:
Sн = Кн · Sпр; (3.8)
Sн = 0,4 · 6168,77 = 2467,50 (грн)
Загальна кошторисна вартість проекту – сума прямих і накладних витрат представляє собою суму капітальних вкладень (або інвестицій) в новий проект:
К = Sпр + Sн ; (3.9)
К = 6168,77 + 2467,50 = 8636,27 (грн)
При продажу розробленої програми в одному екземплярі відпускна ціна формується з урахуванням нормативного рівня рентабельності продукції, що задає мінімально допустиме значення прибутку підприємства.
Таким чином:
Пн = Рн · К; (3.10)
Цв = К + Пн; (3.11)
де Пн – нормативний прибуток;
Рн – нормативна рентабельність продукції;
Цв – максимальна відпускна ціна програмного продукту.
Пн = 0,35 · 8636,27 = 3022,70 (грн)
Цв = 8636,27 + 3022,70 = 11658,98(грн)
Максимально можлива ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):
Цmax = (1+Ппдв/100) · Цв (3.12)
Цmax = 1,2 · 11658,98 = 13990,76 (грн)
3.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми
Специфікою вироблення та реалізації програмних продуктів є те, що зазвичай розроблена програма реалізується багатьом споживачам. Поточні витрати на тиражування програми набагато менші за первинні витрати на її розробку, тому і ціна продажу може бути встановлена набагато нижчою за максимальну ціну, розраховану вище.
При розрахунку ціни реалізації треба врахувати постійні витрати, що не залежать від обсягу продажу (амортизація капітальних вкладень та реклама продукції), та змінні витрати, пропорційні обсягу продажу, – витрати на тиражування й адаптацію програмного продукту до вимог конкретних споживачів, представницькі витрати. При розрахунку минимального значення ціни продажу програмного продукту витрати на рекламу та представницькі розходи не враховуємо.
Річна сума амортизаційних відрахувань обчислюється за нормою амортизації від загальної суми капітальних вкладень:
На
Ав = — * К (3.13)
100
25
Ав = — · 8636,27 = 2159,06 (грн)
100
Витрати на тиражування включають вартість машинних носіїв інформації та витрати на розмноження програмної документації і для одного акту продажу становлять Вт=25 грн/од.
Витрати на адаптацію програмного продукту до вимог споживачів – це витрати на вдосконалювання програмного продукту. За експертними оцінками вони можуть сягати до 40% від витрат на розробку програмного продукту. Залежно від особливостей програмного продукту ці витрати можуть бути відсутні.
При збільшенні обсягів продажу зменшується різноманітность додаткових вимог споживачів і величина витрат на адаптацію програми. Враховуючи ступінь уніфікації розробленої програми встановимо середній рівень адаптаційних витрат на рівні 5%.
Витрати на адаптацію програмного продукту можна визначити так:
Ва = Ка · (Sз + Sс) · (1 + Кн),(3.14)
де Ка – коефіціент витрат з адаптації програми;
Sз – витрати по заробітній платі при розробці проекту;
Sс – відповідні відрахування до страхових фондів;
Кн – коефіціент накладних витрат організації-розробника.
Ва = 0,08 · (4018,18+1482,70) · (1+0,4) = 616,10 (грн/од)
Загальна сума змінних витрат складе:
Вз = Вт + Ва; (3.15)
Вз = 25,00 + 616,10 = 641,10 (грн/од)
Мінімальна відпускна ціна програмного продукту з урахуванням отримання нормативного прибутку розраховується за формулою:
Цвmin = (Ав/П + Вт + Ва) · (1 + Рн),(3.16)
де Ав – річна сума постійних витрат (сума амортизації);
П – річний обсяг продажу;
Вт – витрати на тиражування;
Ва – витрати на адаптацію програмного продукту;
Рн – нормативна рентабельність продукції.
При середньому річному обсязі продажу Пс=15од. мінімальна відпускна ціна складе:
Цвmin = (2159,97/15 + 25 + 616,10) · 1,4 = 1099,5 (грн) продолжение
–PAGE_BREAK–
Мінімальна ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):
Цмін = (1+Ппдв/100) · Цвмін ; (3.17)
де Ппдв – ставка податку на додану вартість;
Цмін = 1,2 · 1099,5 = 1318,86 (грн.),
Ціна продажу програмного продукту перебуває в таких межах:
Цmin
1318,86 грн
Для визначення обсягу продажу, що забезпечує рентабельну діяльність, побудуємо графік досягнення беззбитковості – схему, що показує вплив на прибуток обсягів реалізації програмного продукту, ціни, постійних і змінних витрат (рис.3.1). За допомогою цього графіка можна знайти так звану точку беззбитковості. Точка беззбитковості показує кількість програмного продукту, який необхідно продати, щоб загальний виторг від реалізації (без ПДВ) рівнявся загальним витратам. Очевидно, що при цьому обсязі продажів буде, нарешті, досягнута беззбитковість виробництва й подальше збільшення обсягу реалізації приведе до появи прибутку.
/>
Рисунок 3.1 – Графік досягнення беззбитковості
Таким чином, навіть при мінімальній відпускній ціні програми річний продаж 6 одиниць програмного продукту вже приносить певний прибуток.
Для успішного впровадження програмного продукту на ринок і досягнення запланованого обсягу продажу необхідно ретельно спланувати рекламну кампанію, що дало б можливість довідатися про існування розробленого програмного продукту і його перевагах всім потенційним споживачам.
У нашому випадку кількість потенційних споживачів невелике й розміщати рекламу в засобах масової інформації економічно недоцільно. Прийнято рішення про розміщення рекламної інформації на основних тематичних форумах і порталах в мережі Internet. При цьому річні витрати на розміщення реклами в глобальній мережі складуть:
Зри = Зпр + М · Зпм,(3.18)
де Зпр – витрати на первинне розміщення реклами;
Зпм – плата за щомісячну підтримку рекламних повідмлень;
М – кількість місяців підтримки.
Зри = 500 + 4 · 100 = 900 (грн/рік)
Крім цього, планується організувати пряму адресну рекламу для потенційних споживачів програмного продукту. Ємність ринку збуту – 100 споживачів. Витрати на виготовлення індивідуальних рекламних матеріалів та їх доставку складуть 45 грн/од. Планується на протязі трьох років реалізації проекту охватити адресною рекламою по 30 споживачів на рік, що складе Зра=45·30=1350 грн/рік.
Таким чином загальні щорічні витрати на рекламу становлять:
Зр = Зри +Зра; (3.19)
Зр = 900 + 1350 = 2150 (грн/рік)
При визначенні показників економічної ефективності проекту отриману суму потрібно буде врахувати як додаткові постійні річні витрати з реалізації програмного продукту.
3.6 Економія у споживача програмного продукту
Користувач запропонованої програми отримує економічний ефект за рахунок скорочення часу вирішення задач в порівнянні з використанням базового варіанту програми. Проведемо розрахунки, вважаючи, що ціна нової програми співпадає з ціною базової Цн = Цб = 2000 грн.
Річний економічний ефект можна розрахувати як різницю приведених витрат при використанні базової та нової програми:
Ер = Впрб – Впрн(3.20)
Приведені витрати визначаються за формулою:
Впр = Спр + Ен · Кпр,(3.21)
де Спр – приведені річні експлуатаційні витрати, пов’язані з вирішенням задач;
Кпр – сума приведених капітальних вкладень;
Ен – нормативний коефіціент економічної ефективності.
Для базового варіанту загальну суму капітальних вкладень визначається витратами на придбання ПЕОМ. В такому разі у відповідності з розрахунками пункта 3.4 Кб = Sоб = 8220 грн.
Для нового варіанта загальна сума капіталовкладень додатково включає ціну придбання нової програми: Кн = Sоб + Цн = 8220+2000 = 10220 грн.
Величина приведених капіталовкладень в розрахунку приведених витрат визначається з урахуванням долі часу вирішення задач, що розглядаються, в річному корисному фонді часу роботи ПЕОМ:
Тм
Кпр = — · К,(3.22)
Ткор
де Ткор – річний корисний фонд часу роботи ПЕОМ;
Тм – машинний час вирішення даних задач протягом року.
Річний корисний фонд часу роботи ПЕОМ розраховується за формулою:
Ткор = Тзаг · Тз · Nз · (1 – Пп/100),(3.23)
де Тзаг – загальний річний фонд часу роботи ПЕОМ (робочих днів);
Тз – тривалість робочої зміни;
Nз – кількість робочих змін на день;
Пп – процент планових простоїв ПЕОМ.
При 5-денному робочому тижні та роботі в одну зміну отримаємо:
Ткор = 250 · 8 · 1 · (1 – 5/100) = 1900 годин/рік
Машинний час за рік для вирішення задач з використанням базової та нової програми:
Тм = Nз · tз,(3.24)
де Nз – кількість задач, що вирішуються за рік;
tз – машинний час вирішення одної задачі.
Отже, для базового і нового варіантів маємо:
Тмб = 25 · 7 = 175 (год/рік); Тмн = 25 · 2 = 50 год/рік.
Відповідне значення приведених капітальних вкладень:
Кпрб = (175/1900) · 8220 = 757,11 (грн) ;
Кпрн = (50/1900) · 10220 = 268,95 (грн).
Аналогічним чином визначаються приведені річні експлуатаційні витрати при використанні ПЕОМ з урахуванням долі використання корисного машинного часу:
Спр = С · Тм/Ткор ,(3.25)
де С – загальна річна сума експлуатаційних витрат.
С = Ав + Sз + Sм + Sр ,
де Ав – амортизаційні відрахування;
Sз – витрати по заробітній платі спеціаліста;
Sм – вартість спожитої електроенергії та розходних матеріалов;
Sр – річні витрати на ремонт ПЕОМ.
Сума амортизаційних відрахувань визначається за нормою амортизації:
Ав = К · На/100 ;(3.26)
Авб = 8220 · 25/100 = 2055,00 (грн) ;
Авн = 10220 · 25/100 = 2555,00 (грн).
Річні витрати по заробітній платі користувача ПЕОМ розрахуємо в припущенні, що умови оплати праці у споживачів і розробників програмного продукту тотожні, за формулою:
Sз = 12 · Зо · (1+Кд) · (1+Кс), (3.27)
де Зо – посадовий оклад спеціаліста;
Кд – коефіціент, що враховує додаткову заробітну плату;
Кс – коефіціент відрахувань до фондів соціального страхування.
Sз = 12 · 1700 · (1 + 0,3) · (1 + 0,369) = 36305,88 (грн).
Вартість спожитої електроенергії, розходних матеріалів та річні витрати на ремонт ПЕОМ розрахуємо за укрупненимим нормативами в відсотках від вартості ПЕОМ:
Sм = 0,03 · Вм; (3.28)
Sм = 0,03 · 6000 = 180 (грн);
Sр = 0,08 · Вм ;(3.29)
Sм = 0,08 · 6000 = 480 (грн).
Загальна сума річних витрат з експлуатації ПЕОМ:
Сб = 2055,00 + 36305,88 + 180 + 480 = 39020,88 (грн);
Сн = 2555,00 + 36305,88 + 180 + 480 = 39520,88 (грн).
Приведені експлуатаційні витрати:
Спрб = 39020,88 · 360/1900 = 7393,43 (грн);
Спрн = 39520,88 · 90/1900 = 1872,04 (грн).
Сумарні приведені витрати:
Впрб = 3594,03 + 0,2 · 757,11 = 7704,92(грн)
Впрн = 1040,02 + 0,2 · 268,95 = 1968,86 (грн).
Річний економічний ефект у споживача нової програми:
Ер = 7704,92 – 1968,86 = 5736,06 (грн)
З урахуванням річної економії споживача ціну продажу нової програми встановимо за наступним співвідношенням:
Ц = Цб + 0,25 · Ер ; (3.30)
Ц = 2000 + 0,25 · 5736,06 = 3434,02 (грн)
Остаточне значення ціни продажу нової програми встановимо на рівні Ц=3000 грн.
3.7 Розрахунок економічної ефективності проекту
Економічна ефективність інвестиційних проектів характерізується системою показників, що відображають співвідношення фінансових витрат і результатів. В умовах високого рівня інфляції, характерного для України, різночасові фінансові показники доцільно приводити к одному моменту часу (першому року реалізації проекту) шляхом дисконтування. Норма дисконту розраховується за формулою:
r = a + b + c ,(3.31)
де а – облікова ставка НБУ;
b – коефіціент врахування ризиків;
c – плановий рівень інфляції.
r = 0,12 + 0,04 + 0,14 = 0,3
Для розрахунку показників економічної ефективності потрібно скласти план грошових потоків (див. табл. 3.4).
Сума виторгу від продажу програмного продукту розраховується з урахуванням планового обсягу продажу та визначеною ціною продажу Ц=3000 грн.
Таблиця 3.4 – План грошових потоків
Показник
Значення, грн
0-й рік
1-й рік продолжение
–PAGE_BREAK—-PAGE_BREAK–
616,10
Точка беззбитковості продажу, од/рік
6
Ціна базової програми-аналога, грн
2000,00
Річний економічний ефект у споживача, грн
5736,06
Встановлена ціна продажу програми, грн
3000,00
Термін реалізації проекту, років
3
Плановий обсяг продажу за 3 роки, од.
47
Чиста дисконтована вартість (при r = 30%), грн
37004,65
Індекс прибутковості
6,18
Середня рентабельність проекту
1,56
Термін окупності, років
1,35
Показник чистої приведеної вартості ЧПС >0, індекс прибутковості проекту ІП > 1, це свідчить про те, що проект економічно ефективний, його розробка і впровадження є економічно доцільними. Інвестиції, вкладені в проект окупаються за 1,35 року, а кожна вкладена гривня щорічно приносить 1,56 грн .
3.8 Висновки
Розробкою даного проекту займється один виконавець.
Розробка буде вестися впродовж 30 днів.
Сумарні витрати на виконання проекту складають 6233,72 грн.
Вартість виставленого на ринок ПЗ складає 2000 грн.
Сума прибутку від кожної установки ПЗ складає 785.40 грн.
ВИСНОВКИ
В результаті дипломного проекту була розроблено АРМ науково-технічної бібліотеки універсітету — електронна бібліотека.
Перед розробкою були поставлені чіткі завдання — зробити зручну і ефективну систему.
Ці завдання вирішувалися по двох напрямах:
-додаванням функції, а саме — доступ до бібліотеки через інтернет;
-система розроблялася за допомогою новітніх засобів розробки, що прискорило і спростило процес розробки, і зробило ефективнішим процеси експлуатації і супроводу системи.
Розроблена електронна бібліотека з двох компонентів:
-настільного додатку Windowsдля роботи з базою даних в локальній мережі;
-Інтернет — сайту для пошуку книг.
Обидва компоненти розроблено за допомогою одних і тих же інструментів:
-інтегроване середовище розробки MicrosofVisualStudio, мова програмування MicrosofVisualBasic;
-СУБД MicrosoftSQLServer2005 Express.
Для розробки моделей при проектуванні використовувалася мова моделювання UMLв середовищі програмного продукту Microsoft Visio.
Система розроблялася і тестувалася на підприємстві і в значній мірі готова до впровадження на цьому підприємстві. Для впровадження необхідно створити базу даних підприємства, що не представляє ніякої складності.
Результати розробки проекту після невеликої адаптації можуть бути успішно упроваджені в різних бібліотеках, а також можуть використовуватися як індивідуальні довідкові системи.
Техніко-економічна ефективність проекту досить задовільна, тому що:
даний продукт розроблений за допомогою зручних сучасних інструментов розробки, тому вартісь розробки невелика;
розроблена програма проста в освоєнні і роботі за рахунок інтуїтивно зрозумілого інтерфейсу.
Технологія розробки, апробована в даному дипломному проекті, може бути успішно застосована і масштабована при розробці широкого класу програмних продуктів. Особливо важливо, що ця технологія дозволяє різко скоротити час, необхідне на її освоєння, оскільки в ній немає складних елементів і тим самим прискорити процес перетворення новачка — розробника в досвідченого фахівця.
ПЕРЕЛІК ПОСИЛАНЬ
Орлова Е.В. Инновационная политика высшего учебного заведения / Е.В. Орлова, Л.Н. Оголева. – М: «Эксмо», 2006. – 342 с.
Гейн А.Г. Методика преподавания современного курса информатики / A.Г. Гейн. – Київ: Видавництво КНЕУ, 2004. – 218 с.
Береза А.М. Основи створення інформаційних систем: [Навчальний посібник] / A.М. Береза. – Київ: Видавництво КНЕУ, 1998. – 205 с.
Вильям А. Электронные библиотеки: [Учеб. пособие для вузов по курсам «Информатика» и «Информ. системы»]/ А. Вильям. — Люберцы: ПИК ВИНИТИ, 2002. — 273 с.
Вигурский К.В. Развитие электронных библиотек: мировой и российский опыт, проблемы, перспективы /К.В. Вигурский, Е.А. Горный. — М.: Гендальф, 2002. — 388 c.
Волохін О.М. Каталогізація цифрових ресурсів Iнтернет: Дублінське ядро метаданих: посібник / О.М. Волохін. — Кіровоград, 2003. — 70 с.
Формат для обміну бібліографічними даними на магнітних носіях: ДСТУ 3578-97. — К.: Держстандарт України, 1997. — 20 с.
Захарова О.В. Аналіз автоматизованих систем бібліотечного сервісу провідних бібліотек світу і України //О.В. Захарова. — К., 2005. — 42 с.
Місюров А.В. Інформаційні системи і технології в обліку: [Навчальний посібник] / А.В. Місюров. – Харків: Видавництво ХНАМГ, 2007. – 80 с.
Курс экономической теории: [Учебное пособие / под общ. ред. М.Н. Чепурина]. – Киров, 1995. – 566с.
Системный анализ и структуры управления: [Под общей редакцией проф. В.Г. Шорина]. – М.: Знание, 1975. – 290с.
Гиг Дж. Прикладная общая теория систем. / Дж. Гиг. – М.: Мир, 1981. – 336с.
Фаулер М. UML. Основы. Второе издание / М. Фаулер, К. Скотт. – М.: Изд-во МАИ, 2002. – 712 с.
Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование / Т. Кватрани. – М.: ДМК Пресс, 2001. – 176 с.
Оптнер С.Л. Системный анализ для решения деловых и промышленных проблем / С.Л. Оптнер: пер. с англ. – М.: «Советское радио», 1969. – 216 с.
Лагоша Б.А., Комплекс моделей и методов оптимизации расписания занятий в вузе / Б.А. Лагоша, А.В. Петропавловская.– М.: «Экономика и мат. Методы». 1993. – 410 с.
Экономико-математические методы и прикладные модели: [Учеб. пособие для вузов / под ред. В.В. Федосеева]. – М.: ЮНИТИ, 2000. – 652 с.
Сайлер Б. Использование Visual Basic. Специальное издание / Б. Сайлер, Дж. Споттс. – М.: Издательский дом «Вильямс», 2002. – 752с.
Технико-экономическое обоснование дипломных проектов.: [под ред. Веклемишова В.К.] – М: Высшая школа, 1991. – 112 с.
Харитонова И. Самоучитель Access 2000 / Ирина Харитонова. – Питер, 2001. – 881 с.
Корнелл Г. Программирование на VB.NET: [Учебный курс] / Г. Корнелл, Дж. Моррисон. – Питер, 2002. – 920 с.
Ивьен Б. Visual Basic.Net. Библия пользователя / Б. Ивьен, Дж. Берес. – К.: Издательский дом «Вильямс», 2002. – 841 с.
Разработка Windows-приложений на Microsoft Visual Basic.Net и Microsoft Visual C# .Net / [Microsoft Corporation: пер. с англ.]. – Издательско-торговый дом «Русская редакция», 2003. – 780 с.
Документация. Отчеты в сфере науки и техники. Структура и правила оформления: ДСТУ 3008–95. – Киев: Госстандарт Украины, 1995. – 38 с. – (Государственный стандарт Украины).
ДОДАТКИ
До пояснювальної записки дипломного проекту
«Розробка АРМ науково-технічної бібліотеки університету»
Додаток А
Вихідний код програми
Option Explicit
‘ clsAccess
‘ Свойства:
‘ File
‘ Conn
‘ Методы:
‘ OpenBase
‘ CloseBase продолжение
–PAGE_BREAK–
Private Const mstrBaseFileParam As String = «BaseFile»
Private Const mstrDefBaseFile As String = «CPBibl.mdb»
Private Const mstrDefBaseFile As String = «Bibl.mdb»
Private Const mstrDefConnStrUser As String = «User ID=admin;»
Private Const mstrDefConnStrPassw As String = «Jet OLEDB:Database Password=;»
Private Const mstrDefConnStrProvider As String = «Provider=Microsoft.Jet.OLEDB.4.0;»
Private Const mstrDefConnStrSource As String = «Data Source=»
Private mstrBaseFile As String
Private mstrConnString As String
Private mcnnConvBase As Connection
Public Property Get File() As String
File = mstrBaseFile
End Property
Public Property Let File(strFile As String)
mstrBaseFile = strFile
End Property
Public Property Get Conn() As Connection
Set Conn = mcnnConvBase
End Property
Private Sub Class_Initialize()
mstrConnString = mstrDefConnStrProvider _
& mstrDefConnStrPassw _
& mstrDefConnStrUser _
& mstrDefConnStrSource
GetBaseFile
End Sub
Private Sub Class_Terminate()
CloseBase
End Sub
Public Sub OpenBase()
On Error GoTo onErr
Set mcnnConvBase = New Connection
mcnnConvBase.Mode = adModeReadWrite
mcnnConvBase.CursorLocation = adUseClient
mcnnConvBase.CommandTimeout = 60
mcnnConvBase.Open mstrConnString & mstrBaseFile
SaveBaseFile
Exit Sub
onErr:
MsgBox Err.Number & “: ” & Err.Description
Err.Raise ueFileNotExist,, “НеоткрываетсяБД” & vbCrLf _
& mstrBaseFile
End Sub
Public Sub CloseBase()
If mcnnConvBase Is Nothing Then Exit Sub
If mcnnConvBase.State = adStateOpen Then
mcnnConvBase.Close
End If
End Sub
Private Sub GetBaseFile()
mstrBaseFile = gRegistry.GetParam(mstrBaseFileParam, mstrDefBaseFile)
End Sub
Private Sub SaveBaseFile()
gRegistry.SetParam mstrBaseFileParam, mstrBaseFile
End Sub
Option Explicit
Private mstrQuery As String
Private mrec As Recordset
Public Property Let Query(strQuery As String)
mstrQuery = strQuery
End Property
Public Property Get Recs() As Recordset
Set Recs = mrec
End Property
Private Sub Class_Initialize()
Set mrec = New Recordset
End Sub
Private Sub Class_Terminate()
CloseRecs
End Sub
Public Sub OpenRecs()
On Error GoTo onErr
Set mrec.ActiveConnection = gBase.Conn
mrec.Open mstrQuery,, adOpenKeyset, adLockOptimistic, adCmdText
Exit Sub
onErr:
Err.Raise ueFileNotExist,, “Неоткрываетсязапрос” & vbCrLf _
& mstrQuery & vbCrLf _
& “вБД” & gBase.File
End Sub
‘ закрытиеописания
Public Sub CloseRecs()
If mrec Is Nothing Then Exit Sub
If mrec.State = adStateOpen Then
mrec.Close
End If
End Sub продолжение
–PAGE_BREAK–
Option Explicit
Private Const strList As String = «dgd»
Private Const strFirst As String = «txtStudy»
Private Const strLast As String = «txtName»
Private WithEvents rec As Recordset
Attribute rec.VB_VarHelpID = -1
Private ctlMark As Control
Private edstForm As EditState
‘ загрузкаивыгрузкаформы
Private Sub Form_Load()
Set rec = gClientStudy.Recs
Set dgd.DataSource = rec
dgd.Columns(0).Width = dgd.Width — lngDgdBorderWidth
Set ctlMark = txtStudy
edstForm = estView
doFormAlign Me
Me.Caption = gstrClientStudyTitle
gfrmMain.mnuEdit.Enabled = True
doEditListOn
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set ctlMark = Nothing
Set gfrmClientStudy = Nothing
End Sub
Private Sub Form_Terminate()
If gfrmMain.ActiveForm Is Nothing Then
gfrmMain.mnuEdit.Enabled = False
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
KeyAscii = 0
Select Case Me.ActiveControl.Name
Case strLast
If edstForm = estAdd Then
SendKeys “{INSERT}”
End If
doGoList
Case Else
doGoNext
End Select
Case vbKeyEscape
KeyAscii = 0
Select Case Me.ActiveControl.Name ‘ имяактивногополя
Case strList
doGoMark
Case Else
edstForm = estCancel
doGoList
End Select
End Select
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF9
KeyCode = 0
doGoFirst
Case vbKeyF10
KeyCode = 0
doGoLast
Case vbKeyF12
KeyCode = 0
Select Case Me.ActiveControl.Name
Case strList
Case Else
doGoList
End Select
Case vbKeyInsert
KeyCode = 0
Select Case Me.ActiveControl.Name ‘ имяактивногополя
Case strList
doAddBlank
Case Else
End Select
End Select
End Sub
Private Sub dgd_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDelete
KeyCode = 0
doDelete
End Select
End Sub
‘ перемещениефокуса
Private Sub dgd_GotFocus()
On Error GoTo onErr
Select Case edstForm
Case estCancel, estView продолжение
–PAGE_BREAK–
doFill
Case estUpdate
doUpdate
Case estAdd
doAddRec
End Select
dgd.MarqueeStyle = dbgHighlightRow
doEditListOn
Exit Sub
onErr:
gGen.ErrMsg
gBase.Conn.Errors.Clear
doGoMark
End Sub
Private Sub dgd_LostFocus()
dgd.MarqueeStyle = dbgNoMarquee
doEditFieldsOn
End Sub
Private Sub txtStudy_LostFocus()
Set ctlMark = txtStudy
End Sub
Private Sub txtName_LostFocus()
Set ctlMark = txtName
End Sub
Public Sub doMarkUpdate()
If edstForm estAdd Then
edstForm = estUpdate
End If
End Sub
Private Sub rec_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum,
ByVal pRecordset As ADODB.Recordset)
If edstForm estAdd Then doFill
End Sub
‘ операции с записями
Public Sub doFill()
If rec.EOF Or rec.BOF Then Exit Sub
txtStudy.Text = rec!Study & “”
txtName.Text = rec!Name & “”
edstForm = estView
End Sub
Public Sub doUpdate()
Dim strNameSave As String
Dim lngStudySave As Long
On Error GoTo onErr
doCheck
lngStudySave = rec!Study
strNameSave = rec!Name
rec!Study = txtStudy.Text
rec!Name = txtName.Text
rec.Update
edstForm = estView
Exit Sub
onErr:
Select Case Err.Number
Case dbeEmptyOrRepField
rec!Study = lngStudySave
rec!Name = strNameSave
Set ctlMark = txtStudy
Err.Raise ueInput,, “Повторениезначения” & vbCrLf & _
«в Коде Факультета или в Факультете»
Case Else
Err.Raise Err.Number,, Err.Description
End Select
End Sub
Public Sub doCheck()
If Not IsNumeric(txtStudy.Text) Then
Set ctlMark = txtStudy
Err.Raise ueInput,, “КодФакультетадолженбытьчисловым”
End If
If CLng(txtStudy.Text) = lngErrCode Then ‘ Кодтипа— не
Set ctlMark = txtStudy
Err.Raise ueInput,, “КодФакультетадолженбытьзадан”
End If
If Trim(txtName.Text) = “” Or Trim(txtName.Text) = strErrString Then
Set ctlMark = txtName
Err.Raise ueInput,, “Факультетдолженбытьзадан”
End If
End Sub
Public Sub doAddBlank()
txtStudy.Text = “”
txtName.Text = “”
edstForm = estAdd
doGoFirst
End Sub
Public Sub doAddRec()
On Error GoTo onErr
doCheck продолжение
–PAGE_BREAK–
rec.AddNew Array(«Study», «Name»), Array(CLng(txtStudy.Text), CStr(txtName.Text))
Exit Sub
onErr:
Select Case Err.Number
Case dbeEmptyOrRepField
rec!Study = lngErrCode
rec!Name = strErrString
rec.Update
rec.Delete
Set ctlMark = txtStudy
Err.Raise ueInput,, «Повторение значения» & vbCrLf & _
Case Else
Err.Raise Err.Number,, Err.Description
End Select
End Sub
Public Sub doDelete()
On Error GoTo onErr
doDelRec
Exit Sub
onErr:
gGen.ErrMsg
rec.Resync adAffectAllChapters
doGoList
End Sub
Public Sub doDelRec()
On Error GoTo onErr
rec.Delete
If rec.RecordCount = 0 Then doAddBlank
Exit Sub
onErr:
Select Case Err.Number
Case dbeDelLinkRec
Err.Raise ueDelLinkRec,, _
Case Else
Err.Raise Err.Number,, Err.Description
End Select
End Sub
‘ перемещениекурсора
Public Sub doGoNext()
SendKeys “{TAB}”
End Sub
Public Sub doGoList()
dgd.SetFocus
End Sub
Public Sub doGoFirst()
txtStudy.SetFocus
End Sub
Public Sub doGoLast()
txtName.SetFocus
End Sub
Public Sub doGoMark()
ctlMark.SetFocus
End Sub