🗊Презентация Конструирование программного обеспечения

Нажмите для полного просмотра!
Конструирование программного обеспечения, слайд №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Конструирование программного обеспечения, слайд №99Конструирование программного обеспечения, слайд №100Конструирование программного обеспечения, слайд №101Конструирование программного обеспечения, слайд №102

Содержание

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

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


Слайд 1





Лекции по «Конструированию программного обеспечения
Описание слайда:
Лекции по «Конструированию программного обеспечения

Слайд 2





Литература
Макконел С. Совершенный код. Практическое руководство по разработке программного обеспечения. – 2016.
Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения. – 2012
Смирнов А.А. Технологии программирования. – 2011.
Описание слайда:
Литература Макконел С. Совершенный код. Практическое руководство по разработке программного обеспечения. – 2016. Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения. – 2012 Смирнов А.А. Технологии программирования. – 2011.

Слайд 3





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

Слайд 4





Этапы разработки программного обеспечения
Описание слайда:
Этапы разработки программного обеспечения

Слайд 5





Основные направления конструирования ПО 
основы конструирования;
управление конструированием;
практические аспекты конструирования.
Описание слайда:
Основные направления конструирования ПО основы конструирования; управление конструированием; практические аспекты конструирования.

Слайд 6





Общая структура предмета
Описание слайда:
Общая структура предмета

Слайд 7





1. Основы конструирования (Software Construction Fundamentals)
Минимизация сложности;
Ожидание изменений;
Конструирование с возможностью проверки;
Стандарты в конструировании.
Описание слайда:
1. Основы конструирования (Software Construction Fundamentals) Минимизация сложности; Ожидание изменений; Конструирование с возможностью проверки; Стандарты в конструировании.

Слайд 8





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

Слайд 9





Модульность
Модуль - это функция, процедура или класс, входящие в программную систему. Состав и функции модулей определяются на этапе проектирования системы.
Описание слайда:
Модульность Модуль - это функция, процедура или класс, входящие в программную систему. Состав и функции модулей определяются на этапе проектирования системы.

Слайд 10





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

Слайд 11





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

Слайд 12





Читабельность 
удобство чтения программного кода. Достигается с помощью целого ряда средств: структурирования, использования мнемонических имен и пр.
Описание слайда:
Читабельность удобство чтения программного кода. Достигается с помощью целого ряда средств: структурирования, использования мнемонических имен и пр.

Слайд 13





Стандарты программирования 
общие, разрабатываемые специальными организациями, например, ISO, IEEE или Комитетом по стандартизации РФ,
стандарты языка (например, java)
а также стандарты конкретной организации-разработчика программной системы.
Описание слайда:
Стандарты программирования общие, разрабатываемые специальными организациями, например, ISO, IEEE или Комитетом по стандартизации РФ, стандарты языка (например, java) а также стандарты конкретной организации-разработчика программной системы.

Слайд 14





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

Слайд 15





Затраты на модульность
Описание слайда:
Затраты на модульность

Слайд 16





Свойства модулей 
информационная закрытость;
связность;
сцепление.
Описание слайда:
Свойства модулей информационная закрытость; связность; сцепление.

Слайд 17





Информационная закрытость модулей
Описание слайда:
Информационная закрытость модулей

Слайд 18





Связность модулей
Это мера зависимости его частей. Для ее измерения используют понятие силы связности (СС).
Типы связности:
Функциональная (СС = 10)
Информационная (СС = 9);
Коммуникативная (СС = 7);
Процедурная (СС = 5);
Временная (СС = 3);
Логическая (СС = 1);
По совпадению (СС = 0).
Описание слайда:
Связность модулей Это мера зависимости его частей. Для ее измерения используют понятие силы связности (СС). Типы связности: Функциональная (СС = 10) Информационная (СС = 9); Коммуникативная (СС = 7); Процедурная (СС = 5); Временная (СС = 3); Логическая (СС = 1); По совпадению (СС = 0).

Слайд 19





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

Слайд 20





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

Слайд 21





