Слайд 1Оптимизация программных средств
Слайд 2РАЗДЕЛ 1. «ОРГАНИЗАЦИЯ РАЗРАБОТКИ ПРОГРАММНЫХ СИСТЕМ»
ТЕМА 1. История развития
методологий разработки сложных систем
Слайд 3Особенностью современных масштабных проектов является необходимость участия в них большого
количества исполнителей, выполняющих творческую, интеллектуальную работу.
Противоречие.
С одной стороны, необходимо получить
сложное и принципиально новое изделие со строго заданными характеристиками в заданные сроки.
С другой стороны, заранее не известны методы решения задач, поставленных перед исполнителями.
Слайд 4Характерные особенности успешных крупных проектов середины XX в.:
1) заказчиком проектов
выступала политическая элита государств, ясно и четко определяющая цель проектов
и готовая потратить на их осуществление значительные ресурсы при жестких ограничениях на сроки реализации;
2) создавался коллектив разработчиков, нацеленный на конечный результат;
3) было организовано эффективное взаимодействие между разработчиками: сбор разработчиков в одном месте и обеспечение возможности непосредственного общения между ними (Арзамас-16, Челябинск-70, Лос-Аламос);
4) несмотря на наличие жестких сроков, существовала обратная связь между разработчиками и высшим руководством,
которая позволяла корректировать принятые решения и вовремя ставить новые задачи;
5) большое значение имел человеческий фактор. К разработке привлекались наиболее квалифицированные специалисты.
Слайд 5ТЕМА 2. Жизненный цикл программной системы
Слайд 6Под системой в данном случае понимается совокупность взаимодействующих компонентов и
взаимосвязей между ними, направленная на достижение определенной цели.
Под проектом
будем понимать временное предприятие, осуществляемое в целях создания уникального продукта или услуги.
Программной системой (ПС) будем считать комплекс связанных между собой программ (программный комплекс), снабженный необходимой документацией, ориентированный
на сбор, хранение, поиск, обработку, передачу и отображение информации в некоторой предметной области.
Слайд 7Термины информационная система и автоматизированная система во многих источниках используются
для обозначения более широкого понятия, в которое кроме программной системы
входят технические средства и люди, обеспечивающие работу программной системы.
Под жизненным циклом программной системы обычно понимается непрерывный процесс, который начинается с момента принятия решения о необходимости создания системы и заканчивается в момент ее полного изъятия из эксплуатации.
Слайд 8ТЕМА 3. Международные и национальные стандарты
методологий разработки программных систем
Слайд 12Обобщенная схема этапов жизненного цикла программной системы
Слайд 16Этапы жизненного цикла программного продукта, реализуемого на свободном рынке (в
соответствии с международными
стандартами серии ISO 9000)
Слайд 20Процессы жизненного цикла систем.
Стандарт ГОСТ Р ИСО/МЭК 15288-2005.
Процессом называется
совокупность взаимосвязанных действий, преобразующих некоторые входные объекты или данные в
выходные.
Слайд 21Перечень процессов и составляющих их действий по ГОСТ 15288.
Процессы соглашения:
1)процесс приобретения (используется организациями для приобретения продукции или получения услуг);
2)процесс поставки (используется организациями для поставок продукции или оказания услуг).
Процессы предприятия:
1) управления предприятием;
2) управления инвестициями;
3) управления жизненным циклом системы;
4) управления ресурсами;
5) управления качеством.
Слайд 22Перечень процессов и составляющих их действий по ГОСТ 15288.
Процессы проекта:
1) планирования проекта;
2) оценки проекта;
3) контроля проекта;
4)
принятия решений;
5) управления рисками;
6) управления конфигурацией;
7) управления информацией.
Слайд 23Перечень процессов и составляющих их действий по ГОСТ 15288.
Технические процессы:
1) определения требований заказчика;
2) анализа требований;
3) проектирования архитектуры;
4) реализации проекта;
5) комплексирования;
6) верификации;
7) передачи заказчику;
8) валидации;
9) функционирования;
10) сопровождения;
11) списания.
Слайд 24Процессы жизненного цикла программных средств.
Стандарт ГОСТ Р ИСО/МЭК 12207-99.
Все
процессы, в отличие от стандарта
ГОСТ 15288, сгруппированы в три
класса:
1.Основные процессы: приобретение, поставка, разработка, эксплуатация, сопровождение.
2.Вспомогательные процессы: документирование, управление конфигурацией, обеспечение качества, разрешение проблем,
аудит, аттестация, совместная оценка, верификация.
3.Организационные процессы: создание инфраструктуры, управление; обучение, усовершенствование.
Слайд 25ТЕМА 4. Модели жизненного цикла программных систем
Модель жизненного цикла —
структура, содержащая процессы, действия и задачи, которые осуществляются в ходе
разработки, функционирования и сопровождения программного продукта.
Слайд 26В настоящее время известны и используются следующие модели жизненного цикла:
• каскадная (водопадная);
• поэтапная с промежуточным контролем;
• спиральная
(эволюционная);
• инкрементная.
Слайд 27Каскадная (водопадная) модель
Каскадная (водопадная) модель ЖЦ рассматривает жизненный цикл ПС
как последовательность стадий.
Слайд 28Типовые стадии создания автоматизированной информационной системы согласно стандарту ГОСТ 34.601-90:
Стадия
1. Формирование требований к ПС:
•обследование объекта и обоснование необходимости
создания ПС;
•формирование требований пользователей к ПС;
•оформление отчета о выполненной работе и тактико-технического задания на разработку.
Слайд 29Стадия 2. Разработка концепции ПС:
•изучение объекта автоматизации;
•проведение необходимых
научно-исследовательских работ;
•разработка вариантов концепции ПС, удовлетворяющих требованиям пользователей;
•оформление отчета
и утверждение концепции.
Стадия 3. Техническое задание:
•разработка и утверждение технического задания на создание ПС.
Стадия 4. Эскизный проект:
•разработка предварительных проектных решений по системе и ее частям;
•разработка эскизной документации на ПС и ее части.
Слайд 30Стадия 5. Технический проект:
•разработка проектных решений по системе и
ее частям;
•разработка документации на ПС и ее части;
•разработка
и оформление документации на поставку комплектующих изделий;
•разработка заданий на проектирование в смежных частях
проекта.
Стадия 6. Рабочая документация:
•разработка рабочей документации на ПС и ее части;
•разработка и адаптация программ.
Слайд 31Стадия 7. Ввод в действие:
•подготовка объекта автоматизации;
•подготовка персонала;
•комплектация ПС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами,
информационными изделиями);
•строительно-монтажные работы;
•пусконаладочные работы;
•проведение предварительных испытаний;
•проведение опытной эксплуатации;
•проведение приемочных испытаний.
Стадия 8. Сопровождение ПС:
•выполнение работ в соответствии с гарантийными обязательствами;
•послегарантийное обслуживание.
Слайд 32Каскадная модель
«+»
явное описание всех этапов работы и определение последовательности их
реализации
выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения
всех работ и соответствующие затраты.
имеется возможность сопоставлять и оценивать различные варианты их реализации, а также накапливать статистические данные о фактической трудоемкости и затратах на реализацию каждого этапа.
Слайд 33Каскадная модель
«-»
слабо отражены процессы управления
реальный процесс создания системы никогда полностью
не укладывается в жесткую каскадную схему, постоянно возникает потребность в
возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений
Слайд 34Поэтапная модель
с промежуточным контролем
Модификация предыдущей модели. Разработка
ПС в
этой модели ведется итерациями с циклами обратной связи между этапами.
Слайд 36Прототип программы — версия программы, предназначенная для демонстрации ее основных
свойств.
Спиральная модель
«+»
до реализации доводится обоснованный окончательный вариант ПС, который удовлетворяет
действительным требованиям заказчика
ускорение разработки ПС, обусловленное
более активным привлечением заказчика к формированию требований на основе анализа работы прототипов, а также интенсификация труда разработчиков ПС
Слайд 37Спиральная модель
«-»
сложность планирования работ, оценки затрат, сроков и рисков выполнения
проекта
проблема определение момента перехода на следующий этап
Слайд 39ТЕМА 5. Документальное сопровождение этапов
жизненного цикла программной системы
Слайд 40Схема создания и использования
программной документации
Слайд 41В России действуют два стандарта на состав программной документации —
«ГОСТ 19.101-77 Виды программ и программных
документов» (далее ГОСТ 19.101)
и «ГОСТ 34.201-89
Виды, комплектность и обозначение документов при создании автоматизированных систем» (далее ГОСТ 34.201)
Слайд 47Следование стандартам — дело добровольное.
Выбор стандартов является результатом договоренностей
заказчика и разработчика.
Слайд 48ТЕМА 6. Фирменные (корпоративные) технологии
разработки программной системы
Слайд 51Стандарты и модели жизненного цикла ПС корпорации Microsoft.
Корпорация Microsoft разработала
две связанные и дополняющие друг друга фирменные методологии: Microsoft Solutions
Framework (MSF) — для процессов разработки ПС и Microsoft Operations Framework (MOF) — для процессов сопровождения и эксплуатации
ПС.
Модель MSF основана на спиральной модели разработки и состоит из пяти этапов:
• создания общей картины приложения (разработка концепции);
• планирования;
• разработки;
• стабилизации;
• развертывания.
Слайд 52Этапы и контрольные точки модели MSF
Слайд 53Для достижения поставленной цели на четвертом этапе (этап стабилизации) необходима
тесная взаимосвязь тестировщиков и разработчиков. Задача первых — выявление как
можно большего количества ошибок, задача вторых на этом этапе — исправление найденных ошибок. Для контроля процесса стабилизации Microsoft предлагает две количественные характеристики — так
называемую точку конвергенции и точку достижения нуля.
Точка конвергенции — это момент времени, когда скорость обнаружения ошибок сравнивается со скоростью их исправления.
Точка достижения нуля — это момент времени, когда имеющийся в наличии набор тестов не выявляет ни одной ошибки.
Слайд 54Функциональность версий
Фактически данный подход соответствует инкрементной модели ЖЦ стандарта ГОСТ
Р 15288
Слайд 55Наряду с моделью процессов в технологии MSF предусмотрена модель команд
(MSF Team Model), которая применяется для организации проектных команд.
В составе
команды разработчиков выделяют следующие роли:
•Менеджер продукта (product management) — отвечает за управление связями с клиентом;
•Менеджер программы (program management) — несет ответственность за разработку и поставку решения заказчику в полном соответствии с ограничениями проекта;
•Разработчик (development) — обеспечивает разработку технологического решения в соответствии со спецификациями, предоставленными менеджерами продукта и программы;
Слайд 56•Тестировщик (testing) — отвечает за выявление и устранение всех неполадок
и проблем с качеством продукта и дает окончательное добро на
выпуск и поставку решения;
•Менеджер по выпуску (release management) — отвечает за развертывание и работу продукта;
•Специалист по удобству использования продукта (user experience) — анализирует потребности и проблемы, возникающие у пользователей, и оценивает продукт на предмет соответствия таким потребностям.
Слайд 58ТЕМА 7. Методы «быстрой» разработки программной системы
Слайд 59Альтернативой тяжелым методологиям в области программной инженерии в последние годы
стали облегченные (Light) методологии.
Одной из популярных облегченных методологий сегодня стала
методология Agile (дословный перевод этого термина — быстрый, подвижный, живой).
Общепризнанного стандарта методологии Agile не существует.
Выдержки из «Манифеста Agile», декларирующего основные принципы этой методологии:
«...Мы находим лучшие подходы к разработке проекта, непосредственно участвуя в процессе разработки и помогая другим.»
Слайд 60«В процессе работы мы пришли к тому, что для нас
важнее:
•люди и их взаимодействие, чем процессы и средства;
•работающее
ПС, чем исчерпывающая документация;
•сотрудничество с заказчиком, чем обсуждение условий контракта;
•реагирование на изменения, чем следование плану.
•Наивысшим приоритетом для нас является удовлетворенность заказчика ранними и периодическими поставками ценного для заказчика ПС.
•Мы приветствуем изменения требований даже на поздних этапах разработки. Agile-процессы готовы к таким изменениям ради достижения заказчиком конкурентного преимущества.»
Слайд 61Основной упор в методе Agile делается на создание сплоченной команды
единомышленников-профессионалов и тесное сотрудничество с будущими
пользователями.
Крайним проявлением облегченных
методологий является методология экстремального программирования (XP).
Слайд 62ТЕМА 8. Выбор и адаптация методологии разработки
Слайд 63На сегодняшний день подавляющее большинство проектов ПС внедряется с нарушениями
требований к качеству, сроков или сметы. Почти треть проектов информационных
систем прекращают свое существование, оставшись незавершенными.
Основными факторами, влияющими на выбор методологии, являются два: масштаб и критичность проекта.
Масштаб проекта определяется его сложностью.
Слайд 64Параметры влияющие на сложность программной системы:
Слайд 65Следующий фактор — критичность, он определяет уровень риска (размер возможного
ущерба), связанный с ошибками в системе. Часто используется шкала, предложенная
американским специалистом в области программной инженерии Алистэром Коуберном, на которой выделяют четыре уровня критичности:
-потеря комфорта,
-потеря части денег,
-потеря «больших» (всех) денег,
-потеря жизни.
Слайд 67Масштаб, соотношение параметров сложности и критичность проекта определяют количество и
квалификацию разработчиков, привлекаемых для реализации проекта, необходимые сроки и бюджет
проекта. Эти же факторы определяют выбор методологии разработки и управления проектом. Чем выше критичность и сложность проекта, тем более «тяжелая» методология должна быть использована для его реализации.
Слайд 68Области эффективности различных методологий
управления проектом
Слайд 69Стоимость вычислительной техники и другого оборудования по отношению к их
характеристикам постоянно снижается, становится очевидной тенденция: стоимость фирмы-разработчика ПС все
больше определяется квалификацией ее коллектива, эффективностью бизнес-процессов и репутацией фирмы, заработанной ею в предыдущих проектах.
По оценкам западных аналитиков, доля перечисленных факторов в капитализации ведущих программистских фирм достигает 80%.
Слайд 70Характерной особенностью программного обеспечения как товара, является его относительно низкая
стоимость по отношению к выгодам или потерям, связанным с его
применением.
Например, в сравнении с внедрением оборудования, удачное внедрение ПС даст значительно больший эффект на рубль инвестиций.
Слайд 71Контрольные вопросы
1. Почему при создании сложных программных проектов
трудоемкость
их разработки и риск провала проекта растут гораздо быстрее увеличения
функциональности проекта?
2. Что такое жизненный цикл программного продукта, как
это понятие соотносится с понятиями «Жизненный цикл разработки программы» и «Жизненный цикл товара»?
3. Чем отличаются жизненные циклы программ, разрабатываемых по конкретному заказу, и программных продуктов, предназначенных для широкой продажи на рынке?
4. Как соотносятся этапы и процессы жизненного цикла программных систем?
5. Перечислите российские и международные стандарты, регламентирующие этапы и процессы жизненного цикла программных продуктов.
Слайд 72Контрольные вопросы
6. Какие группы процессов жизненного цикла устанавливают стандарты
ГОСТ Р ИСО/МЭК15288-2005 и ГОСТ Р ИСО/ МЭК 12207-99?
7.
В чем состоит отличие основных и вспомогательных процессов жизненного цикла программных средств согласно стандарту ГОСТ Р ИСО/МЭК 12207-99?
8. Что такое модель жизненного цикла программной системы?
9. Какие преимущества и недостатки имеет каскадная модель жизненного цикла?
10. Какие преимущества дает применение спиральной и инкрементной моделей жизненного цикла? Какие требования накладывает на разработчика использование этих моделей?
Слайд 73Контрольные вопросы
11. Какие документы создаются в процессе разработки программной
системы. На каких этапах жизненного цикла следует начинать и заканчивать
разработку этих документов?
12. Перечислите наиболее известные «фирменные» методологии и инструментальные средства разработки программных систем.
13. Какую модель жизненного цикла использует методология Microsoft Solutions Framework MSF?
14. Каким этапам жизненного цикла классической каскадной модели соответствуют этапы «стабилизация» и «развертывание», используемые в модели MSF?
15. Перечислите роли, которые играют разработчики в рамках модели MSF Team Model. Какие из этих ролей могут быть совмещены?
Слайд 74Контрольные вопросы
16. Что такое «точка конвергенции» и «точка достижения
нуля», используемые в модели MSF? По каким признакам они определяются
и как используются?
17. Перечислите основные принципы, положенные в основу методологии разработки Agile. Что обеспечивает выигрыш во времени разработки при применении этой методологии?
18. Возможно ли применение быстрых методов программирования при разработке новой операционной системы уровня Windows 7? Обоснуйте свой ответ.