Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014 Лекції ТСПП (0-8).pdf
Скачиваний:
374
Добавлен:
12.02.2016
Размер:
1.74 Mб
Скачать

Конспект лекцій "Технологія створення програмних продуктів"

 

Зміст курсу ч.1

 

Лекція 0.

Вступ. Цілі, завдання і місце курсу............................................................................................................................................

3

1.

Мета викладання курсу.........................................................................................................................................................................

3

2.

Завдання вивчення курсу......................................................................................................................................................................

3

3.

Дисципліни, засвоєння яких необхідне при вивченні курсу..............................................................................................................

3

4.

Характеристика курсу...........................................................................................................................................................................

3

5.

Навчально-методичні матеріали по курсу...........................................................................................................................................

3

5.1.

Література....................................................................................................................................................................................

3

5.2.

Інформаційні ресурси мережі Інтернет......................................................................................................................................

4

Лекція 1.

Введення у технологію програмування.....................................................................................................................................

5

1.

Термінологія індустрії ПЗ.....................................................................................................................................................................

5

1.1.

Програмування ............................................................................................................................................................................

5

1.2.

IT-проекти....................................................................................................................................................................................

5

1.3.

Програми і програмне забезпечення (програмні продукти).....................................................................................................

5

2.

Бізнес і IT-проекти. Ринок ПЗ..............................................................................................................................................................

6

3.

Про предмет...........................................................................................................................................................................................

7

4.

Причини невдач IT-проектів ................................................................................................................................................................

7

5.

Виникнення Технології розробки ПЗ...................................................................................................................................................

8

5.1.

Коротка історія програмування..................................................................................................................................................

9

5.2.

Терміни “Технологія”, “Методологія” і “Програмна інженерія”...........................................................................................

10

5.3.

Стратегії розробки ПЗ...............................................................................................................................................................

10

6.

Огляд технологій програмування.......................................................................................................................................................

11

6.1.

Структурне програмування.......................................................................................................................................................

11

6.2.

Модульне програмування.........................................................................................................................................................

12

6.3.

Об'єктно-орієнтоване програмування......................................................................................................................................

12

6.4.

Компонентне програмування....................................................................................................................................................

12

6.5.

Висновки з лекції.......................................................................................................................................................................

13

Лекція 2.

Елементи програмної інженерії................................................................................................................................................

14

1.

Програмна інженерія, основні поняття..............................................................................................................................................

14

1.1.

Інженери і програмні інженери................................................................................................................................................

14

1.2.

Програмна інженерія як інженерна дисципліна......................................................................................................................

14

1.3.

Область дії програмної інженерії.............................................................................................................................................

14

2.

Цілі програмних інженерів.................................................................................................................................................................

14

2.1.

Поняття “якості” програмного продукту.................................................................................................................................

15

2.2.

Створення ПЗ повинно вкладатися до бюджету.....................................................................................................................

16

2.3.

Створення ПЗ повинно вкладатися в терміни.........................................................................................................................

16

3.

Забезпечення надійності розробки ПЗ...............................................................................................................................................

16

3.1.

Забезпечення точності інтерпретації........................................................................................................................................

17

3.2.

Подолання бар'єру між користувачем і розробником.............................................................................................................

17

3.3.

Контроль ухвалюваних рішень.................................................................................................................................................

17

3.4.

Програмні інженери і наукове середовище.............................................................................................................................

17

4.

Складність програмної системи.........................................................................................................................................................

18

4.1.

Методи боротьби зі складністю................................................................................................................................................

18

5.

Моделі якості процесів розроблення ПЗ ...........................................................................................................................................

18

Лекція 3.

Організація технологічного процесу розробки ПЗ..................................................................................................................

21

1.

Процес створення програмного забезпечення ..................................................................................................................................

21

1.1.

Основні стадії типового процесу створення ПП.....................................................................................................................

21

2.

Життєвий цикл та моделі процесу розробки ПЗ...............................................................................................................................

22

2.1.