Сложность программной системы
Показатели:
1) Длина 
N ≈ n1 log2 (n1) + n2 log2 (n2)
где n1 - число различных операторов модуля,
n2 - число различных операндов.
2) Объем 
V = N * log2 (n1 + n2).
3) Цикломатическая сложность:
V(G) = E*N – 2,
где E – количество дуг, а
N – количество вершин в управляющем графе программной системы.
Описание слайда:
Сложность программной системы Показатели: 1) Длина N ≈ n1 log2 (n1) + n2 log2 (n2) где n1 - число различных операторов модуля, n2 - число различных операндов. 2) Объем V = N * log2 (n1 + n2). 3) Цикломатическая сложность: V(G) = E*N – 2, где E – количество дуг, а N – количество вершин в управляющем графе программной системы.

Слайд 22





Характеристики иерархической сложности
структуры программной системы
Количество вершин (модулей);
Количество связей между вершинами;
Высота – количество уровней управления;
Ширина – максимальное количество модулей, размещенных на отдельных уровнях управления.
Описание слайда:
Характеристики иерархической сложности структуры программной системы Количество вершин (модулей); Количество связей между вершинами; Высота – количество уровней управления; Ширина – максимальное количество модулей, размещенных на отдельных уровнях управления.

Слайд 23





Пример иерархической структуры ПС
Высота 4, ширина – 6
Описание слайда:
Пример иерархической структуры ПС Высота 4, ширина – 6

Слайд 24





Локальные характеристики модулей
Коэффициент объединения по входу, Fan_in(i) – количество модулей, которые прямо управляют i–тым;
Коэффициент разветвления по выходу, Fan_out(i) - количество модулей, которыми прямо управляет i–тый модуль.
В примере Fan_in(n) = 4, Fan_out(m) = 3.
Описание слайда:
Локальные характеристики модулей Коэффициент объединения по входу, Fan_in(i) – количество модулей, которые прямо управляют i–тым; Коэффициент разветвления по выходу, Fan_out(i) - количество модулей, которыми прямо управляет i–тый модуль. В примере Fan_in(n) = 4, Fan_out(m) = 3.

Слайд 25





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

Слайд 26





Этапы разработки прототипа
Определение начальных требований.
Разработка первого варианта, который содержит только пользовательский интерфейс системы.
Изучение прототипа заказчиком и конечным пользователем. Получение обратной связи о необходимых изменениях и дополнениях.
Переработка прототипа с учетом полученных замечаний и предложений.
Описание слайда:
Этапы разработки прототипа Определение начальных требований. Разработка первого варианта, который содержит только пользовательский интерфейс системы. Изучение прототипа заказчиком и конечным пользователем. Получение обратной связи о необходимых изменениях и дополнениях. Переработка прототипа с учетом полученных замечаний и предложений.

Слайд 27





Методологии прототипирования
Быстрое, при котором макет может быть выброшен, главное - скорость;
Эволюционное,  которое ставит своей целью последовательное создание макетов системы.
Описание слайда:
Методологии прототипирования Быстрое, при котором макет может быть выброшен, главное - скорость; Эволюционное, которое ставит своей целью последовательное создание макетов системы.

Слайд 28





Достоинства  и недостатки прототипирования
Достоинства
уменьшение времени, стоимости и рисков;
вовлечение пользователя в процесс разработки
Недостатки
недостаточный анализ,
смешение прототипа и готовой системы в представлении пользователей,
большое время создания прототипа.
Описание слайда:
Достоинства и недостатки прототипирования Достоинства уменьшение времени, стоимости и рисков; вовлечение пользователя в процесс разработки Недостатки недостаточный анализ, смешение прототипа и готовой системы в представлении пользователей, большое время создания прототипа.

Слайд 29





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

Слайд 30





Макетирование
Многократное повторение итераций
Описание слайда:
Макетирование Многократное повторение итераций

Слайд 31





Последовательность этапов макетирования
Описание слайда:
Последовательность этапов макетирования

Слайд 32





Читабельность программного кода
Это свойство текстового материала, характеризующее лёгкость восприятия его человеком.
На читабельность программного кода влияют:
Стили отступов = правила форматирования исходного кода,
Комментарии,
Декомпозиция (разбиение системы на уровни иерархии),
Соглашения об именовании данных.
Описание слайда:
Читабельность программного кода Это свойство текстового материала, характеризующее лёгкость восприятия его человеком. На читабельность программного кода влияют: Стили отступов = правила форматирования исходного кода, Комментарии, Декомпозиция (разбиение системы на уровни иерархии), Соглашения об именовании данных.

