Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОППО_КР_пример_содержан

.pdf
Скачиваний:
18
Добавлен:
02.02.2015
Размер:
1.02 Mб
Скачать

2 Проектування або детальна розробка (Elaboration) - на етапі проектування здійснюється аналіз предметної області і побудова виконуваної архітектури. Це включає в себе:

Документування вимог (включаючи детальний опис для більшості прецедентів);

Спроектовану, реалізовану і протестовану виконувану архітектуру;

Оновлене економічне обґрунтування і точніші оцінки термінів і вартості;

Знижені основні ризики.

Успішне виконання фази проектування означає досягнення віхи архітектури життєвого циклу.

3 Конструювання (Construction) - під час цієї фази відбувається реалізація більшої частини функціональності продукту. Фаза побудови завершується першим зовнішнім релізом системи і віхою початкової функціональної готовності.

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

1.5 Практика застосування патернів проектування

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

Пропонується наступна загальна класифікація патернів за категоріями їх застосування:

Архітектурні патерни;

Патерни проектування;

Патерни аналізу;

Патерни тестування;

Патерни реалізації.

Архітектурні патерни (Architectural patterns) – множина попередньо визначених підсистем зі специфікацією їх відповідальності, правил і базових принципів встановлення відносин між ними. Архітектурні патерни призначені для специфікації фундаментальних схем структуризації програмних систем. Найбільш відомими патернами цієї категорії є патерни GRASP (General Responsibility Assignment Software Pattern). Ці патерни ставляться до рівня системи і підсистем, але не до рівня класів. Як правило, формулюються в узагальненій формі, використовують звичайну термінологію і не залежать від галузі застосування. Патерни цієї категорії систематизував і описав К. Ларман [1].

Патерни проектування (Design patterns) – спеціальні схеми для уточнення структури підсистем або компонентів програмної системи і відносин між ними. Патерни проектування описують загальну структуру взаємодії елементів програмної системи, які реалізують вихідну проблему проектування в конкретному контексті. Найбільш відомими патернами цієї категорії є патерни GoF (Gang of Four), названі на честь Е. Гамми, Р. Хелма, Р. Джонсона і Дж. Вліссідеса [2], які систематизували їх і представили загальний опис.

Паттерни GoF включають в себе 23 патерни. Ці патерни не залежать від мови реалізації, але їх реалізація залежить від галузі застосування.

Паттерни аналізу (Analysis patterns) – спеціальні схеми для подання спільної організації процесу моделювання. Патерни аналізу відносяться до однієї або декількох предметних областей і описуються в термінах предметної області. Найбільш відомими патернами цієї групи є патерни бізнес-моделювання ARIS (Architecture of Integrated Information Systems), які характеризують абстрактний

рівень представлення бізнес-процесів. Надалі патерни аналізу конкретизуються у типових моделях з метою виконання аналітичних оцінок або імітаційного моделювання бізнес-процесів [6].

Патерни тестування (Test patterns) – спеціальні схеми для подання спільної організації процесу тестування програмних систем. До цієї категорії патернів відносяться такі патерни, як тестування чорного ящика, білого ящика, окремих класів, системи. Патерни цієї категорії систематизував і описав М. Гранд. Деякі з них реалізовані в інструментальних засобах, найбільш відомими з яких є IBM Test Studio. У зв'язку з цим патерни тестування іноді називають стратегіями або схемами тестування.

Патерни реалізації (Implementation patterns) – сукупність компонентів і інших елементів реалізації, що використовуються в структурі моделі при написанні програмного коду.

Ця категорія патернів ділиться на наступні підкатегорії: патерни організації програмного коду, патерни оптимізації програмного коду, патерни стійкості коду, патерни розробки графічного інтерфейсу користувача та ін патерни цієї категорії описані в роботах М. Гранда, К. Бека, Дж. Тідвелла та ін., деякі з них реалізовані в популярних інтегрованих середовищах програмування у формі шаблонів створюваних проектів. У цьому випадку вибір шаблону програмного продукту дозволяє отримати деяку заготівлю програмного коду.

Повний перелік паттернів проектування GoF та короткий опис призначення кожного з них:

1)Абстрактна фабрика (Abstract Factory) – надає інтерфейс для створення множини зв’язаних між собою або незалежних об’єктів, конкретних класів, котрі невідомі;

2)Адаптер (Adapter) – перетворює існуючий інтерфейс класу в інший інтерфейс, котрий зрозумілий клієнтам. При цьому забезпечує сумісну роботу класів, неможливу без даного патерну через несумісність інтерфейсів;

3)Міст (Bridge) – відділяє абстракцію класу від його реалізації, завдяки чому з’являється можливість незалежно змінювати те та інше;

4)Будівельник (Builder) – відділяє створення складного об’єкту від його уявлення, дозволяючи використовувати один і той же процес розробки для створення різних уявлень;

5)Ланцюжок обов’язків (Chain of Responsibility) – дозволяє уникнути жорсткої залежності відправника запиту від його одержувача, при цьому об’єктиодержувачі зв’язуються в ланцюг, а запит передається по ланцюгу, доки якийсь об’єкт не обробить його;

