🗊Презентация Методы и средства проектирования ПО. Введение

Нажмите для полного просмотра!
Методы и средства проектирования ПО. Введение, слайд №1Методы и средства проектирования ПО. Введение, слайд №2Методы и средства проектирования ПО. Введение, слайд №3Методы и средства проектирования ПО. Введение, слайд №4Методы и средства проектирования ПО. Введение, слайд №5Методы и средства проектирования ПО. Введение, слайд №6Методы и средства проектирования ПО. Введение, слайд №7Методы и средства проектирования ПО. Введение, слайд №8Методы и средства проектирования ПО. Введение, слайд №9Методы и средства проектирования ПО. Введение, слайд №10Методы и средства проектирования ПО. Введение, слайд №11Методы и средства проектирования ПО. Введение, слайд №12Методы и средства проектирования ПО. Введение, слайд №13Методы и средства проектирования ПО. Введение, слайд №14Методы и средства проектирования ПО. Введение, слайд №15Методы и средства проектирования ПО. Введение, слайд №16Методы и средства проектирования ПО. Введение, слайд №17Методы и средства проектирования ПО. Введение, слайд №18Методы и средства проектирования ПО. Введение, слайд №19Методы и средства проектирования ПО. Введение, слайд №20Методы и средства проектирования ПО. Введение, слайд №21Методы и средства проектирования ПО. Введение, слайд №22Методы и средства проектирования ПО. Введение, слайд №23Методы и средства проектирования ПО. Введение, слайд №24Методы и средства проектирования ПО. Введение, слайд №25Методы и средства проектирования ПО. Введение, слайд №26Методы и средства проектирования ПО. Введение, слайд №27Методы и средства проектирования ПО. Введение, слайд №28Методы и средства проектирования ПО. Введение, слайд №29Методы и средства проектирования ПО. Введение, слайд №30Методы и средства проектирования ПО. Введение, слайд №31Методы и средства проектирования ПО. Введение, слайд №32Методы и средства проектирования ПО. Введение, слайд №33Методы и средства проектирования ПО. Введение, слайд №34Методы и средства проектирования ПО. Введение, слайд №35Методы и средства проектирования ПО. Введение, слайд №36Методы и средства проектирования ПО. Введение, слайд №37Методы и средства проектирования ПО. Введение, слайд №38Методы и средства проектирования ПО. Введение, слайд №39Методы и средства проектирования ПО. Введение, слайд №40Методы и средства проектирования ПО. Введение, слайд №41Методы и средства проектирования ПО. Введение, слайд №42Методы и средства проектирования ПО. Введение, слайд №43Методы и средства проектирования ПО. Введение, слайд №44Методы и средства проектирования ПО. Введение, слайд №45Методы и средства проектирования ПО. Введение, слайд №46Методы и средства проектирования ПО. Введение, слайд №47Методы и средства проектирования ПО. Введение, слайд №48Методы и средства проектирования ПО. Введение, слайд №49Методы и средства проектирования ПО. Введение, слайд №50Методы и средства проектирования ПО. Введение, слайд №51Методы и средства проектирования ПО. Введение, слайд №52Методы и средства проектирования ПО. Введение, слайд №53Методы и средства проектирования ПО. Введение, слайд №54Методы и средства проектирования ПО. Введение, слайд №55Методы и средства проектирования ПО. Введение, слайд №56Методы и средства проектирования ПО. Введение, слайд №57Методы и средства проектирования ПО. Введение, слайд №58Методы и средства проектирования ПО. Введение, слайд №59Методы и средства проектирования ПО. Введение, слайд №60Методы и средства проектирования ПО. Введение, слайд №61Методы и средства проектирования ПО. Введение, слайд №62Методы и средства проектирования ПО. Введение, слайд №63Методы и средства проектирования ПО. Введение, слайд №64Методы и средства проектирования ПО. Введение, слайд №65Методы и средства проектирования ПО. Введение, слайд №66Методы и средства проектирования ПО. Введение, слайд №67Методы и средства проектирования ПО. Введение, слайд №68Методы и средства проектирования ПО. Введение, слайд №69Методы и средства проектирования ПО. Введение, слайд №70Методы и средства проектирования ПО. Введение, слайд №71Методы и средства проектирования ПО. Введение, слайд №72Методы и средства проектирования ПО. Введение, слайд №73Методы и средства проектирования ПО. Введение, слайд №74Методы и средства проектирования ПО. Введение, слайд №75Методы и средства проектирования ПО. Введение, слайд №76Методы и средства проектирования ПО. Введение, слайд №77Методы и средства проектирования ПО. Введение, слайд №78Методы и средства проектирования ПО. Введение, слайд №79Методы и средства проектирования ПО. Введение, слайд №80Методы и средства проектирования ПО. Введение, слайд №81Методы и средства проектирования ПО. Введение, слайд №82Методы и средства проектирования ПО. Введение, слайд №83Методы и средства проектирования ПО. Введение, слайд №84Методы и средства проектирования ПО. Введение, слайд №85Методы и средства проектирования ПО. Введение, слайд №86Методы и средства проектирования ПО. Введение, слайд №87Методы и средства проектирования ПО. Введение, слайд №88Методы и средства проектирования ПО. Введение, слайд №89Методы и средства проектирования ПО. Введение, слайд №90Методы и средства проектирования ПО. Введение, слайд №91Методы и средства проектирования ПО. Введение, слайд №92Методы и средства проектирования ПО. Введение, слайд №93Методы и средства проектирования ПО. Введение, слайд №94Методы и средства проектирования ПО. Введение, слайд №95Методы и средства проектирования ПО. Введение, слайд №96Методы и средства проектирования ПО. Введение, слайд №97Методы и средства проектирования ПО. Введение, слайд №98

Содержание

Вы можете ознакомиться и скачать презентацию на тему Методы и средства проектирования ПО. Введение. Доклад-сообщение содержит 98 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





ПМ3 
МЕТОДЫ И СРЕДСТВА ПРОЕКТИРОВАНИЯ ПО
Описание слайда:
ПМ3 МЕТОДЫ И СРЕДСТВА ПРОЕКТИРОВАНИЯ ПО

Слайд 2





Лекция 1. ВВЕДЕНИЕ
Описание слайда:
Лекция 1. ВВЕДЕНИЕ

Слайд 3





ПРИМЕРНЫЙ ТЕМАТИЧЕСКИЙ ПЛАН (3 курс)
ПРИМЕРНЫЙ ТЕМАТИЧЕСКИЙ ПЛАН (3 курс)
(ПМ3 СТАЦИОНАР: лекций – 16 часов, лабораторных– 16 часов, зачет) 

1. Программная инженерия
2. Технологические подходы жизненного цикла ПО 
3. Визуальное моделирование
Описание слайда:
ПРИМЕРНЫЙ ТЕМАТИЧЕСКИЙ ПЛАН (3 курс) ПРИМЕРНЫЙ ТЕМАТИЧЕСКИЙ ПЛАН (3 курс) (ПМ3 СТАЦИОНАР: лекций – 16 часов, лабораторных– 16 часов, зачет) 1. Программная инженерия 2. Технологические подходы жизненного цикла ПО 3. Визуальное моделирование

Слайд 4





1. Программная инженерия (КРАТКО)
Программная инженерия
Методологии проектирования ПО
Требования. (Свойства  требований. Виды требований. Что не является требованием. Разработка требований. Спецификация требований…)
Информационная система
Описание слайда:
1. Программная инженерия (КРАТКО) Программная инженерия Методологии проектирования ПО Требования. (Свойства требований. Виды требований. Что не является требованием. Разработка требований. Спецификация требований…) Информационная система

Слайд 5





1. Программная инженерия
Чем программирование отличается от программной инженерии
Связь программной инженерии (как области практической деятельности) с информатикой, системотехникой и бизнес-реинжинирингом
Определение программного обеспечения, его свойства
Критерии успешности проекта. Классификация успешности проектов. 
Отличие программной индустрии от других областей производства.
Чем определяются методологии проектирования ПО 
Различные подходы к классификаций методологий проектирования ПО
Характеристика методологий: по стратегии конструирования ПО, по адаптивности процесса к окружению и полноте.
Перечислите отличия различные методологий проектирования ПО. Статистика использования методологий
Схема классификации стандартов в области информационных технологий
Инженерия требований. Требования. Свойства  требований. Виды требований. Что не является требованием
Требования. Разработка требований. Спецификация требований.
Классификация спецификаций по уровню формализации, по способу представления
Характеристика процесса выявления требований. Способы выявления требований
Анализ требований. Приоритизация требований 
Организация требований и способы их документирования
Типы документов, создаваемых в результате получения спецификации требований. Шаблоны спецификаций
Три уровня требований. Объективные противоречия между требованиями различных уровней
Организация требований и способы их документирования
V-модель проверки правильности требований. Основные принципы. Достоинства и ограничения 
Стандарты, связанные с проверкой требований. Схема разработки требований.
Управление требованиями. Условия возможности изменений требований для разных стратегий
Политика управления изменениями требований
Управление версиями требований
Управление состояниями требований
Отслеживание состояний требований 
Прослеживание требований (трассировка). Матрица прослеживания требований
Понятие информационной системы
"Портрет" современной информационной системы масштаба предприятия
"Три кита" информационной системы.
Описание слайда:
1. Программная инженерия Чем программирование отличается от программной инженерии Связь программной инженерии (как области практической деятельности) с информатикой, системотехникой и бизнес-реинжинирингом Определение программного обеспечения, его свойства Критерии успешности проекта. Классификация успешности проектов. Отличие программной индустрии от других областей производства. Чем определяются методологии проектирования ПО Различные подходы к классификаций методологий проектирования ПО Характеристика методологий: по стратегии конструирования ПО, по адаптивности процесса к окружению и полноте. Перечислите отличия различные методологий проектирования ПО. Статистика использования методологий Схема классификации стандартов в области информационных технологий Инженерия требований. Требования. Свойства требований. Виды требований. Что не является требованием Требования. Разработка требований. Спецификация требований. Классификация спецификаций по уровню формализации, по способу представления Характеристика процесса выявления требований. Способы выявления требований Анализ требований. Приоритизация требований Организация требований и способы их документирования Типы документов, создаваемых в результате получения спецификации требований. Шаблоны спецификаций Три уровня требований. Объективные противоречия между требованиями различных уровней Организация требований и способы их документирования V-модель проверки правильности требований. Основные принципы. Достоинства и ограничения Стандарты, связанные с проверкой требований. Схема разработки требований. Управление требованиями. Условия возможности изменений требований для разных стратегий Политика управления изменениями требований Управление версиями требований Управление состояниями требований Отслеживание состояний требований Прослеживание требований (трассировка). Матрица прослеживания требований Понятие информационной системы "Портрет" современной информационной системы масштаба предприятия "Три кита" информационной системы.

