Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемsoftware.unn.ru
1 Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекция 2. Элементы программной инженерии
2 Содержание Вспоминая предыдущую лекцию Вместо введения Программная инженерия, основные понятия Процесс создания ПО Что дальше? Литература
3 Содержание Вспоминая предыдущую лекцию Вместо введения. Программная инженерия, основные понятия Процесс создания ПО Что дальше? Литература
4 Вспоминая предыдущую лекцию Немного терминологии –Программирование –IT-проекты –Программы и программные продукты Бизнес и IT-проекты. Рынок ПО в России и в мире. Немного статистики Причины неудачи IT-проектов Технологии программирования – путь к успеху в разработке ПО
5 Содержание Вспоминая предыдущую лекцию Вместо введения Программная инженерия, основные понятия Процесс создания ПО Что дальше? Литература
6 Вместо введения... Данная лекция основана на материалах Иана Соммервилля (Ian Sommerville). Источник (англ.): Ian Sommerville. Software Engineering. 6th Edition. Ian Sommerville. Software Engineering. 7th Edition. Источник на русском языке: Иан Соммервиль. Инженерия программного обеспечения. 6 изд, и.д. "Вильямс", с.
7 Вместо введения О целях настоящей лекции: Программная инженерия – сложная область. Полный фундаментальный курс будет прочитан позже. Наш курс – вводный. На этой лекции мы познакомимся с терминологией, немного затронем теорию, поговорим о проблемах. На других лекциях поговорим о практических подходах к решению рассмотренных проблем.
8 Содержание Вспоминая предыдущую лекцию Вместо введения Программная инженерия, основные понятия –Инженеры и программные инженеры –Программная инженерия как инженерная дисциплина –Область действия программной инженерии –Цели программных инженеров –Программные инженеры и научная среда Процесс создания ПО Что дальше? Литература
9 Инженеры... Программная инженерия. Кто такие инженеры? Версии зала...
10 Инженеры... Инженер * (франц. ingénieur, от лат. ingenium – способность, изобретательность), Специалист с высшим техническим образованием. Первоначально – название лиц, управлявших военными машинами. * Источник: Большая Советская Энциклопедия.
11 Инженеры... Понятие гражданский инженер появилось в 16 в. в Голландии применительно к строителям мостов и дорог, затем в Англии и др. странах. Первые учебные заведения для подготовки инженеров были созданы в 17 в. в Дании, в 18 в. – в Великобритании, Франции, Германии, Австрии и др.
12 Инженеры В России первая инженерная школа основана Петром I в 1712 в Москве. В Петербурге были открыты Горное училище, приравненное к академиям (1773), Институт инженеров путей сообщения (1809), Училище гражданских инженеров (1832, с Институт гражданских инженеров), Инженерная академия (1855). С 19 в. за рубежом стали различать инженеров- практиков, или профессиональных инженеров (по существу специалистов, имевших квалификацию техника), и дипломированных инженеров, получивших высшее техническое образование (Civil Engineer).
13 Программные инженеры Кто такие инженеры? Инженер – дипломированный специалист, имеющий высшее техническое образование. Кто такие программные инженеры? Программный инженер – инженер в области разработки программного обеспечения. Что такое программная инженерия (инженерия программного обеспечения, software engineering)?
14 Программная инженерия как инженерная дисциплина Программная инженерия – инженерная дисциплина, связанная с теорией, методами и средствами профессиональной разработки ПО. Говорили ранее: –ПО = программы + вся сопутствующая документация. –Высокая стоимость разработки ПО (выше, чем у аппаратуры). –Стоимость разработки растет. Программная инженерия способствует решению проблемы роста стоимости разработки ПО. Программная инженерия имеет дело со всеми аспектами создания ПО.
15 Область действия программной инженерии... В западной литературе часто используются термины: software engineering, system engineering и computer science. В чем разница? Computer science имеет дело с теорией и основами разработки ПО. System engineering связано с вопросами разработки систем с участием компьютеров (архитектура, дизайн, интеграция, ПО...). Software engineering – часть System engineering, имеющая дело с ПО.
16 Область действия программной инженерии Итак, computer science предоставляет теоретический базис. На практике его недостаточно. Открытые проблемы: –Поиск финансирования. –Работа с заказчиком. –Подбор персонала. –Этические вопросы. Микроклимат в коллективе. Команда. –Обеспечение качества программного продукта. –... Всем этим занимается программная инженерия.
17 Цели программных инженеров... Цели программных инженеров: –Создать качественный продукт. –Уложиться в бюджет. –Уложиться в сроки. Разберем эти вопросы подробнее.
18 Цели программных инженеров. Качественный программный продукт... Качественный программный продукт: –Должен представлять требуемую функциональность. –Быть удобным в сопровождении. –Быть надежным. –Быть эффективным. –Быть удобным в использовании.
19 Цели программных инженеров. Качественный программный продукт ПО должно быть качественным. Удобство в сопровождении: –ПО должно допускать развитие в связи с изменением потребностей пользователей. Надежность: –Возможные неполадки в работе не должны нанести существенный, тем более невосполнимый ущерб. Эффективность: –ПО должно эффективно использовать имеющиеся ресурсы. Удобство в использовании: –ПО должно приниматься пользователями «на ура», работа должна быть удобной и естественной.
20 Цели программных инженеров. Бюджет Создание ПО должно укладываться в бюджет. Типовое распределение средств: –60% – разработка. –40% – тестирование. –Развитие – зачастую больше, чем создание. Детали зависят от специфики предметной области, требований к ПО, используемых подходов к организации разработки.
21 Цели программных инженеров. Сроки Создание ПО должно укладываться в сроки. Необходимо грамотное планирование. Анализ возможных рисков и способы реагирования. Борьба за четкие границы проекта. Мотивирование сотрудников.
22 Программные инженеры и научная среда Взаимодействие с научной средой – один из способов повышения эффективности деятельности: –Новые технологии. –Новые методы, алгоритмы. –Анализ новых перспективных разработок. –Исследовательская работа в смежных областях. Помощь ученых: –Там где в принципе не решить задачу своими силами. –Там, где есть специалисты, но нет времени и ресурсов для исследований. Используется современными компаниями: Intel, Microsoft, IBM…
23 Резюме Мы узнали значение и смысл следующих понятий: Инженер. Программный инженер и программная инженерия. Цель программной инженерии. Качество, сроки, бюджет. Взаимодействие с научной средой.
24 Содержание Вспоминая предыдущую лекцию Вместо введения Программная инженерия, основные понятия Процесс создания ПО Что дальше? Литература
25 Процесс создания ПО Процесс создания ПО – совокупность мероприятий, целью которых является создание или модернизация ПО. Выделяют 4 основных мероприятия (стадии): –Спецификация: формулирование спецификаций определяет основные требования к ПО (что должна делать система). –Разработка: создание ПО в соответствии со спецификациями. –Аттестация: проверка ПО на соответствие потребностям заказчика. –Модернизация: развитие ПО в соответствии с изменившимися потребностями заказчика.
26 Стадии процесса создания ПО Спецификация Разработка Аттестация Модернизация
27 Процесс создания ПО... Все стадии основаны на специальных технологиях. Например, Модульное, Структурное, Объектно- ориентированное, Компонентное программирование относятся к стадии Реализации. Каждая организация может использовать свой Процесс разработки. Этот процесс может иметь разную степень формализации. Чем больше, тем лучше – не всегда работает. Чем больше и сложнее проект, тем важнее степень формализации.
28 Процесс создания ПО... Каким бы ни был процесс, перечисленные 4 стадии как правило в нем присутствуют. Они могут иначе называться, дробиться, но от них никуда не уйти. Существуют хорошо проработанные процессы: –Microsoft Solutions Framework (MSF) –Rational Unified Process (RUP) Эти процессы (методологии) могут иметь редакции для малых компаний и проектов, средних, больших.
29 Процесс создания ПО Итак, некий «каркас» процесса: –Спецификация –Разработка –Аттестация –Модернизация От «каркаса» можно пойти вглубь – существенно проработанные процессы (MSF, RUP…) Сам «каркас» можно приводить в жизнь по- разному. Существуют общие модели процесса, которые определяют, как работать по «каркасу» на практике.
30 Модели процесса Классические модели процесса разработки ПО: –Каскадная модель (Waterfall model) фазы выполняются по порядку –Эволюционная модель (Evolutionary development) фазы выполняются по порядку, процесс повторяется
31 Каскадная модель... Каскадная модель: Проектирование Кодирование Тестирование модулей Интеграция тестирование Эксплуатация Сопровождение Определение требований
32 Каскадная модель Каскадная модель: –Фиксированный набор стадий –Каждая стадия -> законченный результат –Стадия начинается, когда закончилась предыдущая. Недостатки: негибкость –фаза д.б. закончена, прежде чем приступить к следующей –Набор фаз фиксирован –Тяжело реагировать на изменения требований Использование: там, где требования хорошо понятны и стабильны.
33 Эволюционная модель Эволюционная модель: –Стадии повторяются неоднократно. Сначала для плохо сформулированных требований выполняется весь цикл работ по созданию работающего прототипа. Потом уточняются требования и все повторяется... На выходе – продукт, отвечающий потребностям пользователей. –Недостатки: Система часто плохо структурирована Проект «не прозрачен» Требуются средства для быстрой разработки Подходит для малых и средних проектов
34 Итерационный подход Часто подходы, перечисленные ранее, используется в совокупности. Требования всегда меняются в ходе разработки. К каждой из предыдущих моделей можно применить итерации. Следовательно, важна возможность выполнения итераций, результатом которых является прототип продукта с частичной функциональностью. Это достигается в итерационных моделях. –Модель пошаговой разработки –Спиральная модель разработки
35 Модель пошаговой разработки Модель пошаговой разработки (Миллс): Шаги. Каждый шаг – работающий прототип. Наиболее важные для заказчика компоненты – в начале. Требования фиксированы во время шага. Для шага можно применять каскадную или эволюционную модель. Одно из ответвлений – Экстремальное программирование. План требований Детализация требований Архитектура системы Шаг разработкиШаг аттестацииШаг сборки Аттестация системы СИСТЕМА Система не готова
36 Спиральная модель Спиральная модель (Боэм): Вместо действий с обратной связью – спираль. Каждый виток спирали соответствует 1 итерации. Нет заранее фиксированных фаз. В зависимости от потребностей. Каждый виток разбит на 4 сектора: –Определение целей –Оценка и разрешение рисков –Разработка и тестирование –Планирование Главное отличие: акцент на анализ и преодоление рисков. На каждом витке могут применяться разные модели процесса разработки ПО.
37 Что дальше? Следующая тема: Визуальное моделирование при анализе и проектировании. Основы Unified Modeling Language (UML). Следующая тема: Визуальное моделирование при анализе и проектировании. Основы Unified Modeling Language (UML).
38 Литература к лекции 1.И. Соммервиль. Инженерия программного обеспечения, 6 изд. – И.д. "Вильямс", Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. Второе издание. – Бином, N. Wirth. Program Development by Stepwise Refinement // Communications of the ACM vol.26(1).– 1971, O. Dahl, E. Dijkstra, C.A.R. Hoare. Structured Programming.–London, England: Academic Press, Р. Лингер, Х. Миллс, Б. Уитт. Теория и практика структурного программирования. – М.: Мир, Э. Салливан. Время – деньги. – М.:Microsoft Press, Русская редакция, 2002.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.