6)Команда (Command) – інкапсулює запит у вигляді об’єкту, забезпечуючи параметризацію клієнтів типом запиту, встановлення черговості запитів, протоколювання запитів і скасування виконання операцій;

7)Компонувальник (Composite) – групує об’єкти в ієрархічну структуру для уявлення відношень типу «частина-ціле», що дозволяє клієнтам працювати з одиничними об’єктами так само, як і з групами об’єктів;

8)Декоратор (Decorator) – застосовується для розширення наявної інформації і є альтернативою породження підкласів на основі динамічного призначення об’єктам нових операцій;

9)Фасад (Facade) – надає єдиний інтерфейс до множини операцій або інтерфейсів в системі на основі уніфікованого інтерфейсу для полегшення роботи

зсистемою;

10)Фабричний метод (Factory Method) – визначає інтерфейс для розробки об’єктів, при цьому об’єкти даного класу можуть бути створені його підкласами;

11)Пристосуванець (Flyweight) – використовує принцип розділення для ефективної підтримки великої кількості малих об’єктів;

12)Інтерпретатор (Interpreter) – для заданої мови визначає уявлення її граматики на основі інтерпретатора пропозицій мови, який використовує це уявлення;

13)Ітератор (Iterator) – надає можливість послідовно перебрати всі елементи складеного об’єкту, не розкриваючи його внутрішнього уявлення;

14)Посередник (Mediator) – визначає об’єкт, у котрому інкапсульовано знання про те, як взаємодіють об’єкти з деякої множини. Сприяє зменшенню

кількості зв’язків між об’єктами, дозволяючи їм працювати без явних посилань один на одного і незалежно змінювати схему взаємодії;

15)Зберігач (Memento) – надає можливість отримати й зберегти у зовнішній пам’яті внутрішній стан об’єкту, щоб пізніше об’єкт можна було відновити точно

утакому ж стані, не порушуючи принципу інкапсуляції;

16)Спостерігач (Observer) – специфікує залежність типу «один до багатьох» між різними об’єктами, так що при зміні стану одного об’єкту всі залежні від нього отримували повідомлення й автоматично обновлювались;

17)Прототип (Prototype) – описує види створюваних об’єктів за допомогою прототипу, що дозволяє створювати нові об’єкти шляхом копіювання цього прототипу;

18)Заступник (Proxy) – підміняє вибраний об’єкт іншим об’єктом для управління контролю доступу до вихідного об’єкту;

19)Одинак (Singleton) – для вибраного класу забезпечує виконання вимог одиничності екземпляру і надання до нього повного доступу;

20)Стан (State) – дозволяє вибраному об’єкту варіювати свою поведінку при зміні внутрішнього стану. При цьому складається враження, що змінився клас об’єкту;

21)Стратегія (Strategy) – визначає множину алгоритмів, інкапсулюючи їх усі

ідозволяючи підставляти один замість другого. При цьому можна змінювати алгоритм незалежно від клієнта, котрий ним користується;

22)Шаблонний метод (Template Method) – визначає структуру алгоритму, перерозподіляючи відповідальність за деякі його шаги на підкласи. При цьому підкласи можуть перевизначати шаги алгоритму, не змінюючи його загальної структури;

23)Відвідувач (Visitor) – дозволяє визначити нову операцію, не змінюючи описів класів, у об’єктів котрих вона викликається.

1.6 Критичний аналіз програмної реалізації курсової роботи по БД

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

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

1.7 Постановка задачі курсової роботи

На основі критичного аналізу попередньої курсової роботи по розробці застосувань баз даних, а також використовуючи нові знання із курсу основ проектування ПЗ, необхідно спроектувати ПЗ для автоматизованої системи вирішення задач обліку продажів Інтернет-магазину автозапчастин, дотримуючись стандартів ISO 12207, ISO 9126.

Нове ПЗ має усунути недоліки попередньої курсової роботи, значно покращити інтерфейс користувача, розширити функціональні можливості програмної системи, додавши нові функції: «Прогнозування попиту на деталі», «Замовлення деталей, котрі відсутні на складі» та можливістю пошуку деталей за різними критеріям. Необхідно реалізувати фази Inception та Elaboration розробки програмного забезпечення за RUP стандартом і розробити повний набір UML діаграм.

2 РЕАЛІЗАЦІЯ ЕТАПУ RUP / INCEPTION

2.1 Текстовий формат специфікації СВ

В контексті методології RUP системні вимоги – це весь набір певних прецедентів використання ПЗ, тобто концептуальна модель функціонування системи та її оточення.

Прецедент (Use Case) – це набір взаємопов’язаних сценаріїв, який описує використання ПС певним актором для вирішення однієї із задач.

Актор (Actor) – сутність, яка має поведінку: напр., людина (користувач), окремий програмний компонент або інша програмна система.

Сценарій (Scenario) – послідовність дій або взаємодій між актором та ПС. Первинною формою опису прецедентів є текст, який має бути сформованим

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