Слайд 33





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

Слайд 34





1.2. Ожидание изменений
Существует два вида изменений:
Усовершенствование кода программы (рефакторинг);
Добавление новой функциональности (реинжениринг).
Описание слайда:
1.2. Ожидание изменений Существует два вида изменений: Усовершенствование кода программы (рефакторинг); Добавление новой функциональности (реинжениринг).

Слайд 35





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

Слайд 36





Причины необходимости рефактринга
дублирование кода;
длинный метод;
большой класс;
длинный список параметров;
«жадные» функции — метод, который часто обращается к данным другого объекта;
избыточные временные переменные;
классы данных;
несгруппированные данные.
Описание слайда:
Причины необходимости рефактринга дублирование кода; длинный метод; большой класс; длинный список параметров; «жадные» функции — метод, который часто обращается к данным другого объекта; избыточные временные переменные; классы данных; несгруппированные данные.

Слайд 37





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

Слайд 38





1.3. Конструирование с возможностью проверки
Использует следующие техники:
обзор и оценка кода; 
модульное тестирование; 
структурирование кода совместно с применениям автоматизированных средств тестирования; 
ограниченное применение сложных или тяжелых для понимания языковых структур.
Описание слайда:
1.3. Конструирование с возможностью проверки Использует следующие техники: обзор и оценка кода; модульное тестирование; структурирование кода совместно с применениям автоматизированных средств тестирования; ограниченное применение сложных или тяжелых для понимания языковых структур.

Слайд 39





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

Слайд 40





Модульное или юнит-тестирование
процесс, позволяющий проверить корректность отдельных модулей  исходного кода программы.
Описание слайда:
Модульное или юнит-тестирование процесс, позволяющий проверить корректность отдельных модулей исходного кода программы.

Слайд 41





Задачи модульного тестирования 
Поиск и документирование несоответствий требованиям
Поддержка разработки и рефакторинга низкоуровневой архитектуры системы и межмодульного взаимодействия.
Поддержка рефакторинга модулей
Поддержка устранения дефектов и отладки
Описание слайда:
Задачи модульного тестирования Поиск и документирование несоответствий требованиям Поддержка разработки и рефакторинга низкоуровневой архитектуры системы и межмодульного взаимодействия. Поддержка рефакторинга модулей Поддержка устранения дефектов и отладки

Слайд 42





Стандарты в конструировании
Государственные (ГОСТ) - ЕСПД;
Отраслевые (ОСТ) – стандарты языков (СИ, Java);
Стандарты предприятий (СТП);
Стандарты проектов – соглашения об оформлении кода и пр. документов.
Описание слайда:
Стандарты в конструировании Государственные (ГОСТ) - ЕСПД; Отраслевые (ОСТ) – стандарты языков (СИ, Java); Стандарты предприятий (СТП); Стандарты проектов – соглашения об оформлении кода и пр. документов.

Слайд 43





2. Управление конструированием

2.1 Модели конструирования
Описание слайда:
2. Управление конструированием 2.1 Модели конструирования

Слайд 44





Принципы разработки ПО
методы, 
средства и 
процедуры
Описание слайда:
Принципы разработки ПО методы, средства и процедуры

Слайд 45





Методы разработки ПО
обеспечивают решение следующих задач:
Планирование и оценка проекта;
Анализ системных и программных требований;
Проектирование структур данных, алгоритмов и программных структур;
Кодирование;
Тестирование;
Сопровождение.
Описание слайда:
Методы разработки ПО обеспечивают решение следующих задач: Планирование и оценка проекта; Анализ системных и программных требований; Проектирование структур данных, алгоритмов и программных структур; Кодирование; Тестирование; Сопровождение.

Слайд 46





