- •Учебное пособие по теоретической подготовке «Технологии разработки программного обеспечения»
- •Оглавление
- •Введение
- •Введение в технологии разработки программного обеспечения
- •Основные этапы развития технологии разработки
- •Первый этап – «стихийное» программирование.
- •Второй этап – структурный подход к программированию (60-70-е годыXXв)
- •Третий этап – объектный подход к программированию (с середины 80-х годов до нашего времени)
- •Четвертый этап – компонентный подход иCase-технологии (с середины 90-х годов до нашего времени)
- •Пятый этап – разработка, ориентированная на архитектуру иCase-технологии (с началаXxIв. До нашего времени)
- •Эволюция моделей жизненного цикла программного обеспечения
- •Каскадная модель
- •Спиральная модель
- •Макетирование
- •Быстрая разработка приложений
- •Компонентно-ориентированная модель
- •Xp-процесс
- •Стандарты, регламентирующие процесс разработки программного обеспечения
- •Гост р исо 9000-2001. Системы менеджмента качества. Основные положения и словарь
- •Предисловие
- •Введение
- •Принципы менеджмента качества
- •Область применения
- •Основные положения систем менеджмента качества Обоснование необходимости систем менеджмента качества
- •Требования к системам менеджмента качества и требования к продукции
- •Подход к системам менеджмента качества
- •Процессный подход
- •Политика и цели в области качества
- •Роль высшего руководства в системе менеджмента качества
- •Документация
- •Оценивание систем менеджмента качества
- •Постоянное улучшение
- •Роль статистических методов
- •Направленность систем менеджмента качества и других систем менеджмента
- •Взаимосвязь между системами менеджмента качества и моделями совершенства
- •Гост р исо/мэк то 15504
- •Область применения
- •Состав исо/мэк то 15504
- •Принцип 1 – Ориентация организации на потребителя (Customer-FocusedOrganization)
- •Принцип 2 – Лидерство (Leadership)
- •Принцип 3 – Вовлечение персонала (Involvement of People)
- •Принцип 4 – Процессный подход (Process Approach)
- •Принцип 5 – Системный подход к административному управлению (System Approach to Management)
- •Принцип 6 – Непрерывное усовершенствование (Continual Improvement)
- •Принцип 7 – Основанный на фактах подход к принятию решений (FactualApproachtoDecisionMaking)
- •Принцип 8 – Взаимовыгодные отношения с поставщиками (Mutually beneficial supplier relationship)
- •Гост р исо/мэк 12207-99. Информационная технология. Процессы жизненного цикла программных средств
- •Введение
- •Область применения Назначение
- •Область распространения
- •Адаптация настоящего стандарта
- •Соответствие
- •Ограничения
- •Прикладное применение настоящего стандарта
- •Построение стандарта
- •Анализ проблемы и постановка задачи
- •Введение в системный анализ
- •Системные ресурсы
- •Анализ проблемы и моделирование предметной области с использованием системного подхода
- •Основные положения
- •Этап 1. Достижение соглашения об определении проблемы
- •Этап 2. Выделение основных причин – проблем, стоящих за проблемой
- •Устранение корневых причин
- •Этап 3. Выявление заинтересованных лиц и пользователей
- •Этап 4. Определение границ системы-решения
- •Этап 5. Выявление ограничений, налагаемых на решение
- •МетодологияAris
- •Организационная модель
- •Диаграмма цепочки добавленного качества
- •МоделиeEpc
- •Стандарты idef0 - idef3
- •Методология описания бизнес процессовIdef3
- •Синтаксис и семантика моделей idef3 Модели idef3
- •Диаграммы
- •Единица работы. Действие
- •Соединения
- •Декомпозиция действий
- •Требования idef3 к описанию бизнес-процессов
- •Определение сценария, границ моделирования, точки зрения
- •Определение действий и объектов
- •Последовательность и параллельность
- •Методология функционального моделированияIdef0
- •Синтаксис и семантика моделейIdef0 Модели idef0
- •Действия
- •Границы и связи
- •Туннели
- •Построение моделей idef0
- •Диаграммы
- •Цикл "эксперт-аналитик"
- •Построение моделей
- •Точка зрения
- •Границы моделирования
- •Выбор наименования контекстного блока
- •Определение стрелок на контекстной диаграмме
- •Нумерация блоков и диаграмм
- •Связь между диаграммой и ее родительским функциональным блоком
- •Два подхода к началу моделирования ("в ширину" и "в глубину")
- •Анализ требований и их формализация
- •Методы определения требований
- •Интервьюирование
- •Этапы проведения интервью
- •Мозговой штурм и отбор идей
- •Генерация идей
- •Отбор идей
- •Совместная разработка приложений (jad –Jointapplication design)
- •Роли в сеансах jad
- •Недостатки метода jad
- •Раскадровка
- •Типы раскадровок
- •Обыгрывание ролей
- •Суть метода обыгрывания ролей
- •Сценарный просмотр
- •Crc-карточки (Class-Responsibility-Collaboration, класс-обязанность-взаимодействие)
- •Быстрое прототипирование
- •Формализация требований
- •Метод вариантов использования и его применение
- •Построение модели вариантов использования
- •Спецификация вариантов использования Определение потока событий
- •Альтернативный поток событий.
- •Выявление пред- и постусловий
- •Преимущества
- •Псевдокод
- •Конечные автоматы
- •Графические деревья решений
- •Диаграммы деятельности
- •Техническое задание (гост 34.602-89)
- •Общие сведения
- •Назначение и цели создания (развития) системы
- •Требования к численности и квалификации персонала на ас
- •Требования к защите информации от несанкционированного доступа
- •Дополнительные требования
- •Требования к функциям (задачам)
- •Требования к видам обеспечения
- •Требования к математическому обеспечению системы
- •Требования к информационному обеспечению
- •Требования к лингвистическому обеспечению
- •Требования к программному обеспечению
- •Требования к техническому обеспечению
- •Требования к метрологическому обеспечению
- •Требования к организационному обеспечению
- •Требования к методическому обеспечению сапр
- •Состав и содержание работ по созданию системы
- •Порядок контроля и приемки системы
- •Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
- •Требования к документированию
- •Источники разработки
- •Архитектуры программных систем
- •Планирование архитектуры
- •Архитектурно-экономический цикл
- •Программный процесс и архитектурно-экономический цикл
- •Этапы разработки архитектуры
- •Создание экономической модели системы
- •Выявление требований
- •Создание или выбор архитектуры
- •Распространение сведений об архитектуре
- •Анализ или оценка архитектуры
- •Суть программной архитектуры
- •Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
- •Архитектурные структуры и представления
- •Программные структуры
- •Компонент и соединитель
- •Распределение
- •Проектирование архитектуры
- •Атрибутный метод проектирования
- •Этапы add
- •Создание макета системы
- •Документирование программной архитектуры
- •Варианты применения архитектурной документации
- •Представления
- •Выбор значимых представлений
- •Документирование представления
- •Документирование поведения
- •Документирование интерфейсов
- •Шаблон для документирования интерфейсов
- •Методы анализа архитектуры
- •Метод анализа компромиссных архитектурных решений – комплексный подход к оценке архитектуры
- •Этапы атам
- •Метод анализа стоимости и эффективности — количественный подход к принятию архитектурно-проектных решений
- •Контекст принятия решений
- •Реализация свам
- •Технология mda.
- •Использование архитектуры, управляемой моделью
- •Концепция архитектуры, управляемой моделью
- •Модельные точки зрения и моделиMda
- •Язык объектных ограниченийOcl
- •Типы данных и операцииOcl
- •Инфиксная форма записи выраженийOcl
- •Последовательности доступа к объектам в языкеOcl
- •Операции над коллекциями
- •Стандартные операции
- •Операция select
- •Операция reject
- •Выделение элементов коллекции
- •Упорядочение набора
- •Логические итераторы
- •Операции для работы со строками
- •Работа с датами
- •Возможности технологииEco
- •Введение в технологию есо
- •Модель есо
- •Пространство имен есо
- •Разработка приложений на основеEco
- •Этапы создания приложения по технологииEco
- •Создание простого mda-приложения
- •Создание модели uml
- •Создание интерфейса
- •Связывание интерфейса с моделью
- •Создание логики на ocl
- •Документирование программных систем в соответствии с гост
- •Управление документированием программного обеспечения
- •Предисловие
- •Область применения
- •Роль руководителей
- •Функции программной документации
- •Информация для управления
- •Связь между задачами
- •Обеспечение качества
- •Определение стандартов и руководств по документированию
- •Выбор модели жизненного цикла программного обеспечения
- •Определение типов и содержания документов
- •Документация разработки
- •Документация продукции
- •Документация управления проектом
- •Определение качества документов
- •Определение форматов документов
- •Определение системы обозначения документов
- •Установление процедуры документирования
- •Распределение ресурсов для документирования
- •Персонал
- •Средства
- •Финансирование
- •Планирование документирования
- •Требования к содержанию документов на автоматизированные системы
- •Общие положения
- •Требования к содержанию документов по общесистемным решениям
- •Ведомость эскизного (технического) проекта
- •Пояснительные записки к эскизному, техническому проектам
- •Описание автоматизируемых функций
- •Описание постановки задачи (комплекса задач)
- •Локальная смета и локальный сметный расчет
- •Паспорт
- •Формуляр
- •Проектная оценка надежности системы
- •Общее описание системы
- •Программа и методика испытаний (компонентов, комплексов средств автоматизации, подсистем, систем)
- •Требования к содержанию документов с решениями по организационному обеспечению
- •Описание организационной структуры
- •Методика (технология) автоматизированного проектирования
- •Технологическая инструкция
- •Руководство пользователя
- •Описание технологического процесса обработки данных
- •Требования к содержанию документов с решениями по программному обеспечению
- •Описание программного обеспечения
- •Другие разделы
- •Принципы разработки руководства программиста
- •Общие положения
- •Содержание разделов
- •Разработка руководства пользователя
- •Общие замечания
- •Содержание разделов руководства
- •Общие сведения
- •Описание применения
- •Требования к процедурам функционирования системы
- •Заключение
- •Библиографический список
Порядок контроля и приемки системы
В данном разделе указывают: виды, состав, объем и методы испытаний системы и ее составных частей (виды испытаний в соответствии с действующими нормами, распространяющимися на разрабатываемую систему); общие требования к приемке работ по стадиям (перечень участвующих предприятий и организаций, место и сроки проведения), порядок согласования и утверждения приемочной документации; ЗУ статус приемочной комиссии (государственная, межведомственная, ведомственная).
Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
В данном разделе необходимо привести перечень основных мероприятий и их исполнителей, которые Следует выполнить при подготовке объекта автоматизации к вводу АС в действие.
В перечень основных мероприятий включают: приведение поступающей в систему информации (в соответствии с' требованиями к информационному и лингвистическому обеспечению) к виду, пригодному для обработки с помощью ЭВМ; изменения, которые необходимо осуществить в объекте автоматизации; создание условий функционирования объекта автоматизации, при которых гарантируется соответствие создаваемой системы требованиям, содержащимся в ТЗ; создание необходимых для функционирования системы подразделений и служб; сроки и порядок комплектования штатов и обучения персонала.
Например, для АСУ приводят: изменения применяемых методов управления; создание условий для работы компонентов АСУ, при которых гарантируется соответствие системы требованиям, содержащимся в ТЗ.
Требования к документированию
В данном разделе приводят: согласованный разработчиком и Заказчиком системы перечень подлежащих разработке комплектов и видов документов, соответствующих требованиям ГОСТ 34.201 и НТД отрасли заказчика; перечень документов, выпускаемых на машинных носителях; требования к микрофильмированию документации; требования по документированию комплектующих элементов межотраслевого применения в соответствии с требованиями ЕСКД и ЕСПД; при отсутствии государственных стандартов, определяющих требования к документированию элементов системы, дополнительно включают требования к составу и содержанию таких документов.
Источники разработки
В данном разделе должны быть перечислены документы и информационные материалы (технико-экономическое обоснование, отчеты о законченных научно-исследовательских работах, информационные материалы на отечественные, зарубежные системы-аналоги и др.), на основании которых разрабатывалось ТЗ и которые должны быть использованы при создании системы.
Архитектуры программных систем
Планирование архитектуры
Современные методы разработки программного обеспечения предполагают обратную связь между всеми действующими лицами, от проектировщика до аналитика. Все эти лица являются участниками процесса создания архитектуры программной системы. Под архитектурой системы будем понимать структуру компонентов программной системы, взаимосвязи, а также принципы и нормы их проектирования и развития во времени. Прежде чем начать изучение процесса планирования архитектуры, давайте познакомимся с понятием архитектурно-экономического цикла (АЭЦ).
Архитектурно-экономический цикл
Взаимоотношений между производственными задачами, требованиями к продукту, опытом архитектора, архитектурами и созданными системами образуют цикл с цепями обратной связи. Упомянутые цепи обратной связи изображены на рис. 5.1. Частично обратная связь поступает от самой архитектуры, частично – от построенной на ее основе системы.
Рисунок 4.1 – Архитектурно-экономический цикл (АЭЦ)
Цикл этот выглядит следующим образом.
1. Архитектура влияет на структуру компании-разработчика. Архитектура обусловливает структуру системы; в частности (в этом мы сможем убедиться), она устанавливает набор блоков программного обеспечения, которое надлежит реализовать (или обеспечить их наличие другим путем), а затем интегрировать в рамках системы. Эти блоки составляют основу разработки структуры проекта. Группы разработчиков укомплектовываются именно по блокам; операции в рамках процессов разработки, тестирования и интеграции также выполняются в отношении блоков. Согласно графикам и бюджетам, ресурсы выделяются частями в расчете на отдельные блоки. Если компания наработала опыт конструирования семейств сходных систем, она будет вкладывать средства в повышение профессионального уровня участников сформированных по блокам групп разработчиков. Следовательно, группы встраиваются в структуру организации. Такой представляется обратная связь от архитектуры к компании-разработчику.
2. Архитектура способна оказывать воздействие на задачи компании-разработчика. Сконструированная на ее основе успешная система предоставляет компании возможность укрепиться в данном сегменте рынка. Такая архитектура предусматривает дальнейшее эффективное производство и размещение сходных систем, вследствие чего компания может откорректировать свои задачи и, воспользовавшись новым преимуществом, занять рыночную нишу. Так выглядит обратная связь от системы к компании-разработчику и конструируемым ею системам.
3. Архитектура может оказывать воздействие на требования, выдвигаемые заказчиком относительно следующей системы, — ее (если она основана на той же архитектуре, что и предыдущая) он может получить в более надеж ном варианте, быстрее и экономичнее, чем в том случае, если бы она конструировалась «с чистого листа». Возможно, заказчик откажется от некоторых требований в пользу повышения экономичности. Готовые программные продукты несколько изменили требования, предъявляемые заказчиками, — не предназначенные для удовлетворения индивидуальных потребностей, они недороги и отличаются высоким качеством. На заказчиков, не слишком гибких по части своих требований, аналогичное воз действие оказывают линейки продуктов.
4. Процесс конструирования систем пополняет опыт архитектора, который он может применить при работе над последующими архитектурами, и, соответственно, расширяет базу опыта компании. Успех системы, построенной на основе инструментальных магистралей, .NET или инкапсулированных конечных автоматов, стимулирует построение аналогичных систем в дальнейшем. С другой стороны, неудачные варианты архитектуры редко используются повторно.
5. Иногда оказать сильное воздействие, и даже внести изменения в культуру программной инженерии (техническую базу, в рамках которой обучаются и работают конструкторы), способны отдельные системы. Такой эффект на индустрию в 1960-х и начале 1970-х годов оказали первые реляционные базы данных, генераторы компиляторов и табличные операционные системы; в 1980-х — первые электронные таблицы и системы управления окнами. В 1990-х годах в качестве такого рода катализатора выступила Всемирная паутина — с ней, между прочим, связан конкретный пример, приведенный в главе 13. В главе 16 мы предполагаем, что в первом десятилетии XXI века аналогичный эффект окажет J2EE. Подобные инновации всегда находят отражение в последующих системах.
Из этих и некоторых других механизмов обратной связи и образуется архитектурно-экономический цикл. На рисунке 11.1 изображены факторы влияния культуры и экономики компании-разработчика на программную архитектуру. В свою очередь архитектура оказывается основным определяющим фактором при задании свойств разрабатываемой системы или систем.