Технология разработки программного обеспечения
Технология разработки ПО
Первейшая цель проекта: высокое качество результата
Викторина 1
Вопрос 1.1
Вопрос 1.2
Вопрос 1.3
Вопрос 1.4
Вопрос 1.5
Викторина 1 (ответы)
Викторина 2
Вопрос 2.1
Вопрос 2.2
Вопрос 2.3
Вопрос 2.4
Вопрос 2.5
Викторина 2 (ответы)
История – 1987 год
История – 1991 год
«Банда четырех»
Викторина 3
Вопрос 3.1
Вопрос 3.2
Вопрос 3.3
Вопрос 3.4
Вопрос 3.5
Викторина 3 (ответы)
Викторина 4
Вопрос 1.1
Вопрос 1.2
Вопрос 1.3
Вопрос 1.4
Вопрос 1.5
Викторина 4 (ответы)
Спасибо за внимание!

Технология разработки программного обеспечения. (Лекция 8.5)

1. Технология разработки программного обеспечения

Lecture Notes N 8 v.[5]
Б. Мишнев

2. Технология разработки ПО

Система инженерных
принципов для создания
экономичного ПО, которое
надежно и эффективно работает
в реальных компьютерах
Б.Мишнев. Введение в специальность
2

3.

Этапы разработки ПО
• Планирование и оценка проекта
• Анализ системных и программных требований
• Проектирование алгоритмов, структур данных и
программных структур
• Кодирование
• Тестирование
• Сопровождение
Б.Мишнев. Введение в специальность
3

4. Первейшая цель проекта: высокое качество результата

• Высокое качество = своевременность
выполнения проекта в соответствии с
требованиями заказчика
Почему это выгодно всем?
• Меньше переделок и исправлений!
Б.Мишнев. Введение в специальность
4

5.

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

6. Викторина 1

• Нарисуйте в конспекте таблицу
№ вопр.
1.1
1.2
1.3
1.4
1.5
Ответ
Проверка
• В качестве ответов используйте:
I – да, - нет, О – не известно
Б.Мишнев. Введение в специальность
6

7. Вопрос 1.1

• Правильно ли то, что умение
строить новые программы
сегодня отстает от требований к
новым программам?
Б.Мишнев. Введение в специальность
7

8. Вопрос 1.2

• Правильно ли то, что низкое
качество программного
обеспечения существенно
снижает наши возможности по
эксплуатации существующих
программ?
Б.Мишнев. Введение в специальность
8

9. Вопрос 1.3

• Верно ли, что
международный стандарт по
программной инженерии
IEEE/ACM называется
COCOMO II?
Б.Мишнев. Введение в специальность
9

10. Вопрос 1.4

• Верно ли, что наиболее
популярная модель для
оценивания проектных затрат
называется SWEBOK 2001 ?
Б.Мишнев. Введение в специальность
10

11. Вопрос 1.5

• Верно ли, что штаб-квартира
IEEE (Institute of Electrical and
Electronic Engineers)
находится в Лондоне?
Б.Мишнев. Введение в специальность
11

12. Викторина 1 (ответы)

• Сравните свои ответы и отметьте правильные в графе
проверка «галочкой»
№ вопроса Ответ
1.1
I
1.2
I
1.3
1.4
1.5
-
Проверка
• Количество правильных ответов запишите!
Б.Мишнев. Введение в специальность
12

13.

«Водопадная модель» (Waterfall model)
System/information
engineering
analysis
design
code
test
Б.Мишнев. Введение в специальность
13

14.

Классический жизненный цикл ПО
• Достоинства:
• дает план и временной график по всем этапам
проекта
• вносит дисциплину в ход разработки
• Недостатки:
• Реальные проекты требуют отклонения от
стандартной последовательности шагов
• Цикл основан на точной формулировке исходных
требований к ПО
• Результаты доступны заказчику только в конце
работы
Б.Мишнев. Введение в специальность
14

15.

Макетирование
• Процесс создания модели
требуемого программного продукта
• Основная цель – снять
неопределенность с требований
заказчика
Б.Мишнев. Введение в специальность
15

16.

The Prototyping Models
listen
to
customer
build/revise
mock­up
customer
test­drives
mock­up
Б.Мишнев. Введение в специальность
16

17.