Средства (утилиты)
обеспечивают автоматизированную или автоматическую поддержку методов. Могут объединяться в системы автоматизированного конструирования ПО. Такие системы называют CASE-системами (Computer Aided Software Engineering).
Описание слайда:
Средства (утилиты) обеспечивают автоматизированную или автоматическую поддержку методов. Могут объединяться в системы автоматизированного конструирования ПО. Такие системы называют CASE-системами (Computer Aided Software Engineering).

Слайд 47





Процедуры разработки ПО
объединяют методы и средства и обеспечивают непрерывную последовательность разработки. Определяют:
Порядок применения методов и утилит;
Формирование отчетов;
Порядок контроля обеспечения качества и координации изменений;
Формирование этапов выполнения работ.
Описание слайда:
Процедуры разработки ПО объединяют методы и средства и обеспечивают непрерывную последовательность разработки. Определяют: Порядок применения методов и утилит; Формирование отчетов; Порядок контроля обеспечения качества и координации изменений; Формирование этапов выполнения работ.

Слайд 48





Парадигмы и модели жизненного цикла ПО
Каскадная или водопадная;
Инкрементная;
V-образная;
Эволюционная (спиральная);
Компонентно-ориентированная.
Описание слайда:
Парадигмы и модели жизненного цикла ПО Каскадная или водопадная; Инкрементная; V-образная; Эволюционная (спиральная); Компонентно-ориентированная.

Слайд 49





Каскадная модель жизненного цикла ПО
Описание слайда:
Каскадная модель жизненного цикла ПО

Слайд 50





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

Слайд 51





Инкрементная модель
объединяет достоинства каскадной и методов макетирования.
Описание слайда:
Инкрементная модель объединяет достоинства каскадной и методов макетирования.

Слайд 52





V-образная модель
Основным достоинством V-модели является связь разработки программ с их тестированием, валидацией и верификацией.
Описание слайда:
V-образная модель Основным достоинством V-модели является связь разработки программ с их тестированием, валидацией и верификацией.

Слайд 53





Спиральная модель 
Эволюционная стратегия 
1 – начальный сбор требований и планирование проекта; 2 – та же работа на основе рекомендаций заказчика; 3 – анализ риска на основе начальных требований; 4 - анализ риска на основе рекомендаций заказчика; 5 – переход к комплексной системе; 6 – начальный макет системы; 7 – следующий уровень макета; 8 – сконструированная система; 9 – оценивание заказчиком.
Описание слайда:
Спиральная модель Эволюционная стратегия 1 – начальный сбор требований и планирование проекта; 2 – та же работа на основе рекомендаций заказчика; 3 – анализ риска на основе начальных требований; 4 - анализ риска на основе рекомендаций заказчика; 5 – переход к комплексной системе; 6 – начальный макет системы; 7 – следующий уровень макета; 8 – сконструированная система; 9 – оценивание заказчиком.

Слайд 54





Достоинства  и недостатки спиральной модели
Достоинства :
Более точно отображает процесс разработки ПО;
Позволяет учитывать риск разработки;
Использует моделирование для оценки характеристик.
Недостатки :
Повышенные требования к заказчику;
Сложность контроля и управления временем разработки.
Описание слайда:
Достоинства и недостатки спиральной модели Достоинства : Более точно отображает процесс разработки ПО; Позволяет учитывать риск разработки; Использует моделирование для оценки характеристик. Недостатки : Повышенные требования к заказчику; Сложность контроля и управления временем разработки.

Слайд 55





Компонентно-ориентированная модель 
основана на эволюционной стратегии конструирования и является развитием спиральной.  Использует библиотеки.
Описание слайда:
Компонентно-ориентированная модель основана на эволюционной стратегии конструирования и является развитием спиральной. Использует библиотеки.

Слайд 56





Достоинства компонентно-ориентированной модели
Уменьшение времени разработки в среднем на 30%;
Сокращение стоимости разработки в среднем на 70%;
Увеличение производительности труда в среднем в 1.5 раза.
Описание слайда:
Достоинства компонентно-ориентированной модели Уменьшение времени разработки в среднем на 30%; Сокращение стоимости разработки в среднем на 70%; Увеличение производительности труда в среднем в 1.5 раза.

Слайд 57





