Размещение железнодорожного транспорта Украины
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
БЕРДЯНСЬКИЙ УНІВЕРСИТЕТ МЕНЕДЖМЕНТУ І БІЗНЕСУ
Кафедра інформаційних систем і технологій
ПОЯСНЮВАЛЬНА ЗАПИСКА
на дипломний проект освітньо-кваліфікаційного рівня
" спеціаліст "
за напрямком підготовки (спеціальностю) 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).
На сайтах #"_Toc262646810">
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.
Хай 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='#"_Toc262646833">
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:
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