Формы моделей
• Статический макет – изображает
человеко-машинный диалог
(“screenshots”)
• Работающий макет
• Существующая программа,
подлежащая улучшению
Б.Мишнев. Введение в специальность
17

18.

Спиральная модель
(Боэм, 1988 – Boem, 1988)
• Планирование – определение целей, вариантов и
ограничений
• Анализ риска – анализ вариантов и распознавание
рисков
• Конструирование – разработка продукта
следующего уровня
• Оценивание – оценка заказчиком текущих
результатов конструирования
Б.Мишнев. Введение в специальность
18

19.

An Spiral Model
Planning
Risk Analysis
Customer
Communication
Engineering
Customer
Evaluation
Construction & Release
Б.Мишнев. Введение в специальность
19

20.

Спиральная модель
• Достоинства:
• Реально отображает эволюцию ПО
• Позволяет учитывать риски на каждом этапе
эволюции разработки
• Использует моделирование для снижения риска
• Недостатки:
• Повышенные требования к заказчику
• Трудности контроля и управления временем
разработки
Б.Мишнев. Введение в специальность
20

21. Викторина 2

• Нарисуйте в конспекте таблицу
№ вопр.
2.1
2.2
2.3
2.4
2.5
Ответ
Проверка
• В качестве ответов используйте:
I – да, - нет, О – не известно
Б.Мишнев. Введение в специальность
21

22. Вопрос 2.1

• Верно ли, что классический
жизненный цикл ПО дает
план и временной график по
всем этапам проекта ?
Б.Мишнев. Введение в специальность
22

23. Вопрос 2.2

• Правильно ли то, что
классический жизненный цикл
предполагает начало следующего
этапа разработки только после
завершения предыдущего?
Б.Мишнев. Введение в специальность
23

24. Вопрос 2.3

• Верно ли, что зачастую проще
разработать новую программу,
чем успешно модифицировать
существующую?
Б.Мишнев. Введение в специальность
24

25. Вопрос 2.4

• Верно ли, что разработка
программного продукта может
быть успешна только тогда, когда
с самого начала разработки все
требования пользователя точно
известны?
Б.Мишнев. Введение в специальность
25

26. Вопрос 2.5

• Верно ли, что сопровождение
(maintenance) – это внесение
изменений в эксплуатируемое
программное обеспечение?
Б.Мишнев. Введение в специальность
26

27. Викторина 2 (ответы)

• Сравните свои ответы и отметьте правильные в графе
проверка «галочкой»
№ вопроса Ответ
2.1
I
2.2
I
2.3
I
2.4
2.5
I
Проверка
• Количество правильных ответов запишите!
Б.Мишнев. Введение в специальность
27

28.

Методы проектирования
• Нисходящие методы – сложная задача сводится
путем декомпозиции к набору более простых
задач.
• Восходящий методы – проектирование системы
начинается с определения отдельных задач внутри
системы, которые затем используются для
решения более сложных задач системы
Б.Мишнев. Введение в специальность
28

29.

Инструменты разработки
• Диаграммы потоков данных (Data Flow - DF)
• Диаграммы «сущность-связь» (Entity
Relationship -ER)
• Словарь данных (Data Dictionary)
• Карты взаимодействия классов (Class
Responsibility Collaboration – CRC)
• Язык моделирования (Unified Modeling
Language – UML)
Б.Мишнев. Введение в специальность
29

30.

Шаблоны проектирования
(Pattern Language by Alexander)
Предлагает парадигму архитектуры, основанную на 
трех понятиях: качестве, шлюзе и пути
• Качество – сущность, присущая всему 
живому и вещам, их польза
• Шлюз – механизм, который позволяет нам 
достигать качества
• Путь ­ позволяет применять образцы 
посредством шлюза
Б.Мишнев. Введение в специальность
30

31. История – 1987 год

• В 1987 году Кент Бэк (Kent Beck) и Вард Каннигем
(Ward Cunningham) взяли идеи Кристофера
Александра и разработали шаблоны
применительно к разработке программного
обеспечения для разработки графических
оболочек на языке Smalltalk.
Б.Мишнев. Введение в специальность
31

32. История – 1991 год