Каскадна модель (Waterfall model)...........................................................................................................................................

22

2.2.

Макетування (прототипіювання)..............................................................................................................................................

24

2.3.

Інкрементна модель...................................................................................................................................................................

25

2.4.

Модель Швидкої Розробки (RAD) ...........................................................................................................................................

26

2.5.

Спіральна модель.......................................................................................................................................................................

27

2.6.

Компонентно-орієнтована модель............................................................................................................................................

28

3.

“Важкі” і “полегшені” процеси..........................................................................................................................................................

29

4.

ХР-процесс...........................................................................................................................................................................................

30

Лекція 4.

Оцінка програмного проекту по СОСОМО.............................................................................................................................

33

1.

Процес управління проектом..............................................................................................................................................................

33

1.1.

Початок проекту........................................................................................................................................................................

33

1.2.

Оцінювання, заходи і метрики..................................................................................................................................................

33

1.3.

Процес оцінки............................................................................................................................................................................

34

1.4.

Аналіз ризиків............................................................................................................................................................................

34

1.5.

Планування................................................................................................................................................................................

34

1.6.

Трасування і контроль...............................................................................................................................................................

34

2.

Планування проектних завдань..........................................................................................................................................................

34

3.

Розмірно-орієнтовані метрики ...........................................................................................................................................................

36

4.

Функціонально-орієнтовані метрики.................................................................................................................................................

37

5.

Оцінка проекту на основі LOC- і FP-метрик.....................................................................................................................................

42

Лекція 5.

Проектування програмних систем ...........................................................................................................................................

43

1.

Особливості процесу синтезу програмних систем ...........................................................................................................................

43

2.

Особливості етапу проектування.......................................................................................................................................................

44

3.

Структуризація системи......................................................................................................................................................................

44

4.

Моделювання управління...................................................................................................................................................................

46

5.

Декомпозиція підсистем на модулі....................................................................................................................................................

47

6.

Модульність.........................................................................................................................................................................................

47

7.

Інформаційна закритість.....................................................................................................................................................................

48

8.

Зв'язність модуля.................................................................................................................................................................................

49

1

Конспект лекцій "Технологія створення програмних продуктів"

8.1.

 

Функціональна зв'язність..........................................................................................................................................................

49

8.2.

 

Інформаційна зв'язність ............................................................................................................................................................

50

8.3.

 

Комунікативна зв'язність..........................................................................................................................................................

50

8.4.

 

Процедурна зв'язність...............................................................................................................................................................

51

8.5.

 

Часова зв'язність........................................................................................................................................................................

51

8.6.

 

Логічна зв'язність.......................................................................................................................................................................

52

8.7.

 

Випадкова Зв'язність.................................................................................................................................................................

52

8.8.

 

Визначення зв'язності модуля...................................................................................................................................................

53

9.

Зчеплення модулів...............................................................................................................................................................................

53

10.

Складність програмної системи.........................................................................................................................................................

54

11.

Характеристики ієрархічної структури програмної системи...........................................................................................................

55

Лекція 6.

 

ПОБУДОВА АРХІТЕКТУРИ ПП.............................................................................................................................................

57

1.

Поняття архітектури програмного засобу.........................................................................................................................................

57

2.

Основні принципи проектування архітектури..................................................................................................................................

57

3.

Основні питання архітектора ПП.......................................................................................................................................................

59

4.

Архітектурні стилі (шаблони) ПП......................................................................................................................................................

60

5.

Поєднання архітектурних стилів........................................................................................................................................................

61

6.

Основні класи архітектур ПП.............................................................................................................................................................

61

6.1.

 

Цілісна програма .......................................................................................................................................................................

61

6.2.

 

Архітектура ППП ......................................................................................................................................................................

61

6.3.

 

Архітектура, заснована на шині повідомлень.........................................................................................................................

61

6.4.

 

Архітектура клієнт/сервер ........................................................................................................................................................

63

6.5.

 

Архітектура N-рівневої системи...............................................................................................................................................

