Дипломная работа: Розробка автоматизованого робочого місця науково-технічної бібліотеки університету
Дипломная работа: Розробка автоматизованого робочого місця науково-технічної бібліотеки університету
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
БЕРДЯНСЬКИЙ УНІВЕРСИТЕТ МЕНЕДЖМЕНТУ І БІЗНЕСУ
Кафедра інформаційних систем і технологій
ПОЯСНЮВАЛЬНА ЗАПИСКА
на дипломний проект освітньо-кваліфікаційного рівня
" спеціаліст "
за напрямком підготовки (спеціальностю) 7.080403
Програмне забезпечення автоматизованих систем
за темою: "Розробка автоматизованого робочого
місця науково-технічної бібліотеки університету"
Студент группи ПЗАС-52АМ.В. Журавльов
Керівник ДПдоцент Е.Ю. Лактіонов
Консультанти:
Проектно-констр. Розділ доцент Е.Ю. Лактіонов
Графічна документація ст.викл. Н.В. Тітова
Нормо контроль ст.викл. Н.В. Тітова
2010
Реферат
Дипломна робота: 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-Aided Software/System Engineering – система автоматизованої розробки програмного
забезпечення;
CLR–Common Language Runtime – середовище часу виконання коду, в якому
забезпечується ефективна взаємодія застосувань;
DDL–Data Definition Language
мова визначення даних;
ER-модель–Entity
Relationship – модель "суть-зв'язок";
IDE– Integrated Development
Environment – интегрироване середовище розробки;
IDEF– Integrated
Computer-Aided Manufacturing – методологія комп’ютерного моделювання складних систем;
RAD – Rapid Application
Development - методологія швидкої розробки застосувань;
RUP– Rational Unified Process
методологія
уніфікованих процесів розробки програмного забезпечення;
VB – мова програмування и середовище
розробки Visual Basic;
SADT–Structured Analysis and
Design Technique – методологія функціонального моделювання;
SQL–Structured Query Language
структурована
мова запитів;
VBA–Visual Basic for Applications – технологія програмування у офісних застосуваннях
Microsoft;
UML–Unificated Model Language
уніфікована
мова моделювання.
ВСТУП
Інформація на сучасному світ
перетворилася на один з найбільш важливих ресурсів, а інформаційні системи (ІС)
стали необхідним інструментом практично у всіх сферах діяльності.
Різноманітність завдань, які вирішуються
з допомогою ІС, привела до появи безлічі різнотипних систем, які відрізняються
принципами побудови і закладеними в них правилами обробки інформації.
Завдання накопичення, обробки
розповсюдження (обміну) інформації стояло перед людством на всіх етапах його
розвитку. Протягом довгого часу основними інструментами для її вирішення були
мозок, мова і слух людини. Перша кардинальна зміна відбулася з приходом
писемності, а потім винаходом книгодрукування. Оскільки в епоху книгодрукування
основним носієм інформації став папір, то технологію накопичення
розповсюдження інформації природно називати “паперовою інформатикою”.
Положення в корені змінилося з появою
електронних обчислювальних машин (ЕОМ). Принципово новий крок був здійснений,
коли від застосування ЕОМ для вирішення окремих завдань перейшли до їх
використання для комплексної автоматизації закінчених ділянок діяльності по
переробці інформації.
Зберігання інформації в пам'яті ЕОМ
додає цій інформації принципово нову якість динамічності, тобто здібності до
швидкої перебудови і безпосереднього її використання у вирішуваних на ЕОМ
завданнях. Пристрої автоматичного друку, якими забезпечені сучасні ЕОМ,
дозволяють у разі потреби швидко представити будь-яку вибірку з цієї інформац
у формі уявлення на папері.
Напередодні XXI століття в розвитку
людської цивілізації відбуваються глобальні зміни, що ведуть до її нового етапу
- постіндустріального суспільства, що все ширше використову
компью-терізірованниє знаряддя праці і інформаційні технології.
Інформація в такому суспільстві ста
одним з основних продуктів діяльності людини, і бібліотекам зі своїм величезним
нформаційним потенціалом належить увійти до процесу розвитку інформаційно
ндустрії, збагачуючи зміст і розширюючи асортимент вироблюваного ними
нформаційного продукту, включаючи в полі діяльності разом з бібліографічною
нформацією фактографічну і аналітичну, а також створення традиційної і ново
продукції (фонди, каталоги в паперовому і машиночитаємом видах, банки даних).
Всього цього можна досягти, якщо бібліотеки вже зараз, не втрачаючи часу, приступлять
до виконання комплексних програм автоматизації бібліотечних процесів.
Традиційно користувачі звикли до думки,
що в бібліотеці можна отримати будь-яку інформацію. Тепер, в умовах
нформаційного перенасичення, бібліотеці все складніше виконувати основн
функції: фондообразованіє, інформаційно-бібліографічне і абонементне
обслуговування. Поліпшити збір, зберігання і забезпечення доступу до інформац
бібліотека зможе тільки за умови зміни її технічного оснащення.
Наскільки ж необхідно обзаводитися
обчислювальною технікою, і, що нам можуть дати автоматизован
бібліотечно-інформаційні системи (АБІС)?
Найчастіше приводиться наступний
аргумент - підвищення швидкості пошуку інформації. Насправді це не головне.
Врешті-решт, у відносно невеликому масиві даних ручний пошук займає не дуже
багато час.
Істотніші наступн
можливості:
«одноразове введення даних
багатоцільове їх використання для пошуку документів, друку підібрано
нформації, передачі масивів даних іншим організаціям, підготовки видань
т.д.;
багатоаспектний пошук даних по різних
ознаках і їх поєднаннях без формування додаткових картотек і покажчиків;
пошук в каталогах інших бібліотек
звідних каталогах, який здійснюється з дисплея свого комп'ютера в теледоступе
по каналах зв'язку або в базах даних на оптичних дисках великої ємкості, що
встановлюються на комп'ютерах в своїй бібліотеці;
організація комплектування фонду з
використанням баз даних видаючих або книготоргових видань, з автоматичним
формуванням замовлень і обліком їх виконання;
автоматизований облік і ведення
статистики у всіх процесах, включаючи обслуговування читачів;
надійне зберігання бібліотечних
каталогів в декількох копіях;
скорочення витрат на комплектування
фондів і обробку вхідних потоків документів;
розширення сфери послуг за рахунок
залучення нових інформаційних джерел.
На практиці це означає виконання
автоматизованої обробки нових надходжень в бібліотеку; звільнення співробітників
від ряду рутинних робіт з підготовки картотек, видань, списків, замовлень,
листів, звітної документації; створення бази даних про надходження; здійснення
операцій по створенню і копіюванню тематичних архівів літератури. Завдяки
автоматизації можна виконувати наочний пошук інформації по запитах читачів,
обслуговування баз даних інформаційних і періодичних видань бібліотеки, ведення
масиву бібліографічних описів журнальних статей, пошук записів за ключовими
словами, створення електронних довідників, контроль за виданою літературою:
облік читачів і їх формулярів; автоматичний запис у формуляр читача видано
літератури; контроль терміну повернення книг. А головне - забезпечення читачам
своєї бібліотеки виходу у вітчизняний і світовий інформаційний простір.
Дослідивши роботу науково-технічної бібліотеки
університети були виявлені істотн
недоліки традиційного робочого
місця у бібліотеці, що і послужило метою для постановки завдання диплому.
Об'єкт розробки - електронна бібліотека.
Мета розробки - створення електронно
бібліотеки. Вона має бути простій в розробці і супроводі, надійною і зручною
для адміністрування, має бути доступна через інтернет. Електронна бібліотека є досить простої бази даних.
Такі системи успішно розробляються вже декілька десятиліть, методологія
практичні прийоми вирішення таких завдань добре відпрацьовані. Проте з
розвитком обчислювальної техніки і вдосконаленням методологій і інструментів
розробки з'являються нові варіанти вирішень старих завдань.
До таких новітніх засобів розробки відноситься,
насамперед, обширний набір інструментів створення програмного забезпечення для
платформи Visual Basic. Найважливішим з них є інтегроване середовище розробки (IDE) Microsoft Visual Studio, до складу якої входять декілька мов програмування (Visual
C++,
Visual C#, Visual Basic і так далі), велике число інструментів проектування,
редагування, відладки, обширна і добре складена документація.
З Visual Studio тісно
нтегрована СУБД від Microsoft - Microsoft SQL Server. І Visual
Studio, і SQL Server добре пристосовані, перш за все, до створення
Інтернет - застосувань, але і класичні настільні Windows – застосуваня з їх допомогою розробляються швидко,
надійно і легко.
Основне завдання дипломного проекту -
розробка корисної для користувача програми. Програмування, за своєю суттю, - це
не мистецтво використання корисних алгоритмів і розумних інструментів, а
професійна діяльність, направлена на створення продукту (програмного
забезпечення) з корисними споживчими властивостями.
Окрім можливості отримання довідки по
Інтернету є, наприклад, можливість пошуку книги не тільки в базі даних програми
але і в усесвітній павутині. Електронна бібліотека, що розробляється, також
може бути використана як індивідуальна довідкова система, що настроюється, для
окремого користувача.
Розроблена по нових технологіях
програмна система, крім усього іншого, володітиме великими перевагами по
частині її супроводу, модифікації і розвитку, що дасть серйозний економічний
ефект в частині експлуатації системи.
1 ПРОЕКТНО-КОНСТРУКТОРСЬКИЙ РОЗДІЛ
1.1
Загальносистемні рішення
1.1.1
Загальні положення
1.1.1.1
Мета, задачі та принципи створення інформаційних систем
Мета створення інформаційних систем – у
гранично короткі терміни створити систему обробки даних, яка має задан
споживчі якості. До них належать: функціональна повнота, своєчасність,
функціональна надійність, адаптивна надійність, економічна ефективність[1].
Функціональна повнота – це властивість
нформаційної системи, яка характеризує рівень автоматизації управлінських
робіт.
Своєчасність – це властивість
нформаційної системи, яка характеризує можливість отримання апаратом
керівництва необхідної інформації.
Функціональна надійність – це
властивість інформаційної системи виконувати свої функції з обробки даних. Це
сукупність надійностей програмного, інформаційного та технічного забезпечення.
Адаптивна надійність – це властивість
нформаційної системи виконувати свої функції, якщо вони змінюються в межах
умов, зумовлених розвитком системи керування об’єкта впродовж заданого проміжку
часу.
Економічна ефективність інформаційно
системи виявляється в покращенні економічних результатів функціонування об’єкта
в результаті впровадження інформаційної системи.
Створення інформаційної системи
передбачає частковий чи повний перегляд методів і засобів функціонування
нформаційної системи економічного об’єкта і виконання таких завдань:
виявлення його суттєвих характеристик;
створення математичних і фізичних моделей досліджуваної системи та
елементів;
встановлення умов взаємодії людини та комплексу технічних засобів;
детальна розробка окремих проектних рішень;
аналіз проектних рішень, практична апробація та впровадження.
Принципи створення інформаційної системи
поділяють на дві частини: загальні та часткові.
Загальні принципи мають універсальний
характер і визначають методологічний підхід до створення будь-яких об’єктів. Це
такі принципи: науковості, нормативності, неперервності, розвитку,
ефективності, послідовності, від загального до часткового, системний,
комплексності, використання типових і керівних матеріалів.
Часткові принципи: систему управління
потрібно розглядати як людино-машинну; чіткий поділ системи на складові,
забезпечення сумісності й зв’язку між усіма видами забезпечення; забезпечення
дності обліку, типізація, уніфікація та стандартизація.
При створенні інформаційної системи
треба керуватися принципами, визначеними РД 50–680–88 «АС Основные положения»:
системності, розвитку (відкритості), сумісності, стандартизації (уніфікації) та
ефективності[1].
Принцип системності: при декомпозиц
мають бути встановлені такі зв’язки між структурними елементами системи, як
забезпечують цілісність інформаційної системи та її взаємодію з іншими
системами.
Принцип розвитку (відкритості): виходячи
з перспектив розвитку об’єкта автоматизації інформаційну систему треба
створювати з урахуванням можливості поповнення та обновлення функцій і складу
нформаційної системи, не порушуючи її функціонування.
Принцип сумісності: при створенні систем
мають бути реалізовані інформаційні інтерфейси, завдяки яким вона може
взаємодіяти з іншими системами за встановленими правилами.
Принцип стандартизації (уніфікації): при
створенні систем мають бути раціонально використані типові, уніфіковані й
стандартизовані елементи, проектні рішення, пакети прикладних програм,
комплекси, компоненти.
Принцип ефективності: досягнення
раціонального співвідношення між затратами і цільовими ефектами, включаючи
кінцеві результати, отримані завдяки автоматизації.
Однією з основних умов створення
високоефективної інформаційної системи є орієнтація на користувача. При
функціонуванні інформаційної системи, розв’язанні завдань управління діє велика
кількість обмежень, які потрібно враховувати під час її розробки. Крім того, в
процесі самого проектування виникає багато обмежень. Це призводить до того, що
в пошуках найкращого шляху, за який часто беруть найбільш простий, швидкий
дешевий, розробники свідомо чи підсвідомо перекладають частину проблем, що
виникли, на користувача. Цей шлях може призвести до згубних наслідків.
Користувачі, в свою чергу, прагнучи мінімізувати обсяги своєї роботи, не
виконують інструкцій розробника й ігнорують систему, яка не полегшує, а
ускладнює їм життя. При цьому слід ураховувати основну особливість об’єкта: до
створення інформаційної системи завдання управління можуть розв’язуватись
«вручну», без використання ЕОМ. Тому основне питання в якості та ефективност
рішень, які приймаються. Отож інколи інформаційна система функціонує сама по
собі, а управління об’єктом здійснюється майже без неї. Інформаційна система
має бути інструментом управління, в якому основну роль відіграє людина.
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).
На сайтах http://greenstone.org,
http://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 для України розміщується на сайт
http://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, що дозволяє користувачам налаштовувати та
розширювати програмне забезпечення за їхніми потребами.
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). На базі Черкаського обласного
нституту післядипломної освіти педагогічних працівників впроваджується
регіональна система інформаційно-ресурсної підтримки шкільних бібліотек. У
рамках пілотного проекту системи в інституті встановлена АБІС “Славутич”, у
школах м. Черкаси і Черкаській обласній бібліотеці для дітей імені Олега
Кошевого встановлена АБІС “Славутич-шкільний”.
На офіційному сайті АБІС “Славутич
http://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 («уніфікований
процес»), за допомогою якої можна детально описати технічні і організаційн
аспекти створення програмного забезпечення на стадіях визначення вимог, аналізу
проектування.
Методологія 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 Детальна діаграма класів системи
При проектуванні класів системи
необхідно визначити стереотипи класів, стосунки між класами, а також основн
атрибути і операції класів.
Всі проектовані класи є класами - суттю.
Цим класам в системі, що розробляється, відповідатимуть таблиці бази даних
програмні класи.
Між классами - суттю існують стосунки
асоціації. Потужності стосунків, виходячи з аналізу предметної області, будуть
наступними:
Предмет - Книга (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. Якщо в процесі спеціальної обробки в полях не опиняються ніякі значення,
система забезпечує повну підтримку пустих значень.
Реляційна обробка даних в 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 |
Так |
З повтореннями |
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]:
Building Block Services - засоби
програмного доступу до таких служб, як сховище файлів (file storage), календар
(calendar), служба аутентифікації "Passport ";
ПО для пристроїв, яке виконуватиметься
на нових пристроях Інтернету;
засоби для роботи з користувачами, що
включають природний інтерфейс (natural interface), інформаційні агенти (information agents) і інтелектуальн
теги (smart tags) -
технологію, яка автоматизує перехід по гіперпосиланнях до інформації,
пов'язаної із словами і фразами в документах користувачів;
інфраструктура .NET, що
складається з .NET Framework, Microsoft Visual Studio, Enterprise Servers і Microsoft Windows.
Framework складається з Common Language Runtime (CLR) і набору бібліотек класів .NET Framework, який
ноді називають Base Class Library (BCL). CLR - це по суті віртуальна машина, в якій
функціонують застосування .NET. Всі мови .NET мають в своєму розпорядженні бібліотеки класів Framework. Якщо ви
знайомі з Microsoft Foundation Classes (MFC) або Object Windows Library (OWL) компанії Borland, то вам не треба пояснювати, що це таке.
Бібліотеки класів Framework включають підтримку практично всіх технологій від
файлового введення-виводу і обміну з БД до XML і SOAP. Взагалі бібліотеки класів Framework так
обширні, що навіть поверхневий огляд всіх підтримуваних класів зажадає окремо
книги.
Common Language Runtime (CLR) - це серце технології Microsoft. Як
випливає з назви, це середовище часу виконання коду, в якій забезпечується
ефективна взаємодія додатків, що перетинає межі різних мов програмування (cross-language interoperability).
Як досягається ця взаємодія? Common Language Specification (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, компонентами СОМ, установкою бібліотек підтримки
таких продуктів, як Open Database Connectivity (ODBC) і Data Access Objects (DAO), ви міцно задумаєтеся, а чи правильно ви вибрали
рід занять. Слава богу, розгортання - це та частина .NET, над якою
проектувальники добре потрудилися.
Ключ до розгортання .NET-приложений -
концепція складок (assemblies). Збіркою називають пакет з семантично близьких
об'єктів, що складається з одного або декількох файлів. Особливості розгортання
залежать від того, що ви розробляєте: Web-серверное застосування або персональне застосування для Windows. Проте з
введенням збірки як повністю інкапсульованого набору функціональних можливостей
розгортання зводиться до простого копіювання потрібних складок в місце
призначення.
Маса проблем, що мучили програмістів до
появи .NET Framework, тепер усунено. Тепер, наприклад, не треба реєструвати
компоненти (як це вимагають СОМ і елементи управління ACTIVEX), оскільки
завдяки метаданим і віддзеркаленню всі компоненти містять в собі власний опис.
Під час виконання .NET відстежує також роботу з файлами і версії файлів,
пов'язаних з додатком. Тому будь-яке встановлюване застосування, автоматично
зв'язується з файлами, що є частиною його збірки. Якщо програма установки
спробує перезаписати файл, необхідний іншому застосуванню .NET поступить
достатньо розумно, дозволивши встановити потрібні файли, не видаливши при цьому
попередні версії файлу, оскільки вони ще потрібні іншому застосуванню.
Для роботи .NET - застосування на
комп'ютері має бути встановлене середовище .NET Framework.
Мінімальні характеристики комп'ютера
необхідного для комфортної роботи програми в операційній системі Windows XP:
процесор Intel Pentium/amd Athlon 2000 Гц;
ОЗУ 512 Мб;
Вінчестер 100 Гб.
Але оскільки нам потрібна нормальна
робота Інтернет-сервера і Microsoft SQL Server на нашому комп'ютері, то конфігурація має бути
значно посилена:
процесор не менше 3000 Гц;
ОЗУ не менше 1 Гб;
вінчестер не менше 200 Гб.
1.4 Рішення з математичного
забезпечення
1.4.1 Пошук у
тексті
У нашому проекті для
повноцінного пошуку використовуються засоби текстового пошуку. В даний час так
засоби посилено розвиваються. До складу Microsoft SQL Server 2005 навіть включений новий для СУБД спеціальний
компонент Full-text Search (повнотекстовий пошук).
Одним з наймогутніших
нструментів пошуку в текстах є регулярні вирази.
Регулярні вирази підтримуються
багатьма програмами (редакторами, системними утилітами, ядрами баз даних і так
далі), але їх можливості повною мірою виявляються в мовах програмування,
зокрема Java, Jscript, Visual Basic, 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].
Ось простий приклад регулярного
виразу - шаблон номера телефону.
^(\(\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 <= s <= n - m і T[s + 1..s + m]= P[1..m] (іншими словами, якщо T[s
+ j]= P[j] при 1 <= j <= m). Якщо P входить із зрушенням s в текст T, то
говорять, що s - допустиме зрушення, інакше s - неприпустиме зрушення. Завдання
пошуку підрядків полягає в знаходженні всіх допустимих зрушень для даних тексту
T і зразка P.
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|. Для
будь-яких рядків x і у і для будь-якого символу а співвідношення x ] у і ха ] уа
рівносильні; стосунки ] і [ транзитивні.
Хай x, у і z - рядки, для яких x ] z і x
[ z. Тоді x ] у, якщо |x| <= |y|; у ] x, якщо |x| >= |y|, і x = у, якщо
|x| = |y|.
Якщо S[1..r] - рядок довжини r, то його
префікс довжини до <= r позначатиметься Sk = S[1..k] (зокрема, S0 = е і Sr =
S). У цих позначеннях завдання про знаходження зразка P довжини m в тексті T довжини
n полягає в знаходженні всіх таких s з проміжку 0 <= s <= n - m, що P ]
Ts+m.
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) - це найбільше
число до < q, для якого Pk є суфіксом Pq. Само значення s` обчислюється за
формулою s` = s + (q - до).
Префікс-функцией, що асоціюється з
рядком P[1..m], називається функція f:{1,2., m} Ќ {0,1., m - 1}, визначена
таким чином:
f[q]= max{k:k < q Pk ] Pq}.(1.2)
Іншими словами, f[q] - довжина
найбільшого префікса P, що є (власним) суфіксом Pq. Приведемо псевдокод алгоритму Кнута - Моріса
- Пратта.
n = length(T)
m = length(P)
q = 0
for i = 1 to n
while q > 0 and P[q+1]< > T[i]
q = pf[q]
if P[q+1]=T[i]
then q = q+1
if q=m
then print «рядок входить із зрушенням» i-m
q = pf(q)
m = length[P]
pi[1]= 0
до = 0
for q = 2 to m
while до > 0 and P[k+1]< > P[q]
до = pi[k]
if P[k+1]=P[q]
then до = k+1
pi[q]= до
return pi
Час виконання префікс - функц
пропорційно довжині рядка m і, отже, є O(m). Аналогічно, час
виконання операторів процедури пошуку пропорційно довжині підрядка і є O(n).
Отже, загальний час виконання приведеного алгоритму є O(m+n), що дає значний
виграш в порівнянні з простий процедурою пошуку.
Проаналізувавши два методи пошуку були
виявлені як позитивні так і негативні сторони. Для даної роботи необхідний
пошукач який працює з невеликим часом і частковим текстом (див. рис. 1.10)
Рисунок 1.10 – Схема роботи програми пошука
1.4.5 Регулярні вирази у VB.NET
Для роботи з регулярними
виразами в VB.NET використовується клас Regex, що знаходиться в просторі імен System.Text.RegularExpressions.
За допомогою цього класу ви можете проводити наступні дії:
пошук підрядків за шаблоном;
заміна підрядків за шаблоном;
порівняння рядка з шаблоном;
розділення рядка на підрядки з
використанням шаблонів.
Для твору дій з регулярними
виразами необхідно створити екземпляр класу Regex. Для цього використовується стандартний
конструктор New. Він переобтяжений і має дві комбінації параметрів. Ви
можете задати тільки шаблон (змінна типу String), який використовуватиметься надалі, або шаблон
параметри об'єкту. Параметри задаються константами з перерахування Regexoptions.
Пошук підрядків, відповідних
шаблону проводиться за допомогою переобтяженого методу Matches. Він може
приймати 4 комбінації параметрів. Перший параметр - рядок, в якому
проводитиметься пошук. Як другий параметр можна встановити позицію, з якою буде
початий пошук. Також другим параметром можна вказати шаблон (якщо він не
збігається з шаблоном, вказаним в конструкторі при створенні об'єкту). І
остання комбінація параметрів - рядок для пошуку, шаблон і параметри пошуку,
задані комбінацією констант перерахування Regexoptions.
Метод повертає об'єкт Matchcollection.
Це колекція, яка містить об'єкти Match. Отримати об'єкт Match можна за допомогою індексованої властивості Item колекції.
Нумерація елементів починається з нуля. Щоб отримати знайдений підрядок, слід
використовувати властивість Value об'єкту Macth.
Нижче приведений невеликий
приклад пошуку тегів в HTML коді.
Dim regexp As New Regex("<(.*?) >")
Dim html As String
Dim i As Integer
Dim m As Matchcollection
html = "<p>ето <а
href='http://vbnet.ru'>пример</a>
<b>поїська</b></p>"
m = regexp.Matches(html)
For i = 0 To m.Count – 1
Msgbox(m.Item(i).Value)
Next
Інша часто використовувана дія,
вироблювана за допомогою класу Regex, - заміна підрядків з використанням шаблонів. Для
заміни використовується метод Replace. Він, як і метод Matches, переобтяжений. Replace може приймати 10 комбінацій параметрів. Метод може
приймати комбінації з наступних параметрів:
input - початковий рядок;
replacement - рядок, на який
будуть замінені знайдені підрядки;
count - максимальна кількість
замін;
startat - позиція в рядку input, з якою
проводитиметься заміна;
pattern - замінюваний шаблон;
options - опції. Може приймати
константи з перерахування Regexoptions;
evaluator - об'єкт Matchevaluator.
Метод повертає змінну типу String - рядок, в
якому були вироблені заміни.
Dim regexp As New System.Text.RegularExpressions.Regex("<(.*?) >")
Dim Inputstring As String
Inputstring = "p>ето <а href='http://vbnet.ru'>пример</a>
<b>pfvtys</b></p>"
txttext.Text = regexp.Replace(txttext.Text, "[вирізаний]", Regexoptions.Multiline)
Порівняння рядка з шаблоном -
найпростіша операція, яку можна провести за допомогою класу Regex. Порівняння
здійснюється методом Ismatch. Він переобтяжений і може приймати такі ж
параметри, як і метод Matches. Значення, що повертається, має тип Boolean. Метод
повертає True, якщо тестований рядок збігається з шаблоном і False інакше.Нижче
приведений приклад порівняння рядка з шаблоном.
Dim regexp As New System.Text.RegularExpressions.RegEx ("[0-9]+")
Dim str As String
str = "1234567890"
Msgbox (regexp.IsMatch(str).ToString)
str = "abc"
Msgbox (regexp.IsMatch(str).ToString)
Розділення рядка
використовується рідше за решту операцій. Розділення рядка з використанням
регулярних виразів дуже схоже із звичайним розділенням рядка функцією Split. Але якщо в Split як
роздільник використовувався рядок, то тут роздільником є регулярний вираз.
Для розділення рядка
використовується переобтяжений метод Split класу Regex. Він може приймати такі ж комбінації параметрів,
як і методи Matches і Ismatch. Split повертає масив типу String, який містить рядки,
отримані з початкового рядка. Масив індексується з нуля.
Допустимо, потрібно розбити
рядок по декількох роздільниках (скажімо, "-", "." і ","). Можна
використовувати для цього функцію Split, але при цьому буде багато метушні з масивами, код
буде сильно захаращений і знизиться швидкодія. А зараз подивимося, як легко ця
операція буде проведена з використанням регулярних виразів. Роздільником буде
наступний вираз: "[-\.,]". Наступний код розбиває рядок на підрядки з
використанням цього шаблону.
Dim regexp As New Regex("[-\.,]")
Dim i As Integer
Dim s() As String
Dim str As String
str = "раз-два,трі.четире,пять"
s = regexp.Split(str)
For i = 0 To s.GetUpperBound(0)
Console.WriteLine(s(i))
Next
За умовчанням Regex компілю
регулярні вирази в послідовність внутрішніх байт-кодов регулярних виразів (це
високорівневий код). При виконанні регулярних виразів відбувається інтерпретація
байт-кода.
Якщо при створенні об'єкту Regex в
конструкторі New була встановлена константа Compiled, то Regex буде скомпільований в MSIL (Microsoft intermediate language). Це дозволить JIT-компилятору перетворити вираз в машинний
код, що значно підвищує продуктивність.
Проте у виразах, що компілюють,
погана сторона - їх не можна вивантажити з пам'яті. Регулярні вирази, що
компілюють, вивантажуються тільки при завершенні роботи всього застосування.
Regex залишається в пам'яті, навіть коли сам об'єкт звільнений і знищений
складальником сміття.
Тому, слід задуматися над тим, чи варто
встановлювати прапор Compiled. Якщо ви постійно використовуєте декілька
регулярних виразів, то краще буде їх скомпілювати.
Регулярні вирази - могутня технологія
для роботи з текстом. Розробники Microsoft все-таки вбудували підтримку ц
технології в .NET Framework. Можливо, вони зробили це тому що .NET Framework
використовується в Web-застосуваннях (ASP .NET), де регулярні вирази більше всього необхідні.
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
Керівництво користувача
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). Розробка
показала, що інструменти Microsoft Visual Studio дуже зручні для розробки обох класів застосувань. Особливо
зручні ці інструменти для розробки Інтернет-застосувань. Така розробка в
середовищі Microsoft Visual Studio .NET абсолютно аналогічна розробці настільних
застосувань, тому, програмісти, що мають досвід розробки на Visual Basic 6, можуть
легко перейти до нових для себе завдань.
3 ТЕХНІКО-ЕКОНОМІЧНИЙ РОЗДІЛ
3.1 Загальні положення
В результаті застосування нового
ПС користувач може понести значні капітальні витрати на придбання і освоєння
ПС, доукомплектованія ЕОМ новими технічними засобами і поповнення оборотних
коштів. Проте, якщо придбане ПС буде
достатньою мірою ефективніший базового, то додаткові капітальні витрати швидко
окупляться. Ефект може бути досягнутий за рахунок скорочення об'єму ПС
(зменшення кількості машинних команд, кількості рядків і так далі), зниження трудомісткост
підготовки даних, обробки інформації, аналізу результатів, зменшення витрат
машинного часу і матеріалів.
Для визначення економічного ефекту від
використання нового ПС у споживача необхідно порівняти витрати по всіх основних
статтях кошторису витрат на експлуатацію нового ПС (витрати на заробітну плату
з нарахуваннями, матеріали, машинний час) з витратами по відповідних статтях
базового варіанту. При порівнянні базового і нового варіантів як економічний
ефект виступатиме загальна економія всіх видів ресурсів щодо базового варіанту.
При цьому створення нового ПС виявиться економічно доцільним лише в тому
випадку, якщо всі капітальні витрати окупляться за рахунок отримуваної економ
в найближчих 1-2 року.
Абсолютна величина економічного ефекту
без співставлення з витратами на його отримання не дозволяє однозначно оцінити,
наскільки вдалим виявився відповідний іноваційний проект. Таку оцінку дають
показники економічної ефективності (прибутковості) проекту.
При використанні іновацій
підприємство-споживач отримує певний економічний ефект, що зазвичай виражається
економією витрат на виконання виробничих та управлінських функцій. За умов
обгрунтування поліпшення співвідношення ціна-якість у нової продукції в
порівнянням з базовим варіантом підприємство-виробник може встановити певну
добавку до ціни іноваційної продукції.
Зміст техніко-економічного обгрунтування
розробки програмного продукту полягає в наступному:
розрахунок трудомісткості та тривалост
розробки;
визначення величини капітальних витрат
розробника та максимальної ціни продажу програмного продукту;
розрахунок поточних витрат реалізац
та мінімальної ціни продажу;
розрахунок річної економії споживача
програмного продукту та остаточне встановлення ціни продажу програмного
продукту;
визначення показників економічно
ефективності проекту.
В даному проекті розроблено програмний
продукт, що має наступні переваги перед аналогами:
зменшується час рішення одної задачі в середньому з 10 до 3 год/од.
3.2 Вихідні дані для
розрахунку
Вихідні дані для розрахунку економічно
ефективності проекту наведено в таблиці 3.1.
Таблиця 3.1 – Вихідні дані для розрахунку ефективності
Позначення |
Найменування показника |
Значення |
Вм |
Вартість ПЕОМ, грн |
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 |
РАЗОМ |
|
30 |
Розробку програми виконує один
нженер-програміст. Отже, тривалість розробки складає 30 робочих днів. З
урахуванням середньої кількості робочих днів у місяці ( 22 дні ) тривалість
розробки складе:
Тр = 30 / 22 = 1,37 (міс)
3.4 Розрахунок витрат на
розробку програми
Розрахунок витрат на розробку
програмного продукту, тобто суми капітальних витрат, оформлюється документом
кошторис витрат по формі таблиці 3.3.
Таблиця 3.3 – Кошторис витрат на
проектування
Найменування статей
витрат |
Сума, грн. |
Обгрунтування |
Спеціальне обладнання |
513,75 |
з розрахунку |
Розходні матеріали |
154,13 |
30% ст.1 |
Зарплата
проектувальників |
4018,18 |
з розрахунку |
Відрахування до фондів
соціального страхування |
1482,70 |
36.9% ст.3 |
Усього прямих витрат |
6168,77 |
ст.1 + ст.2 + ст.3 + ст.3 |
Накладні витрати |
2467,50 |
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,05 (грн)
Мінімальна ціна продажу програмного
продукту з урахуванням податку на додану вартість (ПДВ):
Цмін = (1+Ппдв/100) · Цвмін ; (3.17)
де Ппдв – ставка податку на додану
вартість;
Цмін = 1,2 · 1099,05 = 1318,86 (грн.),
Ціна продажу програмного продукту
перебуває в таких межах:
Цmin <= Цпп <= Цmax.
1318,86 грн <= Цпп <=13990,76 грн
Для визначення обсягу продажу, що
забезпечує рентабельну діяльність, побудуємо графік досягнення беззбитковост
схему, що показує вплив на прибуток обсягів реалізації програмного продукту,
ціни, постійних і змінних витрат (рис.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-й рік |
2-й рік |
3-й рік |
Плановий обсяг продажу,
од. |
|
15 |
30 |
15 |
Виторг від продажу |
|
27000 |
54000 |
60000 |
ПДВ (20%) |
|
4500 |
9000 |
10000 |
Виторг від продажу без
ПДВ |
|
22250 |
45000 |
50000 |
Витрати
на тиражування |
|
225 |
450 |
500 |
Витрати
на адаптацію |
|
5544,89 |
11089,80 |
12322.00 |
Витрати
на рекламу |
|
2150 |
2150 |
2150 |
Амортизаційн
відрахування |
|
2159,06 |
2159,06 |
2159,06 |
Прибуток
від реалізації |
|
12321,03 |
29051,14 |
32768,94 |
Податок
на прибуток (25%) |
|
3080,26 |
7262,78 |
8192,23 |
Чистий
прибуток |
|
9240,77 |
21788,35 |
24576,70 |
Сума
капітальних вкладень |
8636,27 |
|
|
|
Грошовий
потік |
-8636,27 |
11399,84 |
23947,42 |
26735,77 |
Коефіціент
дисконтування |
|
1 |
0,769231 |
0,591716 |
Поточна
дисконтована вартість |
-8636,27 |
11399,84 |
18421,10 |
15819,98 |
Чиста
дисконтована вартість |
-8636,27 |
2763,57 |
31184,67 |
37004,65 |
Сума грошового потока або поточна
вартість визначається як різниця між фінансовим результатом поточного року Рt (чистий
прибуток+амортизаційні відрахування) та поточними витратами Bt .
Поточна дисконтована вартість (ПДС) – це
поточна вартість, приведена до начала першого року реалізації проекту за
допомогою коефіціенту дисконтування КДt , тобто річний економічний ефект з
урахуванням інфляції:
ПДСt = (Рt – Bt) · КДt ;(3.32)
КДt = 1/(1+r)t(3.33)
Чиста дисконтована вартість – це
сума показників ПДС наростаючим підсумком з першого до поточного року
реалізації проекту, тобто сума грошей (з урахуванням інфляції), отриманих по
даний рік включно. Показник ЧДС за останній рік відображає всю суму грошей від
реалізації проекту.
Індекс прибутковості – це відносний
показник, що характерізує рівень доходів, отриманих на одну гривню інвестицій
за весь строк реалізації проекту:
∑
ПДС
ІП = ----------- ; (3.34)
К
53446,76
ІП = ------------- = 6,18
8636,27
Середня рентабельність проекту – це
аналогічний показник, що відображає середньорічний рівень ефективності проекту:
РП = ІП / Тпр , (3.35)
де Тпр – строк реалізації проекту.
РП = 6,18/ 3 = 2,06
Термін окупності інвестицій – це строк,
за який капітальні вкладення погашаються кумулятивним доходом, тобто строк, за
який отримані від проекту реальні (з урахуванням інфляції) гроші перекривають
вложену суму інвестицій:
– ЧДСt
Ток = t + -------------- ,(3.36)
ПДСt+1
де t – останній рік, в якому чиста
дисконтована вартість залишається від’ємною.
Якщо в останньому році реалізац
проекту ЧДСТ < 0, то проект не окупається протягом своєї реалізації. Для
даного проекту:
11399,84
Ток =1 + ---------------- = 0,85 (років)
21184,75
Основні техніко-економічні показники
проекту зведені в таблицю 3.5 .
Таблиця 3.5 – Техніко-економічн
показники проекту
Найменування показника |
Значення |
Разові витрати на
обладнання, грн |
8220 |
Доля вартост
обладнання в кошторисі проекту, грн |
513,75 |
Загальна сума
капітальних вкладень, грн |
8636,27 |
Постійні витрати
екплуатації, грн :
- амортизаційн
відрахування;
- витрати на рекламу
|
2159,06
2150,00
|
Змінні витрати
експлуатації, грн/од :
- тиражування програми;
- адаптація програми
|
25,00
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 для роботи
з базою даних в локальній мережі;
-Інтернет - сайту для пошуку книг.
Обидва компоненти розроблено за
допомогою одних і тих же інструментів:
-інтегроване середовище розробки Microsof Visual Studio, мова
програмування Microsof Visual Basic;
-СУБД Microsoft SQL Server
2005 Express.
Для розробки моделей при проектуванн
використовувалася мова моделювання UML в середовищі програмного продукту Microsoft Visio.
Система розроблялася і тестувалася на
підприємстві і в значній мірі готова до впровадження на цьому підприємстві. Для
впровадження необхідно створити базу даних підприємства, що не представля
ніякої складності.
Результати розробки проекту після
невеликої адаптації можуть бути успішно упроваджені в різних бібліотеках, а
також можуть використовуватися як індивідуальні довідкові системи.
Техніко-економічна ефективність
проекту досить задовільна, тому що:
даний продукт розроблений за
допомогою зручних сучасних інструментов розробки, тому вартісь розробки
невелика;
розроблена програма проста в
освоєнні і роботі за рахунок інтуїтивно зрозумілого інтерфейсу.
Технологія розробки, апробована в
даному дипломному проекті, може бути успішно застосована і масштабована при
розробці широкого класу програмних продуктів. Особливо важливо, що ця
технологія дозволяє різко скоротити час, необхідне на її освоєння, оскільки в
ній немає складних елементів і тим самим прискорити процес перетворення новачка
- розробника в досвідченого фахівця.
ПЕРЕЛІК
ПОСИЛАНЬ
1.
Орлова Е.В. Инновационная
политика высшего учебного заведения / Е.В. Орлова, Л.Н. Оголева. – М : «Эксмо»,
2006. – 342 с.
2.
Гейн А.Г. Методика преподавания
современного курса информатики / A.Г. Гейн. – Київ : Видавництво КНЕУ, 2004.
218 с.
3.
Береза А.М. Основи створення
нформаційних систем : [Навчальний посібник] / A.М. Береза. – Київ : Видавництво
КНЕУ, 1998. – 205 с.
4.
Вильям А. Электронные
библиотеки : [Учеб. пособие для вузов по курсам "Информатика" и
"Информ. системы"]/ А. Вильям. — Люберцы : ПИК ВИНИТИ, 2002. — 273 с.
5.
Вигурский К.В. Развитие
электронных библиотек: мировой и российский опыт, проблемы, перспективы /К.В.
Вигурский, Е.А. Горный. — М.:Гендальф, 2002. — 388 c.
6.
Волохін О.М. Каталогізація
цифрових ресурсів Iнтернет: Дублінське ядро метаданих: посібник / О.М. Волохін.
Кіровоград, 2003. — 70 с.
7.
Формат для обміну бібліографічними
даними на магнітних носіях : ДСТУ 3578-97. — К.: Держстандарт України, 1997.
20 с.
8.
Захарова О.В. Аналіз
автоматизованих систем бібліотечного сервісу провідних бібліотек світу
України //О.В. Захарова. — К., 2005. — 42 с.
9.
Місюров А.В. Інформаційн
системи і технології в обліку : [Навчальний посібник] / А.В. Місюров. – Харків
: Видавництво ХНАМГ, 2007. – 80 с.
10.
Курс экономической теории :
[Учебное пособие / под общ. ред. М.Н. Чепурина]. – Киров, 1995. – 566с.
11.
Системный анализ и структуры
управления : [Под общей редакцией проф. В.Г. Шорина]. – М. : Знание, 1975.
290с.
12.
Гиг Дж. Прикладная общая теория
систем. / Дж. Гиг. – М. : Мир, 1981. – 336с.
13.
Фаулер М. UML. Основы. Второе
издание / М. Фаулер, К. Скотт. – М. : Изд-во МАИ, 2002. – 712 с.
14.
Кватрани Т. Rational Rose 2000
и UML. Визуальное моделирование / Т. Кватрани. – М. : ДМК Пресс, 2001. – 176 с.
15.
Оптнер С.Л. Системный анализ
для решения деловых и промышленных проблем / С.Л. Оптнер : пер. с англ. – М.:
«Советское радио», 1969. – 216 с.
16.
Лагоша Б.А., Комплекс моделей и
методов оптимизации расписания занятий в вузе / Б.А. Лагоша, А.В. Петропавловская.
М.: «Экономика и мат. Методы». 1993. – 410 с.
17.
Экономико-математические методы
и прикладные модели : [Учеб. пособие для вузов / под ред. В.В. Федосеева]. – М.
: ЮНИТИ, 2000. – 652 с.
18.
Сайлер Б. Использование Visual
Basic. Специальное издание / Б. Сайлер, Дж. Споттс. – М. : Издательский дом
«Вильямс», 2002. – 752с.
19.
Технико-экономическое
обоснование дипломных проектов. : [под ред. Веклемишова В.К.] – М : Высшая
школа, 1991. – 112 с.
20.
Харитонова И. Самоучитель
Access 2000 / Ирина Харитонова. – Питер, 2001. – 881 с.
21.
Корнелл Г. Программирование на
VB.NET : [Учебный курс] / Г. Корнелл, Дж. Моррисон. – Питер, 2002.
920 с.
22.
Ивьен Б. Visual Basic.Net.
Библия пользователя / Б. Ивьен, Дж. Берес. – К. : Издательский дом «Вильямс»,
2002. – 841 с.
23.
Разработка Windows-приложений
на Microsoft Visual Basic.Net и Microsoft Visual C# .Net / [Microsoft
Corporation : пер. с англ.]. – Издательско-торговый дом «Русская редакция»,
2003. – 780 с.
24.
Документация. Отчеты в сфере
науки и техники. Структура и правила оформления : ДСТУ 3008–95. – Киев:
Госстандарт Украины, 1995. – 38 с. – (Государственный стандарт Украины).
ДОДАТКИ
До пояснювальної записки дипломного проекту
«Розробка АРМ науково-технічної бібліотеки
університету»
Додаток А
Вихідний код програми
Option Explicit
' clsAccess
' Свойства:
' File
' Conn
' Методы:
' OpenBase
' CloseBase
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
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
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 ' Код типа - не 0
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
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
|