2.2 Планирование конструирования
Необходимо оценить:
людские ресурсы (в человеко-месяцах);
продолжительность (в календарных датах);
стоимость.
Определяется порядок разработки компонентов и методов обеспечения качества.
Описание слайда:
2.2 Планирование конструирования Необходимо оценить: людские ресурсы (в человеко-месяцах); продолжительность (в календарных датах); стоимость. Определяется порядок разработки компонентов и методов обеспечения качества.

Слайд 58





Управление инженерией ПО 
организационное управление (Organizational Management),
 управление процессом и проектом (Process/Project Management),
 измерения инженерии ПО (Software Engineering Measurement).
Описание слайда:
Управление инженерией ПО организационное управление (Organizational Management), управление процессом и проектом (Process/Project Management), измерения инженерии ПО (Software Engineering Measurement).

Слайд 59





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

Слайд 60





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

Слайд 61





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

Слайд 62





Типы измерений
Прямые, 
косвенные.
Описание слайда:
Типы измерений Прямые, косвенные.

Слайд 63





Метрики программного обеспечения
Трудоемкость и емкостная сложность (асимптотическая оценка),
Количество строк кода (LOC - lines-of-code),
Цикломатическая сложность,
Анализ функциональных точек,
Количество ошибок на 1000 строк кода,
Степень покрытия кода тестированием,
Покрытие требований,
Количество классов и интерфейсов,
Связность.
Описание слайда:
Метрики программного обеспечения Трудоемкость и емкостная сложность (асимптотическая оценка), Количество строк кода (LOC - lines-of-code), Цикломатическая сложность, Анализ функциональных точек, Количество ошибок на 1000 строк кода, Степень покрытия кода тестированием, Покрытие требований, Количество классов и интерфейсов, Связность.

Слайд 64





3. Практические соображения
3.1. Проектирование в конструировании
Описание слайда:
3. Практические соображения 3.1. Проектирование в конструировании

Слайд 65





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

Слайд 66





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

Слайд 67






3) Жемчужины – наращивание функциональности как жемчуг в раковине;
4) Строительная – по аналогии со строительством зданий, предпочтительная.
Описание слайда:
3) Жемчужины – наращивание функциональности как жемчуг в раковине; 4) Строительная – по аналогии со строительством зданий, предпочтительная.

Слайд 68





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

Слайд 69





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

Слайд 70





Технологии разработки приложений
Быстрая разработка (RAD);
Унифицированная разработка (RUP);
Экстремальное программирование;
Технология Scrum.
Описание слайда:
Технологии разработки приложений Быстрая разработка (RAD); Унифицированная разработка (RUP); Экстремальное программирование; Технология Scrum.

Слайд 71





Быстрая разработка (Rapid Application Development) 
применяет инкрементную стратегию конструирования, обеспечивает очень короткий цикл разработки за счет компонентно-ориентированного конструирования. Эффективна, если требования к системе полностью определены. 
RAD-подход ориентирован на разработку информационных систем.
Описание слайда:
Быстрая разработка (Rapid Application Development) применяет инкрементную стратегию конструирования, обеспечивает очень короткий цикл разработки за счет компонентно-ориентированного конструирования. Эффективна, если требования к системе полностью определены. RAD-подход ориентирован на разработку информационных систем.

Слайд 72





Унифицированная разработка (Rational Unified Process - RUP)
Один из самых известных процессов, использующих итеративную модель разработки. Был разработан компанией Rational Software и стал основной методологией компании IBM. 
RUP описывает некоторый абстрактный процесс, на основе которого организация или проектная команда создает специализированный процесс для конкретной системы.
Описание слайда:
Унифицированная разработка (Rational Unified Process - RUP) Один из самых известных процессов, использующих итеративную модель разработки. Был разработан компанией Rational Software и стал основной методологией компании IBM. RUP описывает некоторый абстрактный процесс, на основе которого организация или проектная команда создает специализированный процесс для конкретной системы.

Слайд 73





Основные характеристики абстрактного процесса
Разработка требований с помощью прецедентов использования (сценариев);
Итеративная разработка с продолжительностью отдельной итерации от 2 до 6 недель.
Описание слайда:
Основные характеристики абстрактного процесса Разработка требований с помощью прецедентов использования (сценариев); Итеративная разработка с продолжительностью отдельной итерации от 2 до 6 недель.

