Добавлен: 29.06.2023
Просмотров: 601
Скачиваний: 15
СОДЕРЖАНИЕ
Глава 1. Теоретические основы программного обеспечения
1.1. Понятие программного обеспечения
1.2. Классификация программного обеспечения
1.3. Основы программного проектирования
Глава 2. Модели и типы жизненных циклов программного проекта
2.1. Характеристика жизненного цикла программы
2.2. Организационные процессы жизненного цикла программного продукта
2.3. Модели жизненного цикла программных продуктов
Глава 3. Выбор модели жизненного цикла программного проекта
Институтом качества программного обеспечения SQI (Software Quality Institute, США) специально для выбора модели жизненного цикла предложена схема классификации проектов по разработке программного обеспечения и систем[27]. Основу данной классификации составляют четыре категории критериев. По каждому критерию проекты подразделяются на два альтернативных класса.
Критерии классификации проектов, предложенные Институтом SQI, объединены в следующие категории.
1. Характеристики требований к проекту.
Критерии данной категории классифицируют проекты в зависимости от свойств требований пользователя (заказчика) к разрабатываемой системе или программному средству. Например, известны ли требования к началу проекта, сложны ли они, будут ли они изменяться.
2. Характеристики команды разработчиков.
Чтобы иметь возможность пользоваться критериями данной категории классификации проектов, состав команды разработчиков необходимо сформировать до выбора модели жизненного цикла. Характеристики команды разработчиков играют важную роль при выборе модели жизненного цикла, поскольку разработчики несут основную ответственность за успешную реализацию проекта. В первую очередь следует учитывать квалификацию разработчиков, их знакомство с предметной областью, инструментальными средствами разработки и т.п.
3. Характеристики пользователей (заказчиков).
Чтобы иметь возможность пользоваться критериями данной категории классификации проектов, до выбора модели жизненного цикла необходимо определить возможную степень участия пользователей (заказчиков) в процессе разработки и их взаимосвязь с командой разработчиков на протяжении проекта. Это важно, поскольку отдельные модели жизненного цикла требуют усиленного участия пользователей в процессе разработки. Выбор таких моделей при отсутствии реальной возможности пользователей участвовать в проекте приведет к существенному снижению качества результатов разработки.
4. Характеристики типов проектов и рисков.
В некоторых моделях в достаточно высокой степени предусмотрено управление рисками. В других моделях управление рисками вообще не предусматривается. Поэтому при выборе модели жизненного цикла следует учитывать реальные риски проекта, критичность и сложность продуктов разработки. Критерии данной категории отражают различные виды рисков, в том числе связанные со сложностью проекта, достаточностью ресурсов для его исполнения, учитывают график проекта и т.д. С учетом этого обеспечивается выбор модели, минимизирующей выявленные риски.
Следует отметить, что данная классификация проектов, направленная на обоснованный выбор модели жизненного цикла, применима для достаточно масштабных проектов по разработке программного обеспечения и систем. Использование данной классификации и основанной на ней процедуры выбора модели жизненного цикла для небольших проектов может привести к чрезмерному увеличению графика проекта, дополнительным затратам и дополнительным рискам. Таким образом, руководитель проекта должен чётко представлять себе масштаб проекта и необходимость его классификации для выбора модели жизненного цикла в соответствии с критериями, предложенными Институтом SQI.
Для выбора подходящей к условиям конкретного проекта модели жизненного цикла программного обеспечения и систем SQI рекомендуется использовать специальную процедуру. Данная процедура базируется на применении четырех таблиц вопросов. Примеры вопросов приведены в Приложении 1-4.
Каждая из табл. в Приложениях 1-4 представляет одну из категорий классификации проектов. Каждый из вопросов (строка в таблице) предназна- чен для классификации анализируемого проекта по определенному критерию категории. Столбцы данных таблиц соответствуют обобщенным моделям жизненного цикла, фактически представляющим стратегии разработки программного обеспечения. При этом под RAD-моделью подразумевается независимая RAD-модель, не встроенная в другие модели жизненного цикла.
Рассматриваемая процедура состоит из следующей последовательности шагов:
1-й шаг. Проанализировать отличительные черты проекта по критериям категорий, представленным в виде вопросов.
2-й шаг. Ответить на вопросы по анализируемому проекту, отметив слова «да» или «нет» в соответствующих строках табл. Приложений 1-4. Если слов «да» или «нет» в строке несколько, необходимо отметить все из них (все «да» или все «нет»). В качестве примера в табл. Приложения 1 выделены варианты ответов для проекта разработки сложного и критичного программного средства, требования к кото- рому заранее не известны и будут уточняться по ходу разработки.
3-й шаг. Расположить по степени важности категории (таблицы) и/или критерии, относящиеся к каждой категории (вопросы внутри таблиц), относительно проекта, для которого выбирается модель жизненного цикла.
4-й шаг. Выбрать из моделей (см. табл. Приложений 1-4) ту модель, которая соответствует столбцу с наибольшим количеством отмеченных ответов с учетом их степени важности (с наибольшим количеством отмеченных ответов в верхней части приоритетных таблиц). Выбранная модель жизненного цикла является наиболее приемлемой для анализируемого проекта.
Для рассмотренного примера на основе результатов заполнения табл. Приложения 1 наиболее подходящими являются модели быстрого прототипирования и эволюционные модели. Уточнение выбора модели следует производить по результатам анализа табл. Приложений 1-4.
Таким образом, процедура выбора модели жизненного цикла программного обеспечения и систем Института SQI базируется на применении четырех таблиц вопросов, соответствующих предложенной данным институтом классификации проектов. По каждому из вопросов необходимо выделить ответы, соответствующие конкретному проекту, и выбрать модель с наибольшим количеством отмеченных ответов.
Заключение
Под моделью жизненного цикла программного обеспечения понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении жизненного цикла.
Модель жизненного цикла зависит от специфики, масштаба и сложности проекта и специфики условий, в которых система создается и функционирует.
Обобщенный жизненный цикл можно представить в виде следующей последовательности этапов, которые, в свою очередь, можно также разбить на стадии:
1. Планирование разработки.
2. Определение требований к системе:
- выработка требований;
- анализ требований.
3. Проектирование системы:
- проектирование архитектуры системы;
- детальное проектирование компонент системы, в т.ч. для программного обеспечения;
- общее проектирование программного обеспечения;
- проектирование отдельных программных компонент.
4. Реализация и тестирование системы:
- создание отдельных компонент системы, в т.ч. для программного обеспечения;
- создание отдельных программных модулей;
- тестирование отдельных программных модулей;
- тестирование компонент системы, в т.ч. программного обеспечения как единого компонента системы;
- интегрирование отдельных компонент в систему.
5. Выпуск системы.
6. Эксплуатация системы.
7. Завершение разработки.
Можно заметить, что в данном жизненном цикле основное внимание уделялось именно программному обеспечению, входящему в состав программной системы, но нельзя забывать, что и остальные компоненты тоже должны проектироваться и реализовываться.
Следует обратить внимание, что разбиение жизненного цикла на этапы иногда способствует затушевыванию некоторых важных аспектов создания программного обеспечения; особенно это проявляется по отношению к такому необходимому процессу, как итерационная реализация различных этапов жизненного цикла с целью исправления ошибок, изменения решений, которые оказались неправильными, или учета изменений в общих требованиях, предъявляемых к системе.
Институтом качества программного обеспечения SQI (США) специально для выбора модели жизненного цикла разработана схема классификации проектов по разработке программного обеспечения и систем. Основу данной классификации составляют четыре категории критериев: характеристики требований к проекту, характеристики команды разработчиков, характеристики пользователей (заказчиков), характеристики типов проектов и рисков. По каждому из критериев проекты подразделяются на два альтернативных класса. Данная классификация предназначена для достаточно крупных проектов.
Список литературы
- Гражданский кодекс Российской Федерации (часть четвертая) от 18.12.2006 № 230-ФЗ (ред. от 13.12.2016) // СПС «КонсультантПлюс».
- Александров А. Е., Шильманов В. П. Инструментальные средства разработки и сопровождения программного обеспечения на основе генерации кода // Бизнес-информатика. – 2015. - №4 (22). – С. 10-17.
- Бабенко Л.К. Классификация программного обеспечения на основе поведенческих признаков // Известия ЮФУ. Технические науки. – 2016. - №4. – С. 50-59.
- Барабанов А.В., Марков А.С., Цирлов В.Л. Методический аппарат анализа и синтеза комплекса мер разработки безопасного программного обеспечения // Программные продукты и системы. – 2015. - №4 (112). – С. 166-174.
- Бракоренко А.С. Тестирование и обеспечение качества программно-технических комплексов // Приборы и методы измерений. – 2014. - №2 (9). – С. 75-80.
- Гладких М.В., Кужева С. Н. Организационные аспекты разработки программного обеспечения // Вестник ОмГУ. Серия: Экономика. – 2015. - №2. – С. 109-113.
- Данилин А.О. Методология разработки программного обеспечения с использованием управляющего прототипа // Вестник ВИ МВД России. – 2016. - №1. – С. 104-111.
- Демидов Д.С. Разработка программных средств моделирования информационных систем // Известия ТулГУ. Технические науки. – 2014. - №9-2. – С. 28-35.
- Домарацкий А.Н., Ласточкин Н.К. Жизненный цикл разработки программных изделий // Программные продукты и системы. – 2015. - №4. – С. 2-7.
- Карпов В.В., Карпов А.В. Особенности применения современных методов разработки программного обеспечения защищенных автоматизированных систем // Программные продукты и системы. – 2016. - №1 (113). – С. 5-12.
- Кочкаров Р.А. Жизненный цикл целевой программы // Известия ЮФУ. Технические науки. – 2016. - №1 (138). – С. 227-235.
- Мансурова Н.А., Веселов П.С. Предпосылки и этапы внедрения программного обеспечения на предприятиях // Экономические исследования. – 2016. - №1. – С. 35-41.
- Матвеев А.А. Программное обеспечение и этапы внедрения организационно-технических комплексов проектирования судов // Вестник государственного университета морского и речного флота им. адмирала С.О. Макарова. – 2014. - №2 (24). – С. 162-172.
- Орлик С.В. Модели жизненного цикла программного обеспечения // Ученые записки РГСУ. – 2016. - №9. – С. 234-239.
- Петриева О.В. Проектирование программного обеспечения информационной системы // 2016. - №3. – С. 55-56.
- Романов В.Ю. Анализ и визуализация эволюции программного обеспечения // International Journal of Open Information Technologies. – 2016. - №9. – С. 64-73.
- Силуянов А.В. Информационное и программное обеспечение автоматизированного проектирования интеллектуального здания // Электротехнические и информационные комплексы и системы. – 2015. - №1. – С. 14-21.
- Хруставлев Е.Ю. Моделирование жизненного цикла программы создания наукоемкой продукции // Экономический анализ: теория и практика. – 2017. - №1. – С. 2-12.
- Чумакова Т.Я., Цыганенко С.М. Международные стандарты и жизненные циклы программного обеспечения // ММС. – 2014. - №3. – С. 144-150.
- Чупрынова К.С., Заходякин Г.В. Разработка проекта внедрения автоматизированной системы управления // Успехи в химии и химической технологии. – 2015. - №9 (149). – С. 80-84.
- A Unified Reference Model for the Processes of Software and System Life Cycles [Электронный документ] // School of Information and Communication Technology. – Режим доступа: http://www.ict.griffith.edu.au/~bernus/taskforce/Meetings/brisbane98/technicalprogramme/pos-ppr/terryrout.html (дата обращения: 07.03.2017).
- IEEE Std 829—2008 IEEE Standard for Software and System Test Documentation [Электронный документ] // IEEE.org. – Режим доступа: https://standards.ieee.org/findstds/standard/829-2008.html (дата обращения: 07.03.2017).
- ISO/IEC 26514:2008(en) Systems and software engineering – Requirements for designers and developers of user documentation [Электронный документ] // ISO. – Режим доступа: https://www.iso.org/obp/ui/#iso:std:iso-iec:26514:ed-1:v1:en (дата обращения: 07.03.2017).
- ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения [Электронный документ] // ТехЭксперт. – Режим доступа: http://docs.cntd.ru/document/gost-19781-90: 07.03.2017).
- Термины и определения стандарта ISO/IEC 2382-1 [Электронный документ] // morePC. – Режим доступа: http://www.morepc.ru/informatisation/iso2381-1.html (дата обращения: 07.03.2017).
Приложения
Приложение 1
Выбор модели жизненного цикла на основе характеристик требований
Приложение 2
Выбор модели жизненного цикла на основе
характеристик команды разработчиков
Приложение 3
Выбор модели жизненного цикла
на основе характеристик коллектива пользователей
Приложение 4
Выбор модели жизненного цикла
на основе характеристик типа проектов и рисков
-
Термины и определения стандарта ISO/IEC 2382-1 [Электронный документ] // morePC. – Режим доступа: http://www.morepc.ru/informatisation/iso2381-1.html (дата обращения: 07.03.2017). ↑
-
IEEE Std 829-2008 IEEE Standard for Software and System Test Documentation [Электронный документ] // IEEE.org. – Режим доступа: https://standards.ieee.org/findstds/standard/829-2008.html (дата обращения: 07.03.2017). ↑
-
ISO/IEC 26514:2008(en) Systems and software engineering – Requirements for designers and developers of user documentation [Электронный документ] // ISO. – Режим доступа: https://www.iso.org/obp/ui/#iso:std:iso-iec:26514:ed-1:v1:en (дата обращения: 07.03.2017)/ ↑
-
ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения [Электронный документ] // ТехЭксперт. – Режим доступа: http://docs.cntd.ru/document/gost-19781-90: 07.03.2017). ↑
-
Барабанов А.В., Марков А.С., Цирлов В.Л. Методический аппарат анализа и синтеза комплекса мер разработки безопасного программного обеспечения // Программные продукты и системы. – 2015. - №4 (112). – С. 166/ ↑
-
Александров А. Е., Шильманов В. П. Инструментальные средства разработки и сопровождения программного обеспечения на основе генерации кода // Бизнес-информатика. – 2015. - №4 (22). – С. 12. ↑
-
Бабенко Л.К. Классификация программного обеспечения на основе поведенческих признаков // Известия ЮФУ. Технические науки. – 2016. - №4. – С. 53. ↑
-
Гражданский кодекс Российской Федерации (часть четвертая) от 18.12.2006 № 230-ФЗ (ред. от 13.12.2016) // СПС «КонсультантПлюс». ↑
-
Романов В.Ю. Анализ и визуализация эволюции программного обеспечения // International Journal of Open Information Technologies. – 2016. - №9. – С. 67. ↑
-
Петриева О.В. Проектирование программного обеспечения информационной системы // 2016. - №3. – С. 55. ↑
-
Силуянов А.В. Информационное и программное обеспечение автоматизированного проектирования интеллектуального здания // Электротехнические и информационные комплексы и системы. – 2015. - №1. – С. 16. ↑
-
Матвеев А.А. Программное обеспечение и этапы внедрения организационно-технических комплексов проектирования судов // Вестник государственного университета морского и речного флота им. адмирала С.О. Макарова. – 2014. - №2 (24). – С. 166. ↑
-
Демидов Д.С. Разработка программных средств моделирования информационных систем // Известия ТулГУ. Технические науки. – 2014. - №9-2. – С. 30. ↑
-
Бракоренко А.С. Тестирование и обеспечение качества программно-технических комплексов // Приборы и методы измерений. – 2014. - №2 (9). – С. 74. ↑
-
Чупрынова К.С., Заходякин Г.В. Разработка проекта внедрения автоматизированной системы управления // Успехи в химии и химической технологии. – 2015. - №9 (149). – С. 82. ↑
-
Кочкаров Р.А. Жизненный цикл целевой программы // Известия ЮФУ. Технические науки. – 2016. - №1 (138). – С. 227. ↑
-
Хруставлев Е.Ю. Моделирование жизненного цикла программы создания наукоемкой продукции // Экономический анализ: теория и практика. – 2017. - №1. – С. 4. ↑
-
Мансурова Н.А., Веселов П.С. Предпосылки и этапы внедрения программного обеспечения на предприятиях // Экономические исследования. – 2016. - №1. – С. 38. ↑
-
Гладких М.В., Кужева С. Н. Организационные аспекты разработки программного обеспечения // Вестник ОмГУ. Серия: Экономика. – 2015. - №2. – С. 111. ↑
-
Карпов В.В., Карпов А.В. Особенности применения современных методов разработки программного обеспечения защищенных автоматизированных систем // Программные продукты и системы. – 2016. - №1 (113). – С. 8. ↑
-
Чумакова Т.Я., Цыганенко С.М. Международные стандарты и жизненные циклы программного обеспечения // ММС. – 2014. - №3. – С. 148. ↑
-
Орлик С.В. Модели жизненного цикла программного обеспечения // Ученые записки РГСУ. – 2016. - №9. – С. 236. ↑
-
Данилин А.О. Методология разработки программного обеспечения с использованием управляющего прототипа // Вестник ВИ МВД России. – 2016. - №1. – С. 107. ↑
-
Домарацкий А.Н., Ласточкин Н.К. Жизненный цикл разработки программных изделий // Программные продукты и системы. – 2015. - №4. – С. 4. ↑
-
Орлик С.В. Указ. соч. – С. 237. ↑
-
Чумакова Т.Я., Цыганенко С.М. Указ. соч. – С. 149. ↑
-
A Unified Reference Model for the Processes of Software and System Life Cycles [Электронный документ] // School of Information and Communication Technology. – Режим доступа: http://www.ict.griffith.edu.au/~bernus/taskforce/Meetings/brisbane98/technicalprogramme/pos-ppr/terryrout.html (дата обращения: 07.03.2017). ↑