Слайд 6





2. Технологические подходы жизненного цикла ПО (КРАТКО)
Технологии создания программного обеспечения
Введение в технологии программирования
Основные группы технологических подходов
Структурные технологии проектирования информационных систем
Современные технологии объектно-ориентированного анализа и проектирования информационных систем
Описание слайда:
2. Технологические подходы жизненного цикла ПО (КРАТКО) Технологии создания программного обеспечения Введение в технологии программирования Основные группы технологических подходов Структурные технологии проектирования информационных систем Современные технологии объектно-ориентированного анализа и проектирования информационных систем

Слайд 7





2. Технологические подходы жизненного цикла ПО 

Понятия, используемые для представления жизненного цикла программы. Простейшее представление жизненного цикла программы. Основные группы технологических подходов жизненного цикла ПО. Классическая модель проектирования ПО: достоинства и недостатки
Каскадные технологические подходы жизненного цикла ПО
Каркасные подходы жизненного цикла ПО. Рациональный унифицированный процесс жизненного цикла ПО
Жизненный цикл проекта в RUP
Рабочий процесс RUP. Вспомогательные дисциплины RUP
Начальная стадия (Inception) RUP: назначение, цели, действия, артефакты 
Уточнение (Elaboration) RUP: назначение, цели, действия, артефакты
Построение (Construction) RUP: назначение, цели, действия, артефакты
Внедрение (Transition) RUP: назначение, цели, действия, артефакты
Генетические подходы жизненного цикла ПО
Подходы на основе формальных преобразований жизненного цикла ПО
Гибкие (адаптивные, легкие) подходы жизненного цикла ПО. Манифест гибкой разработки ПО 
Эволюционное прототипирование  жизненного цикла ПО
Итеративная разработка жизненного цикла ПО
Различие между эволюционным и итеративным методами быстрой разработки
Экстремальное программирование (XP): принципы, характеристика
Адаптивная разработка жизненного цикла ПО. Scrum: артефакты, планирование, роли, методология 
Постадийная (инкрементальная) разработка жизненного цикла ПО
Сравнительная характеристика технологических подходов к проектированию ПО
Сравнение методологий разработки ПО по отношению к каскадной или итеративной разработке  и степени формальности
Модели зрелости процесса разработки (CMM, CMMI)
Методология объектно-ориентированного анализа и проектирования (ООАП)
Техники структурных диаграмм.  Три базовые графические нотации структурного системного анализа для объектно-ориентированного анализа и проектирования (ООАП)
Диаграммы "сущность-связь"
Диаграммы функционального моделирования
Методология структурного анализа и проектирования
Модель IDEF0. Основные понятия:
Диаграммы потоков данных (Data Flow Diagrams).Графические примитивы.
Недостатки основных нотаций структурного системного анализа 
Популярные графические нотации визуального моделирования конца 80-х годов
Описание слайда:
2. Технологические подходы жизненного цикла ПО Понятия, используемые для представления жизненного цикла программы. Простейшее представление жизненного цикла программы. Основные группы технологических подходов жизненного цикла ПО. Классическая модель проектирования ПО: достоинства и недостатки Каскадные технологические подходы жизненного цикла ПО Каркасные подходы жизненного цикла ПО. Рациональный унифицированный процесс жизненного цикла ПО Жизненный цикл проекта в RUP Рабочий процесс RUP. Вспомогательные дисциплины RUP Начальная стадия (Inception) RUP: назначение, цели, действия, артефакты Уточнение (Elaboration) RUP: назначение, цели, действия, артефакты Построение (Construction) RUP: назначение, цели, действия, артефакты Внедрение (Transition) RUP: назначение, цели, действия, артефакты Генетические подходы жизненного цикла ПО Подходы на основе формальных преобразований жизненного цикла ПО Гибкие (адаптивные, легкие) подходы жизненного цикла ПО. Манифест гибкой разработки ПО Эволюционное прототипирование жизненного цикла ПО Итеративная разработка жизненного цикла ПО Различие между эволюционным и итеративным методами быстрой разработки Экстремальное программирование (XP): принципы, характеристика Адаптивная разработка жизненного цикла ПО. Scrum: артефакты, планирование, роли, методология Постадийная (инкрементальная) разработка жизненного цикла ПО Сравнительная характеристика технологических подходов к проектированию ПО Сравнение методологий разработки ПО по отношению к каскадной или итеративной разработке и степени формальности Модели зрелости процесса разработки (CMM, CMMI) Методология объектно-ориентированного анализа и проектирования (ООАП) Техники структурных диаграмм. Три базовые графические нотации структурного системного анализа для объектно-ориентированного анализа и проектирования (ООАП) Диаграммы "сущность-связь" Диаграммы функционального моделирования Методология структурного анализа и проектирования Модель IDEF0. Основные понятия: Диаграммы потоков данных (Data Flow Diagrams).Графические примитивы. Недостатки основных нотаций структурного системного анализа Популярные графические нотации визуального моделирования конца 80-х годов

Слайд 8





3. Визуальное моделирование (КРАТКО)
Объектно-ориентированный язык моделирования
Определение визуального моделирования
Основные элементы языка UML: диаграммы 
вариантов использования, 
классов, кооперации, 
последовательности, 
состояний, 
деятельности, 
компонентов, 
развертывания
CASE-средства для построения диаграмм UML
Описание слайда:
3. Визуальное моделирование (КРАТКО) Объектно-ориентированный язык моделирования Определение визуального моделирования Основные элементы языка UML: диаграммы вариантов использования, классов, кооперации, последовательности, состояний, деятельности, компонентов, развертывания CASE-средства для построения диаграмм UML

Слайд 9





3. Визуальное моделирование
Причины неудачности проектов разработки ПО. Характеристика лучших практик разработки ПО
Характеристика UML, как Унифицированного Языка Моделирования
История создания UML. Версии UML.
Характеристика UML, как языка спецификации, проектирования и документирования
Моделирование, визуальное моделирование. Основные понятия визуального моделирования
Поколения CASE-средств разработки визуальных моделей сложных систем
Объектно-ориентированное программирование (ООП) – основные понятия. Объектно-ориентированный анализ и проектирование (ООАП) – основные понятия.
Целесообразность использования моделей в виде диаграмм UML для различных проектов по технической  сложности и сложности управления
Целесообразность использования моделей в виде диаграмм UML для различных проектов по типу приложений
Взаимосвязь нотации, методологии и инструментальных средств
UML, как унифицированный язык моделирования и чем он не является
Способы использования UML и назначение языка UML
Противоречивость и адекватность моделей в нотации UML
Канонические диаграммы языка UML 1.х и 2.х
Классификация моделей в языке UML
Статические и динамические модели языка UML
Рекомендации по изображению диаграмм в нотации языка UML
Механизмы расширения языка UML
Диаграмма вариантов использования (use case diagram). Графические примитивы. Типичные ошибки при разработке диаграмм вариантов использования
Формализация функциональных требований с помощью диаграммы ВИ. Классификация требований – модель FURPS+
Спецификация вариантов использования с помощью текстовых сценариев в UML 
Шаблоны для написания сценария отдельного варианта использования 
Принципиально разные случаи использования диаграммы UC и примеры
Диаграмма классов (class diagram). Графические примитивы. Назначение. Примеры.
Диаграмма объектов (object diagram). Графические примитивы. Назначение. Примеры.
Диаграмма последовательностей (sequence diagram). Графические примитивы. Назначение. Примеры.
Диаграмма взаимодействия (collaboration diagram). Графические примитивы. Назначение. Примеры.
Диаграмма состояний (statechart diagram). Графические примитивы. Назначение. Примеры.
Диаграмма активности или деятельностей (activity diagram). Графические примитивы. Назначение. Примеры.
Диаграмма развертывания (deployment diagram). Графические примитивы. Назначение. Примеры.
Описание слайда:
3. Визуальное моделирование Причины неудачности проектов разработки ПО. Характеристика лучших практик разработки ПО Характеристика UML, как Унифицированного Языка Моделирования История создания UML. Версии UML. Характеристика UML, как языка спецификации, проектирования и документирования Моделирование, визуальное моделирование. Основные понятия визуального моделирования Поколения CASE-средств разработки визуальных моделей сложных систем Объектно-ориентированное программирование (ООП) – основные понятия. Объектно-ориентированный анализ и проектирование (ООАП) – основные понятия. Целесообразность использования моделей в виде диаграмм UML для различных проектов по технической сложности и сложности управления Целесообразность использования моделей в виде диаграмм UML для различных проектов по типу приложений Взаимосвязь нотации, методологии и инструментальных средств UML, как унифицированный язык моделирования и чем он не является Способы использования UML и назначение языка UML Противоречивость и адекватность моделей в нотации UML Канонические диаграммы языка UML 1.х и 2.х Классификация моделей в языке UML Статические и динамические модели языка UML Рекомендации по изображению диаграмм в нотации языка UML Механизмы расширения языка UML Диаграмма вариантов использования (use case diagram). Графические примитивы. Типичные ошибки при разработке диаграмм вариантов использования Формализация функциональных требований с помощью диаграммы ВИ. Классификация требований – модель FURPS+ Спецификация вариантов использования с помощью текстовых сценариев в UML Шаблоны для написания сценария отдельного варианта использования Принципиально разные случаи использования диаграммы UC и примеры Диаграмма классов (class diagram). Графические примитивы. Назначение. Примеры. Диаграмма объектов (object diagram). Графические примитивы. Назначение. Примеры. Диаграмма последовательностей (sequence diagram). Графические примитивы. Назначение. Примеры. Диаграмма взаимодействия (collaboration diagram). Графические примитивы. Назначение. Примеры. Диаграмма состояний (statechart diagram). Графические примитивы. Назначение. Примеры. Диаграмма активности или деятельностей (activity diagram). Графические примитивы. Назначение. Примеры. Диаграмма развертывания (deployment diagram). Графические примитивы. Назначение. Примеры.

Слайд 10





Методологии программирования
Методология программирования – это не способ того, как программируют, а это некий свод или совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ. Она определяет то, как программист программирует, какие методы использует, что программирует, что делает и т.д.
Виды методологий программирования:
Структурное программирование; 
Объектно-ориентированное программирование(ООП); 
Логическое программирование;
Функциональное программирование;
Программирование в ограничениях.
Описание слайда:
Методологии программирования Методология программирования – это не способ того, как программируют, а это некий свод или совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ. Она определяет то, как программист программирует, какие методы использует, что программирует, что делает и т.д. Виды методологий программирования: Структурное программирование; Объектно-ориентированное программирование(ООП); Логическое программирование; Функциональное программирование; Программирование в ограничениях.