Слайд 74





Жизненный цикл проекта RUP состоит из 4 фаз:
Начало  - обычно состоит из одной итерации.
Проектирование может занимать 2 – 3 итерации или быть пропущенным (если используется уже существующая архитектура). На нем создается архитектура системы. Результатом является 20 – 30 % реализованных прецедентов использования.
Описание слайда:
Жизненный цикл проекта RUP состоит из 4 фаз: Начало - обычно состоит из одной итерации. Проектирование может занимать 2 – 3 итерации или быть пропущенным (если используется уже существующая архитектура). На нем создается архитектура системы. Результатом является 20 – 30 % реализованных прецедентов использования.

Слайд 75





Последние фазы
3) Построение длится от 2 до 4 итераций. При этом происходит разработка окончательного продукта. 
4) Внедрение занимает от 1 до 3 итераций. На этой стадии проводится тестирование системы, тренинги пользователей и развертывание системы на рабочей площадке.
Описание слайда:
Последние фазы 3) Построение длится от 2 до 4 итераций. При этом происходит разработка окончательного продукта. 4) Внедрение занимает от 1 до 3 итераций. На этой стадии проводится тестирование системы, тренинги пользователей и развертывание системы на рабочей площадке.

Слайд 76





Экстремальное программирование (eXtreme Programming, XP)
Облегченный процесс, ориентированный на группы малого и среднего размера (до 10 человек), которые разрабатывают системы в условиях неопределенных или быстро меняющихся требований. XP-процесс – высокодинамичный, состоящий из очень коротких итераций.
Описание слайда:
Экстремальное программирование (eXtreme Programming, XP) Облегченный процесс, ориентированный на группы малого и среднего размера (до 10 человек), которые разрабатывают системы в условиях неопределенных или быстро меняющихся требований. XP-процесс – высокодинамичный, состоящий из очень коротких итераций.

Слайд 77





Основные действия в XP-цикле
Кодирование,
Тестирование,
Выслушивание заказчика,
Проектирование.
Описание слайда:
Основные действия в XP-цикле Кодирование, Тестирование, Выслушивание заказчика, Проектирование.

Слайд 78





Особенности XP-программирования
Используются 12 базовых методов, которые предполагают разработку историй (сценариев) и включение их в очередную итерацию. Каждая история реализуется за 2 недели.
Применяется парное программирование (написание и отладка кода двумя программистами).
Широко используется тестирование. Тесты составляются до начала кодирования.
Описание слайда:
Особенности XP-программирования Используются 12 базовых методов, которые предполагают разработку историй (сценариев) и включение их в очередную итерацию. Каждая история реализуется за 2 недели. Применяется парное программирование (написание и отладка кода двумя программистами). Широко используется тестирование. Тесты составляются до начала кодирования.

Слайд 79





Идеальный XP-процесс
Описание слайда:
Идеальный XP-процесс

Слайд 80





Технология Scrum
представляет собой эмпирический подход к разработке программного обеспечения. Основан на повторяющихся циклах. В процессе разработки участвуют актеры со следующими ролями.
1. Scrum Мастер (Scrum Master) – самая важная роль (организует работу).
2. Владелец продукта (Product Owner) – представитель заказчика.
3. Команда (Team) самоорганизующаяся и самоуправляемая, работает как единое целое, без учета вклада отдельных членов.
Описание слайда:
Технология Scrum представляет собой эмпирический подход к разработке программного обеспечения. Основан на повторяющихся циклах. В процессе разработки участвуют актеры со следующими ролями. 1. Scrum Мастер (Scrum Master) – самая важная роль (организует работу). 2. Владелец продукта (Product Owner) – представитель заказчика. 3. Команда (Team) самоорганизующаяся и самоуправляемая, работает как единое целое, без учета вклада отдельных членов.

Слайд 81





Процесс работы над программным продуктом
Описание слайда:
Процесс работы над программным продуктом

Слайд 82