вільна форма опису неформальний стиль описання. Опис прецеденту займає кілька абзаців і охоплює різні можливі сценарії;

стислий опис – анотація у вигляді одного абзацу. Вона описує тільки головний успішний сценарій;

розгорнутий опис – при такому підході детально описуються всі шаги і варіанти розвитку сценарію.

Найбільш інформативним та корисним для подальшого використання СВ в проектуванні ПС є розгорнутий опис прецедентів.

2.2 Специфікація системних вимог для автоматизації вирішення задач обліку продажів Інтернет магазину автозапчастин

У процесі дослідження роботи Інтернет магазину автозапчастин, з урахуванням недоліків та нової функціональності, мною розроблена наступна специфікація вимог за стандартом RUP у форматі розгорнутого опису:

Реєстрація в системі:

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

2)Користувачі ПС, тобто основні актори прецеденту: гість Інтернет магазину автозапчастин;

3)Передумови прецеденту: ПС повинна бути активною;

4)Основний успішний сценарій: гість вводить реєстраційні дані в форму для реєстрації, система валідує введені дані, якщо дані правильні то ПС зберігає дані в БД та повідомляє гостя, що він успішно зареєструвався в системі і може ввійти на сайт за допомогою, щойно введених ним при реєстрації, логіна та пароля;

5)Розширення основного сценарію або альтернативні потоки: гість ввів некоректні дані:

ПС повідомляє гостя сайту, що він ввів некоректні дані, та описує які саме і знову пропонує ввести реєстраційні дані;

Гість повторно вводить коректні дані;

ПС зберігає дані в БД та повідомляє гостя, що він успішно зареєструвався в системі і може ввійти на сайт за допомогою, щойно введених ним при реєстрації, логіна та пароля.

Авторизація в системі:

1)Зацікавлені особи прецеденту та їх вимоги: гість: хоче швидко

авторизуватися в системі;

2)Користувачі ПС, тобто основні актори прецеденту: гість Інтернет магазину автозапчастин;

3)Передумови прецеденту: ПС повинна бути активною;

4)Основний успішний сценарій: гість вводить логін та пароль в форму для авторизації, система валідує введені дані, якщо дані правильні то відбувається переадресація гостя на домашню сторінку Інтернет магазину автозапчастин для користувачів;

5)Розширення основного сценарію або альтернативні потоки: гість ввів некоректні дані:

ПС повідомляє гостя сайту, що він ввів некоректний логін або пароль і знову пропонує ввести дані для авторизації;

Гість повторно вводить коректні дані;

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

Пошук деталі:

1)Зацікавлені особи прецеденту та їх вимоги: гість, користувач або адміністратор: хоче швидко знайти деталі за певними критеріями пошуку;

2)Користувачі ПС, тобто основні актори прецеденту: гість, користувач, адміністратор Інтернет магазину автозапчастин;

3)Передумови прецеденту: ПС повинна бути активною;

4)Основний успішний сценарій: гість, користувач або адміністратор задає критерії пошуку у формі для пошуку деталей, система валідує критерії пошуку, якщо критерії коректні, то ПС відображає результати пошуку по БД і надає можливість нового пошуку деталей;

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

ПС повідомляє гостя, користувача або адміністратора сайту, що він ввів некоректний критерій пошуку і пропонує знов ввести критерії пошуку;

Користувач, гість або адміністратор повторно вводить коректні критерії пошуку;

ПС відображає результати пошуку по БД і надає можливість нового пошуку деталей.

Перегляд списку деталей:

1)Зацікавлені особи прецеденту та їх вимоги: гість, користувач,

адміністратор: хоче переглянути повний список деталей;

2)Користувачі ПС, тобто основні актори прецеденту: гість, користувач, адміністратор Інтернет магазину автозапчастин;

3)Передумови прецеденту: ПС повинна бути активною;

4)Основний успішний сценарій: ПС відображає повний список деталей.

Перегляд новин:

1)Зацікавлені особи прецеденту та їх вимоги: гість, користувач, адміністратор: хоче переглянути новини сайту;

2)Користувачі ПС, тобто основні актори прецеденту: гість, користувач, адміністратор Інтернет магазину автозапчастин;

3)Передумови прецеденту: ПС повинна бути активною;

4)Основний успішний сценарій: ПС відображає повний список новин. Покупка деталі:

1)Зацікавлені особи прецеденту та їх вимоги: користувач: хоче швидко

купити деталі;

2)Користувачі ПС, тобто основні актори прецеденту: користувач Інтернет магазину автозапчастин;

3)Передумови прецеденту:

ПС повинна бути активною;

Користувач сайту повинен бути авторизованим в системі.

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

5)Розширення основного сценарію або альтернативні потоки: користувач ввів некоректні дані, щодо кількості деталей або на складі відсутня введена кількість деталей:

ПС повідомляє користувача, що була введена некоректна кількість деталей або наявної кількості деталей на складі недостатньо і пропонує знов ввести коректну кількість, деталей, повідомляючи клієнта про максимально доступну кількість деталей;