Слайд 11





Структурное программирование – методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Структурное программирование появилось из блок-схем. На основе блоков и работает структурное программирование. Любой классический язык (С, Фортран, Паскаль и др.) является структурным. 
Структурное программирование – методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Структурное программирование появилось из блок-схем. На основе блоков и работает структурное программирование. Любой классический язык (С, Фортран, Паскаль и др.) является структурным. 
Объектно-ориентированное программирование (ООП) – методология, при которой основой составления программы являются объекты и классы. Неполный список объектно-ориентированных языков программирования: C# , C++, F#, Java, Delphi, Swift, Object Pascal, VB.NET, Visual DataFlex, Perl, PowerBuilder, Python, Scala, ActionScript (3.0), JavaScript, NET, Ruby, Smalltalk, Ada, Xbase++, X++, Vala, PHP, Cyclone.
Логическое программирование основано на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Формально логическое программирование программированием не является, это некая математическая конструкция, предназначенная для автоматического доказательства теорем, это часть математической логики. Например, машина Тьюринга относится к логическому программированию.
Описание слайда:
Структурное программирование – методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Структурное программирование появилось из блок-схем. На основе блоков и работает структурное программирование. Любой классический язык (С, Фортран, Паскаль и др.) является структурным. Структурное программирование – методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Структурное программирование появилось из блок-схем. На основе блоков и работает структурное программирование. Любой классический язык (С, Фортран, Паскаль и др.) является структурным. Объектно-ориентированное программирование (ООП) – методология, при которой основой составления программы являются объекты и классы. Неполный список объектно-ориентированных языков программирования: C# , C++, F#, Java, Delphi, Swift, Object Pascal, VB.NET, Visual DataFlex, Perl, PowerBuilder, Python, Scala, ActionScript (3.0), JavaScript, NET, Ruby, Smalltalk, Ada, Xbase++, X++, Vala, PHP, Cyclone. Логическое программирование основано на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Формально логическое программирование программированием не является, это некая математическая конструкция, предназначенная для автоматического доказательства теорем, это часть математической логики. Например, машина Тьюринга относится к логическому программированию.

Слайд 12





Функциональное программирование – это программирование в функциях, или при помощи функций, как правило, математических. Классическим примером функционального программирования является работа в любом математическом паке, например, MathCAD, Mathematica, MatLab и Maple.
Функциональное программирование – это программирование в функциях, или при помощи функций, как правило, математических. Классическим примером функционального программирования является работа в любом математическом паке, например, MathCAD, Mathematica, MatLab и Maple.
Программирование в ограничениях. Это методология программирования, когда программирование осуществляется в каких-то рамках, ограничениях, например, ограничение на максимальный размер итогового файла, по используемым функциям и т.д. Здесь отношения между переменными указаны в форме ограничений, ограничения отличаются от общих примитивов языков императивного программирования тем, что они определяют не последовательность шагов для исполнения, а свойства искомого решения. Формально скриптовое программирование является программированием в ограничениях, поскольку программист ограничен набором функций, который есть в скриптовом языке.
Описание слайда:
Функциональное программирование – это программирование в функциях, или при помощи функций, как правило, математических. Классическим примером функционального программирования является работа в любом математическом паке, например, MathCAD, Mathematica, MatLab и Maple. Функциональное программирование – это программирование в функциях, или при помощи функций, как правило, математических. Классическим примером функционального программирования является работа в любом математическом паке, например, MathCAD, Mathematica, MatLab и Maple. Программирование в ограничениях. Это методология программирования, когда программирование осуществляется в каких-то рамках, ограничениях, например, ограничение на максимальный размер итогового файла, по используемым функциям и т.д. Здесь отношения между переменными указаны в форме ограничений, ограничения отличаются от общих примитивов языков императивного программирования тем, что они определяют не последовательность шагов для исполнения, а свойства искомого решения. Формально скриптовое программирование является программированием в ограничениях, поскольку программист ограничен набором функций, который есть в скриптовом языке.

Слайд 13





Методологии программирования
Наиболее популярны и известны 5 методологий программирования:
Структурное программирование; 
Объектно-ориентированное программирование(ООП); 
Логическое программирование;
Функциональное программирование;
Программирование в ограничениях.
(Самые современные и мощные выделены). 
Методологии характеризуются своим: 
философским подходом или основными принципами;
 согласованным множеством моделей методов, которые реализуют данную методологию; 
концепциями (понятиями), позволяющими более точно определить методы.
Описание слайда:
Методологии программирования Наиболее популярны и известны 5 методологий программирования: Структурное программирование; Объектно-ориентированное программирование(ООП); Логическое программирование; Функциональное программирование; Программирование в ограничениях. (Самые современные и мощные выделены). Методологии характеризуются своим: философским подходом или основными принципами; согласованным множеством моделей методов, которые реализуют данную методологию; концепциями (понятиями), позволяющими более точно определить методы.

Слайд 14





Основными самыми современными и мощными методологиями программирования являются структурное и ООП программирование. 
Основными самыми современными и мощными методологиями программирования являются структурное и ООП программирование. 
Существуют еще другие методологии программирования, но упомянутые выше пять – наиболее популярные и известные.
Каждая методология характеризуется своим: 
философским подходом или основными принципами;
 согласованным множеством моделей методов, которые реализуют данную методологию; 
концепциями (понятиями), позволяющими более точно определить методы.
Описание слайда:
Основными самыми современными и мощными методологиями программирования являются структурное и ООП программирование. Основными самыми современными и мощными методологиями программирования являются структурное и ООП программирование. Существуют еще другие методологии программирования, но упомянутые выше пять – наиболее популярные и известные. Каждая методология характеризуется своим: философским подходом или основными принципами; согласованным множеством моделей методов, которые реализуют данную методологию; концепциями (понятиями), позволяющими более точно определить методы.

Слайд 15





Типичный процесс создания продукта 
Типичный процесс создания продукта
Описание слайда:
Типичный процесс создания продукта Типичный процесс создания продукта

Слайд 16





Чем программирование отличается от программной инженерии?
Программирование является некоторой абстрактной деятельностью и может происходить во многих различных контекстах. Можно программировать для удовольствия, для того, чтобы научиться (например, на уроках, на семинарах в университете), можно программировать в рамках научных разработок. А можно заниматься промышленным программированием. 
Как правило, это происходит в команде, и совершенно точно – для заказчика, который платит за работу деньги. При этом необходимо точно понимать, что нужно заказчику, выполнить работу в определенные сроки и результат должен быть нужного качества – того, которое удовлетворит заказчика и за которое он заплатит. 
Чтобы удовлетворить этим дополнительным требованиям, программирование "обрастает" различными дополнительными видами деятельности: разработкой требований, планированием, тестированием, конфигурационным управлением, проектным менеджментом, созданием различной документации (проектной, пользовательской и пр.).
Описание слайда:
Чем программирование отличается от программной инженерии? Программирование является некоторой абстрактной деятельностью и может происходить во многих различных контекстах. Можно программировать для удовольствия, для того, чтобы научиться (например, на уроках, на семинарах в университете), можно программировать в рамках научных разработок. А можно заниматься промышленным программированием. Как правило, это происходит в команде, и совершенно точно – для заказчика, который платит за работу деньги. При этом необходимо точно понимать, что нужно заказчику, выполнить работу в определенные сроки и результат должен быть нужного качества – того, которое удовлетворит заказчика и за которое он заплатит. Чтобы удовлетворить этим дополнительным требованиям, программирование "обрастает" различными дополнительными видами деятельности: разработкой требований, планированием, тестированием, конфигурационным управлением, проектным менеджментом, созданием различной документации (проектной, пользовательской и пр.).

Слайд 17





Программная  инженерия
Разработка программного кода предваряется 
		анализом (создание функциональной модели будущей системы без учета реализации, для осознания программистами требований и ожиданий заказчика); 
		и проектированием (предварительный макет, эскиз, план системы на бумаге). 
Трудозатраты на анализ и проектирование, а также форма представления их результатов сильно варьируются от видов проектов и предпочтений разработчиков и заказчиков.
Требуются также специальные усилия по организации процесса разработки. В общем виде это итеративно-инкрементальная модель, когда требуемая функциональность создается порциями, которые менеджеры и заказчик могут оценить, и тем самым есть возможность управления ходом разработки. 
Однако эта общая модель имеет множество модификаций и вариантов.
Описание слайда:
Программная инженерия Разработка программного кода предваряется анализом (создание функциональной модели будущей системы без учета реализации, для осознания программистами требований и ожиданий заказчика); и проектированием (предварительный макет, эскиз, план системы на бумаге). Трудозатраты на анализ и проектирование, а также форма представления их результатов сильно варьируются от видов проектов и предпочтений разработчиков и заказчиков. Требуются также специальные усилия по организации процесса разработки. В общем виде это итеративно-инкрементальная модель, когда требуемая функциональность создается порциями, которые менеджеры и заказчик могут оценить, и тем самым есть возможность управления ходом разработки. Однако эта общая модель имеет множество модификаций и вариантов.

Слайд 18





Программная  инженерия
Разработку системы необходимо выполнять с учетом удобств ее дальнейшего сопровождения, повторного использования и интеграции с другими системами. 
Это значит, что система разбивается на компоненты, удобные в разработке, годные для повторного использования и интеграции, а также имеющие необходимые характеристики по быстродействию. 
Для этих компонент тщательно прорабатываются интерфейсы. Сама система документируется на многих уровнях, создаются правила оформления программного кода – т. е. оставляются многочисленные семантические следы, помогающие создать и сохранить, поддерживать единую, стройную архитектуру, единообразный стиль, порядок…
Описание слайда:
Программная инженерия Разработку системы необходимо выполнять с учетом удобств ее дальнейшего сопровождения, повторного использования и интеграции с другими системами. Это значит, что система разбивается на компоненты, удобные в разработке, годные для повторного использования и интеграции, а также имеющие необходимые характеристики по быстродействию. Для этих компонент тщательно прорабатываются интерфейсы. Сама система документируется на многих уровнях, создаются правила оформления программного кода – т. е. оставляются многочисленные семантические следы, помогающие создать и сохранить, поддерживать единую, стройную архитектуру, единообразный стиль, порядок…

Слайд 19





