
- •Другие причины возможных неудач (по данным Standish Group и Rational Software)
- •Одна из причин - экстремальные условия выполнения проектов:
- •Причины, порождающие экстремальные проекты
- •Причины участия в экстремальных проектах
- •2. Жизненный цикл по (software lifecycle):
- •3. Процессы жизненного цикла в различных стандартах
- •4. Жизненный цикл, гост исо мэк 12207
- •5. Жизненный цикл, гост 34, Oracle, rup.
- •6. Каскадная модель жизненного цикла эис, реальная модель
- •7. Спиральная модель жизненного цикла эис, ее сопоставление с каскадной моделью
- •8. Подход rad
- •Пример - технология Microsoft Microsoft Solutions Framework (msf)
- •9. Модель и архитектура эис
- •10. Языки моделирования
- •11. Диаграммы uml
- •12. Диаграммы uml. Диаграммы вариантов использования
- •1 3. Диаграмма обзора взаимодействия (uml 2.0)
- •14. Технологии создания по
- •15. Технология rup
- •Общее представление rup
- •16. Стадии жц по технологии rup
- •17. Средства моделирование бизнес процессов
- •18. Методология sadt
- •19. Методология idef0
- •20. Методология idef3
- •21. Методология aris
- •22. Dfd, основные элементы
- •23. Моделирование erd
- •25. Связи обобщения, включения, расширения rup
- •26. Объектно-ориентированный подход в проектировании эис
- •27. Основные принципы ооп
- •28. Основные понятия ооп
1. Программная инженерия (software engineering) - совокупность инженерных методов и средств создания ПО. Фундаментальная идея программной инженерии: проектирование ПО является формальным процессом, который можно изучать и совершенствовать.
Этапы становления и развития программной инженерии:
70-е и 80-е годы - систематизация и стандартизация процессов создания ПО (на основе структурного подхода)
90-е годы – начало перехода к сборочному, индустриальному способу создания ПО (на основе объектно-ориентированного подхода)
Программная инженерия – способ гарантировать выполнение требований заказчика
Системы должны создаваться в короткие сроки и соответствовать требованиям заказчика на момент внедрения
Качество ПО должно быть высоким
Разработка ПО должна быть осуществлена в рамках выделенного бюджета
Системы должны работать на оборудовании заказчика, а также взаимодействовать с имеющимся ПО
Системы должны быть легко сопровождаемыми и масштабируемыми
Мировая статистика разработки проектов ПО (по данным отчета Standish Group – CHAOS Report)
1995 |
1996 |
1998 |
2000 |
31% аннулируются до завершения |
40% |
28% |
23% |
53% не укладываются в поставленные сроки, превышают запланированные расходы и не реализуют в полном объеме требуемые функции |
33% |
46% |
49% |
16% завершаются в срок |
27% |
26% |
28% |
Основная причина всех проблем - разработка ПО на сегодняшний день является почти чистым ремеслом и выполняется методом проб и ошибок
Разработка ПО изначально является проектированием и не имеет признаков строительства или производства
Разработчики не строят ПО – они его проектируют
Конечный результат проектирования – код на языке высокого уровня – является чертежом ПО
Другие причины возможных неудач (по данным Standish Group и Rational Software)
нечеткая и неполная формулировка требований к ПО, недостаточное управление требованиями
частое изменение требований и спецификаций
недостаточное вовлечение пользователей в работу над проектом
отсутствие необходимых ресурсов
неудовлетворительное планирование
отсутствие грамотного управления проектом
недостаточная поддержка со стороны высшего руководства
высокая сложность создаваемых систем
нестабильная архитектура
недостаточное тестирование
новизна используемой технологии для организации
высокий риск, связанный с «каскадным» подходом
Одна из причин - экстремальные условия выполнения проектов:
план проекта сжат более чем наполовину по сравнению с нормальным расчетным планом
количество разработчиков уменьшено более чем наполовину по сравнению с действительно необходимым для проекта данного размера и масштаба
бюджет и связанные с ним ресурсы урезаны наполовину
требования к функциям, производительности и другим характеристикам вдвое превышают значения, которые они могли бы иметь в нормальных условиях
Причины, порождающие экстремальные проекты
Политика
Высок. конкурен., порожденная глобализ-ей рынков
Высокая конкуренция, вызванная появлением новых технологий
Наивный оптимизм и менталитет первопроходцев
Сильное воздействие неожиданных правительственных решений
Причины участия в экстремальных проектах
Высокое вознаграждение
Синдром покорителей Эвереста
Угроза безработицы
Наивность и оптимизм молодости
Возможность сделать карьеру
Возможность победить бюрократию
Месть
2. Жизненный цикл по (software lifecycle):
период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации
Основной нормативный документ - стандарт ISO/IEC 12207: 1995 “Information Technology - Software Life Cycle Processes”
Положение дел в России:
ГОСТ ЕСПД (ГОСТ 19.ХХХ) - ориентированы на класс относительно простых программ небольшого объема, создаваемых отдельными программистами. Стандарты устарели концептуально и по форме, их сроки действия закончились и использование нецелесообразно
ГОСТ 34.601-90, ГОСТ 34.602-89, ГОСТ 34.603-92 - малопригодны для современных распределенных систем, функционирующих в неоднородной среде, отдельные положения устарели
ГОСТ Р ИСО/МЭК 12207-99 (перевод ISO 12207) - введен в действие в июле 2000 г.
3. Процессы жизненного цикла в различных стандартах
Процесс - совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные
Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами
Каждый процесс разделен на набор действий, каждое действие - на набор задач
Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения
Процесс разработки ПО
подготовительная работа
анализ требований к системе
проектирование архитектуры системы
анализ требований к ПО
проектирование архитектуры ПО
детальное проектирование ПО
кодирование и тестирование ПО
интеграция ПО
квалификационное тестирование ПО
интеграция системы
квалификационное тестирование системы
установка ПО
приемка ПО
Процесс сопровождения - внесение изменений в ПО с целью исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям
подготовительная работа
анализ проблем и запросов на модификацию ПО
модификация ПО
проверка и приемка в процессе сопровождения
перенос ПО в другую среду
снятие ПО с эксплуатации
Процесс управления конфигурацией (configuration management process) – процесс применения административных и технических процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО в системе, управления модификациями ПО, описания и подготовки отчетов о состоянии компонентов ПО и запросов на модификацию, обеспечения полноты, совместимости и корректности компонентов ПО, управления хранением и поставкой ПО
Конфигурация ПО - совокупность его функциональных и физических характеристик, установленных в технической документации и реализованных в ПО Процесс управления конфигурацией включает: - идентификацию конфигурации; - контроль конфигурации; - учет состояния конфигурации; - оценку конфигурации; - управление выпуском и поставку
Процесс обеспечения качества (quality assurance process) – процесс обеспечения соответствующих гарантий того, что ПО и процессы его ЖЦ соответствуют заданным требованиям и утвержденным планам. Качество ПО - совокупность свойств, которые характеризуют способность ПО удовлетворять заданным требованиям
Процесс верификации (verification process) – процесс определения того, что программные продукты, являющиеся результатами некоторого действия, полностью удовлетворяют требованиям или условиям, обусловленным предшествующими действиями
Процесс аттестации (validation process) – процесс определения полноты соответствия заданных требований и созданной системы или программного продукта их конкретному функциональному назначению. Аттестацией - подтверждение и оценка достоверности проведенного тестирования ПО
Процесс совместной оценки (joint review process) - предназначен для оценки состояния работ по проекту и ПО, создаваемого при выполнении данных работ (действий), сосредоточен на контроле планирования и управления ресурсами, персоналом, аппаратурой и инструментальными средствами проекта
Процесс инфраструктуры (infrastructure process) - выбор и поддержка технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных средств, используемых для разработки, эксплуатации и сопровождения ПО
Процесс усовершенствования (improvement process) - оценка, измерение, контроль и усовершенствование процессов ЖЦ ПО