ВВПИ. Лекция 1. Программная инженерия. Лекция 1 Программная инженерия назначение, основные принципы и понятия 1 Предпосылки и история
Скачать 0.74 Mb.
|
1.3.3.3. SEI - Software Engineering Institute Software Engineering Institute, Carnegie Mellon University - Институт Программной Инжене- рии в университете Карнеги-Меллона – это центр исследования и разработки, находящийся на фе- деральном финансировании и спонсируемый министерством обороны США. SEI ставит своей ос- новной задачей создание методик для оценки уровня развития внутренних процессов в организа- ции. В качестве подразделения широко известного благодаря разработкам в области вычислитель- ной техники и программного инжиниринга, SEI имеет доступ к самым передовым техническим инновациям. С 1984 года SEI развивает и пропагандирует методики для разработки высококаче- ственного ПО. Первая версия Модели Технологической Зрелости Компании-Разработчика ПО (Capability Maturity Model for Software, SW-CMM) была создана в SEI в 1991 году. Подробнее: www.sei.cmu.edu 1.3.3.4. PMI - Project Management Institute Международный Институт Проектного Менеджмента - Project Management Institute (PMI), основан в 1969 г. в США. Штаб-квартира в Филадельфии (Пенсильвания). Международная обще- ственная организация, объединяющая профессионалов в области проектного менеджмента. PMI объединяет от 100000 до 135000 членов (данные различных источников расходятся) в 125 странах мира. PMI - некоммерческая организация, целью которой является продвижение, пропаганда, развитие проектного менеджмента в разных странах. PMI разрабатывает стандарты проектного менеджмента, занимается повышением квалификации специалистов. PMI являлся ведущей профессиональной организацией по управлению проектами в таких областях, как авиакосмическая и автомобильная промышленность, управление коммерческими 19 предприятиями, машиностроение, финансовые операции, информационные технологии, фарма- цевтика, телекоммуникации и многие другие. PMI предоставляет всеобъемлющее руководство по разработке стандартов для проектного менеджмента (стандарт по управлению проектами PMBOK). PMI стал первой организацией в мире, имеющей программу сертификации специалистов по управлению проектами - Project Management Professional (PMP). Для обучения проектному менеджменту и подготовки к экзамену PMP созданы Registered Education Provider (R.E.P) - Сертифицированный провайдер по образованию - во многих странах мира. Исследования в области проектного менеджмента поддерживаются за счет проведения конференций, предоставления грантов, выпуска научных трудов, создания исследовательской ба- зы данных и т.д. Кроме того, собирается и сортируется информация о текущем состоянии дел, по- требностях, накопленных знаниях по проектному менеджменту, и на этой основе оценивается бу- дущее профессии и путь ее развития. PMI выпускает три вида периодических изданий для индивидуальных лиц, занимающихся проектным менеджментом: ежемесячный журнал PM Network, ежеквартальный журнал Project Management Journal и ежемесячный информационный бюллетень PMI Today. PMI является веду- щим мировым издателем литературы и учебных материалов по проектному менеджменту. В он- лайновом магазине PMI в настоящее время доступно более 1000 наименований. Подробнее: http://www.pmi.org и http://www.pmi.ru 1.3.3.5. IEEE – Institute of Electrical and Electronics Engineers IEEE - Институт инженеров по электронике объединяет почти 400000 технических специа- листов из более чем 150 стран. IEEE состоит из ряда профессиональных сообществ, в самое круп- ное из которых - IEEE Computer Society - входят более 100000 человек. Компьютерное сообщество IEEE ежегодно спонсирует около ста пятидесяти научных конференций и симпозиумов, публикует более 20 периодических изданий. IEEE Computer Society также широко известно своей деятельно- стью по стандартизации, которую на сегодняшний день в рамках сообщества осуществляют по- рядка 200 рабочих групп. Подробнее: http://www.ieee.org и http://www.computer.org.ru/ 1.3.4. Основные стандарты SE Наиболее известными стандартами программной инженерии являются: • ISO/IEC 12207 - Information Technology - Software Life Cycle Processes - Процессы жизненного цикла программных средств. Стандарт содержит определения основ- ных понятий программной инженерии (в частности программного продукта и жиз- ненного цикла программного продукта), структуры жизненного цикла как сово- купности процессов, детальное описание процессов жизненного цикла. • SEI CMM - Capability Maturity Model (for Software) - модель зрелости процессов разработки программного обеспечения. Стандарт отвечает на вопрос: «Какими признаками должна обладать профессиональная организация по разработке ПО?». Профессионализм организации определяется через зрелость процесса, применяе- мого этой организацией. Выделяются пять уровней зрелости процесса. • ISO/IEC 15504 - Software Process Assessment - Оценка и аттестация зрелости про- цессов создания и сопровождения ПО. Является развитием и уточнением ISO 12207 и SEI CMM. Содержит расширенное по отношению ISO 12207 количество процессов жизненного цикла и 6 уровней зрелости процессов. Дается подробное описание схемы аттестации процессов, на основе результатов которой может быть выполнена оценка зрелости процессов и даны рекомендации по их усовершенство- ванию. • PMBOK - Project Management Body of Knowledge - Свод знаний по управлению проектами. Содержит описания состава знаний по следующим 9 разделам (обла- стям знаний) управления проектами 20 • SWBOK - Software Engineering Body of Knowledge - Свод знаний по программной инженерии - содержит описания состава знаний по 10 разделам (областям знаний) программной инженерии. • ACM/IEEE CC2001 - Computing Curricula 2001 – Академический образовательный стандарт в области компьютерных наук. Выделены 4 основных раздела компью- терных наук: Computer science, Computer engineering, Software engineering и Infor- mation systems, по каждому из которых описаны области знаний соответствующего раздела, состав и планы рекомендуемых курсов 1.3.4.1. ISO/IEC 12207-95 Понятие жизненного цикла ПО как некоторой последовательности этапов, которые надо выполнить для создания ПО: проектирование, разработка, тестирования, … составляет одно из фундаментальных понятий программной инженерии. Понятие возникло в конце 60-х годов, когда разработкой ПО занималось много фирм, и различными разработчиками трактовалось по-разному. Путаница в терминологии порождала много проблем во взаимопонимании между разработчиками, между разработчиками и заказчиками. Необходим был стандарт на представление терминов, поня- тий и составных элементов жизненного цикла ПО. Этот стандарт был принят ISO в 1995 году. Следует отметить, что работы по нему были начаты в 1987 году и стандарт формировался взаим- ными усилиями 125 стран – участниц ISO. В России этот стандарт принят в 2000 году под назва- нием «ГОСТ Р ИСО/МЭК 12207 Процессы жизненного цикла программных средств». В стандарте ISO 12207 дается определение программного продукта (ПО) как набора ком- пьютерных программ, процедур и связанной с ними документации и данных и определение жиз- ненного цикла программного продукта как непрерывного процесса, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации. Стандарт определяет: • организацию ЖЦ ПО • структуру ЖЦ ПО По организации жизненный цикл ПО описывается в виде совокупности взаимодействую- щих процессов, каждый из которых состоит из действий, которые в свою очередь могут быть раз- биты на отдельные задачи. Структура жизненного цикла дается в виде перечня его процессов: процесс управления, процесс разработки процесс тестирования, процесс документирования, … Для каждого процесса дается описание действий этого процесса. Так, действиями процесса разработки являются: подго- товка процесса, анализ требований, проектирование системной архитектуры, анализ требований к программным средствам и т.д. Для каждого действия дается подробное описание его задач. Примечание. • ISO - International Organization of Standardization - Международная организация по стан- дартизации • IEC - International Electrotechnical Commission - Международная электротехническая ко- миссия Тексты стандарта: • ГОСТ ИСО 12207: http://www.staratel.com/iso/InfTech/DesignPO/ISO12207/ISO12207- 99/ISO12207.htm • ISO/IEC 12207: ftp://172.16.100.100/Soft/ntd/12207cpt.pdf 1.3.4.2. SEI CMM Capability Maturity Model (for Software) - модель зрелости процессов разработки программ- ного обеспечения – известный отчет SEI, который формально стандартом не является, но приоб- рел характер международного стандарта в силу его интересности и практической полезности. От- чет появился в 1993 году как результат исследования на тему: «Как выбирать организацию, кото- рой можно доверить выполнение крупного IT проекта?». Это исследование проводилось SEI по заказу министерства обороны США, которое было очень озадачено этой проблемой. В отчете из- ложена модель зрелости организаций, которая определялась через зрелость процесса разработки ПО, применяемого в этой организации. В этой модели выделяется пять уровней зрелости процесса, которые и устанавливают степень готовности организации выполнить крупный проект: 21 1. Начальный (Initial) Технология полностью импровизированная, в некоторых случаях — даже хаотическая. Успех всецело зависит от усилий отдельных сотрудников. 2. Повторяемый (Repeatable) Базовые процессы управления проектом ПО установлены. Есть дисциплина соблюдения, что обеспечивает возможность повторения успеха предыдущих проектов в той же прикладной об- ласти 3. Определенный (Defined) Процессы задокументированы, стандартизованы и интегрированы в единую для всей орга- низации технологию создания ПО. Для каждого проекта используется адаптивный вариант этой технологии. 4. Управляемый (Managed) Собираются и накапливаются метрики (объективные данные) о качестве исполнения про- цессов и выходной продукции. Управление процессами и выходной продукцией осуществляется по количественным оценкам. 5. Оптимизируемый (Optimized) Совершенствование технологии создания ПО осуществляется непрерывно на основе коли- чественной обратной связи от процессов и пилотного внедрения инновационных идей. Подробнее: • Capability Maturity Model for Software, Version 1.1 , Paulk, Mark C.; Curtis, Bill; Chrissis, Mary Beth Chrissis, and Weber, Charles, Software Engineering Institute, CMU/SEI-93-TR-24, DTIC Number ADA263403, February 1993 • http://www.sei.cmu.edu/pub/documents/93.reports/pdf/tr24.93.pdf • Билл Куртис, Марк Паулк, Мэри Бет Хриссис. Модель зрелости процессов разработки про- граммного обеспечения. Интерфейс-Пресс. 2003 г. · 400 стр. (: http://www.ryabikin.com/sw- cmm/index.htm) А также: • Терехов А.А., Туньон В. Современные модели качества программного обеспечения (обзор ISO9000, CMM SPICE) http://www.interface.ru/fset.asp?Url=/misc/qs.htm • Назаренко Ю.А. Технологическая зрелость IT организаций. http://www.noumen.ru/go/company/obj1041600305/obj1043060989 1.3.4.3. ISO/IEC TR 15504 ISO/IEC 15504 TR Software Process Assessment - международный стандарт, опубликован- ный в виде отчета, известный также как SPICE: Software Process Improvement and Capability dEter- mination - Оценка и аттестация зрелости процессов создания и сопровождения ПО. Разработан на основе обобщения опыта 9 стандартов (международных и корпоративных), в том числе ISO 12207 и SEI CMM. Является развитием и уточнением этих стандартов. Содержит расширенное по отношению ISO 12207 количество процессов жизненного цикла и 6 уровней зре- лости процессов по отношению к CMM. Дается подробное описание схемы аттестации процессов, на основе результатов которой может быть выполнена оценка зрелости процессов и даны рекомендации по их усовершенствова- нию. В стандарте установлены регламенты аттестации, оценки и усовершенствования процессов, дается подробное описание требований к аттестаторам. Подробнее: • ISO/IEC TR 15504. Information Technology - Software Process Assessment http://www.sqi.gu.edu.au/spice/docs/baseline.zip • Оценка и аттестация зрелости процессов создания и сопровождения программных средств и информационных систем (ISO/IEC TR 15504) ISBN: 5-212-00884-0/ Изд: АйТи, Книга и бизнес. http://www.ntrlab.ru/rus/method/iso15504/ • Мельникова Н. Не так сложен SPICE, как его написали. Открытые системы. #12, 2001 год. http://www.osp.ru/os/2001/12/030.htm 1.3.4.4. PMI PMBOK PMBOK - аббревиатура от Project Management Body of Knowledge, Свода знаний по управ- лению проектами. PMBOK представляет собой стандарт, развиваемый PMI. Известны версии 1996 22 и 2000 гг. Последняя версия стандарта вышла в 2004 году. Содержит описания состава знаний по следующим 9 разделам (областям знаний) управления проектами: 1. Управление интеграцией - Project Integration Management 2. Управление ограничениями - Project Scope Management 3. Управление временем - Project Time Management 4. Управление затратами - Project Cost Management 5. Управление рисками - Project Risk Management 6. Управление персоналом - Project Personnel Management 7. Управление коммуникациями - Project Communication Management 8. Управление закупками - Project Procurement Management 9. Управление качеством - Project Quality Management Подробнее: • A Guide to the Project Management Body of Knowledge 2000 http://www.tline.ru/library/pmbok2000.pdf • Руководство к своду знаний по управлению проектами. (PMBOK Guide) Редакция 2000 г. Изд-тва: Институт Управления Проектами , Project Management Institute , 2004 г. 1.3.4.5. IEEE SWEBOK IEEE Computer Society Software Engineering Body of Knowledge – Свод знаний по про- граммной инженерии - проект IEEE Computer Society. Официальная версия вышла 18 мая 2004 г. Основная идея проекта аналогична PMBOK и заключается в создании некоторого базового набора общепринятых знаний, необходимых любому профессиональному программисту. Содержит описания состава знаний по следующим 10 разделам (областям знаний) про- граммной инженерии: 1. Software Requirements – требования к ПО 2. Software Design – проектирование ПО 3. Software Construction – конструирование ПО 4. Software Testing – тестирование ПО 5. Software Maintenance – сопровождение ПО 6. Software Configuration Management – управление конфигурациями 7. Software Engineering Management – управление IT проектом 8. Software Engineering Process – процесс программной инженерии 9. Software Engineerting Tools and Methods – методы и инструменты 10. Software Quality – качество ПО Подробнее: Guide to the Software Engineering Body of Knowledge - http://www.swebok.org/ 1.3.4.6. ACM/IEEE Computing Curricula ACM/IEEE Computing Curricula 2001 – Академический образовательный стандарт в обла- сти компьютерных наук - совместный проект международных профессиональных обществ ACM и IEEE Computer Society. Вышло несколько версий 1968, 78, 83, 91, 2001. Основная идея проекта состоит в разработке стандартов на учебные курсы по компьютерным наукам. В стандарте 2001 года выделены 4 основных раздела компьютерных наук: • Computer science – Информатика (2001г); http://se.math.spbu.ru/cc2001 • Computer engineering – Компьютерная инженерия; • Software engineering – Программная инженерия (2004г.) • Information systems – Информационные системы. Окончательный вариант стандарта ACM/IEEE Computing Curricula 2001: Computer Science был опубликован в декабре 2001, а Software engineering – в мае 2004г. По разделу Computer Science есть перевод (http://se.math.spbu.ru/cc2001 ). Работа над остальными разделами продолжа- ется, но рабочие материалы этих разделов можно посмотреть на сайте: http://www.computer.org/education/cc2001 По содержанию образовательные стандарты состоят из описания областей знаний соответ- ствующего раздела, состава и планов рекомендуемых курсов Областями знаний раздела Software engineering являются: • Computing Essentials - Основы применения ЭВМ • Mathematical & Engineering Fundamentals - Математические и инженерные основы • Professional Practice - Профессиональная практика 23 • Software Modeling & Analysis - Моделирование и анализ ПО • Software Design - Проектирование ПО • Software V & V –Верификация и валидация ПО • Software Evolution - Эволюция ПО • Software Process - Процесс ПО • Software Quality - Качество ПО • Software Management -Управление проектом Подробнее: • ACM/IEEE Computing Curricula 2001 - http://www.computer.org/education/cc2001 • Computing Curricula 2001: Computer Science (рус.) http://se.math.spbu.ru/cc2001 |