Программная  инженерия
Все эти и другие дополнительные виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов называют программной инженерией (software engineering). 
Так мы обозначаем, во-первых, некоторую практическую деятельность, а во-вторых, специальную область знания. Для облегчения выполнения каждого отдельного проекта и возможности использовать разнообразный положительный опыт, достигнутый другими командами и разработчиками, этот опыт подвергается осмыслению, обобщению и надлежащему оформлению. 
Так появляются:
методы и практики (best practices) – тестирования, проектирования, работы над требованиями и пр., архитектурных шаблонов и пр. 
стандарты и методологии, касающиеся всего процесса в целом (например, MSF, RUP, CMMI, Scrum). 
Эти обобщения и входят в программную инженерию, как в область знания.
Описание слайда:
Программная инженерия Все эти и другие дополнительные виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов называют программной инженерией (software engineering). Так мы обозначаем, во-первых, некоторую практическую деятельность, а во-вторых, специальную область знания. Для облегчения выполнения каждого отдельного проекта и возможности использовать разнообразный положительный опыт, достигнутый другими командами и разработчиками, этот опыт подвергается осмыслению, обобщению и надлежащему оформлению. Так появляются: методы и практики (best practices) – тестирования, проектирования, работы над требованиями и пр., архитектурных шаблонов и пр. стандарты и методологии, касающиеся всего процесса в целом (например, MSF, RUP, CMMI, Scrum). Эти обобщения и входят в программную инженерию, как в область знания.

Слайд 20





Необходимость в программной инженерии
Необходимость в программной инженерии как в специальной области знаний была осознана мировым сообществом в конце 60-х годов прошлого века, более чем на 20 лет позже рождения самого программирования (если считать таковым знаменитый отчет фон Неймана "First Draft of a Report on the EDVAC", обнародованный им в 1945 году). Рождением программной инженерии является 1968 год – конференция NATO Software Engineering, г. Гармиш (ФРГ), которая целиком была посвящена рассмотрению этих вопросов. 
В сферу программной инженерии попадают все вопросы и темы, связанные с организацией и улучшением процесса разработки ПО, управлением коллективом разработчиков, разработкой и внедрением программных средств поддержки жизненного цикла разработки ПО. 
Программная инженерия использует достижения информатики, тесно связана с системотехникой, часто предваряется бизнес-реинжинирингом.
Описание слайда:
Необходимость в программной инженерии Необходимость в программной инженерии как в специальной области знаний была осознана мировым сообществом в конце 60-х годов прошлого века, более чем на 20 лет позже рождения самого программирования (если считать таковым знаменитый отчет фон Неймана "First Draft of a Report on the EDVAC", обнародованный им в 1945 году). Рождением программной инженерии является 1968 год – конференция NATO Software Engineering, г. Гармиш (ФРГ), которая целиком была посвящена рассмотрению этих вопросов. В сферу программной инженерии попадают все вопросы и темы, связанные с организацией и улучшением процесса разработки ПО, управлением коллективом разработчиков, разработкой и внедрением программных средств поддержки жизненного цикла разработки ПО. Программная инженерия использует достижения информатики, тесно связана с системотехникой, часто предваряется бизнес-реинжинирингом.

Слайд 21





Информатика (computer science)
это свод теоретических наук, основанных на математике и посвященных формальным основам вычислимости. Сюда относят математическую логику, теорию грамматик, методы построения компиляторов, математические формальные методы, используемые в верификации и модельном тестировании и т.д. 
Трудно строго отделить программную инженерию от информатики, но в целом направленность этих дисциплин различна. 
Программная инженерия нацелена на решение проблем производства, информатика – на разработку формальных, математизированных подходов к программированию.
Описание слайда:
Информатика (computer science) это свод теоретических наук, основанных на математике и посвященных формальным основам вычислимости. Сюда относят математическую логику, теорию грамматик, методы построения компиляторов, математические формальные методы, используемые в верификации и модельном тестировании и т.д. Трудно строго отделить программную инженерию от информатики, но в целом направленность этих дисциплин различна. Программная инженерия нацелена на решение проблем производства, информатика – на разработку формальных, математизированных подходов к программированию.

Слайд 22





Системотехника (system engineering)
объединяет различные инженерные дисциплины по разработке всевозможных искусственных систем – энергоустановок, телекоммуникационных систем, встроенных систем реального времени и т.д. Очень часто ПО оказывается частью таких систем, выполняя задачу управления соответствующего оборудования. Такие системы называются программно-аппаратными, и участвуя в их создании, программисты вынуждены глубоко разбираться в особенностях соответствующей аппаратуры.
Описание слайда:
Системотехника (system engineering) объединяет различные инженерные дисциплины по разработке всевозможных искусственных систем – энергоустановок, телекоммуникационных систем, встроенных систем реального времени и т.д. Очень часто ПО оказывается частью таких систем, выполняя задачу управления соответствующего оборудования. Такие системы называются программно-аппаратными, и участвуя в их создании, программисты вынуждены глубоко разбираться в особенностях соответствующей аппаратуры.

Слайд 23





Бизнес-реинжиниринг (business reengineering)
в широком смысле обозначает модернизацию бизнеса в определенной компании, внедрение новых практик, поддерживаемых соответствующими новыми информационными системами. При этом акцент может быть как на внутреннем переустройстве компании так и на разработке нового клиентского сервиса (как правило, эти вопросы взаимосвязаны). Бизнес-реинжиниринг часто предваряет разработку и внедрение информационных систем на предприятии, так как требуется сначала навести определенный порядок в делопроизводстве, а лишь потом закрепить его информационной системой.
Описание слайда:
Бизнес-реинжиниринг (business reengineering) в широком смысле обозначает модернизацию бизнеса в определенной компании, внедрение новых практик, поддерживаемых соответствующими новыми информационными системами. При этом акцент может быть как на внутреннем переустройстве компании так и на разработке нового клиентского сервиса (как правило, эти вопросы взаимосвязаны). Бизнес-реинжиниринг часто предваряет разработку и внедрение информационных систем на предприятии, так как требуется сначала навести определенный порядок в делопроизводстве, а лишь потом закрепить его информационной системой.

Слайд 24





Связь программной инженерии (как области практической деятельности) с информатикой, системотехникой и бизнес-реинжинирингом
Описание слайда:
Связь программной инженерии (как области практической деятельности) с информатикой, системотехникой и бизнес-реинжинирингом

Слайд 25





Определения
Программное обеспечение
Проектирование ПО
Фаза проектирования ПО
Жизненный цикл ПО
Программный продукт
Описание слайда:
Определения Программное обеспечение Проектирование ПО Фаза проектирования ПО Жизненный цикл ПО Программный продукт

Слайд 26





Программное обеспечение
Будем понимать под программным обеспечением (ПО) множество развивающихся во времени логических предписаний, с помощью которых некоторый коллектив людей управляет и использует многопроцессорную и распределенную систему вычислительных устройств. 
(Определение Харальда Миллса - известного специалиста в области программной инженерии из компании IBM)
Описание слайда:
Программное обеспечение Будем понимать под программным обеспечением (ПО) множество развивающихся во времени логических предписаний, с помощью которых некоторый коллектив людей управляет и использует многопроцессорную и распределенную систему вычислительных устройств. (Определение Харальда Миллса - известного специалиста в области программной инженерии из компании IBM)

Слайд 27





Комментарий к определению
программного обеспечения
Логические предписания – это не только сами программы, но и различная документация (например, по эксплуатации программ) и шире – определенная система отношений между людьми, использующими эти программы в рамках некоторого процесса деятельности.
Современное ПО предназначено, как правило, для одновременной работы со многими пользователями, которые могут быть значительно удалены друг от друга в физическом пространстве. Таким образом, вычислительная среда (персональные компьютеры, сервера и т.д.), в которой ПО функционирует, оказывается распределенной.
Задачи решаемые современным ПО, часто требуют различных вычислительных ресурсов в силу различной специализации этих задач, из-за большого объема выполняемой работы, а также из соображений безопасности. Например, появляется сервер базы данных, сервер приложений и пр. Таким образом, вычислительная среда, в которой ПО функционирует, оказывается многопроцессорной.
ПО развивается во времени – исправляются ошибки, добавляются новые функции, выпускаются новые версии, меняется его аппаратная база.
Описание слайда:
Комментарий к определению программного обеспечения Логические предписания – это не только сами программы, но и различная документация (например, по эксплуатации программ) и шире – определенная система отношений между людьми, использующими эти программы в рамках некоторого процесса деятельности. Современное ПО предназначено, как правило, для одновременной работы со многими пользователями, которые могут быть значительно удалены друг от друга в физическом пространстве. Таким образом, вычислительная среда (персональные компьютеры, сервера и т.д.), в которой ПО функционирует, оказывается распределенной. Задачи решаемые современным ПО, часто требуют различных вычислительных ресурсов в силу различной специализации этих задач, из-за большого объема выполняемой работы, а также из соображений безопасности. Например, появляется сервер базы данных, сервер приложений и пр. Таким образом, вычислительная среда, в которой ПО функционирует, оказывается многопроцессорной. ПО развивается во времени – исправляются ошибки, добавляются новые функции, выпускаются новые версии, меняется его аппаратная база.

Слайд 28





Свойства ПО
ПО является сложной динамической системой, включающей в себя технические, психологические и социальные аспекты.
Описание слайда:
Свойства ПО ПО является сложной динамической системой, включающей в себя технические, психологические и социальные аспекты.

Слайд 29





Свойства ПО (сложность)
Сложность программных объектов существенно зависит от их размеров. Как правило, бОльшее ПО (бОльшее количество пользователей, больший объем обрабатываемых данных, более жесткие требования по быстродействию и пр.) с аналогичной функциональностью – это другое ПО. Классическая наука строила простые модели сложных явлений, и это удавалось, так как сложность не была характеристической чертой рассматриваемых явлений. 
(Сравнение программирования именно с наукой, а не с театром, кинематографом, спортом и другими областями человеческой деятельности, оправдано, поскольку оно возникло, главным образом, из математики, а первые его плоды – программы – предназначались для использования при научных расчетах. Кроме того, большинство программистов имеют естественнонаучное, математическое или техническое образование. Таким образом, парадигмы научного мышления широко используются при программировании – явно или неявно.)
Описание слайда:
Свойства ПО (сложность) Сложность программных объектов существенно зависит от их размеров. Как правило, бОльшее ПО (бОльшее количество пользователей, больший объем обрабатываемых данных, более жесткие требования по быстродействию и пр.) с аналогичной функциональностью – это другое ПО. Классическая наука строила простые модели сложных явлений, и это удавалось, так как сложность не была характеристической чертой рассматриваемых явлений. (Сравнение программирования именно с наукой, а не с театром, кинематографом, спортом и другими областями человеческой деятельности, оправдано, поскольку оно возникло, главным образом, из математики, а первые его плоды – программы – предназначались для использования при научных расчетах. Кроме того, большинство программистов имеют естественнонаучное, математическое или техническое образование. Таким образом, парадигмы научного мышления широко используются при программировании – явно или неявно.)

