
- •Программная инженерия: назначение, основные принципы и понятия
- •Предпосылки и история
- •Повторное использование кода (модульное программирование)
- •Рост сложности программ (структурное программирование)
- •Модификация программ (ооп)
- •Некоторые итоги
- •Продолжение кризиса программирования
- •Программная инженерия – что это такое?
- •Начнем с определений
- •Разберемся в вопросах
- •Что такое программное обеспечение (software)?
- •Что такое программная инженерия?
- •В чем отличия от информатики?
- •В чем отличие от других инженерий?
- •В чем еще отличие от других инженерий?
- •Из чего складывается стоимость по?
- •Еще вопросы
- •Программный процесс?
- •Модель программного процесса?
- •Методы программной инженерии?
- •Модель прецедентов (требований)
- •Модель классов
- •Модель сущность-связь
- •Нотации модели
- •Что такое case?
- •Свойства хорошей программы?
- •Основные трудности
- •Профессинальные и этические требования
- •Кодекс этики ieee-cs/acm
- •Кодекс этики - Преамбула
- •Кодекс этики: 8 принципов
- •Стандартизация и стандарты
- •Стандарты и сертификация
- •Что такое технология
- •Что такое стандарт?
- •Что такое сертификация?
- •Какие бывают стандарты?
- •Кто разрабатывает стандарты se?
- •Iso - International Organization for Standardization
- •Acm - Association for Computing Machinery
- •Sei - Software Engineering Institute
- •Pmi - Project Management Institute
- •Ieee – Institute of Electrical and Electronics Engineers
- •Основные стандарты se
- •Iso/iec12207-95
- •Лекция 2. Жизненный цикл программного продукта Немного истории
- •История. Стандарты и проблемы жц по
- •Iso 12207 (15504) Жизненный цикл пп: структура и организация Стандарт iso/iec 12207
- •Iso 12207. Основные определения
- •Iso 12207. Структура жц по
- •Iso 15504. Процессы жц по
- •Iso 15504. Классификация процессов
- •Iso 15504. Cus: Потребитель-поставщик
- •Iso 15504. Eng: Инженерные процессы
- •Iso 15504. Sup: Вспомогательные процессы
- •Iso 15504. Man: Управленческие процессы
- •Iso 15504. Org: Организационные процессы
- •Модель жизненного цикла программного продукта
- •Каскадная модель. Принципы
- •Каскадная модель. Преимущества и недостатки
- •Каскадная модель. Применимость
- •Спиральная модель. Принципы
- •Спиральная модель. Схема
- •Спиральная модель. Преимущества и недостатки
- •Спиральная модель. Применимость
- •Другие типы моделей жц по
- •Итерационная модель
- •V-образная модель
- •Инкрементная (пошаговая) модель
- •Модель быстрого прототипирования
- •Модели жизненного цикла msf,rup,xp
- •Модель MicrosoftSolutionFramework
- •Модель Rational Unified Process
- •Модель ExtremeProgramming
- •Extreme Programming. Принципы
- •Лекция 3. Управление программным проектом
- •Немного философии (понятия и определения)
- •Что такое управление?
- •Что такое проект?
- •Проект – это…
- •Управление проектами
- •История управления проектами
- •Категории управления проектами
- •Треугольник ограничений проекта
- •Не проекты – это …
- •Что вы запомнили?
- •Что должен знать менеджер проекта?
- •Pmbok: 9 областей управленческих знаний
- •Sqi: 34 компетенции it менеджера
- •Так что же должен знать менеджер проекта?
- •Управление командой проекта
- •Ролевая модель команды
- •Модели организации команд
- •Peopleware – человеческий фактор
- •Административная модель (теорияX)
- •Модель хаоса (теорияY)
- •Открытая архитектура (теория z)
- •Общение в команде
- •Коммуникации
- •Принятие решений – компромисс и консенсус
- •Как добиться консенсуса?
- •Корпоративная политика (наведение мостов)
- •Можно посмотреть:
- •Что же вы запомнили?
- •Планирование и контроль
- •Зачем надо планировать?
- •Задачи планирования
- •Что надо планировать?
- •Как проверять и оценивать?
- •Метрики проекта
- •Как надо планировать?
- •Когда начинать планировать?
- •Структурная декомпозиция работ
- •Создание сдр
- •Критерии сдр
- •Стандарты планирования
- •Средства управления проектом
- •Функции систем управления проектами
- •Обзор систем управления проектами
- •Лекция 4. Управление качеством ит проекта
- •Качество и управление качеством (экскурс в историю)
- •Что такое качество?
- •Теория иерархии потребностей
- •Мера качества: ценность и стоимость
- •Эволюция методов обеспечения качества
- •Фаза отбраковки
- •Фаза управления качеством
- •Фаза планирования качества
- •Что вы запомнили?
- •Iso9000: система управления качеством
- •Iso9000. Фундаментальные требования
- •Iso9000. Структура документов ск
- •Iso9000. Заявление о политике и целях в области качества
- •Iso9000. Руководство по качеству
- •Iso9000. Документированные процедуры
- •Iso9000. Записи о качестве
- •Iso9000. Как работает система управления качеством
- •Iso9000. Немного истории
- •Iso 9000. Версия 1994 г.
- •Iso9000.94. Базовые стандарты
- •Iso9000.94. Стандарты поддержки
- •Iso9000.94. Методические руководства
- •Iso 9000. Версия 2000г.
- •Iso9000. Что вы запомнили?
- •Iso12207: процессы качества по
- •Iso12207. Процесс обеспечения качества
- •Iso12207. Процесс верификации
- •Iso12207. Процесс аттестации
- •Iso12207. Процесс усовершенствования
- •Iso12207. Некоторые выводы
- •Cmm: зрелость организаций и процессов
- •Cmm. Причины и история создания
- •Cmm. Модель технологической зрелости
- •Cmm. Пять уровней зрелости
- •Cmm. Определение модели зрелости
- •Cmm. Критерии оценки уровня зрелости
- •Cmm. Вопросы, вопросы, вопросы?
- •Cmm. Резюме: cmm в тезисах
- •Iso15504: аттестация, определение зрелости и усовершенствование процессов
- •Iso15504. Причины и история создания
- •Iso15504. Назначение и структура стандарта
- •Iso15504.Структура эталонной модели
- •Iso15504. Измерение «Процесс»
- •Iso15504. Измерение «Зрелость»
- •Iso15504. Рейтинги атрибутов
- •Iso15504. Процесс аттестации
- •Iso15504. Компетентность аттестаторов
- •Iso15504. Вопросы, вопросы, вопросы
- •Iso15504. Резюме: iso15504 в тезисах
Лекция 2. Жизненный цикл программного продукта Немного истории
Появление понятия жизненного цикла ПО было связано с кризисом программирования, который наметился в конце 60-х – начале 70-х годов прошлого века. Суть кризиса состояла в том, что программные проекты все чаще стали выходить из-под контроля: нарушались сроки, превышались запланированные объемы финансирования, результаты не соответствовали требуемым. Многие проекты вообще не доводились до завершения. Кроме того, оказалось, что недостаточно разработать программу, а надо ее еще сопровождать и этап сопровождения часто требует больше средств, чем разработка.
Ситуация была вызвана ростом сложности проектов. Масштабы ее нарастали. Необходимо было принимать меры для радикального усовершенствования принципов и методов разработки ПО с учетом его развития и сопровождения. Заговорили о том, что надо обратиться к опыту промышленного проектирования и производства, где был накоплен опыт успешной разработки не менее сложных проектов.
Методологическую основу промышленной инженерии составляет понятие жизненного цикла изделия (продукта) как совокупности всех действий, которые надо выполнить на протяжении всей «жизни» изделия. Смысл жизненного цикла состоит во взаимосвязанности всех этих действий. Например, вы решили построить садовый домик имея некоторый опыт строительных работ. Ориентируясь на здравый смысл, вы купили материалы, инструменты и построили дом. Через год он начал оседать одним углом – вы забыли его спроектировать и рассчитать фундамент. Через два года жена сказала, что лестница на мансарду должна быть не на веранде, где и так мало места, а с улицы. Лестница у вас была сработана фундаментально, а с улицы надо вырубать и перекрывать козырьки – вы не предусмотрели модификацию конструкции. Через три года у вас сгорела проводка, которая была «надежно» спрятана и вам пришлось снимать всю облицовку, которую вы «надежно» прибивали 100 мм гвоздями – вы не предусмотрели ремонтопригодность. Если бы вы изначально рассматривали строительство с позиции жизненного цикла, то на этапах проектирования и строительства вы подумали бы о надежности, модифицируемости и ремонтопригодности.
Итак, жизненный цикл промышленного изделия:
последовательность этапов (фаз, стадий): проектирования, изготовления образца, организация производства, серийное производство, эксплуатация, ремонт, вывод из эксплуатации;
состоящих из технологических процессов, действий и операций.
Организация промышленного производства с позиции жизненного цикла позволяет рассматривать все его этапы во взаимосвязи, что ведет к сокращению сроков, стоимости и трудозатрат.
Впервые о жизненном цикле ПО заговорили в 1968 г. в Лондоне, где состоялась встреча 22-х руководителей проектов по разработке ПО. На встрече анализировались проблемы и перспективы проектирования, разработки, распространения и поддержки программ. Применяющиеся принципы и методы разработки ПО требовали постоянного усовершенствования. Именно на этой встрече была предложена концепция жизненного цикла ПО (SLC – Software Lifetime Cycle) как последовательности шагов-стадий, которые необходимо выполнить в процессе создания и эксплуатации ПО.
Вокруг этой концепции было много споров. В 1970 г. У.У. Ройс (W.W. Royce) произвел идентификацию нескольких стадий в типичном цикле и было высказано предположение, что контроль выполнения стадий приведет к повышению качества ПО и сокращению стоимости разработки.