Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Диплом Кілесо.doc
Скачиваний:
16
Добавлен:
16.09.2019
Размер:
7.62 Mб
Скачать

2. Постановка завдання

В даній дипломній роботі «Проектування програмного продукту із застосуванням систем візуального моделювання» необхідно виконати наступне:

Розглянути сучасні технології об'єктно-орієнтованого аналізу та проектування інформаційних систем

Розглянути методологію об'єктно-орієнтованого програмування

Розглянути методології об'єктно-орієнтованого аналізу і проектування

Розглянути особливості візуального моделювання програмного забезпечення:

Аналіз та проектування

Візуальне моделювання. Історія мови UML

Структура мови UML

Візуальне опис функціональної моделі засобами UML

Структура системи та її опис засобами UML

У практичній частині розглянути:

  • Використання UML в проектуванні ПЗ

  • Характеристику CASE-засоби Visual Paradigm

  • Інтерфейс програми VP-UML

  • Принцип роботи в VP-UML

В лабораторному практикумі розробити методичні рекомендації щодо виконання лабораторних робіт

Лабораторна робота № 1 «Діаграма прецедентів»

Лабораторна робота № 2 «Діаграми класів»

Лабораторна робота № 3 «Діаграма послідовності»

Лабораторна робота № 4 «Діаграма комунікацій»

3. Теоретична частина Визначення візуального моделювання програмного забезпечення

3.1. Аналіз та проектування

Безпосереднє програмування або написання коду починається далеко не відразу. Більш того, етапи, які передують розробки не менш важливі і складні. Орієнтовна схема, що відображає процес від постановки завдання до випуску готового продукту може виглядати так:

Або в укрупненому вигляді:

Принципово можна виділити 2 види розбиття предметної області на складові елементи:

- Алгоритмічна декомпозиція (основні елементи програми - будівельні блоки - алгоритми).

- Об'єктна декомпозиція (основні елементи програми - види абстракцій (класи) та представники цих класів (об'єкти)).

Відповідно до алгоритмічної декомпозицією предметної області ми при аналізі завдання намагаємося зрозуміти, які алгоритми необхідно розробити для її вирішення, які специфікації цих алгоритмів (вхід, вихід), і як ці алгоритми пов'язані один з одним. У мовах програмування даний підхід в повній мірі підтримується засобами модульного програмування (бібліотеки, модулі, підпрограми).

В рамках об'єктної декомпозиції ми намагаємося виділити основні змістовні елементи завдання, розбити їх на типи (класи). Далі для кожного класу абстракцій ми визначаємо його властивості (дані) і поведінка (операції), а також, як ці класи абстракцій взаємодіють один з одним.

На сьогоднішній день об'єктний підхід і його основи - об'єктна модель і об'єктна декомпозиція - підтримуються сучасними об'єктно-орієнтованими мовами програмування (Object Pascal, C + +, Java, C # ...).

Як було сказано раніше, основами об'єктного підходу є об'єктна модель і об'єктна декомпозиція. Розглянемо коротко складові частини об'єктного підходу, грамотне виконання яких, як правило, призводить до створення якісного програмного продукту.

Об'єктний підхід:

- OOA (object oriented analysis) - об'єктно-орієнтований аналіз.

- OOD (object oriented design) - об'єктно-орієнтоване проектування.

- OOP (object oriented programming) - об'єктно-орієнтоване програмування.

Розглянемо коротко ці ключові поняття (визначення Г. Буча):

Об'єктно-орієнтований аналіз - це методологія, при якій вимоги до системи сприймаються з точки зору класів та об'єктів, виявлених в предметної області [2].

Об'єктно-орієнтоване проектування - це методологія проектування, що з'єднує в собі процес об'єктної декомпозиції і прийоми подання логічної і фізичної, а також статичної та динамічної моделей проектованої системи [2].

Об'єктно-орієнтоване програмування - це методологія програмування, заснована на уявленні програми у вигляді сукупності об'єктів, кожний з яких є екземпляром певного класу, а класи утворюють ієрархію спадкування [2].

У російськомовній літературі, як правило, під абревіатурою ООП розглядають всі 3 складових об'єктного підходу.

Розглянемо найбільш важливі принципи об'єктного підходу.

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

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

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

Повторне використання - застосування вже існуючих напрацювань в розробляється ПО.

Повторне використання - важливий елемент проектування. Необхідно проектувати нові елементи системи з тим, щоб їх надалі можна було застосовувати при розробці інших систем. Крім того, при проектуванні системи необхідно розглядати можливість використання того, що вже є і працює. Переваги повторного використання (по Соммервіль, [1]):

- Підвищення надійності.

- Зменшення проектних ризиків.

- Ефективне використання фахівців.

- Дотримання стандартів (приклад: користувальницький інтерфейс).

- Прискорення розробки.

Повторне використання досягається за рахунок наступних прийомів (видів використання):

- Компонентна розробка. Частина компонентів вже розроблені раніше, мають чітко описаний інтерфейс. Вони використовуються в якості «цеглинок» у новій системі.

Використання патернів (шаблонів) проектування. Застосовуються відомі підходи до вирішення деяких зустрічалися раніше проблем.

Використання стандартних прикладних (MKL, MFC ...) і системних (API) бібліотек.