Основные понятия технологии программирования
Литература
Литература
Литература
Программы «большие» и «маленькие»
Особенности «маленьких» программ
Особенности «маленьких» программ
«Большие» программы
Свойства «больших» программ
Свойства «больших» программ
Программное обеспечение
Программная инженерия
Программная инженерия
Программная инженерия
Виды деятельности
Виды деятельности
Технология программирования
Методы и средства ТП
Методы ТП
Средства ТП
Цели ТП
Проблемы качества ПО
Проблемы качества ПО
Проблемы качества ПО
Почему это так?
Понятие качества программного обеспечения
Международный стандарт
Критерии качества ПО
Функциональность ПО
Надежность программного обеспечения
Эффективность программного обеспечения
Эргономичность ПО
Модифицируемость программного обеспечения
Мобильность ПО
Стандарт ISO 9126
Три аспекта качества ПО
Три аспекта качества ПО
Структура стандарта ISO 9126
Модель качества
Модель качества
Проблемы разработки программного обеспечения
Жизненный цикл ПО
Фазы жизненного цикла
Этапы фазы разработки
Артефакты
Примеры артефактов
Примеры артефактов
Роли
Примеры ролей
Примеры ролей
Стандарт ISO/IEC 12207-95
Стандарт ISO/IEC 12207-95
Определения стандарта: модель ЖЦ
Модель ЖЦ
Процессы жизненного цикла
Процессы ЖЦ по ISO 12207
Действия и задачи
Основные процессы ЖЦ
Основные процессы ЖЦ
Основные процессы ЖЦ
Конец лекции

Основные понятия технологии программирования. (Лекция 1)

1. Основные понятия технологии программирования

Лекция 1

2. Литература

1.
2.
3.
09.10.16
Орлов С.А., Цилькер Б.Я. Технологии
разработки программного обеспечения.
Современный курс по программной
инженерии: Учебник для вузов. 4-е изд. –
СПб., Питер, 2012. – 608 с.: ил.
Соммервилл И. Инженерия программного
обеспечения.: Пер. с англ.: – М., Вильямс,
2002. – 623 с.: ил.
Брауде Э. Дж. Технология разработки
программного обеспечения.: Пер. с англ.: –
СПб., Питер, 2004.– 654 с.: ил.
Основные понятия технологии программирования
2

3. Литература

4.
5.
6.
09.10.16
Якобсон А., Буч Г., Рамбо Д.
Унифицированный процесс разработки
программного обеспечения.: Пер. с англ.: –
СПб., Питер, 2002. – 492 с.: ил.
Жоголев Е. А. Технология программирования:
М., Научный мир, 2004. – 215 с.: ил.
Терехов А.Н. Технология программирования:
М., ИНТУИТ, 2006. – 152 с.: ил.
Основные понятия технологии программирования
3

4. Литература

7.
8.
09.10.16
Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д.
Приемы объектно-ориентированного
проектирования. Паттерны проектирования.:
Пер. с англ.: – СПб., Питер-ДМК, 2001. – 366 с.
ил.
В. В. Кулямин. Технологии программирования.
Компонентный подход. http://panda.ispras.ru/~
kuliamin/lectures-sdt/sdt-book-2006.pdf
Основные понятия технологии программирования
4

5. Программы «большие» и «маленькие»

Основная
тема данного курса — методы
разработки «больших» и сложных программ
Программы, решающие какие-либо узкие
задачи, в большинстве случаев пишутся
программистами «на коленках» без
использования особых методов
Пример: программа для вычисления
значения синуса угла с некоторой наперед
заданной точностью
09.10.16
Основные понятия технологии программирования
5

6. Особенности «маленьких» программ

Для
«малых» программ можно указать
следующие характерные особенности:
сравнительно небольшой размер (порядка
нескольких сотен строк);
направленность на решение одной четко
поставленной задачи с хорошо известными
ограничениями;
отсутствие оптимизации по скорости
выполнения;
09.10.16
Основные понятия технологии программирования
6

7. Особенности «маленьких» программ

