Professional Documents
Culture Documents
АППЗ3
АППЗ3
ЗВІТ
до лабораторної роботи №3
з навчальної дисципліни “Архітектура та проєктування програмного
забезпечення”
Підготував:
студент групи СП-31
Гавриленко Артем Володимирович
Тернопіль 2023
Мета роботи: реалізувати в системі IBM RSA архітектурні моделі
(AM) ПЗ - «Декоратор (Picasso)» та «Пристосуванець (Flyweight)» з
використанням інструментальних засобів розробки ПЗ IBM Rational Software
Architect для обраної предметної області.
Завдання роботи:
Діаграма послідовності:
User.h
#ifndef USER_H
#define USER_H
#include "Menu_2.h"
private:
id;
name;
Menu_0 * product;
Menu_2 * menu;
Menu * menu2;
public:
void choose_menu();
};
#endif
User.cpp
#include "User.h"
void User::choose_menu()
return;
}
Menu.h
#ifndef MENU_H
#define MENU_H
class User;
class Menu
{
private:
User * user;
public:
virtual void display_statistics() = 0;
};
#endif
Statistic.h
#ifndef STATISTIC_H
#define STATISTIC_H
class Menu_2;
class Statistic
{
private:
Menu_2 * menu;
public:
};
#endif
Period.h
#ifndef PERIOD_H
#define PERIOD_H
public:
void set_day();
void set_month();
void set_year();
};
#endif
Income_statistics.h
#ifndef INCOME_STATISTICS_H
#define INCOME_STATISTICS_H
#include "Statistic_0.h";
};
#endif
Expenses_statistics.h
#ifndef EXPENSES_STATISTICS_H
#define EXPENSES_STATISTICS_H
#include "Period.h"
#include "Statistic_0.h"
public:
void get_expenses_statistics();
};
#endif
Діаграма класів шаблону проектування «Пристосуванець» виглядає
наступним чином:
User.h
#ifndef USER_0_H
#define USER_0_H
class Menu_3;
class User_0
{
private:
id;
name;
Menu_3 * menu;
public:
void choose_menu();
};
#endif
Menu.h
#ifndef MENU_3_H
#define MENU_3_H
#include "GoalType.h"
#include "GoalTypeColection.h"
class User;
class Menu
{
private:
User * user;
public:
void choose_option_financialGoal();
};
#endif
GoalTypeColection.h
#ifndef GOALTYPECOLECTION_H
#define GOALTYPECOLECTION_H
#include "FinancinalGoal.h"
class GoalType;
class GoalTypeColection
{
private:
GoalType * goalType;
FinancinalGoal * financinalGoal;
public:
void goal_type_col();
};
#endif
GoalType.h
#ifndef GOALTYPE_H
#define GOALTYPE_H
#include "FinancinalGoal.h"
class GoalTypeColection;
class GoalType
{
private:
goalType;
icon;
GoalTypeColection * goalTypeColection;
FinancinalGoal * financinalGoal;
public:
void display_inforamtion();
void get_icon();
};
#endif
FinancialGoal.h
#ifndef FINANCINALGOAL_H
#define FINANCINALGOAL_H
class FinancinalGoal
{
private:
goalType;
goalDescription;
targetAmount;
currentAmount;
public:
void setGoalDescription();
void setTargetAmount();
void setCurrentAmount();
void getGoalType();
void getGoalDescription();
void getTargetAmount();
void getCurrentAmount();
};
#endif
Висновки