- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •РАЗДЕЛ 1. ВВЕДЕНИЕ В ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ
- •1.1. Основные понятия и определения
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •2.2.1. Общие сведения о каскадных моделях
- •2.2.2. Классическая каскадная модель
- •2.2.3. Каскадная модель с обратными связями
- •2.2.5. V-образная модель
- •2.3.1. Базовая RAD-модель
- •2.5.5. Спиральная модель Боэма
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 3. ВЫБОР МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ДЛЯ КОНКРЕТНОГО ПРОЕКТА
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 4. КЛАССИЧЕСКИЕ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ
- •4.1. Структурное программирование
- •4.3. Методы нисходящего проектирования
- •4.3.1. Пошаговое уточнение
- •4.3.4. Анализ сообщений
- •4.4. Методы восходящего проектирования
- •4.5. Методы расширения ядра
- •4.6. Метод JSP Джексона
- •4.6.1. Основные конструкции данных
- •4.6.2. Построение структур данных
- •4.6.3. Проектирование структур программ
- •4.7.1. Связность модуля
- •4.7.2. Сцепление модулей
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 5. CASE-ТЕХНОЛОГИИ СТРУКТУРНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ
- •5.1. Общие сведения о CASE-технологиях
- •5.2.1. Общие сведения о методологии SADT
- •5.2.2. Основные понятия IDEF0-модели
- •5.2.3. Синтаксис IDEF0-диаграмм
- •5.2.4. Синтаксис IDEF0-моделей
- •5.3.1. Основные понятия DFD-модели
- •5.3.2. Синтаксис DFD-диаграмм
- •5.3.3. Синтаксис DFD-моделей
- •5.4.3. Атрибуты
- •5.4.5. Правила атрибутов
- •5.4.9. Формализация соединительных связей
- •5.4.11. Неспецифические связи
- •5.4.13. Связи категоризации в IDEF1X
- •5.5.1. Метод JSD Джексона
- •5.5.2. Диаграммы Варнье–Орра
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •6.1.3. Основы языка UML
- •6.3. Диаграмма вариантов использования
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 7. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •7.1. История развития CASE-средств
- •7.4. Классификация CASE-средств
- •7.4.1. Классификация по типам
- •7.4.2. Классификация по категориям
- •7.4.3. Классификация по уровням
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •ЛИТЕРАТУРА
ВВЕДЕНИЕ
Внастоящее время во все сферы деятельности человека широко внедряются информационные технологии. Это приводит к разработке огромного количества программных средств (ПС) различного функционального назначения. При этом объем и сложность используемых ПС постоянно возрастают.
Вэтой связи многие подходы к разработке ПС, применяемые на начальных этапах развития вычислительной техники, теряют свои позиции, поскольку не позволяют в полной мере получить ПС необходимого уровня качества за заданный промежуток времени при ограниченных финансовых, людских и технических ресурсах. Связано это с рядом причин.
Во-первых, интуитивный поход к разработке ПС, основанный на знаниях, умениях и талантах отдельных программистов-одиночек, не позволяет разрабатывать сложные ПС и противоречит принципам их коллективной разработки.
Во-вторых, использование коллективных методов разработки требует структурированного подхода к понятиям жизненного цикла (ЖЦ) и модели жизненного цикла программных средств (ЖЦ ПС). В противном случае возникают существенные риски не довести проект до конца или не получить продукт
сзаданными свойствами.
В-третьих, используемые методологии разработки ПС с ростом сложности и критичности последних перестают удовлетворять целям и задачам, стоящим перед их разработчиками.
В-четвертых, рост сложности и объема разрабатываемых ПС автоматически приводит к появлению достаточно сложных в применении методологий анализа, проектирования и последующих этапов разработки. Использование таких методологий становится невозможным без применения инструментальных средств их поддержки.
Вышеназванные причины зачастую приводят к неудовлетворительным результатам выполнения проектов.
Для иллюстрации вышесказанного приведем некоторые данные статисти-
ки [37, 18].
Известно, что 30 – 40 % проектов по разработке ПС не доходят до завершения. Около 70 % всех проектов реализуют поставленные задачи не полностью. Средний проект завершается с опозданием на 220 %.
В 10 % проектов результат не соответствует требованиям. В 12 % заказчик недостаточно привлекался к работе, чтобы обеспечить требуемые характеристики продукта. В 22 % проектов не все вносимые изменения принимались во внимание.
Поэтому в последние десятилетия во всем мире ведущими специалистами в области теории и практики программного обеспечения (ПО) активно выполняются работы по усовершенствованию подходов к разработке ПС. Эти работы ведутся в различных направлениях. Основными из них являются следующие.
7
Стандартизация жизненного цикла программных средств. В настоящее время разрабатывается и постоянно обновляется большое количество международных и национальных стандартов, посвященных различным аспектам ЖЦ ПС. В 2008 г. Международной организацией по стандартизации ИСО принята вторая редакция основного в данном направлении международного стандарта
ISO/IEC 12207:2008 – Системная и программная инженерия – Процессы жиз-
ненного цикла программных средств. В Республике Беларусь действует нацио-
нальный стандарт СТБ ИСО/МЭК 12207–2003 – Информационная технология – Процессы жизненного цикла программных средств, являющийся аутентичным аналогом первой редакции международного стандарта ISO/IEC 12207:1995.
Структуризация моделей жизненного цикла программных средств. С
80-х г. XX в. ведутся работы по усовершенствованию стратегий разработки ПС и созданию моделей ЖЦ, реализующих данные стратегии. В настоящее время широко используются три базовые стратегии разработки ПС: каскадная, инкрементная, эволюционная. Разработано большое количество моделей ЖЦ, реализующих данные стратегии.
Разработка методов выбора моделей жизненного цикла. К настоящему моменту разработан ряд методик и процедур выбора моделей ЖЦ, исходя из условий и характеристик конкретного проекта.
Создание методологий анализа и проектирования программных средств.
В настоящее время создано большое количество методологий, направленных в первую очередь на начальные этапы процесса разработки ПС – анализ предметной области, разработку требований к системе и ПС, проектирование системы и ПС.
Разработка инструментальных средств поддержки современных методологий разработки программных средств и систем. С 80-х г. ХХ в. бурно раз-
виваются CASE-средства, предназначенные для автоматизации процессов ЖЦ ПС и систем. К настоящему времени многими компаниями разработаны линейки CASE-средств, поддерживающие практически весь ЖЦ ПС и систем.
Управление качеством разрабатываемых программных средств. Основу управления качеством составляет оценка качества ПС. В настоящее время ведутся активные работы в области стандартизации оценки качества ПС и их сертификации. Основными международными стандартами, регламентирующими вопросы качества ПС и их оценки, являются следующие серии стандартов:
ISO/IEC 9126–1–4:2001–2004 – Программная инженерия – Качество продукта;
ISO/IEC 14598–1–6:1998–2001 – Информационная (программная) ин-
женерия – Оценка программного продукта.
Внастоящее время разрабатывается серия стандартов ISO/IEC 250ХХ – Разработка программного обеспечения – Требования к качеству и оценка про-
граммного продукта (SQuaRE). Стандарты данной серии призваны заменить две вышеназванные серии стандартов.
Вопросы стандартизации ЖЦ ПС и оценки качества ПС подробно рас-
8
смотрены в предыдущем учебном пособии авторов «Стандартизация и сертификация программного обеспечения» [15].
Вданном учебном пособии рассматриваются остальные вопросы процесса разработки и технологий разработки ПС.
С учетом изложенного сформирована структура учебного пособия. Пособие состоит из семи разделов.
Впервом разделе рассматриваются основные понятия и определения в области технологий разработки ПС и систем. Кратко описываются процессы ЖЦ ПС и систем, регламентированные стандартом СТБ ИСО/МЭК 12207–2003.
Второй раздел посвящен стратегиям разработки ПС и систем. Проанализированы три базовые стратегии разработки: каскадная, инкрементная, эволюционная. Рассмотрены модели ЖЦ ПС и систем, реализующие данные стратегии, оценены их достоинства, недостатки и области применения.
Втретьем разделе рассмотрены принципы выбора модели ЖЦ ПС и систем, исходя из условий конкретного проекта. Приведена классификация проектов и процедура выбора модели ЖЦ, предложенные Институтом качества про-
граммного обеспечения SQI (Software Quality Institute, США).
Четвертый раздел посвящен рассмотрению классических методологий структурного проектирования ПС. Рассмотрены общие принципы и методы реализации структурного программирования, модульного проектирования, нисходящего проектирования, методов расширения ядра. Данные методологии являются основой ряда современных методологий и технологий разработки ПС. Описаны такие характеристики структурного разбиения программ на модули, как связность и сцепление.
Впятом разделе описываются CASE-технологии структурного анализа и проектирования ПС. Даны общие сведения о CASE-технологиях. Детально рассмотрены широко используемые методологии функционального моделирования IDEF0, структурного анализа потоков данных DFD, информационного моделирования IDEF1X. Описаны метод JSD Джексона и диаграммы Варнье–Орра.
Вшестом разделе приведены основы объектно-ориентированного анализа и проектирования. Подробно рассмотрены правила построения диаграмм вариантов использования.
Седьмой раздел посвящен рассмотрению инструментальных средств разработки ПО. Описаны основы CASE-средств, их состав и функциональные возможности, дана классификация CASE-средств. Рассмотрены линейки инструментальных средств Telelogic и AllFusion, предназначенные для автоматизации ЖЦ организаций, систем и ПС.
Впособии используются следующие сокращения:
ЖЦ – жизненный цикл; ПО – программное обеспечение; ПС – программные средства.
9