а также
практическое отсутствие ущерба от
неправильной работы программы;
отсутствие необходимости дополнять
программу новыми возможностями и
разрабатывать ее новые версии;
минимальная потребность в документировании
09.10.16
Основные понятия технологии программирования
7

8. «Большие» программы

«Большие»
программы и программные
комплексы создаются для решения
сложных задач, связанных с практической
деятельностью значительного числа людей
Примерами таких программ являются
всевозможные системы автоматизации
производственных процессов, системы
управления и контроля, СУБД и т.д
09.10.16
Основные понятия технологии программирования
8

9. Свойства «больших» программ

«Большая»
программа обычно обладает
следующими свойствами:
решает одну или несколько связанных задач,
важных для каких-либо лиц или организаций,
получающих существенные выгоды от ее
использования;
ее неправильная работа или низкая
производительность на реальных данных наносит
ощутимый ущерб пользователям и другим
организациям и лицам;
09.10.16
Основные понятия технологии программирования
9

10. Свойства «больших» программ

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

11. Программное обеспечение

Как
правило, «большие» программы
требуют для своего выполнения некоторого
набора аппаратных средств, образуя
программно-аппаратные системы
Поэтому иногда мы будем пользоваться
понятием «программное обеспечение»
(«ПО»), подразумевая под этим собственно
программную «начинку» программноаппаратных систем
09.10.16
Основные понятия технологии программирования
11

12. Программная инженерия

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

13. Программная инженерия

Инженерия
- это способ применения
научных результатов, для извлечения пользы
от свойств материалов и источников энергии
Инженеры в программной инженерии - это
специалисты, выполняющие практические
работы по реализации программ с
применением теории, методов и средств
компьютерной науки
09.10.16
Основные понятия технологии программирования
13

14. Программная инженерия

Компьютерная
наука охватывает теорию и
методы построения вычислительных и
программных систем
Программная инженерия рассматривает
вопросы практического построения ПО
Цель науки – получение знаний, для
инженерии знание – это способ получения
некоторой пользы
09.10.16
Основные понятия технологии программирования
14

15. Виды деятельности

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

16. Виды деятельности

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

17. Технология программирования

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

18. Методы и средства ТП

09.10.16
Основные понятия технологии
программирования
18

19. Методы ТП

Методами
технологии программирования
называются способы и приемы организации
производственных процессов при
разработке программных средств
Методы ТП определяют организационную
структуру коллектива разработчиков,
способы разбиения процесса разработки на
отдельные этапы, последовательность этих
этапов и т.д.
09.10.16
Основные понятия технологии программирования
19

20. Средства ТП

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

21. Цели ТП

Цели
технологии программирования
сформулированы уже в ее определении –
производство ПО требуемого качества в
установленные сроки
Очевидно, что
обеспечение требуемого качества связано со
способами деятельности,
соблюдение сроков связано с организацией
деятельности
09.10.16
Основные понятия технологии программирования
21

22. Проблемы качества ПО

К
сожалению, положение дел с
обеспечением качества ПО остается
неудовлетворительным
По данным Национального Института
стандартов и технологий, ошибки в
программном обеспечении обходятся
экономике США в 60 млрд. долларов в год, а
в мировом масштабе они, по крайней мере,
втрое выше
09.10.16
Основные понятия технологии программирования
22

23. Проблемы качества ПО

Новый
программный проект создается 1-2
года, а эволюционирует 6-7 лет
На сопровождение проекта, включая его
доработку и исправление ошибок, тратится
61% средств против 39% на его разработку
09.10.16
Основные понятия технологии программирования
23

24. Проблемы качества ПО

Наблюдаются
две основные тенденции:
значительное увеличение производительности
программистов в терминах количества кода,
создаваемого ими в единицу времени;
сохранение среднего количества ошибок в
пределах 10-50 на тысячу строк кода, еще не
прошедшего тестирование
09.10.16
Основные понятия технологии программирования
24

25. Почему это так?

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

26. Понятие качества программного обеспечения

