
- •Короткий конспект для підготовки до іспиту з предмета"Конструювання програмних засобів"
- •1. Цілі і завдання конструювання пз. Особливості сучасних великих проектів іс
- •2. Основні визначення. Програмні засоби. Програмне забезпечення (пз). Програмний продукт. Проектування пз. Програмування.
- •3. Класифікація типів програмного забезпечення.
- •4. Життєвий цикл (жц) пз. Процеси жц пз.
- •5. Моделі жц пз. Каскадна модель. Зміст етапів створення пз.
- •6. Моделі жц пз. Спіральна модель. Зміст етапів створення пз.
- •7. Моделі жц пз. Інкрементальная модель. Зміст етапів створення пз.
- •8. Розвиток інкрементального підходу. Xp-процессы.
- •9. Міжнародні стандарти проектування, розробки, оформлення документації, призначеного для користувача інтерфейсу пз.
- •10. Вимірювання, заходи і метрики. Розмірно-орієнтовані метрики. Функціонально-орієнтовані метрики.
- •11. Виконання оцінки проекту на основі loc- і fp-метрик
- •12. Проект. Склад і структура колективу розробників, їх функції.
- •13. Структурний підхід до проектування іс. Суть структурного підходу
- •14. Структурний підхід до проектування іс. Case - засоби розробки пз.
- •15. Методологія функціонального моделювання sadt. Склад функціональної моделі. Ієрархія діаграм. Типи зв'язків між функціями. Приклади функціональних моделей в стандарті Idef0.
- •16. Моделювання потоків даних (процесів). Зовнішня суть. Системи і підсистеми. Процеси. Накопичувачі даних. Потоки даних. Побудова ієрархії діаграм потоків даних.
- •17. Моделювання даних. Case-метод Баркера. Методологія Idef1.
- •18. Проектування іс на основі об'єктно-орієнтованого підходу. Зіставлення і взаємозв'язок структурного і об'єктно-орієнтованого підходів.
- •20. Раціональний Уніфікований Процес. Динамічні аспекти процесів: структура жц, стадії, ітерації і контрольні крапки.
- •21. Раціональний Уніфікований Процес. Статичний зміст процесу: види діяльності (технологічні операції), робочі продукти, виконавці і дисципліни (технологічні процеси).
- •22. Якість програмного продукту. Критерії якості пз.
- •1. Зовнішні
- •2. Внутрішні
- •23. Сертифікація фірм розробників по моделі якості смм.
- •24. Документація, що створюється в процесі розробки програмних засобів. Документи управління розробкою пз. Документи, що входять до складу пз.
- •25. Призначена для користувача документація.
- •26. Документація по супроводу програмних засобів.
- •27. Людський чинник в управлінні проектами. Завдання n-личностей. Закон Брукса. Підходи до управління групами і керівництва ними.
18. Проектування іс на основі об'єктно-орієнтованого підходу. Зіставлення і взаємозв'язок структурного і об'єктно-орієнтованого підходів.
Структурне проектування працює добре, тому що воно дозволяє нам одночасно сосредотачиваться на меншій кількості деталей. Це логічна методика, яка заохочує організоване доведення системи і зменшує рівень складності (ступені інтеграції) на кожній з подальших стадій проекту. По очевидних причинах, низхідне (структурне) проектування підходить краще всього тоді, коли застосовується до проблем, які мають ясно виражений ієрархічний характер. На жаль, багато з реальних проблем не ієрархічні. Проект, заснований на побудові зверху вниз, має також і інші обмеження, які стануть очевидними при розробці і супроводі великих програмних систем.
- Функціональну точку зору важко розвивати.
- Реальні системи важко охарактеризувати функціонально.
- Фокусування на функціональності втрачає із виду дані.
- Функціональна орієнтація проводить код, менш придатний для багатократного використання.
Методи структурного проектування допомагають спростити процес розробки складних систем за рахунок використання алгоритмів як готових будівельних блоків. Аналогічно, методи об'єктно-орієнтованого проектування створені, щоб допомогти розробникам застосовувати могутні виразні засоби об'єктного і об'єктно-орієнтованого програмування, що використовує як блоки класи і об'єкти.
Структурне проектування характеризується переміщенням від загального формулювання того, що програма робить до все більш деталізованих формулювань цього щодо кожного специфічного завдання.
Структурне проектування не підходить для розробки великих програмних систем, тому що воно виторговує короткострокову зручність в обмін на відсутність гнучкості при тривалому супроводі. Існує незаконний привілей однієї функції над іншими, втрачаються із виду дані, залишаючись на задньому плані завдання. Важко можливість багатократного використання.
Об'єктно-орієнтоване проектування - конструювання програмних систем як структурних колекцій, що реалізовують абстрактні типи даних.
Об'єктно-орієнтоване проектування і об'єктно-орієнтоване програмування покращують можливості низхідного проектування, концентруючи більше увагу на даних системи, а не на тому, що система робить. Це підхід дозволяє створювати системи, які легко супроводжувати, вони гнучкіші, стійкіші і більш пристосовані до багатократного використання, чим створювані при низхідному структурному підході.
Об'єктно-орієнтовані методи краще тому що:
- Вони працюють на більш високому рівні абстракції.
- Немає "стрибків" між фазами.
- Вони підтримують дані, які мають тенденцію, до більшої стабільності, чим функції.
- Вони заохочують і підтримують класичні достоїнства хорошого програмування і проектування.
- Вони супроводяться інструментами, що забезпечують підтримку повторного використання коди.
Об'єктно-орієнтований підхід має два аспекти:
- об'єктно-орієнтована розробка програмного забезпечення;
- об'єктно-орієнтована реалізація програмного забезпечення.
Об'єктно-орієнтована розробка програм
Об'єктно-орієнтована розробка програмного забезпечення зв'язана із застосуванням об'єктно-орієнтованих моделей при розробці програмних систем і їх компонентів. Кажучи про об'єктно-орієнтовану розробку, маються на увазі:
- об'єктно-орієнтовані технології розробки програмних систем;
- інструментальні засоби, що підтримують ці технології.
Об'єктно-орієнтована розробка може початися на найпершому етапі життєвого циклу; вона не пов'язана з мовою програмування, на якому передбачається реалізувати програмну систему, що розробляється: ця мова може і не бути об'єктно-орієнтованою.
Об'єктно-орієнтована розробка програмного забезпечення зв'язана із застосуванням об'єктно-орієнтованих технологій. Зазвичай ці об'єктно-орієнтовані методології підтримуються інструментальними програмними засобами, але і без таких засобів вони корисні, оскільки дозволяють добре зрозуміти різні аспекти і властивості програмної системи, що розробляється, що в подальшому істотно полегшує її реалізацію, тестування, супровід, розробку нових версій і істотнішу модифікацію.
Різні об'єктно-орієнтовані методології розробки програмного забезпечення:
- RUP (Rational Unified Process)
- OMT (Object Modeling Technique)
- Sa/sd (Structured Analysis/structured Design);
- JSD (Jackson Structured Development);
- OSA (Object-oriented System Analysis)
19. Проектування ІС на основі об'єктно-орієнтованого підходу. Об'єктно-орієнтована розробка програм. Об'єктно-орієнтовані мови програмування. Об'єктно-орієнтовані методології розробки програмних систем. CASE - засоби розробки ПЗ.
Об'єктно-орієнтована розробка програмного забезпечення зв'язана із застосуванням об'єктно-орієнтованих моделей при розробці програмних систем і їх компонентів. Кажучи про об'єктно-орієнтовану розробку, маються на увазі:
- об'єктно-орієнтовані технології розробки програмних систем;
- інструментальні засоби, що підтримують ці технології.
Об'єктно-орієнтована розробка може початися на найпершому етапі життєвого циклу; вона не пов'язана з мовою програмування, на якому передбачається реалізувати програмну систему, що розробляється: ця мова може і не бути об'єктно-орієнтованою.
Об'єктно-орієнтована розробка програмного забезпечення зв'язана із застосуванням об'єктно-орієнтованих технологій. Зазвичай ці об'єктно-орієнтовані методології підтримуються інструментальними програмними засобами, але і без таких засобів вони корисні, оскільки дозволяють добре зрозуміти різні аспекти і властивості програмної системи, що розробляється, що в подальшому істотно полегшує її реалізацію, тестування, супровід, розробку нових версій і істотнішу модифікацію.
Різні об'єктно-орієнтовані методології розробки програмного забезпечення:
- RUP (Rational Unified Process)
- OMT (Object Modeling Technique)
- Sa/sd (Structured Analysis/structured Design);
- JSD (Jackson Structured Development);
- OSA (Object-oriented System Analysis)
Об'єктно-орієнтовані мови програмування
Реалізація програмного забезпечення зв'язана з використанням однієї з мов програмування. Найбільш зручними для реалізації програмних систем, розроблених в рамках об'єктно-орієнтованого підходу, є об'єктно-орієнтовані мови програмування, хоча можлива реалізація і на звичайних (не об'єктно-орієнтованих) мовах (наприклад, на мові C і на мові Fortran).
Об'єктно-орієнтовані мови програмування користуються останнім часом великою популярністю серед програмістів, оскільки вони дозволяють використовувати переваги об'єктно-орієнтованого підходу не тільки на етапах проектування і конструювання програмних систем, але і на етапах їх реалізації, тестування і супроводу.
Перша об'єктно-орієнтована мова програмування Simula 67 була розроблена в кінці 60-х років в Норвегії. Автори цієї мови дуже точно вгадали перспективи розвитку програмування: їх мова набагато випередила свій час. Проте сучасники (програмісти 60-х років) опинилися не готові сприйняти цінності мови Simula 67, і він не витримав конкуренції з іншими мовами програмування (перш за все, з мовою Fortran). Прохолодному відношенню до мови Simula 67 сприяла і та обставина, що він був реалізований як мова, що інтерпретувалася (а не компільований), що було абсолютно неприйнятним в 60-і роки, оскільки інтерпретація пов'язана із зниженням ефективності (швидкості виконання) програм.
Але достоїнства мови Simula 67 були відмічені деякими програмістами, і в 70-і роки було розроблено велике число експериментальних об'єктно-орієнтованих мов програмування: наприклад, мови CLU, Alphard, Concurrent Pascal і ін. Ці мови так і залишилися експериментальними, але в результаті їх дослідження були розроблені сучасні об'єктно-орієнтовані мови програмування: C++, Smalltalk, Eiffel і ін.
Найбільш поширеною об'єктно-орієнтованою мовою програмування безумовно є C++. Розробка нових об'єктно-орієнтованих мов програмування продовжується. З 1995 року широко поширена нова об'єктно-орієнтована мова програмування Java, орієнтована на мережі комп'ютерів і, перш за все, на Internet.