Слайд 30





Свойства ПО (согласованность)
ПО основывается не на объективных посылках (подобно тому, как различные системы в классической науке основываются на постулатах и аксиомах), а должно быть согласовано с большим количеством интерфейсов, с которыми впоследствии оно должно взаимодействовать. Эти интерфейсы плохо поддаются стандартизации, поскольку основываются на многочисленных и плохо формализуемых человеческих соглашениях.
Описание слайда:
Свойства ПО (согласованность) ПО основывается не на объективных посылках (подобно тому, как различные системы в классической науке основываются на постулатах и аксиомах), а должно быть согласовано с большим количеством интерфейсов, с которыми впоследствии оно должно взаимодействовать. Эти интерфейсы плохо поддаются стандартизации, поскольку основываются на многочисленных и плохо формализуемых человеческих соглашениях.

Слайд 31





Свойства ПО (изменяемость )
ПО легко изменить и, как следствие, требования к нему постоянно меняются в процессе разработки. Это создает много дополнительных трудностей при его разработке и эволюции.
Описание слайда:
Свойства ПО (изменяемость ) ПО легко изменить и, как следствие, требования к нему постоянно меняются в процессе разработки. Это создает много дополнительных трудностей при его разработке и эволюции.

Слайд 32





Свойства ПО (нематериальность)
ПО невозможно увидеть, оно виртуально. Поэтому, например, трудно воспользоваться технологиями, основанными на предварительном создании чертежей, успешно используемыми в других промышленных областях (например, в строительстве, машиностроении). Там на чертежах в схематичном виде воспроизводятся геометрические формы создаваемых объектов. Когда объект создан, эти формы можно увидеть.
Описание слайда:
Свойства ПО (нематериальность) ПО невозможно увидеть, оно виртуально. Поэтому, например, трудно воспользоваться технологиями, основанными на предварительном создании чертежей, успешно используемыми в других промышленных областях (например, в строительстве, машиностроении). Там на чертежах в схематичном виде воспроизводятся геометрические формы создаваемых объектов. Когда объект создан, эти формы можно увидеть.

Слайд 33





Схема классификации стандартов в области информационных технологий
Описание слайда:
Схема классификации стандартов в области информационных технологий

Слайд 34





Схема классификации стандартов в области информационных технологий
Описание слайда:
Схема классификации стандартов в области информационных технологий

Слайд 35





Схема классификации стандартов в области информационных технологий
Описание слайда:
Схема классификации стандартов в области информационных технологий

Слайд 36





Фаза (phase)
это определенный этап процесса, имеющий начало, конец и выходной результат. Например, фаза проверки осуществимости проекта, сдачи проекта и т.д. 
Фазы следуют друг за другом в линейном порядке, характеризуются предоставлением отчетности заказчику и, часто, выплатой денег за выполненную часть работы.
Описание слайда:
Фаза (phase) это определенный этап процесса, имеющий начало, конец и выходной результат. Например, фаза проверки осуществимости проекта, сдачи проекта и т.д. Фазы следуют друг за другом в линейном порядке, характеризуются предоставлением отчетности заказчику и, часто, выплатой денег за выполненную часть работы.

Слайд 37





Основные фазы ЖЦ ПО (пример)
Описание слайда:
Основные фазы ЖЦ ПО (пример)

Слайд 38





Критерии успешности проекта
Качество
Время 
Бюджет
Описание слайда:
Критерии успешности проекта Качество Время Бюджет

Слайд 39





По оценкам The Standish Group, в 2013 году во всем мире на проекты разработки и внедрения программных продуктов было потрачено $750 млрд.
Описание слайда:
По оценкам The Standish Group, в 2013 году во всем мире на проекты разработки и внедрения программных продуктов было потрачено $750 млрд.

Слайд 40





Классификация успешности проектов 
Успешные проекты (Successfull) – проект сделан в рамках тройного ограничения, т.е. все цели проекта достигнуты в плановый срок и бюджет.
Провальные проекты (Failed) – проекты, остановленные без получения результата, то есть, по сути, деньги потрачены зря.
Спорные проекты (Challenged) – те проекты, которые были завершены либо с превышением сроков, либо стоили дороже, чем планировалось, либо достигли лишь части целей.
Статистика успешности ИТ-проектов приведена далее:
Описание слайда:
Классификация успешности проектов Успешные проекты (Successfull) – проект сделан в рамках тройного ограничения, т.е. все цели проекта достигнуты в плановый срок и бюджет. Провальные проекты (Failed) – проекты, остановленные без получения результата, то есть, по сути, деньги потрачены зря. Спорные проекты (Challenged) – те проекты, которые были завершены либо с превышением сроков, либо стоили дороже, чем планировалось, либо достигли лишь части целей. Статистика успешности ИТ-проектов приведена далее:

Слайд 41





В 2013 году «лидером» по количеству неудачных проектов стали Соединенные Штаты, но Европа «отстала» не намного. 
По оценкам The Standish Group на так называемые «провальные» проекты потрачено $120 млрд. Что касается «спорных» софтверных проектов, то The Standish Group оценивает перерасход бюджета по ним примерно в $80 млрд., итого $200 млрд. потраченны без видимой экономической выгоды.
Описание слайда:
В 2013 году «лидером» по количеству неудачных проектов стали Соединенные Штаты, но Европа «отстала» не намного. По оценкам The Standish Group на так называемые «провальные» проекты потрачено $120 млрд. Что касается «спорных» софтверных проектов, то The Standish Group оценивает перерасход бюджета по ним примерно в $80 млрд., итого $200 млрд. потраченны без видимой экономической выгоды.

Слайд 42





Вероятность успеха:
	для больших проектов (стоимость человеческих ресурсов в проекте оказалась свыше $10 млн.) составляет всего 10%. 
	для малых проектов (стоимость человеческих ресурсов была менее $1 млн.) она в 7,5 раз выше.
Описание слайда:
Вероятность успеха: для больших проектов (стоимость человеческих ресурсов в проекте оказалась свыше $10 млн.) составляет всего 10%. для малых проектов (стоимость человеческих ресурсов была менее $1 млн.) она в 7,5 раз выше.

Слайд 43





В 2012 (2014) году, по данным Всемирного банка (World Bank), ВВП (валовый внутренний продукт) России составил почти $2014,8 (1013,9) млрд.,
В 2012 (2014) году, по данным Всемирного банка (World Bank), ВВП (валовый внутренний продукт) России составил почти $2014,8 (1013,9) млрд.,
т.е., затраты на софт в мире – более трети от ВВП России, которая находилась на восьмом месте в рейтинге по этому показателю. 
Если взять всю мировую экономику, то в 2012 году ее объем составил $72 440 млрд., 
т.е. затраты на программное обеспечение достигли примерно 1% от мирового валового продукта. 
Получается, что при наличии огромного числа отраслей и сфер деятельности доля расходов на софтвер превысила 1% всей мировой экономики.
Описание слайда:
В 2012 (2014) году, по данным Всемирного банка (World Bank), ВВП (валовый внутренний продукт) России составил почти $2014,8 (1013,9) млрд., В 2012 (2014) году, по данным Всемирного банка (World Bank), ВВП (валовый внутренний продукт) России составил почти $2014,8 (1013,9) млрд., т.е., затраты на софт в мире – более трети от ВВП России, которая находилась на восьмом месте в рейтинге по этому показателю. Если взять всю мировую экономику, то в 2012 году ее объем составил $72 440 млрд., т.е. затраты на программное обеспечение достигли примерно 1% от мирового валового продукта. Получается, что при наличии огромного числа отраслей и сфер деятельности доля расходов на софтвер превысила 1% всей мировой экономики.

Слайд 44





Успешность программного проекта
Программная индустрия существенно отличается от других областей производства:
Очень высокая сложность системы
Менее предсказуемый результат
Хуже поддаются планированию
До сих пор в большей степени творчество, чем ремесло
Описание слайда:
Успешность программного проекта Программная индустрия существенно отличается от других областей производства: Очень высокая сложность системы Менее предсказуемый результат Хуже поддаются планированию До сих пор в большей степени творчество, чем ремесло

Слайд 45





Что влияет на успешность проекта?
Решаемая задача
Заказчик
Со стороны разработчика
	Команда разработки
	Инфраструктура
	Выбранная методология проектирования ПО
Описание слайда:
Что влияет на успешность проекта? Решаемая задача Заказчик Со стороны разработчика Команда разработки Инфраструктура Выбранная методология проектирования ПО

Слайд 46





Методологии разработки ПО
Методология — это система принципов, а также совокупность идей, понятий, методов, способов и средств, определяющих стиль разработки программного обеспечения. 
Методология — это реализация стандарта. Сами стандарты лишь говорят о том, что должно быть, оставляя свободу выбора и адаптации.
Конкретные вещи реализуется через выбранную методологию. Именно она определяет, как будет выполняться разработка. Существует много успешных методологий создания программного обеспечения. Выбор конкретной методологии зависит от размера команды, от специфики и сложности проекта, от стабильности и зрелости процессов в компании и от личных качеств сотрудников.
Описание слайда:
Методологии разработки ПО Методология — это система принципов, а также совокупность идей, понятий, методов, способов и средств, определяющих стиль разработки программного обеспечения.  Методология — это реализация стандарта. Сами стандарты лишь говорят о том, что должно быть, оставляя свободу выбора и адаптации. Конкретные вещи реализуется через выбранную методологию. Именно она определяет, как будет выполняться разработка. Существует много успешных методологий создания программного обеспечения. Выбор конкретной методологии зависит от размера команды, от специфики и сложности проекта, от стабильности и зрелости процессов в компании и от личных качеств сотрудников.

Слайд 47





Методологии проектирования ПО определяются
Составом и последовательностью работ
Ролью участников проекта
Составом и шаблонами документов
Организацией и управлением требованиями 
Порядком контроля и проверки качества
Способом взаимодействия участников
Описание слайда:
Методологии проектирования ПО определяются Составом и последовательностью работ Ролью участников проекта Составом и шаблонами документов Организацией и управлением требованиями Порядком контроля и проверки качества Способом взаимодействия участников

Слайд 48