Качество
ПО – это вся совокупность его
характеристик, относящихся к возможности
удовлетворять высказанные или
подразумеваемые потребности всех
заинтересованных лиц
09.10.16
Основные понятия технологии программирования
26

27. Международный стандарт

Основой регламентирования показателей
качества программных систем является
международный стандарт ISO 9126
«Информационная технология. Оценка
программного продукта. Характеристики
качества и руководство по их применению»
Стандарт определяет ряд критериев
качества программного продукта
09.10.16
Основные понятия технологии программирования
27

28. Критерии качества ПО

Основными критериями качества ПО
(criteria of software quality) являются:
09.10.16
функциональность
надежность
эффективность
эргономичность
модифицируемость
мобильность
Основные понятия технологии программирования
28

29. Функциональность ПО

Способность
ПО выполнять набор функций
(действий), удовлетворяющих заданным
или подразумеваемым потребностям
пользователей
Набор указанных функций определяется во
внешнем описании ПО
09.10.16
Основные понятия технологии программирования
29

30. Надежность программного обеспечения

(reliability) ПО это его
способность с достаточно большой
вероятностью безотказно выполнять
определенные функции при заданных
условиях и в течение заданного периода
времени
Надежность
09.10.16
Основные понятия технологии программирования
30

31. Эффективность программного обеспечения

Соотношение
уровня услуг,
предоставляемых ПО пользователю при
заданных условиях, и объема используемых
для этого ресурсов
К числу таких ресурсов могут относиться
требуемые аппаратные средства, время
выполнения программ, затраты на
подготовку данных и интерпретацию
результатов
09.10.16
Основные понятия технологии программирования
31

32. Эргономичность ПО

Характеристики
ПО, которые позволяют
минимизировать усилия пользователя по
подготовке исходных данных, применению
ПО и оценке полученных результатов, а
также вызывать положительные эмоции
определенного или подразумеваемого
пользователя
09.10.16
Основные понятия технологии программирования
32

33. Модифицируемость программного обеспечения

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

34. Мобильность ПО

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

35. Стандарт ISO 9126

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

36. Три аспекта качества ПО

Внутреннее
качество связано с
характеристиками ПО самого по себе, без
учета его поведения
Внешнее качество характеризующего ПО с
точки зрения его поведения
Качества ПО при использовании – это то
качество, которое ощущается пользователями
при конкретных сценариях работы ПО
09.10.16
Основные понятия технологии программирования
36

37. Три аспекта качества ПО

09.10.16
Основные понятия технологии программирования
37

38. Структура стандарта ISO 9126

Стандарт
разделяется на 4 части,
описывающие следующие вопросы:
модель качества;
внешние метрики качества;
внутренние метрики качества;
метрики качества в использовании
09.10.16
Основные понятия технологии программирования
38

39. Модель качества

Стандарт
ISO 9126 предлагает использовать
для описания внутреннего и внешнего
качества ПО многоуровневую модель
На верхнем уровне выделено 6 основных
характеристик качества ПО. Каждая
характеристика описывается при помощи
нескольких входящих в нее атрибутов. Для
каждого атрибута определяется набор
метрик, позволяющих его оценить
09.10.16
Основные понятия технологии программирования
39

40. Модель качества

09.10.16
Основные понятия технологии программирования
40

41. Проблемы разработки программного обеспечения

Основные
проблемы создания сложных
программных систем связаны с нахождением
разумного компромисса между затратами на
разработку и качеством ее результата
09.10.16
Основные понятия технологии программирования
41

42. Жизненный цикл ПО

Жизненным
циклом программного
обеспечения называется весь период
времени от начала его разработки до
завершения использования
Жизненный цикл ПО состоит из фазы
разработки, фазы использования и фазы
продолжающейся разработки
(модификации), причем две последние фазы
близки или совпадают по времени
09.10.16
Основные понятия технологии программирования
42

43. Фазы жизненного цикла

Фаза использования
Фаза разработки
Фаза продолжающейся разработки
09.10.16
Основные понятия технологии программирования
43