• В этом году Эрих Гамма заканчивает свою
докторскую работу и переезжает в США, где в
сотрудничестве с Ричардом Хелмом (Richard Helm),
Ральфом Джонсоном (Ralph Johnson) и Джоном
Влиссидсом (John Vlissides) публикует книгу Design
Patterns — Elements of Reusable Object-Oriented
Software.
Б.Мишнев. Введение в специальность
32

33. «Банда четырех»

• В этой книге описаны 23 шаблона проектирования.
• Также команда авторов этой книги известна
общественности под названием Gang of Four
(GoF).
• Именно эта книга послужила причиной широкого
распространения метода шаблонов.
Б.Мишнев. Введение в специальность
33

34.

Software design patterns
A. Creational
• Abstract Factory
• Builder
• Factory Method
• Prototype
• Singleton
B. Structural
• Adapter
• Bridge
• Composite
• Decorator
• Facade
• Flyweight
• Proxy
C. Behavioral
• Chain of Responsibility
• Command
• Interpreter
• Iterator
• Mediator
• Memento
• Observer
• State
• Strategy
• Template Method
• Visitor
Б.Мишнев. Введение в специальность
34

35. Викторина 3

• Нарисуйте в конспекте таблицу
№ вопр.
3.1
3.2
3.3
3.4
3.5
Ответ
Проверка
• В качестве ответов используйте:
I – да, - нет, О – не известно
Б.Мишнев. Введение в специальность
35

36. Вопрос 3.1

• Правильно ли то, что при
нисходящих методах
проектирования возможны
неразрешимые проблемы для
модулей нижнего уровня?
Б.Мишнев. Введение в специальность
36

37. Вопрос 3.2

• Правильно ли то, что при
восходящих методах
проектирования гарантированно
достигается выполнение всех
требований пользователя на
высшем уровне?
Б.Мишнев. Введение в специальность
37

38. Вопрос 3.3

• Верно ли, что ER диаграммы
эффективно используются
при проектировании структур
баз данных?
Б.Мишнев. Введение в специальность
38

39. Вопрос 3.4

• Верно ли, что паттерн или
образец – это "некий общий
принцип определения задачи,
повторно встречающейся в
окружающей среде и
фиксирующей контекст»?
Б.Мишнев. Введение в специальность
39

40. Вопрос 3.5

• Верно ли, что книгу «Паттерны
проектирования» написала
«банда четырех» под
руководством Эрика Гаммы?
Б.Мишнев. Введение в специальность
40

41. Викторина 3 (ответы)

• Сравните свои ответы и отметьте правильные в графе
проверка «галочкой»
№ вопроса Ответ
3.1
I
3.2
3.3
I
3.4
I
3.5
I
Проверка
• Количество правильных ответов запишите!
Б.Мишнев. Введение в специальность
41

42.

Тестирование (verification)
Процесс выполнения программы с целью
обнаружение существующих ошибок
Тест определяет:
• Свой набор исходных данных и условия
для запуска программы
• Набор ожидаемых результатов
Б.Мишнев. Введение в специальность
42

43.

Принципы тестирования
• Функциональное тестирование (тестирование
«черного ящика») – выполняется с точки зрения
пользователя системы
• Структурное тестирование (тестирование «белого
ящика») – основывается на знании внутренней
структуры программы
Б.Мишнев. Введение в специальность
43

44.

Документирование
• Документация проекта (требования к системе, план
работ, тест-план, отчеты и .т.д.)
• Документация продукта
• Пользовательская (Руководство пользователя,
Инструкции по установке и .т.д.)
• Системная (текст программ, описание
программных интерфейсов и т.д.)
Б.Мишнев. Введение в специальность
44

45.

Метрики
• Размерно-ориентированные метрики
(основываются на Lines Of Code – LOC)
• Широко распространены
• Леко вычисляются
• Зависят от языка программрования
• Функционально-ориентированные метрики
(основываются на специально рассчитанных
функциональных указателях – Funcion Points –
FP)
• Не зависят от языка программирования
• Основаны на субъективных данных и используют
косвенные измерения
Б.Мишнев. Введение в специальность
45

46.

Управление проектом
Планируются и контролируются следующие
параметры:
• Потребные человеческие ресурсы
(efforts) – чел. месяцы / дни
• Время выполнения проекта (time) –
календарные месяцы / дни
• Размер программного продукта (size) –
KLOC / FP.
• Требуемое качество продукта (quality)
Б.Мишнев. Введение в специальность
46

47.