Классификация методологий
Методологии представляют собой ядро теории управления разработкой программного обеспечения. К существующей классификации в зависимости от используемой в ней модели жизненного цикла (водопадные и итерационные методологии) добавилась более общая классификация на прогнозируемые и адаптивные методологии. 
Прогнозируемые методологии фокусируются на детальном планировании будущего. Известны запланированные задачи и ресурсы на весь срок проекта. Команда с трудом реагирует на возможные изменения. План оптимизирован исходя из состава работ и существующих требований. Изменение требований может привести к существенному изменению плана, а также дизайна проекта. Часто создается специальный комитет по «управлению изменениями», чтобы в проекте учитывались только самые важные требования.
Адаптивные методологии нацелены на преодоление ожидаемой неполноты требований и их постоянного изменения. Когда меняются требования, команда разработчиков тоже меняется. Команда, участвующая в адаптивной разработке, с трудом может предсказать будущее проекта. Существует точный план лишь на ближайшее время. Более удаленные во времени планы существуют лишь как декларации о целях проекта, ожидаемых затратах и результатах.
Описание слайда:
Классификация методологий Методологии представляют собой ядро теории управления разработкой программного обеспечения. К существующей классификации в зависимости от используемой в ней модели жизненного цикла (водопадные и итерационные методологии) добавилась более общая классификация на прогнозируемые и адаптивные методологии.  Прогнозируемые методологии фокусируются на детальном планировании будущего. Известны запланированные задачи и ресурсы на весь срок проекта. Команда с трудом реагирует на возможные изменения. План оптимизирован исходя из состава работ и существующих требований. Изменение требований может привести к существенному изменению плана, а также дизайна проекта. Часто создается специальный комитет по «управлению изменениями», чтобы в проекте учитывались только самые важные требования. Адаптивные методологии нацелены на преодоление ожидаемой неполноты требований и их постоянного изменения. Когда меняются требования, команда разработчиков тоже меняется. Команда, участвующая в адаптивной разработке, с трудом может предсказать будущее проекта. Существует точный план лишь на ближайшее время. Более удаленные во времени планы существуют лишь как декларации о целях проекта, ожидаемых затратах и результатах.

Слайд 49





Известные методологии проектирования ПО
Описание слайда:
Известные методологии проектирования ПО

Слайд 50





Характеристика методологий
Стратегии конструирования
Адаптивность процесса
Этапы и связи
Формулировка требований
Описание слайда:
Характеристика методологий Стратегии конструирования Адаптивность процесса Этапы и связи Формулировка требований

Слайд 51





Стратегии конструирования ПО
Однократные
Определены все требования
Один цикл конструирования
Промежуточных версий нет
Инкрементные (иногда инкрементно-итеративные)
Определены все требования
Множество циклов конструирования
Промежуточные версии могут распространяться
Эволюционные (иногда эволюционно-итеративные)
Определены не все требования
Множество  циклов конструирования
Промежуточные версии могут распространяться
Описание слайда:
Стратегии конструирования ПО Однократные Определены все требования Один цикл конструирования Промежуточных версий нет Инкрементные (иногда инкрементно-итеративные) Определены все требования Множество циклов конструирования Промежуточные версии могут распространяться Эволюционные (иногда эволюционно-итеративные) Определены не все требования Множество циклов конструирования Промежуточные версии могут распространяться

Слайд 52





Адаптивность процесса к окружению
Описание слайда:
Адаптивность процесса к окружению

Слайд 53





Охарактеризуем методологии
Описание слайда:
Охарактеризуем методологии

Слайд 54





Характеристика методологий
Описание слайда:
Характеристика методологий

Слайд 55





Как выбрать методологию?
Выбор зависит от:
Решаемых задач (из какой она области, как она сформулирована…)
Сроком реализации (гибкие подходят для коротких, классические – не подходят)
Команды разработчиков
Размер команды разработчиков
Опыт команды разработчиков
Сработанность команды разработчиков
Местонахождение разработчиков 
{Влияет на общение, например, оффшорная компания – часть команды в Америке, России, Китае: одни спят, одни работают. 
Влияет и в какой стране: разная разработка в России, Индии (национальный аспект культурный: если поставить из высшей касты в подчинение кого-то из нижней касты, работать система не будет), Китае (невыполнение задания разработчиком может повлечь уголовную ответственность))
Механизмы взаимодействия в команде разработчиков
Заказчика
Требований заказчика
Механизмов взаимодействия с заказчиком (можно поговорить, или только списаться…)
И т.д.
Описание слайда:
Как выбрать методологию? Выбор зависит от: Решаемых задач (из какой она области, как она сформулирована…) Сроком реализации (гибкие подходят для коротких, классические – не подходят) Команды разработчиков Размер команды разработчиков Опыт команды разработчиков Сработанность команды разработчиков Местонахождение разработчиков {Влияет на общение, например, оффшорная компания – часть команды в Америке, России, Китае: одни спят, одни работают. Влияет и в какой стране: разная разработка в России, Индии (национальный аспект культурный: если поставить из высшей касты в подчинение кого-то из нижней касты, работать система не будет), Китае (невыполнение задания разработчиком может повлечь уголовную ответственность)) Механизмы взаимодействия в команде разработчиков Заказчика Требований заказчика Механизмов взаимодействия с заказчиком (можно поговорить, или только списаться…) И т.д.

Слайд 56





Чем отличаются различные методологии проектирования?
Описание слайда:
Чем отличаются различные методологии проектирования?

Слайд 57





Статистика использования методологий
В 2009г. опросили более 1000 различных ИТ разработчиков (какую методологию проектирования они используют?)
Результат опроса (по количеству проектов): 
35% - гибкие (Scrum, XP  и др)
30% - не используют никаких
21% - разные варианты итеративных (эволюционных) процессов  (RUP, спиральные и др.)
13% - различные модификации классической (водопадной) модели
Описание слайда:
Статистика использования методологий В 2009г. опросили более 1000 различных ИТ разработчиков (какую методологию проектирования они используют?) Результат опроса (по количеству проектов): 35% - гибкие (Scrum, XP и др) 30% - не используют никаких 21% - разные варианты итеративных (эволюционных) процессов (RUP, спиральные и др.) 13% - различные модификации классической (водопадной) модели

Слайд 58





По статистике Standish Group выбор модели жизненного цикла влияет на успех проекта.
Среди проектов с каскадным ЖЦ 
успешны 26%, 
ущербны 59%, 
аннулированы 15%.
Описание слайда:
По статистике Standish Group выбор модели жизненного цикла влияет на успех проекта. Среди проектов с каскадным ЖЦ успешны 26%, ущербны 59%, аннулированы 15%.

Слайд 59





Характеристика методологий
Стратегии конструирования
Адаптивность процесса
Этапы и связи
Формулировка требований (В чем проблема?)
Описание слайда:
Характеристика методологий Стратегии конструирования Адаптивность процесса Этапы и связи Формулировка требований (В чем проблема?)

Слайд 60





В чем проблема?
«Самой сложной задачей при создании 
программной системы является точное 
определение того, что требуется создать…
Ни одна задача не приносит такого же вреда
Конечной системе в случае ошибки.
И нет ни одной задачи настолько же
сложной в исправлении последствия»
Фредерик Брук 
(Американский учёный в области теории вычислительных систем, автор книги «Мифический человеко-месяц». 
Управлял разработкой OS/360 в IBM. 
Награждён Премией Тьюринга в 1999 году.)
Описание слайда:
В чем проблема? «Самой сложной задачей при создании программной системы является точное определение того, что требуется создать… Ни одна задача не приносит такого же вреда Конечной системе в случае ошибки. И нет ни одной задачи настолько же сложной в исправлении последствия» Фредерик Брук (Американский учёный в области теории вычислительных систем, автор книги «Мифический человеко-месяц». Управлял разработкой OS/360 в IBM. Награждён Премией Тьюринга в 1999 году.)

Слайд 61





«Мифический человеко-месяц или Как создаются программные системы»
 — книга Фредерика Брукса об управлении проектами в области разработки программного обеспечения, центральной темой которой стало то, что привнесение в проект новых сил на поздних стадиях разработки лишь отодвигает срок сдачи проекта. Эта идея стала известна под названием «закон Брукса».
Описание слайда:
«Мифический человеко-месяц или Как создаются программные системы»  — книга Фредерика Брукса об управлении проектами в области разработки программного обеспечения, центральной темой которой стало то, что привнесение в проект новых сил на поздних стадиях разработки лишь отодвигает срок сдачи проекта. Эта идея стала известна под названием «закон Брукса».

Слайд 62





Проблемы определения требований
Разработка требований – самая сложная часть проектирования ПО
Требования постоянно меняются
Требования могут быть
	Неясны
	Двусмысленны
	Противоречивы
Спецификации могут быть неполны
Пользователи, излагающие требования, непредставительны
Описание слайда:
Проблемы определения требований Разработка требований – самая сложная часть проектирования ПО Требования постоянно меняются Требования могут быть Неясны Двусмысленны Противоречивы Спецификации могут быть неполны Пользователи, излагающие требования, непредставительны

Слайд 63





План раздела «Инженерия требований»
Определение требований
Разработка требований
		Выявление требований
		Анализ требований
Документирование и организация (структуризация) требований
Изменение требований
Планирование и управление требованиями
Описание слайда:
План раздела «Инженерия требований» Определение требований Разработка требований Выявление требований Анализ требований Документирование и организация (структуризация) требований Изменение требований Планирование и управление требованиями

Слайд 64





Инженерия требований.
Разработка требований
Выявление требований
Исследование
Интервью
Семинар
Создание прототипа
Use Case
Анализ требований
Уточнение требований
Структуризация
Установка приоритетов
Документирование и организация требований
Состав и распределение работ
Спецификация требований
Концепция эксплуатации
Начальный план разработки ПО
Критерии принятия работ
Описание слайда:
Инженерия требований. Разработка требований Выявление требований Исследование Интервью Семинар Создание прототипа Use Case Анализ требований Уточнение требований Структуризация Установка приоритетов Документирование и организация требований Состав и распределение работ Спецификация требований Концепция эксплуатации Начальный план разработки ПО Критерии принятия работ

Слайд 65





Требования
Требование - это условие или возможность, которой должна соответствовать система. 
Требование по IEEE 1990 :
условия или возможности, необходимые пользователю для решения проблем или достижения целей;
условия или возможности, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворять стандартам, спецификациям или другим формальным документам;
документированное представление условий или возможностей для пунктов 1 и 2.
Описание слайда:
Требования Требование - это условие или возможность, которой должна соответствовать система. Требование по IEEE 1990 : условия или возможности, необходимые пользователю для решения проблем или достижения целей; условия или возможности, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворять стандартам, спецификациям или другим формальным документам; документированное представление условий или возможностей для пунктов 1 и 2.

Слайд 66





Свойства  требований 
Корректность 
Ясность, недвусмысленность 
Полнота и непротиворечивость
Приоритезация 
Необходимый уровень детализации
Отслеживаемость
Прослеживаемость
Тестируемость и проверяемость
Модифицируемость
Описание слайда:
Свойства требований Корректность Ясность, недвусмысленность Полнота и непротиворечивость Приоритезация Необходимый уровень детализации Отслеживаемость Прослеживаемость Тестируемость и проверяемость Модифицируемость