44. Этапы фазы разработки

Наиболее
интересной фазой жизненного
цикла ПО является фаза разработки
Эта фаза может быть разбита на ряд этапов, а
именно:
анализ системы и выявление требований к ПО;
проектирование ПО;
конструирование (кодирование) ПО;
тестирование ПО;
инсталляция ПО
09.10.16
Основные понятия технологии программирования
44

45. Артефакты

Жизненный
цикл ПО связан с различными
видами деятельности большого количества
людей
При этом создаются и перерабатываются
различного рода артефакты – создаваемые
человеком информационные сущности
(документы), участвующие в качестве
входных данных и результатов в различных
видах деятельности
09.10.16
Основные понятия технологии программирования
45

46. Примеры артефактов

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

47. Примеры артефактов

пользовательская документация,
документация администратора системы,
руководство по развертыванию,
база пользовательских запросов,
план проекта
09.10.16
Основные понятия технологии программирования
47

48. Роли

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

49. Примеры ролей

Примерами
ролей являются:
бизнес-аналитик,
инженер по требованиям,
архитектор,
проектировщик пользовательского интерфейса,
программист-кодировщик,
технический писатель,
тестировщик,
09.10.16
Основные понятия технологии программирования
49

50. Примеры ролей

руководитель проекта по разработке,
работник отдела продаж,
конечный пользователь,
администратор системы,
инженер по поддержке и т.п.
09.10.16
Основные понятия технологии программирования
50

51. Стандарт ISO/IEC 12207-95

По
определению, ISO/IEC 12207-95 —
базовый стандарт процессов ЖЦ ПО,
ориентированный на различные виды ПО и
типы проектов автоматизированных систем,
куда ПО входит как часть
Стандарт определяет стратегию и общий
порядок в создании и эксплуатации ПО, он
охватывает ЖЦ ПО от концептуализации
идей до завершения ЖЦ
09.10.16
Основные понятия технологии программирования
51

52. Стандарт ISO/IEC 12207-95

Первая
редакция ISO/IEC 12207-95
подготовлена в 1995 году объединенным
техническим комитетом ISO/IEC JTC1
"Информационные технологии, подкомитет
SC7, проектирование программного
обеспечения»
09.10.16
Основные понятия технологии программирования
52

53. Определения стандарта: модель ЖЦ

Модель
жизненного цикла — структура,
содержащая процессы, действия и задачи,
которые осуществляются в ходе разработки,
функционирования и сопровождения
программного продукта в течение всей
жизни системы, от определения требований
до завершения ее использования.
09.10.16
Основные понятия технологии программирования
53

54. Модель ЖЦ

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

55. Процессы жизненного цикла

Самыми
крупными элементами являются
процессы жизненного цикла ПО
Всего выделено 18 процессов, которые
объединены в 4 группы:
основные процессы,
поддерживающие процессы,
организационные процессы,
процесс адаптации
09.10.16
Основные понятия технологии программирования
55

56. Процессы ЖЦ по ISO 12207

09.10.16
Основные понятия технологии программирования
56

57. Действия и задачи

Каждый
процесс ЖЦ разделен на набор
работ (activities), каждое действие — на
набор задач (tasks)
Всего определены 74 вида работ и 224
различных задач
Каждый процесс, работа или задача
инициируется и выполняется другим
процессом по мере необходимости
09.10.16
Основные понятия технологии программирования
57

58. Основные процессы ЖЦ

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

59. Основные процессы ЖЦ

анализ требований к ПО,
проектирование архитектуры ПО,
детальное проектирование,
кодирование
отладочное тестирование,
интеграцию ПО,
квалификационное тестирование ПО,
системную интеграцию
09.10.16
Основные понятия технологии программирования
59

60. Основные процессы ЖЦ

квалификационное тестирование системы,
развертывание (установку или инсталляцию)
ПО
09.10.16
Основные понятия технологии программирования
60

61. Конец лекции

09.10.16
Основные понятия технологии
программирования
61
English     Русский Правила