IBM Rational Unified Process
• Новый подход к разработке ПС, основанный на
использовании лучших практических методов,
успешно зарекомендовавших себя во многих проектах
разработки ПС по всему миру;
• Четко определенный процесс (технологическая
процедура), описывающий структуру жизненного
цикла проекта, роли и ответственности отдельных
исполнителей, выполняемые ими задачи и
используемые в процессе разработки модели, отчеты и
т.д.;
• Готовый продукт, предоставляемый в виде веб-сайта,
содержащего все необходимые модели и документы с
описанием процесса.
Б.Мишнев. Введение в специальность
47

48.

RUP
Б.Мишнев. Введение в специальность
48

49.

Инструментальные средства IBM Rational
• Управление требованиями – IBM Rational RequisitePro;
• Визуальное моделирование и генерация объектного кода –
IBM Rational Rose, IBM Rational XDE;
• Разработка - IBM Rational RapidDeveloper
• Конфигурационное управление – IBM Rational ClearCase;
• Управление изменениями – IBM Rational ClearQuest;
• Автоматизированное документирование – IBM Rational
SoDA;
• Автоматизированное тестирование – IBM Rational TeamTest,
IBM Rational TestFactory, IBM Rational Robot, IBM Rational
PurifyPlus, IBM Rational SiteCheck и IBM Rational SiteLoad.
Б.Мишнев. Введение в специальность
49

50. Викторина 4

• Нарисуйте в конспекте таблицу
№ вопр.
4.1
4.2
4.3
4.4
4.5
Ответ
Проверка
• В качестве ответов используйте:
I – да, - нет, О – не известно
Б.Мишнев. Введение в специальность
50

51. Вопрос 1.1

• Правильно ли то, что с помощью
тестирования по принципу
«черного ящика» можно
обнаружить некорректные или
отсутствующие в продукте
функции?
Б.Мишнев. Введение в специальность
51

52. Вопрос 1.2

• Правильно ли то, что с помощью
способов тестирования,
основанных на принципе
«белого ящика», можно
получить оценку комплексной
сложности программы?
Б.Мишнев. Введение в специальность
52

53. Вопрос 1.3

• Верно ли, что пользовательская
документация должна
разрабатываться на самом
заключительном этапе проекта?
Б.Мишнев. Введение в специальность
53

54. Вопрос 1.4

• Верно ли, что размерноориентированные метрики
не зависят от языка
программирования?
Б.Мишнев. Введение в специальность
54

55. Вопрос 1.5

• Верно ли, что в RUP входят 6 основных
дисциплин:
• Бизнес-моделирование (Business modeling);
• Управление требованиями (Requirements);
• Анализ и Проектирование (Analysis and
Design);
• Реализация (Implementation);
• Тестирование (Test);
• Развертывание (Deployment)?
Б.Мишнев. Введение в специальность
55

56. Викторина 4 (ответы)

• Сравните свои ответы и отметьте правильные в графе
проверка «галочкой»
№ вопроса Ответ
4.1
I
4.2
I
4.3
4.4
4.5
-
Проверка
• Количество правильных ответов запишите!
Б.Мишнев. Введение в специальность
56

57.

Scrum
• Scrum — методология управления
разработкой информационных
систем для гибкой разработки
программного обеспечения. Scrum
чётко делает акцент на
качественном контроле процесса
разработки.
Б.Мишнев. Введение в специальность
57

58.

Scrum
Б.Мишнев. Введение в специальность
58

59.

SW-CMM (CMMI)
• Capability Maturity Model (CMM)
Levels of the CMM
Level 1 - Initial
Level 2 - Repeatable
Level 3 - Defined
Level 4 - Managed
Level 5 - Optimizing
Б.Мишнев. Введение в специальность
59

60.

Литература
• Дж. Г. Брукшир. Введение в компьютерные
науки. – М.,«Вильямс», 2001, с.341-378.
• С.А. Орлов. Технологии разработки
программного обеспечения.- СПб.: Питер, 2002.
– 464 с.
• Майк Кон. Scrum: гибкая разработка ПО =
Succeeding with Agile: Software Development
Using Scrum — М.: «Вильямс», 2011. — 576 c.
Б.Мишнев. Введение в специальность
60

61. Спасибо за внимание!

Dr. Sc Ing. Борис Мишнев
English     Русский Правила