64

6.6.

 

Багатошарова архітектура.........................................................................................................................................................

64

6.7.

 

N-рівнева / 3-рівнева архітектура.............................................................................................................................................

65

6.8.

 

Компонентна архітектура .........................................................................................................................................................

66

6.9.

 

Об'єктно-орієнтована архітектура............................................................................................................................................

68

6.10.

Сервісно-орієнтована архітектура............................................................................................................................................

68

7.

4. Контроль архітектури ПП...............................................................................................................................................................

69

Лекція 7.

 

Розробка Програм, Модульне Програмування........................................................................................................................

71

1.

Поняття модульного програмування.................................................................................................................................................

71

1.1.

 

Основні характеристики програмного модуля........................................................................................................................

71

1.2.

 

Методи розробки структури програми....................................................................................................................................

72

1.3.

 

Контроль структури програми..................................................................................................................................................

76

2.

Розроблення програмних модулів......................................................................................................................................................

77

2.1.

 

Порядок розробки програмного модуля..................................................................................................................................

77

2.2.

 

Структурне програмування модуля.........................................................................................................................................

78

2.3.

 

Покрокова деталізація і поняття про псевдокод.....................................................................................................................

79

Лекція 8.

 

Тестування і відлагодження ПЗ................................................................................................................................................

82

1.

Основні поняття тестування і відлагодження ...................................................................................................................................

82

2.

Основні підходи і принципи відлагодження.....................................................................................................................................

82

2.1.

 

Заповіді відлагодження.............................................................................................................................................................

84

2.2.

 

Автономна відладка модулів....................................................................................................................................................

84

2.3.

 

Проміжна відладка програмного засобу..................................................................................................................................

85

2.4.

 

Комплексна відладка програмного засобу...............................................................................................................................

85

3.

Організація процесу тестування ПЗ...................................................................................................................................................

86

3.1.

 

Тестування елементів................................................................................................................................................................

87

3.2.

 

Інтегральне Тестування ПП......................................................................................................................................................

90

3.3.

 

Низхідне тестування інтеграції.................................................................................................................................................

90

3.4.

 

Висхідне тестування інтеграції.................................................................................................................................................

91

3.5.

 

Порівняння низхідного і висхідного тестування інтеграції...................................................................................................

92

4.

Види Тестування.................................................................................................................................................................................

93

4.1.

 

Тестування правильності..........................................................................................................................................................

93

4.2.

 

Системне тестування.................................................................................................................................................................

93

4.3.

 

Тестування відновлення............................................................................................................................................................

94

4.4.

 

Тестування безпеки...................................................................................................................................................................

94

4.5.

 

Стресове тестування..................................................................................................................................................................

94

4.6.

 

Тестування продуктивності......................................................................................................................................................

95

2

Лекція 0. Цілі, завдання і місце курсу в учбовому процесі.

Лекція 0. Вступ. Цілі, завдання і місце курсу

1. Мета викладання курсу

Галузь розробки програмного забезпечення - одна з наймолодших і перспективних галузей людської діяльності. В даний час складність завдань, що стоять перед галуззю, безперервно зростає, а це вимагає застосування спеціальних технологій організації і проведення процесу розробки програмного забезпечення. Теоретичне вивчення подібних технологій, суміщене з їх практичним застосуванням, є важливою частиною підготовки фахівця в області розробки ПП.

Метою даного курсу є вивчення основних шляхів організації і виконання успішних проектів в області розробки програмного забезпечення. В навчальному курсі розглянуто технологічні основи процесу розробки програмного забезпечення.

2.Завдання вивчення курсу

Врамках вивчення курсу передбачається вирішення наступних завдань: розгляд технологічних основ процесу розробки програмного забезпечення;

розроблення формальних вимог до програмної системи, основаних на потребах замовника;

розроблення проекту програмної системи з урахуванням можливостей її подальшого розвитку, а також повторного використання її компонент в інших проектах;

