Литература: 1) О. Б. Кунгурцев. Об’єктно-орієнтована технологія створення проф. продуктів. ВМВ, 2006. (50 грн.) 2) О. Б. Кунгурцев, С. П. Зіноватна. Об’єктно-орієнтована технологія конструювання ПЗ. Одеса: Удача, 2013. 3) SWEBOK План курса: 1. Основы конструирования. 1.1. Минимизация сложности. 1.2. Ожидание изменений. 1.3. Конструирование с возможностью проверки. 1.4. Стандарты в конструировании. 2. Управление конструированием. 2.1. Модели конструирования. 2.2. Планирование конструирования. 2.3. Измерения в конструировании. 3. Практические аспекты. 3.1. Проектирование в конструировании. 3.2. Языки конструирования. 3.3. Кодирование. 3.4. Тестирование в конструировании. 3.5. Повторное использование. 3.6. Качество конструирования. 3.7. Интеграция. Под конструированием ПО понимают детальное изложение процесса создания программного кода, его интеграционного тестирования и отладки. Уточнение понятия программного модуля: В некоторых случаях трактуют как одновременно скомпилированные фрагменты кода, в других -- как класс. С т. з. конструирования мы будем понимать его как часть кода, которая решает небольшую, <...> В этом случае, в процессе тестирования должен участвовать представитель заказчика, а по результатам тестирования могут вноситься <...> Процесс конструирования тесно связан с проектированием и разработкой архитектуры, с тестированием и верификацией ПО, с тестированием проекта и разработкой пользовательских интерфейсов. Упрощённая схема процессов конструирования ПО +------------------------+ |Документ-концепция | |(программные требования)| |+-----------+ |<----+ ||Описание | | | ||прецедентов| | | |+-----------+ + - + | +------------+-----------+ | | | | v | +----------------------+ | | |Построение модели | | |концептуальных классов+ - + | | +------------+---------+ | | | | | v | +-------------------+ | | | |Построение диаграмм|<- - - - | |взаимодействия +- - | | +------------+------+ | | | | | v | | +-------------------+ | | |Построение диаграмм| | | |программных классов|< - - + | +------------+------+ | | | | v | | +-------------------+ | |Создание кода | | | |программных классов|< - | +------------+------+ | | | v | +--------------+ | 9 |Тестирование и| | Представитель |интегрирование+---------------+ заказчика +--------------+ Документ-введение: Предлагает создать надёжное прилоежние для автоматизации перевозки пассажиров по железной дороге. RTS: Обеспечивает единую службу продаж билетов. Связь с другими системами подобного типа. Гибкий механизм поддержки различных терминалов, а также интеграцию с различными внешними и вспомогательными системами. Существующие программные продукты не обеспечивают настройку на потребности различных пользователей. Ни одна из известных систем не обеспечивает переход из автоматического в автономный режим. Место системы Система предназначена для региона. Она позволяет составлять расписание пассажиров поездов, хранить и управлять информацией о маршрутах и станциях поддержки. Ссылки на диаграмму прецедентов и на описание прецедентов. Заинтересованные лица: 1. Дирекция регионального управления о загрузке поездов: получать аналитическую информацию о работе организации/ 2. Менеджер службы продажи билетов: большой расход, трудности оперативного корректирования расписания, а также оперативного информирования о станциях, медленная процедура продажи билетов (особенно отсутствие безналичного расчёта). 3. Дежурный администратор: большое время на возврат, отсутствие автоматической страховой службы. 4. Кассир: ошибки при расчёте стоимости, ошибки в заполнении бланка билета, длительная процедура при переделывании. Лица, не являющиеся пользователями: 1. Пассажир: очереди при покупке билета, появление ошибок в билете, медленная процедура возврата билета. 2. Налоговая служба: отсутствие учёта налогов. 3. Банк: невозможность предоставления новой услуги. Описание продукта +-------------------------------------------------------------+ |RTS-система +-----------+ | |+----------+ |Подсистема | | ||Подсистема+-------+составления| | ||продажи | |расписания | | ||билетов +-----\ +--+--------+ | |+----------+ \ | | |+------------+ +----------+ | ||Подсистема | |Подсистема| | ||анализа +-----+внутренней| | ||деятельности| |связи | | |+------------+ +----------+ | | +----------+ | | |Подсистема+-----------------------------------+ | | +--+внешней +--------------------------+ | | | | |связи +------------+ | | | | | +-------+--+ | | | | +----+----------+---------------+-------------+--------+------+ | | | | | +----+------++--+-------++------+-----++------+--++----+------+ |Служба ||Служба ||Другие ||Налоговая||Бухгалтерия| |авторизации||инкассации||региональные||служба |+-----------+ +-----------++----------+|управления |+---------+ +------------+ Диаграмма прецедентов 9-----+ +----------------+ 9 Кассир +----+(Продажа билета)+--+---Служба +--+-+(Возврат билета)+-+|авторизации 9 | | |(Бронирование | || платежей Дежурный| +-+--------места) | || администратор|(Регистрация----++||+----------------+ +----+-----выручки) |||++<<исполнитель>> | 9---------+(Создание нового||+++Налоговая служба| Системный | пользователя)||||+----------------+ администратор|(Корректировка |||++---------------+ +------+-----маршрута) ||+-+<<исполнитель>>| 9--+ +-+(Выдача справки)|+--+Бухгалтерия | Менеджер | | . || +---------------+ расписания | | . || +-----------------+ | | . || |<<исполнитель>> | 9-------+ | |+--+Служба инкассации| Инспектор | | +-----------------+ Кассир сиусытиа <...> Предусловие: кассир идентифицирован и аутентифицирован. Постусловие: данные продажи сохранены, налоги корректно вычислены, бухгалтерские данные обновлены, обновлены комиссионные начисления, билет сгенерирован. Пример: обращение клиента к кассиру П -- пассажир, К -- кассир, С -- система 1. П обращается к кассиру по поводу покупки билета. К открывает новую продажу (С). 2. П сообщает станцию отправления и назначения. К вводит. С подтверждает наличие маршрута. 3. П сообщает дату поездки и классность поезда. К вводит. С определяет номер поезда. 4. П сообщает класс места. К вводит. С подтверждает (определяет место). 5. К запрашивает стоимость проезда. С сообщает цену билета. К сообщает пассажиру. П согласен. 6. К предлагает оплатить билет. П вносит некоторую сумму. С рассчитывает сдачу, генерирует билет, сообщает о завершении операции продажи. ... Прецедент: возврат билета Основное действующее лицо: дежурный администратор. Область действия: система продажи билетов. Предусловие: дежурный администратор идентифицирован и аутентифицирован. Постусловие: стоимость билета. за вычетом установленного процента, возвращена бухгалтерией, данные обновлены. Д - дежурный администратор 1. П обращается к Д по поводу возрата билета. Д открывает новый возврат. 2. П предъявляет билет. Д вводит дату, номер поезда, номер места. С подтверждает. 3. Д запрашивает размер суммы возврата. С рассчитывает сумму возврата в зависимости от даты отправления и текущей даты по установленным правилам. 4. П согласен сдать билет за указанную сумму. Д предлагает пассажиру предъявить паспорт. Д записывает номер паспорта, ФИО в систему. С фиксирует возврат билета, указывает кассу для получения суммы возврата. 5. К обращаетсся в кассу и получает деньги.