- •1.2.Начало 70-х годов - “software crisis” (кризис по)
- •3.Категории современных проектов
- •4. Проблемы сегодняшнего дня
- •5. Экстремальные проекты
- •6. Сопровождение
- •7. Принципы оценки технологий (Agile Software Development)
- •8. Модель смм
- •9.Основные направления развития современных технологий
- •11.Жизненный цикл по. Процессы и модели
- •13. Процесс разработки по
- •14. Процесс управления конфигурацией (configuration management process) –
- •15. Процесс обеспечения качества (quality assurance process)
- •16. Модель жц по
- •17. Состав стадий полного жц по
- •18 Каскадная модель жц по (waterfall)
- •21.Подход rad (Rapid Application Development) – ibm, James Martin, середина 80-х годов
- •23А. Модели и их роль в создании систем
- •23. Графическое моделирование - средство преодоления сложности больших систем
- •24. Язык моделирования:
- •26. Диаграммы uml (версия 1.Х)
- •27. Технологии создания программного обеспечения
- •28. Технология Rational Unified Process (rup)
- •29. Стадии жизненного цикла по
- •30. Понятие бизнес-процесса
- •31.Области применения бизнес-моделей:
- •32.Многообразие средств моделирования
- •33.Метод sadt
- •34.Преимущества и недостатки idef0
- •35.Метод idef3
- •36.37.Моделирование потоков данных (процессов)
- •38.39.Erd (Entity-Relationship Diagrams) – диаграммы “сущность-связь”
1.2.Начало 70-х годов - “software crisis” (кризис по)
Проблемы:
отставание от графика
превышение сметы расходов
разработанный продукт не обладает требуемыми функциональными возможностями
низкая производительность ПО
качество ПО не устраивает потребителей
затраты на сопровождение ПО в крупных организациях составляют от 60% до 80% суммарных затрат по стадиям ЖЦ ПО
Программная инженерия (software engineering) - совокупность инженерных методов и средств создания ПО Фундаментальная идея программной инженерии: проектирование ПО является формальным процессом, который можно изучать и совершенствовать
Этапы становления и развития программной инженерии:
70-е и 80-е годы - систематизация и стандартизация процессов создания ПО (на основе структурного подхода)
90-е годы – начало перехода к сборочному, индустриальному способу создания ПО (на основе объектно-ориентированного подхода)
Программная инженерия – способ гарантировать выполнение требований заказчика
Системы должны создаваться в короткие сроки и соответствовать требованиям заказчика на момент внедрения
Качество ПО должно быть высоким
Разработка ПО должна быть осуществлена в рамках выделенного бюджета
Системы должны работать на оборудовании заказчика, а также взаимодействовать с имеющимся ПО
Системы должны быть легко сопровождаемыми и масштабируемыми
3.Категории современных проектов
небольшие проекты - проектная команда - менее 10 человек, срок от 3 до 6 месяцев
средние проекты - проектная команда - от 20 до 30 человек, протяженность проекта 1-2 года
крупномасштабные проекты - проектная команда - от 100 до 300 человек, протяженность проекта - 3-5 лет
гигантские проекты - армия разработчиков от 1000 до 2000 человек и более (включая консультантов и соисполнителей), протяженность проекта от 7 до 10 лет
4. Проблемы сегодняшнего дня
недопонимание потребностей пользователей
неумение справиться с изменяющимися требованиями
программное обеспечение трудно сопровождать
позднее обнаружение серьезных ошибок в проекте
неудовлетворительное качество ПО
низкая производительность ПО
плохая управляемость командой разработчиков и процессом разработки
Основная причина всех проблем - разработка ПО на сегодняшний день является почти чистым ремеслом и выполняется методом проб и ошибок
Разработка ПО изначально является проектированием и не имеет признаков строительства или производства
Разработчики не строят ПО – они его проектируют
Конечный результат проектирования – код на языке высокого уровня – является чертежом ПО
Другие причины возможных неудач (по данным Standish Group и Rational Software)
нечеткая и неполная формулировка требований к ПО, недостаточное управление требованиями
частое изменение требований и спецификаций
недостаточное вовлечение пользователей в работу над проектом
отсутствие необходимых ресурсов
неудовлетворительное планирование
отсутствие грамотного управления проектом
недостаточная поддержка со стороны высшего руководства
высокая сложность создаваемых систем
нестабильная архитектура
недостаточное тестирование
новизна используемой технологии для организации
высокий риск, связанный с «каскадным» подходом