Объектно-ориентированное проектирование - это поступательный итеративный процесс. Граница между объектно-ориентированным анализом и проектированием расплывчата и построение проекта программного изделия состоит из ряда циклов, в которых уточняются описания классов и взаимодействия между ними, разрабатываются реализующие их программы, проводится их отладка и тестирование и по результатам каждого этапа уточняются рабочие документы предыдущих этапов, дорабатываются описания классов и программы. Эти циклы повторяются до получения требуемого результата.[1]
Данная лабораторная работа посвящена использованию подхода объектно- ориентированного проектирования системы библиотечного учёта. Показывает простоту и эффективность такого подхода для проектирования сложных систем.
Требования заказчика
Библиотека. Разработать информационную систему для ведения каталога книг/читателей, поисковой системы, системы предварительных заказов на приобретение книг, а так же системы предварительной записи на использование дефицитной литературы и просмотра очереди.
Анализ системы
Описание задачи
Разрабатываемая система должна автоматизировать работу библиотеки, заменить долгие и рутинные операции по ведению каталогов книг и читателей. Оказывать помощь в поиске необходимой информации, брать на себя рутинную часть оформления заказов на приобретение литературы и составление соответствующих документов. Отслеживание дефицитной литературы и организацию предварительной записи на использование этой литературы так же является необходимой частью системы.
Техническое задание
Введение
Объектом автоматизации является библиотека, а именно место библиотекаря. Именно здесь сосредоточенно много однотипной и рутинной работы, исключение которой за счёт автоматизации может дать значительный прирост быстродействия библиотеки, увеличить оборот книг, организовать эффективную продажу книг и учёт дефицитной литературы. Замена ведения бумажного каталога электронным, значительно увеличит скорость поиска необходимой информации.
Назначение разработки
Разрабатываемый продукт позволит автоматизировать процесс ведения каталога, что в свою очередь даст возможность легко и быстро находить необходимую информацию путём запроса её у системы. Встроенные средства оформления заказов, регистрации читателей и книг, позволят стандартизировать документооборот библиотеки. Запись на дефицитную литературу станет достаточно быстрой и удобной, благодаря быстрому и лёгкому поиску информации, это позволяет вести запись по телефону. Созданные модули системы позволят отслеживать выданную литературу и позволят легко контролировать опоздания в сроках сдачи книг.
Требования к ПО
Необходимо реализовать
1. Удобный и простой интерфейс работы с программой.
2. Возможность легкого внесения информации в Базу Данных
· Создание записи о книге;
· Создание записи о читателе;
· Создание записи о дефицитной книге;
· Формирование заказа на покупку;
· Ведение информации о количестве принятых книг;
· Ведение информации о выданных книгах;
· Создание записи о выдачи дефицитной литературы;
· Создание записи о местонахождении книг;
3. Быстрый поиск необходимой информации
· Поиск книги по названию;
· Поиск книги по автору;
· Поиск книги по тематике;
· Поиск дефицитной литературы;
· Поиск записи читателя;
· Поиск заказа по дате;
· Поиск заказа по уникальному идентификатору;
· Поиск автора по названию книги;
· Поиск новой литературы;
4. Удобное предоставление запрашиваемой информации
· Печать отчётов;
· Печать накладных на покупку книги;
· Отображение информации в виде таблиц.
Требования к надёжности
Необходимо создать систему проверки вводимой информации, и выявление некорректных попыток её внесения, с указанием необходимых форматов вводимых данных.
Особенных требований по надёжности системы при работе в нештатных ситуациях непредусмотрено.
Требования технических средств
Серверная машина
· Процессор 2,4 Ггц;
· ОЗУ 1024;
· Место на HDD 80 Гб;
· Поддержка Lan;
Рабочая машина
· Процессор 1 Ггц;
· ОЗУ 256;
· Место на HDD 20 Гб;
· Поддержка Lan;
Требования к информационной и программной совместимости
Требования в информационным структурам на входе
На входе будут информационные структуры виде таблиц, каждая из который будет иметь свои атрибуты и первичный ключ, как показано в таблице 1.
Таблица 1
Книги поля таблицы
Имя свойства
Тип
Размерность
Номер_книги
N
6
Название
C
Тематика
С
Год издания
C
Цена
N
Номер_автора_книги
N
6
На выходе информация будет представляться так же в виде таблиц, со структурой представления данных подобной таблице 1.
Система может быть реализована на любом объектно-ориентированном языке программирования (DELPHI, С++ и другие) с использованием языка SQL, с использованием СУБД (ORACLE, MySQL, MS SQLServer, Paradox и т.д.).
Требования к защите программ не предъявляются
Требования к программной документации
Состав программной документации:
- Пояснительная записка;
- Руководство пользователя;
- Руководство программиста;
Руководство пользователя желательно должно быть оформлено в .chm формате.
Технико-экономические показатели
Данный продукт позволит увеличить прибыль за счёт увеличение количества обрабатываемых запросов от клиентов, а также увеличить конкурентоспособность.
Стадии и этапы разработки
Процесс разработки будет включать в себя 6 стадий
1) Анализ
2) Проектирование БД
3) Разработка БД
4) Проектирование клиент-серверной части
5) Разработка клиент-серверной части
6) Тестирование
7) Внедрение
На стадии 1 необходимо описать задачи, рассчитать затраты и объёмы работ на создание и внедрение программного средства.
На стадии 2 необходимо представить семантическое описание БД
На стадии 4 необходимо представить описание программы, схему диалогов.
На стадии 5 необходимо представить спецификацию, описание программы, руководство программиста.
На стадии 6 необходимо представить программу и методику испытаний, текст программы с необходимыми комментариями
На стадии 7 необходимо представить руководство пользователя, пояснительная записка.
Порядок контроля и приёмки
В хоте проверки работы системы необходимо будет:
- создать несколько элементов БД (запись читатель, книга)
- произвести проверку на некорректный ввод данных
- произвести печать отчётов
- обеспечит поиск по ключам
Словарь данных
· Книга;
· Тематика книги;
· Дефицитная книга;
· Читатель;
· Автор книги;
· Покупатель;
· Заказ на покупку книги;
· Название книги;
· Год издания книги;
· Фамилия;
· Имя;
· Отчество;
· Адрес;
· Телефон;
· Сумма заказа;
· Дата заказа;
· Дата возврата книги;
· Дата получения книги;
· Дата записи;
· Место нахождения книги;
· Количество книг;
· Размещение книги;
· Записаться на дефицитную книгу;
· Отказаться от записи;
· Вернуть дефицитную книгу;
· Издать книгу;
· Оформить заказ на покупку книги;
· Отказаться от заказа на покупку книги;
· Оплатить заказ;
· Добавить книгу;
· Добавить информацию о книге;
· Удалить книгу;
· Продать книгу;
· Выдать книгу;
· Вернуть книгу;
· Добавить читателя;
· Удалить читателя;
· Изменить информацию о читателе;
Словарь предметной области
Сформируем словарь предметной области на основании выше проделанных работ.
Существительные
· Книга;
· Тематика книги;
· Дефицитная книга;
· Читатель;
· Автор книги;
· Покупатель;
· Заказ на покупку книги;
· Название книги;
· Год издания книги;
· Фамилия;
· Имя;
· Отчество;
· Адрес;
· Телефон;
· Сумма заказа;
· Дата заказа;
· Дата возврата книги;
· Дата получения книги;
· Дата записи;
· Место нахождения книги;
· Количество книг;
· Размещение книги.
Глаголы
· Записаться на дефицитную книгу;
· Отказаться от записи;
· Вернуть дефицитную книгу;
· Издать книгу;
· Оформить заказ на покупку книги;
· Отказаться от заказа на покупку книги;
· Оплатить заказ;
· Добавить книгу;
· Добавить информацию о книге;
· Удалить книгу;
· Продать книгу;
· Выдать книгу;
· Вернуть книгу;
· Добавить читателя;
· Удалить читателя;
· Изменить информацию о читателе.
Определения границ задачи
Требования к системе были изложены в «требованиях ПО» технического задания. На рис.1 можно увидеть схему состава вычислительной системы. При детальном рассмотрении можно выделить 4 основные функции системы:
· Ведение каталога читателей и книг;
· Работа по приёму и ведению заказов;
· Ведение поиска;
· Ведение записи на дефицитную литературу
Рис.1 Схема состава вычислительной системы.
Сценарии работы системы
На данном этапе анализа явно выявляются порядка 35 сценариев работы системы, которые можно заметить, проанализировав диаграммы объектов и классов рис.2 и рис.3. Данное число не является окончательном, на этапе проектирования могут быть найдены и дополнительные сценарии. Так же в ниже приведённом списке сценариев не указаны сценарии обработки исключительных ситуаций, их число приблизительно 10-15 и в процессе проектирования и реализации оно может увеличиваться. Представление данных в виде удобных отчётов, как бумажных, так и электронных, также представляет собой функциональные точки, их число приблизительно 15, на этапе проектирования это число может меняться.
· Создать запись о книге;
· Удалить запись о книге;
· Издать книгу;
· Создать тематику;
· Удалить тематику;
· Создать запись по местонахождению книги;
· Удалить запись по местонахождению книги;
· Взять книгу;
· Вернуть книгу;
· Записаться на дефицитную книгу;
· Оформить заказ;
· Добавить информацию о читателе;
· Изменить информацию о читателе;
· Удалить читателя;
· Оплатить заказ;
· Отклонить заказ;
· Добавить книгу к заказу;
· Удалить запись о заказе;
· Записаться на книгу;
· Отказаться от записи на дефицитную книгу;
· Вернуть дефицитную книгу;
· Получить дефицитную книгу;
· Добавить книгу в каталог;
· Удалить книгу из каталога;
· Разместить книгу;
· Изменить размещение книги;
· Найти книгу по названию;
· Найти книгу по автору;
· Найти книгу по году издания;
· Найти книгу по тематике;
· Добавить читателя в каталог;
· Удалить из каталога;
· Поиск книг читателя;
· Поиск заказов клиента;
· Поиск дефицитных книг у читателя.
Рис. 2 Диаграмма объектов системы на этапе анализа
Рис.3 Диаграмма классов на этапе анализа
Анализ затрат на разработку системы
Анализ производится на основании проделанных выше работ, а именно выявленных сценариев работы системы. В среднем на описание одного сценария необходимо написать порядка 30-40 операторов, это равносильно 30 – 50 строкам кода. Однако существуют сценарии повышенной сложности, к ним относятся сценарии обработки критических ситуаций, условно, для ведения подсчётов затрат по этим сценариям примем их сложность равную 2 обычным сценариям, это где то 60-80 операторов или 60-100 строк кода.
В анализе не учитываются затраты на оборудование, необходимое для работы системы, к которому относятся сервер, рабочие станции, сетевоё оборудование (сетевые карты, маршрутизаторы. коммутаторы).
Работа программиста
Месячная зарплата программиста составляет 24000р, это 1000 рублей в день при 24 рабочих днях в месяце. При этом квалифицированный специалист обеспечивает производительность в 3600 строк кода ежемесячно, ежедневно это составляет 150 строк отлаженного кода, то сопоставив количество сценариев и объём кода на описание и реализацию этих сценариев, получим:
Написание программы нельзя сравнивать с написанием книжного издания, при организации взаимодействия нескольких модулей могут быть выявлены конфликты, и разрешение этих проблем так же отнимает время и увеличивает объёмы переработанного кода. Во избежание отставания от графика, в затратах учтём время потраченное на разрешения проблем взаимодействия модулей, условно обозначим его 15% от объёма написанной программы, это будет – 360- 600 строк кода. И того на написание исполняемого кода необходимо составить программу в 2760-4600 строк кода.
Произведя несложные вычисления, получаем, что на написание исполняемого кода необходимо потратить 19- 31 день работы программиста, учитывая выходные дни получается 4,5-6,5 недель. Что ровняется 19000 – 31000 рублей, затрачивается на работу программиста.
Работа аналитика
Процесс произведения анализа системы, её структуризация и проектирование является неотъемлемой частью в создании программных продуктов, наряду с написанием исполняемого кода. На такого специалиста ложится ответственность за проведение анализа, проектирования и подготовку необходимой технической документации.
Из-за отсутствия данных по ежемесячной зарплате и ведении учёта объёма работ такого специалиста, будем условно принимать, что ежедневная заработная плата его будет ровняться заработной плате программиста, а именно 1000 рублей в день. Условно примем, что на разработку одного документа у него уходит один день. Произведём подсчёт затрат на работу аналитика.
Процесс анализа 2-3 дня – 2000-3000 рублей
Процесс проектировки 2-3 дня – 2000-3000 рублей
Составление документов:
· Техническое задание – 1000 рублей
· Руководство пользователя – 1000 рублей
· Руководство программиста – 1000 рублей
· Пояснительная записка – 1000 рублей
Итого 8-10 дней работы аналитика, соответственно 8000-10000 руб.
Общие затраты на разработку системы
Произведя анализ затрат было выяснено, что разработка системы обойдётся в 27000 – 41000 рублей. Время разработки такой системы будет находиться в интервале 5,5 до 8,5 недель.
Так же в анализе затрат не учитывалось время и стоимость на внедрение системы, а именно стоимость сетевого оборудования, прокладка локальных сетей, установка оборудования и настройки сервера.