Слайд 67





Свойства  требований 
Корректность — требования должны описывать то, что нужно заказчику.
Ясность, недвусмысленность — однозначность понимания требований заказчиком и разработчиками. Часто этого трудно достичь, поскольку конечная формализация требований, выполненная с точки зрения потребностей дальнейшей разработки, трудна для восприятия заказчиком или специалистом предметной области, которые должны проинспектировать правильность формализации.
Полнота  — требования должны охватывать все аспекты описываемой системы.
Непротиворечивость —  не должно быть 2-х требований удовлетворение которым вызовет противоречие.
Приоритезация. Требования формируются в отдельные наборы, отличающиеся приоритетом. Некоторые требования более важные. Не могут все требования иметь одинаковую категорию важности.
Описание слайда:
Свойства требований Корректность — требования должны описывать то, что нужно заказчику. Ясность, недвусмысленность — однозначность понимания требований заказчиком и разработчиками. Часто этого трудно достичь, поскольку конечная формализация требований, выполненная с точки зрения потребностей дальнейшей разработки, трудна для восприятия заказчиком или специалистом предметной области, которые должны проинспектировать правильность формализации. Полнота — требования должны охватывать все аспекты описываемой системы. Непротиворечивость — не должно быть 2-х требований удовлетворение которым вызовет противоречие. Приоритезация. Требования формируются в отдельные наборы, отличающиеся приоритетом. Некоторые требования более важные. Не могут все требования иметь одинаковую категорию важности.

Слайд 68





Свойства  требований
Необходимый уровень детализации. Требования должны обладать ясно осознаваемым уровнем детализации, стилем описания, способом формализации: либо это описание свойств предметной области, для которой предназначается ПО, либо это техническое задание, которое прилагается к контракту, либо это проектная спецификация, которая должна быть уточнена в дальнейшем, при детальном проектировании. Либо это еще что-нибудь. Важно также ясно видеть и понимать тех, для кого данное описание требований предназначено, иначе не избежать недопонимания и последующих за этим трудностей. Ведь в разработке ПО задействовано много различных специалистов – инженеров, программистов, тестировщиков, представителей заказчика, возможно, будущих пользователей – и все они имеют разное образование, профессиональные навыки и специализацию, часто говорят на разных языках. Здесь также важно, чтобы требования были максимально абстрактны и независимы от реализации.
Описание слайда:
Свойства требований Необходимый уровень детализации. Требования должны обладать ясно осознаваемым уровнем детализации, стилем описания, способом формализации: либо это описание свойств предметной области, для которой предназначается ПО, либо это техническое задание, которое прилагается к контракту, либо это проектная спецификация, которая должна быть уточнена в дальнейшем, при детальном проектировании. Либо это еще что-нибудь. Важно также ясно видеть и понимать тех, для кого данное описание требований предназначено, иначе не избежать недопонимания и последующих за этим трудностей. Ведь в разработке ПО задействовано много различных специалистов – инженеров, программистов, тестировщиков, представителей заказчика, возможно, будущих пользователей – и все они имеют разное образование, профессиональные навыки и специализацию, часто говорят на разных языках. Здесь также важно, чтобы требования были максимально абстрактны и независимы от реализации.

Слайд 69





Свойства  требований
Прослеживаемость — важно видеть то или иное требование в различных моделях, документах, наконец, в коде системы. А то часто возникают вопросы типа – "Кто знает, почему мы решили, что такой-то модуль должен работать следующим образом ….?". Прослеживаемость функциональных требований достигается путем их дробления на отдельные, элементарные требования, присвоение им идентификаторов и создание трассировочной модели, которая в идеале должна протягиваться до программного кода. Хочется например, знать, где нужно изменить код, если данное требование изменилось. На практике полная формальная прослеживаемость труднодостижима, поскольку логика и структура реализации системы могут сильно не совпадать с таковыми для модели требований. В итоге одно требование оказывается сильно "размазано" по коду, а тот или иной участок кода может влиять на много требований. Но стремиться к прослеживаемости необходимо, разумно совмещая формальные и неформальные подходы.
Возможность найти соответствие в строчках спецификации и строчках порождаемых артефактов (документации, тестах, программном коде и др.)
Описание слайда:
Свойства требований Прослеживаемость — важно видеть то или иное требование в различных моделях, документах, наконец, в коде системы. А то часто возникают вопросы типа – "Кто знает, почему мы решили, что такой-то модуль должен работать следующим образом ….?". Прослеживаемость функциональных требований достигается путем их дробления на отдельные, элементарные требования, присвоение им идентификаторов и создание трассировочной модели, которая в идеале должна протягиваться до программного кода. Хочется например, знать, где нужно изменить код, если данное требование изменилось. На практике полная формальная прослеживаемость труднодостижима, поскольку логика и структура реализации системы могут сильно не совпадать с таковыми для модели требований. В итоге одно требование оказывается сильно "размазано" по коду, а тот или иной участок кода может влиять на много требований. Но стремиться к прослеживаемости необходимо, разумно совмещая формальные и неформальные подходы. Возможность найти соответствие в строчках спецификации и строчках порождаемых артефактов (документации, тестах, программном коде и др.)

Слайд 70





Свойства  требований
Тестируемость и проверяемость — необходимо, чтобы существовали способы оттестировать и проверить данное требование. Причем, важны оба аспекта, поскольку часто проверить-то заказчик может, а вот тестировать данное требование очень трудно или невозможно в виду ограниченности доступа (например, по соображениям безопасности) к окружению системы для команды разработчика. Итак, необходимы процедуры проверки –выполнение тестов, проведение инспекций, проведение формальной верификации части требований и пр. Нужно также определять "планку" качества (чем выше качество, тем оно дороже стоит!), а также критерии полноты проверок, чтобы выполняющие их и руководители проекта четко осознавали, что именно проверено, а что еще нет.
Например, требование программа должна работать быстро не проверяемо (оно должно быть количественно).
Модифицируемость. Определяет процедуры внесения изменений в требования.
Описание слайда:
Свойства требований Тестируемость и проверяемость — необходимо, чтобы существовали способы оттестировать и проверить данное требование. Причем, важны оба аспекта, поскольку часто проверить-то заказчик может, а вот тестировать данное требование очень трудно или невозможно в виду ограниченности доступа (например, по соображениям безопасности) к окружению системы для команды разработчика. Итак, необходимы процедуры проверки –выполнение тестов, проведение инспекций, проведение формальной верификации части требований и пр. Нужно также определять "планку" качества (чем выше качество, тем оно дороже стоит!), а также критерии полноты проверок, чтобы выполняющие их и руководители проекта четко осознавали, что именно проверено, а что еще нет. Например, требование программа должна работать быстро не проверяемо (оно должно быть количественно). Модифицируемость. Определяет процедуры внесения изменений в требования.

Слайд 71





Виды требований 
Функциональные (ЧТО система должна уметь делать)
		Бизнес-требования
		Пользовательские требования
Нефункциональные (КАК система должна быть  сделана)
		Ограничения
		Требования к качеству
Описание слайда:
Виды требований Функциональные (ЧТО система должна уметь делать) Бизнес-требования Пользовательские требования Нефункциональные (КАК система должна быть сделана) Ограничения Требования к качеству

Слайд 72





Виды требований 
Функциональные требования являются детальным описанием поведения и сервисов системы, ее функционала. Они определяют то, ЧТО система должна уметь делать.
Нефункциональные требования не являются описанием функций системы. Этот вид требований описывает такие характеристики системы, как надежность, особенности поставки (наличие инсталлятора, документации), определенный уровень качества (например, для новой Java-машины это будет означать, что она удовлетворяет набору тестов, поддерживаемому компанией Sun). Сюда же могут относиться требования на средства и процесс разработки системы, требования к переносимости, соответствию стандартам и т.д. Требования этого вида часто относятся ко всей системе в целом. На практике, особенно начинающие специалисты, часто забывают про некоторые важные нефункциональные требования.
Описание слайда:
Виды требований Функциональные требования являются детальным описанием поведения и сервисов системы, ее функционала. Они определяют то, ЧТО система должна уметь делать. Нефункциональные требования не являются описанием функций системы. Этот вид требований описывает такие характеристики системы, как надежность, особенности поставки (наличие инсталлятора, документации), определенный уровень качества (например, для новой Java-машины это будет означать, что она удовлетворяет набору тестов, поддерживаемому компанией Sun). Сюда же могут относиться требования на средства и процесс разработки системы, требования к переносимости, соответствию стандартам и т.д. Требования этого вида часто относятся ко всей системе в целом. На практике, особенно начинающие специалисты, часто забывают про некоторые важные нефункциональные требования.

Слайд 73





Функциональные требования
Бизнес-требования
		Формулируются заказчиком
		Описывают цели, которые требуется достичь 	с помощью данной системы
Требования пользователей
		Какие задачи можно решить с помощью 	системы
Собственно функциональные требования
		Определяется функциональность, которую 	необходимо реализовать
Описание слайда:
Функциональные требования Бизнес-требования Формулируются заказчиком Описывают цели, которые требуется достичь с помощью данной системы Требования пользователей Какие задачи можно решить с помощью системы Собственно функциональные требования Определяется функциональность, которую необходимо реализовать

Слайд 74





Нефункциональные требования
Требования к характеристикам качества
		Требования к надежности
		Требования к совместимости
		Требования к эффективности
		Требования к гибкости
		Требования к эргономике		
Ограничения 
		Соответствие стандартам и правилам системы 	Бюджет
		Предопределенные архитектурные решения
Описание слайда:
Нефункциональные требования Требования к характеристикам качества Требования к надежности Требования к совместимости Требования к эффективности Требования к гибкости Требования к эргономике Ограничения Соответствие стандартам и правилам системы Бюджет Предопределенные архитектурные решения

Слайд 75





Эргоно́мика
 (от др.-греч. ἔργον — работа и νόμος— «закон») — в традиционном понимании — наука о приспособлении должностных обязанностей, рабочих мест, предметов и объектов труда, а также компьютерных программ для наиболее безопасного и эффективного труда работника, исходя из физических и психических особенностей человеческого организма.
Описание слайда:
Эргоно́мика  (от др.-греч. ἔργον — работа и νόμος— «закон») — в традиционном понимании — наука о приспособлении должностных обязанностей, рабочих мест, предметов и объектов труда, а также компьютерных программ для наиболее безопасного и эффективного труда работника, исходя из физических и психических особенностей человеческого организма.

Слайд 76





Ограничения 
Мы сделаем проект 
Быстро
Качественно
Недорого
Выберите 2 из 3-х
Описание слайда:
Ограничения Мы сделаем проект Быстро Качественно Недорого Выберите 2 из 3-х

