Программная инженерия в жизненном цикле программных средств
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ПРОГРАММНАЯ
ИНЖЕНЕРИЯ В
ЖИЗНЕННОМ ЦИКЛЕ
ПРОГРАММНЫХ
СРЕДСТВ
Жизненный цикл конкретной
системы:
определение потребностей;
исследование и описание основных концепций;
проектирование и разработка;
испытания системы;
создание и производство;
распространение и продажа;
эксплуатация;
сопровождение и мониторинг;
снятие с эксплуатации (утилизация)
2
Первый класс составляют относительно небольшие программы, создаваемые
одиночками или небольшими коллективами (3—5) специалистов,
которые:
создаются преимущественно для получения конкретных результатов
автоматизации научных исследований или для анализа относительно
простых процессов самими разработчиками программ;
не предназначены для массового тиражирования и распространения как
программного продукта на рынке, их оценивают качественно и
интуитивно преимущественно как «художественные произведения»;
не имеют конкретного независимого заказчика-потребителя,
определяющего требования к программам и их финансирование;
не ограничиваются заказчиком допустимой стоимостью, трудоемкостью
и сроками их создания, требованиями заданного качества и
документирования;
не подлежат независимому тестированию, гарантированию качества
и/или сертификации.
3
Второй класс
большая размерность, высокая трудоемкость и стоимость создания таких комплексов
программ определяют необходимость тщательного анализа экономической
эффективности всего их жизненного цикла и возможной конкурентоспособности на
рынке;
от заказчика, финансирующего проект программного средства и/или базы данных,
разработчикам необходимо получать квалифицированные конкретные требования к
функциям и характеристикам проекта и продукта, соответствующие выделенному
финансированию и квалификации исполнителей проекта;
для организации и координации деятельности специалистов-разработчиков при наличии
единой, крупной целевой задачи, создания и совершенствования программного продукта
необходимы квалифицированные менеджеры проектов;
в проектах таких сложных программных средств и баз данных с множеством различных
функциональных компонентов участвуют специалисты разной квалификации и
специализации, от которых требуется высокая ответственность за качество результатов
деятельности каждого из них;
от разработчиков проектов требуются гарантии высокого качества, надежности
функционирования и безопасности применения компонентов и поставляемых
программных продуктов, в которые недопустимо прямое вмешательство заказчика и
пользователей для изменений, не предусмотренных эксплуатационной документацией
разработчиков;
необходимо применять индустриальные, регламентированные стандартами процессы,
этапы и документы, а также методы, методики и комплексы, средства автоматизации,
технологии обеспечения жизненного цикла комплексов программ.
4
Множество моделей процессов жизненного цикла
систем и программных средств, в международных
стандартах обычно квалифицируются как
фундаментальные:
каскадная;
инкрементная;
эволюционная.
5
Каскадная модель жизненного цикла наиболее известна и применяется
достаточно широко. Она, по существу, реализует принцип однократного
выполнения каждого из базовых процессов и этапов в их естественных границах.
6
Каждая модель жизненного цикла содержит
некоторые процессы, которые могут быть
выполнены
последовательно,
повторно
комбинированно
7
Методы и процессы стандартизации жизненного
цикла обеспечивают:
расширение и совершенствование функций систем
и компонентов с сохранением их целостности и
первичных затрат;
систематическое повышение качества
функционирования комплексов программ и баз
данных для решения задач пользователей в
различной внешней среде;
улучшение технико-экономических характеристик
применения систем и программных продуктов;
совершенствование технологий обеспечения
жизненного цикла сложных систем и комплексов
программ.
8
Ряд современных концептуальных требований программной инженерии и формирования их жизненного
цикла:
архитектура комплекса программ должна соответствовать текущим и перспективным целям и
стратегическим, функциональным задачам создаваемой системы, быть достаточно гибкой
и допускать относительно
простое, без коренных структурных изменений, развитие и наращивание функций и ресурсов
системы в соответствии с расширением сфер и задач ее применения;
в структуре и компонентах ПС и системы следует предусматривать обеспечение максимально
возможной сохранности инвестиций в аппаратные и программные средства, а также в базы
данных при длительном развитии, сопровождении и модернизации системы;
необходимо обеспечивать эффективное использование ресурсов в ЖЦ системы и
минимизировать интегральные затраты на обработку данных в типовых режимах ее
функционирования с учетом эксплуатационных затрат и капитальных вложений в
создание системы и программного продукта;
должны быть обеспечены безопасность функционирования системы и надежная защита
данных от ошибок, от разрушения или потери информации, а также авторизация
пользователей, управление рабочей загрузкой, резервированием и оперативным
восстановлением функционирования системы и программного продукта;
для обеспечения перспективы развития жизненного цикла системы и комплекса программ
целесообразно предусматривать возможность интеграции гетерогенных вычислительных
компонентов и возможность переноса ПС и БД на различные аппаратные и
операционные платформы на основе концепции и стандартов открытых систем;
следует обеспечить комфортное обучение и максимально упрощенный доступ конечных
пользователей к управлению и результатам функционирования системы и программного
продукта на основе современных графических средств и наглядных пользовательских
интерфейсов.
9
Роль системотехники в программной
инженерии
Система — это совокупность взаимодействующих
компонентов, работающих совместно для достижения
определенных целей.
Системотехника — как технология создания систем охватывает все
аспекты создания и модернизации сложных
вычислительных комплексов, где программные продукты
играют ведущую роль
Программная инженерия — как часть системотехники охватывает
все аспекты жизненного цикла ПС от начальной стадии
разработки системных требований до завершения
использования программного продукта
10
Системные основы современных технологий
программной инженерии
В понятие современной технологии
включается совокупность методов и
инструментальных средств автоматизации, а
также технологические процессы,
обеспечивающие жизненный цикл сложных
ПС с заданными функциональными и
конструктивными характеристиками
качества.
11
Эта деятельность регламентируется рядом методов и
стандартов, которые являются компонентами
технологического обеспечения сложных ПС в
течение их жизненного цикла. Их применение
предполагает высокую дисциплину коллектива
специалистов, использование им методик,
стандартов, типовых нормативных документов и
средств автоматизации разработки, которые
регламентируют порядок организации и
проведения работ по выполнению технологических
операций, направленных на получение, в
имеющихся организационно-технических
условиях, готового программного продукта с заданными
функциями и качество
12
Методической основой технологии,
регламентирующей деятельность
специалистов, является типовой
технологический процесс
Индустриализация технологий программной
инженерии базируется на стандартизации
процессов разработки программ, их
структурного построения и интерфейсов с
операционной и внешней средой
13
Применении современных методов и
технологии обеспечения крупномасштабных
проектов ПС сосредоточены в методологии
СММ (Capability Maturity Model — система и
модель для оценки зрелости) комплекса
технологических процессов жизненного
цикла ПС, а также в ее последующем
развитии в СММ1:2003
14
Концептуальные и организационные основы
административного управления жизненным
циклом и качеством ПС в системе СММ, а
также СММ1:2003, определены в восьми
базовых принципах, которые декларированы в
стандартах ISO 9000:2000 и ISO 15504:1-9.
15
Принцип 1 — Ориентация предприятияразработчика на потребителя-заказчика.
«Предприятия зависят от своих потребителей
и, таким образом, должны понимать текущие
и будущие потребности потребителейзаказчиков, удовлетворять их требования и
стремиться превзойти их ожидания».
16
Принцип 2 — Лидерство-руководство. «Лидеры
обеспечивают единство назначения и
направления деятельности предприятия. Они
должны создавать и поддерживать
внутреннюю окружающую среду, в которой
специалисты могут в полной мере
участвовать в достижении стратегических
целей предприятия».
17
Принцип 3 — Вовлечение персонала. «Люди
составляют сущность предприятия на всех
уровнях, и их полноценное участие в
деятельности способствует применению их
способностей на благо целей предприятия».
18
Принцип 4 — Процессный подход. «Желаемый
результат достигается более эффективно,
когда требуемые ресурсы и деятельность
специалистов предприятия управляются как
единый связанный процесс».
19
Принцип 5 — Системный подход к
административному управлению. «Выявление и
понимание задач и административное
управление системой взаимосвязанных
процессов для заданной стратегической цели
повышает эффективность и
результативность предприятия».
20
Принцип 6 — Постоянное усовершенствование.
«Непрерывное усовершенствование
процессов и повышение качества продукции
должно быть постоянной стратегической
целью предприятия и его специалистов».
21
Принцип 7 — Подход к принятию решений,
основанный на фактах. «Эффективные
решения должны базироваться на анализе
только реальных данных и достоверной
информации».
22
Принцип 8 — Взаимовыгодные отношения с
поставщиками. «Предприятие-пользователь и
его поставщики-разработчики
взаимозависимы, и взаимовыгодные
отношения между ними повышают
способность обоих производить
качественную продукцию».
23
Принципы рекомендуется применять при:
формулировке политики и стратегии обеспечения
всего ЖЦ ПС;
выборе целей проекта, требований и характеристик
качества ПС, непосредственно связанных с
потребностями и ожиданиями заказчиков и
потребителей;
управлении операциями в процессе реализации
проекта и для удовлетворения требований заказчика
и потребителей;
управлении людскими ресурсами предприятия для
обеспечения ЖЦ ПС и его качества.
24
Методы и средства, позволяющие:
создавать программные модули и функциональные компоненты
высокого, гарантированного качества;
предотвращать дефекты проектирования за счет систем
обеспечения качества, эффективных технологий и
инструментальных средств автоматизации всего жизненного
цикла комплексов программ и баз данных;
обнаруживать и устранять различные дефекты и ошибки
проектирования, разработки и сопровождения программ
путем верификации и систематического тестирования на
всех этапах жизненного цикла ПС;
удостоверять достигнутые значения качества функционирования
программных продуктов в процессе их испытаний и
сертификации перед передачей в регулярную эксплуатацию
пользователям
25
Ресурсы на технологические средства в ЖЦ ПС:
на приобретение или создание технологии и
инструментальных средств, применяемых для
обеспечения требуемого качества всего жизненного
цикла ПС;
на эксплуатацию и непосредственное применение
технологии в процессе обеспечения ЖЦ ПС;
на создание технологии и инструментальных
средств для испытаний и оценивания характеристик
качества программного средства;
на выполнение измерений достигнутых значений
характеристик качества ПС.
26
Применение на предприятиях-разработчиках
программных продуктов,
сертифицированных систем качества и
профилей международных стандартов на базе
требований ISO 9001:2000 и/или СММ1:2003
гарантирует высокое, устойчивое управление
качеством процессов и продуктов их
жизненного цикла, а также позволяет во
многих случаях облегчать сертификацию
конечного программного продукта
27