Спринт
Это короткие ежедневные и циклические 30-дневные встречи. 
Отбор задач на спринт выполняется с учетом их важности.
Результатом спринта является продукт, который можно передавать заказчику.
Описание слайда:
Спринт Это короткие ежедневные и циклические 30-дневные встречи. Отбор задач на спринт выполняется с учетом их важности. Результатом спринта является продукт, который можно передавать заказчику.

Слайд 83





3.2. Языки конструирования программного обеспечения
Конфигурационные, которые задают  параметры выполнения программной системы;
Инструментальные – языки конструирования из повторно-используемых элементов  (script);
Языки программирования - C++, Java .
Описание слайда:
3.2. Языки конструирования программного обеспечения Конфигурационные, которые задают параметры выполнения программной системы; Инструментальные – языки конструирования из повторно-используемых элементов (script); Языки программирования - C++, Java .

Слайд 84





Язык программирования
Важную роль играют
Программирование не на языке, а с использованием языка.
Опыт программирования  на конкретном языке.
Программирование с псевдокодом – запись в программе пошагового алгоритма.
Описание слайда:
Язык программирования Важную роль играют Программирование не на языке, а с использованием языка. Опыт программирования на конкретном языке. Программирование с псевдокодом – запись в программе пошагового алгоритма.

Слайд 85





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

Слайд 86





Кодирование
5) обработка ошибочных условий и исключительных ситуаций;
6) документирование кода;
7) тонкая «настройка» кода;
8) рефакторинг.
Описание слайда:
Кодирование 5) обработка ошибочных условий и исключительных ситуаций; 6) документирование кода; 7) тонкая «настройка» кода; 8) рефакторинг.

Слайд 87





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

Слайд 88





3.4 Тестирование в конструировании
Это процесс выполнения программы с намерением найти ошибки.
Методологии тестирования:
«белого ящика» и
«чёрного ящика».
Описание слайда:
3.4 Тестирование в конструировании Это процесс выполнения программы с намерением найти ошибки. Методологии тестирования: «белого ящика» и «чёрного ящика».

Слайд 89





Метод белого ящика
Описание слайда:
Метод белого ящика

Слайд 90





Метод черного ящика
Тестирование внешних интерфейсов
Описание слайда:
Метод черного ящика Тестирование внешних интерфейсов

Слайд 91





Метод серого ящика
Описание слайда:
Метод серого ящика

Слайд 92





Уровни тестирования
Модульное;
Интеграционное.
Описание слайда:
Уровни тестирования Модульное; Интеграционное.

Слайд 93





Схема процесса тестирования
Описание слайда:
Схема процесса тестирования

Слайд 94





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

Слайд 95





3.6 Качество конструирования
Представление качества в стандарте ISO 9126
Описание слайда:
3.6 Качество конструирования Представление качества в стандарте ISO 9126

Слайд 96





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

Слайд 97





Характеристики и атрибуты качества ПО по ISO 9126
Описание слайда:
Характеристики и атрибуты качества ПО по ISO 9126

Слайд 98





3.7 Интеграция
 Это процесс объединения частей в целое. Наиболее распространенные виды интеграции :
Объединение модулей в единую программную систему;
Веб-интеграция — объединение разнородных веб-приложений и систем в единую среду;
Интеграция данных — объединение данных, находящихся в различных источниках и предоставление их пользователям в унифицированном виде.
Описание слайда:
3.7 Интеграция Это процесс объединения частей в целое. Наиболее распространенные виды интеграции : Объединение модулей в единую программную систему; Веб-интеграция — объединение разнородных веб-приложений и систем в единую среду; Интеграция данных — объединение данных, находящихся в различных источниках и предоставление их пользователям в унифицированном виде.

Слайд 99





Непрерывная интеграция 
(CI - Continuous Integration)
Это практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем.
Описание слайда:
Непрерывная интеграция (CI - Continuous Integration) Это практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем.

Слайд 100





Задачи службы непрерывной интеграции
получение исходного кода из репозитория;
сборка проекта;
выполнение тестов;
развертывание готового проекта;
отправка отчетов.
Описание слайда:
Задачи службы непрерывной интеграции получение исходного кода из репозитория; сборка проекта; выполнение тестов; развертывание готового проекта; отправка отчетов.

Слайд 101





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

Слайд 102





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



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