вивчення основ уніфікованої мови UML для візуального моделювання елементів наочної області в рамках проектування програмної системи і її основних компонент;

отримання практичного досвіду роботи із застосуванням методології MSF;

розвиток навиків аналізу, проектування, документування і розробки програмних комплексів середньої складності.

3. Дисципліни, засвоєння яких необхідне при вивченні курсу

Курс спирається на матеріали наступних курсів: "Введення в методи програмування", "Методи об'єктно-орієнтованого програмування", "Дискретна математика" .

"Алгоритми і структури даних".

4. Характеристика курсу

Даний курс читається в 7-му семестрі. Таким чином, отримані знання і навики достатні для того, щоб приступити до ознайомлення з технологіями колективної розробки програм. Як базова методологія розробки програмного продукту вибрана перспективна методологія MSF, що добре себе зарекомендувала. У лекціях розглядається суть методології, її основні етапи і принципи.

Курс складається з 2-х частин (модулів). В першій частині розкриваються методологічні основи розробки програмних засобів. В другій частині розглянуто технологію програмування ПЗ на основі Microsoft Solution Framework. Разом з вивченням теоретичної складової – проблематики і базових принципів колективної розробки програм, суті і принципів MSF – велика увага приділяється практичній складовій.

5.Навчально-методичні матеріали по курсу

5.1.Література

1.И. Соммервиль. Инженерия программного обеспечения, 6 изд. - И.д. "Вильямс", 2002.

2.Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание. - Бином, 1998.

3.N. Wirth. Program Development by Stepwise Refinement // Communications of the ACM vol.26(1).- 1971, 1983.

3

Лекція 0. Цілі, завдання і місце курсу в учбовому процесі.

4.O. Dahl, E. Dijkstra, C.A.R. Hoare. Structured Programming.-London, England: Academic Press, 1972.

5.Р. Лингер, Х. Миллс, Б. Уитт. Теория и практика структурного программирования. - М.: Мир,

1982.

6.Э. Салливан. Время - деньги. - М.:Microsoft Press, Русская редакция, 2002.

7.Г. Буч, Дж. Рамбо, А. Джекобсон. UML. Руководство пользователя. - ДМК-Пресс, Питер, 2004.

8.G. Booch, J. Rumbaugh, I. Jacobson. The Unified Modeling Language Reference Manual - Second Edition, Addison-Wesley, 2004.

9.Модель процессов MSF. Белая книга, 2003, перевод eLine Software.

10.Дисциплина управления рисками MSF. Белая книга, 2003, перевод eLine Software.

11.Модель проектной группы MSF. Белая книга, 2003, перевод eLine Software.

12.1846A: Microsoft Solutions Framework Essentials. Microsoft Official Course, 2002

13.2710B: Analyzing Requirements and Defining Microsoft .NET Solutions Architecture. Microsoft Official Course, 2003

14.MSF Process Model. White paper, 2002 Microsoft Corporation.

15.MSF Risk Management Discipline. White paper, 2002 Microsoft Corporation.

16.MSF Team Model. White paper, 2002 Microsoft Corporation.

5.2.Інформаційні ресурси мережі Інтернет

1.Ian Sommerville. Software Engineering. 6th Edition. http://www.comp.lancs.ac.uk/computing/resources/IanS/SE6

2.Ian Sommerville. Software Engineering. 7th Edition. http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7 ]

3.www.uml.org

4.www.wikipedia.org

5.http://www.microsoft.com/msf

6.С. Якимчук. MSF - философия создания IT-решений или голые амбиции лидера, 2004:

[http://www.citforum.ru/SE/project/msf/ ].

7.Алистер Кокбёрн. Каждому проекту своя методология:[http://software-testing.ru/lib/ cockburn/methodology-per-project.htm ](перевод статьи Alistair Cockburn. Methodology per project:

[http://alistair.cockburn.us/index.php/Methodology_per_project ]).

8.MSF for Agile Software Development Process Guidance: http://go.microsoft.com/fwlink/?linkid=63524

4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]