Ім'я файлу: CS31_Neskromnyy_V_A.pdf
Розширення: pdf
Розмір: 278кб.
Дата: 26.06.2022
скачати

Міністерство освіти і науки України
Харківський національнийуніверситет імені В. Н. Каразіна
Факультет комп’ютерних наук
Кафедра моделювання систем та технологій
Контрольна робота
з навчальної дисципліни
«Проектування інформаційних систем»
варіант №2
Виконав:
студент групи КС-31
Нескромний В.А
Прийняв:
Гамзаев Р. А.
Харків – 2021

1. Template Method/
Метод шаблону
Метод шаблону визначає кроки для виконання алгоритму і може забезпечити реалізацію за промовчанням, яка може бути загальною для всіх або деяких підкласів.

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


Абстрактний Клас Методу Шаблону
Оскільки ми хочемо, щоб деякі методи були реалізовані підкласами,
тобто ми повинні зробити наш базовий клас а наступним абстрактний клас:
HouseTemplate.java
public abstract class HouseTemplate {
//template method, final so subclasses can't override public final void buildHouse(){
buildFoundation();
buildPillars();
buildWalls();
buildWindows();
System.out.println("House is built.");
}
//default implementation private void buildWindows() {
System.out.println("Building Glass Windows");
}
//methods to be implemented by subclasses public abstract void buildWalls();
public abstract void buildPillars();
private void buildFoundation() {
System.out.println("Building foundation with cement,iron rods and sand");
}
}
bildHouse() є шаблонним методом і визначає порядок виконання для виконання декількох кроків.


Конкретні Класи Шаблонного Методу
У нас можуть бути будинки різного типу, такі як Дерев'яний будинок і Скляний будинок.
WoodenHouse.java
public class WoodenHouse extends HouseTemplate {
@Override public void buildWalls() {
System.out.println("Building Wooden Walls");
}
@Override public void buildPillars() {
System.out.println("Building Pillars with Wood coating");
}
}
GlassHouse.java
public class GlassHouse extends HouseTemplate {
@Override public void buildWalls() {
System.out.println("Building Glass Walls");
}
@Override public void buildPillars() {
System.out.println("Building Pillars with glass coating");
}
}


Метод шаблону кліента
Протестуємо наш приклад шаблону методу шаблону за допомогою тестової програми.
HousingClient.java
public class HousingClient {
public static void main(String[] args) {
HouseTemplate houseType = new WoodenHouse();
//using template method houseType.buildHouse();
System.out.println("************");
houseType = new GlassHouse();
houseType.buildHouse();
}
}
Клієнт викликає метод шаблону базового класу і в залежності від реалізації різних кроків використовує деякі методи базового класу, а деякі з них з підкласу.
Результатом роботи вищевказаної програми є:


Діаграмма класів шаблонного методу:

2. У чому відмінність RUP і гнучких методологій розробки?
RUP
• Стиль управління RUP:
Робочий процес являє собою послідовність дій, що призводять до видимого результату. У термінах
UML
можна представити робочий процес як діаграми послідовності, діаграми кооперації або діаграму активності:
Життєвий цикл RUP
Життєвий цикл RUP розбитий на чотири основні фази, кожна з яких ведеться робота над новим поколінням продукту: фазу початку проекту, уточнення, побудова та впровадження.

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


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

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

Запровадження
Фаза, коли продукт готовий і доставлений покупцям. Але після того як користувачі отримують продукт, можуть виникнути нові
складнощі. Команді потрібно буде виправити помилки, відловити баги і доробити функції, які не були реалізовані у первинно встановлений термін.
В кінці кожної фази існує відмітка завершення етапу (Project
Milestone) — момент, коли ваша команда оцінює, чи досягнуті
поставлені цілі. При цьому команда приймає важливі рішення, що впливають на хід наступної фази:

Agile
На відміну від класичного Project Management (PM), коли проект жорстко регламентований заздалегідь встановленими вимогами
(контрактами), Agile передбачає швидкість реагування, а також гнучку адаптацію до зовнішніх і внутрішніх змін. Це досягається за допомогою ітеративної розробки продукту та ефективного міжособистісного спілкування. У водоспадної (каскадної моделі PM,
яка вважалася стандартом де-факто, проект складається з функціональних завдань, де кожна наступна робота чітко регламентована і суворо починається після закінчення попередньої,
наприклад, тестування розпочнеться тільки після того, як написаний весь код. Жорстка визначеність і достаток регламентуючої
документації обумовлюють довжину виробничого циклу. При цьому продукт вважається готовим лише після виконання всіх етапів.
В Agile продукт створюється серійно, коли кожна наступна версія працездатного рішення має більше можливостей, ніж попередня. Таке ущільнення процесів дозволяє істотно скоротити терміни виходу готового продукту на ринок, що особливо значимо для бізнесу.

скачати

© Усі права захищені
написати до нас