Слайд 77





Что не является требованием?
Детали архитектуры
Детали реализации
Сведения о планировании
Сведения о тестировании
Проектная информация
Инфраструктура разработки (системы контроля версий)
Процесс разработки
Команда разработки
Описание слайда:
Что не является требованием? Детали архитектуры Детали реализации Сведения о планировании Сведения о тестировании Проектная информация Инфраструктура разработки (системы контроля версий) Процесс разработки Команда разработки

Слайд 78





Разработка требований
Выявление требований
Анализ требований
Результат – спецификация требований
Описание слайда:
Разработка требований Выявление требований Анализ требований Результат – спецификация требований

Слайд 79





Выявление требований (кто?)
Заинтересованные лица
Заказчики
Менеджеры
Пользователи
Операторы
Менеджеры
Разработчики
Служба поддержки
Другие лица
ВАЖНО: заказчик          пользователь
Описание слайда:
Выявление требований (кто?) Заинтересованные лица Заказчики Менеджеры Пользователи Операторы Менеджеры Разработчики Служба поддержки Другие лица ВАЖНО: заказчик пользователь

Слайд 80





Выявление требований
Формирование требований очень сложный процесс 
О размере документа. Аппаратные и программные требования к одному из смартфонов составляют более 7000 страниц (цена ошибки очень велика)
При планировании необходимо определить:
Цели выявления требований
Стратегии и процессы выявления требований (интервью, опросы…)
Что будет результатом усилий по выявления требований (нужно определиться: спецификация, несколько документов…)
Оценка календарного плана и ресурсов выявления требований
Риски, связанные с выявления требований 
Как можно не «утонуть» в этом документе и разрешить вопросы полноты и др.?
Описание слайда:
Выявление требований Формирование требований очень сложный процесс О размере документа. Аппаратные и программные требования к одному из смартфонов составляют более 7000 страниц (цена ошибки очень велика) При планировании необходимо определить: Цели выявления требований Стратегии и процессы выявления требований (интервью, опросы…) Что будет результатом усилий по выявления требований (нужно определиться: спецификация, несколько документов…) Оценка календарного плана и ресурсов выявления требований Риски, связанные с выявления требований Как можно не «утонуть» в этом документе и разрешить вопросы полноты и др.?

Слайд 81





Выявление требований (способы)
Способы выявления требований
Исследования предметной области (рынка…)
Интервью 
Семинар
Создание прототипов
Создание вариантов использования (Use Case) 
(показывают функциональные системы с точки зрения имеющихся прецедентов и задействованных лиц). Могут общим языком взаимодействия.
Описание слайда:
Выявление требований (способы) Способы выявления требований Исследования предметной области (рынка…) Интервью Семинар Создание прототипов Создание вариантов использования (Use Case) (показывают функциональные системы с точки зрения имеющихся прецедентов и задействованных лиц). Могут общим языком взаимодействия.

Слайд 82





Выявление требований
Проблемы определения требований
Ожидания пользователей
Умение оценить противоречивые требования
Недостаточные требования
Умение понять требования пользователей
Проблемы
Формулирования требований
Терминологии (например, клиент)
Неявных допущений (контекст – правила, система  всегда  многопользовательская)
Предвзятые решения
Описание слайда:
Выявление требований Проблемы определения требований Ожидания пользователей Умение оценить противоречивые требования Недостаточные требования Умение понять требования пользователей Проблемы Формулирования требований Терминологии (например, клиент) Неявных допущений (контекст – правила, система всегда многопользовательская) Предвзятые решения

Слайд 83





Разработка требований
Выявление требований
Расходящийся процесс, цель которого
собрать как можно больше данных
Анализ требований -
	сходящийся процесс:
Уточняет данные
Структурирует информацию
Устанавливает приоритеты
Результат анализа – спецификация требований
Описание слайда:
Разработка требований Выявление требований Расходящийся процесс, цель которого собрать как можно больше данных Анализ требований - сходящийся процесс: Уточняет данные Структурирует информацию Устанавливает приоритеты Результат анализа – спецификация требований

Слайд 84





О спецификациях
Спецификация - достаточно точное и достаточно полное описание задачи, которое человеку, участвующему в решении, написать, понять и прочесть легче, чем программу решения этой задачи на доступном ему языке программирования. 
Более коротко спецификацию можно определить как подробное описание некоторой работы, подлежащей выполнению. 
Средства спецификации - любые средства получения или построения таких описаний. 
Язык спецификации - рационально оформленный и синтаксически организованный набор таких средств. 
В спецификациях программ имеет смысл выделить две существенно отличающиеся части. 
	Функциональные спецификации, описывающие функцию программы. 
	Эксплуатационные спецификации, описывающие скорость работы программы, используемые ресурсы, характеристики аппаратуры, специальные требования к надежности и безопасности.
Описание слайда:
О спецификациях Спецификация - достаточно точное и достаточно полное описание задачи, которое человеку, участвующему в решении, написать, понять и прочесть легче, чем программу решения этой задачи на доступном ему языке программирования. Более коротко спецификацию можно определить как подробное описание некоторой работы, подлежащей выполнению. Средства спецификации - любые средства получения или построения таких описаний. Язык спецификации - рационально оформленный и синтаксически организованный набор таких средств. В спецификациях программ имеет смысл выделить две существенно отличающиеся части. Функциональные спецификации, описывающие функцию программы. Эксплуатационные спецификации, описывающие скорость работы программы, используемые ресурсы, характеристики аппаратуры, специальные требования к надежности и безопасности.

Слайд 85





О спецификациях
Существует точка зрения об относительности понятия спецификации. Имея дело с одной и той же задачей, данные люди в данном окружении (включающем их знания, языки и т. п.) будут склонны считать спецификацией одно, а другие люди в другой обстановке - совсем другое. 
Например "х := х + i" будет лучшей спецификацией задачи , чем "увеличить х на единицу" для человека, знакомого с оператором присваивания и его обозначением.
Описание слайда:
О спецификациях Существует точка зрения об относительности понятия спецификации. Имея дело с одной и той же задачей, данные люди в данном окружении (включающем их знания, языки и т. п.) будут склонны считать спецификацией одно, а другие люди в другой обстановке - совсем другое. Например "х := х + i" будет лучшей спецификацией задачи , чем "увеличить х на единицу" для человека, знакомого с оператором присваивания и его обозначением.

Слайд 86





Классификация спецификаций по уровню формализации
Словесные спецификации, обработка которых может осуществляться обычным текстовым редактором. 
Модельные (структурированные) спецификации, которые предполагают построение схем, диаграмм, других информационных структур. 
Формальные спецификации, получаемые строгим формальным способом с использованием математических формализмов, которые обеспечивают полное определение семантики.
Описание слайда:
Классификация спецификаций по уровню формализации Словесные спецификации, обработка которых может осуществляться обычным текстовым редактором. Модельные (структурированные) спецификации, которые предполагают построение схем, диаграмм, других информационных структур. Формальные спецификации, получаемые строгим формальным способом с использованием математических формализмов, которые обеспечивают полное определение семантики.

Слайд 87





Классификация спецификаций по способу представления
Существует два основных способа представления спецификаций:
Текстовое представление, которое подходит для словесных и формальных спецификаций. 
Представление с помощью информационных объектов. Как правило, таким способом представляются модельные спецификации.
Описание слайда:
Классификация спецификаций по способу представления Существует два основных способа представления спецификаций: Текстовое представление, которое подходит для словесных и формальных спецификаций. Представление с помощью информационных объектов. Как правило, таким способом представляются модельные спецификации.

Слайд 88





Шаблоны спецификаций
Существуют различные государственные, отраслевые и корпоративные стандарты
Наиболее распространенные в России:
IEEE 830-1998 «Recommended Practice for Software Requirements Specifications» (описывает, как спецификацию формировать и представлять с помощью разных шаблонов)
ГОСТ 34.602–89 «Техническое задание на создание автоматизированной системы»
Шаблон не должен являться догмой (если это не требование заказчика)
Следует при необходимости модифицировать шаблоны в соответствии с природой и потребностями проекта
Полезный документ: IEEE Guide for Developing 
System Requirements Specications (SRS) (описывает, как необходимо создавать спецификацию требований)
Описание слайда:
Шаблоны спецификаций Существуют различные государственные, отраслевые и корпоративные стандарты Наиболее распространенные в России: IEEE 830-1998 «Recommended Practice for Software Requirements Specifications» (описывает, как спецификацию формировать и представлять с помощью разных шаблонов) ГОСТ 34.602–89 «Техническое задание на создание автоматизированной системы» Шаблон не должен являться догмой (если это не требование заказчика) Следует при необходимости модифицировать шаблоны в соответствии с природой и потребностями проекта Полезный документ: IEEE Guide for Developing  System Requirements Specications (SRS) (описывает, как необходимо создавать спецификацию требований)

Слайд 89





Шаблон спецификации требований (IEEE 830-1998 ).
Описание слайда:
Шаблон спецификации требований (IEEE 830-1998 ).

Слайд 90





Шаблон спецификации требований (IEEE 830-1998 ). 
Общая часть (разделы 1 и 2).
Описание слайда:
Шаблон спецификации требований (IEEE 830-1998 ). Общая часть (разделы 1 и 2).

Слайд 91





Шаблон спецификации требований (IEEE 830-1998 ). 
 Специфические требования (раздел 3).
Описание слайда:
Шаблон спецификации требований (IEEE 830-1998 ). Специфические требования (раздел 3).

Слайд 92





Шаблон раздела 3 SRS 
(по режимам. V1)
Описание слайда:
Шаблон раздела 3 SRS (по режимам. V1)

Слайд 93





Шаблон раздела 3 SRS 
(по режимам. V2)
Описание слайда:
Шаблон раздела 3 SRS (по режимам. V2)

Слайд 94





Шаблон раздела 3 SRS 
(по классам пользователей)
Описание слайда:
Шаблон раздела 3 SRS (по классам пользователей)

Слайд 95





Шаблон раздела 3 SRS 
(по объектам)
Описание слайда:
Шаблон раздела 3 SRS (по объектам)

Слайд 96





Шаблон раздела 3 SRS 
(по свойствам)
Описание слайда:
Шаблон раздела 3 SRS (по свойствам)

Слайд 97





Шаблон раздела 3 SRS 
(по функциональной иерархии)
Описание слайда:
Шаблон раздела 3 SRS (по функциональной иерархии)

Слайд 98





Шаблон раздела 3 SRS (множественная организация)
Описание слайда:
Шаблон раздела 3 SRS (множественная организация)



Похожие презентации
Mypresentation.ru
Загрузить презентацию