Скачиваний:
0
Добавлен:
26.01.2026
Размер:
216.11 Кб
Скачать

11-ámeliy jumıs. Programmalıq támiynattı konstrukciyalawda modellestiriwdiń ornı.

Jumıstıń maqseti: UML (Unified Modeling Language) diagrammaların ámeliyatta qollanıw. Klass diagramması, Use Case hám Sequence diagrammaların sızıw hám olardı C++ kodına aylandırıw (Forward Engineering). Modeldiń kod sapasına hám arxitekturasına tásirin úyreniw.

Teoriyalıq bólim:

UML: Kodtıń vizuallıq tili.

Klass Diagramması: Statikalıq struktura (Klasslar, Atributlar, Metodlar).

Use Case: Paydalanıwshı ne isley aladı?

Sequence: Obyektler qalay baylanısadı?

ÁMELIY BÓLIM:

UML diagrammaların sızıp, kodqa aylandıramız.

1-mısal: Klass Diagramması -> C++

Model:

[Student]

-name : string

-id : int

+getName() : string

+study() : void

Kod:

class Student { private:

string name; int id;

public:

string getName() { return name; }

void study() { cout << "Oqıp atırman"; }

};

2-mısal: Qatnasıqlar (Association)

Model: [Mugallim] -> (oqıtadı) -> [Student]

Kod:

class Student; // Forward declaration

class Mugallim { vector<Student*> students;

public:

void teach() { /* ... */ }

};

3-mısal: Sequence Diagram (Login)

Model: User -> (login) -> System -> (check) -> Database

Kod (Logika):

void login(string u, string p) {

//1. System: Userden aladı

//2. System: Bazaǵa soraw jiberedi

if (db.checkUser(u, p)) { cout << "OK";

}

}

4-mısal: State Machine (Jaǵdaylar)

Model: [Order] -> (Created) -> (Paid) -> (Shipped)

Kod:

enum State { CREATED, PAID, SHIPPED }; class Order {

State state = CREATED; public:

void pay() {

if (state == CREATED) state = PAID;

}

void ship() {

if (state == PAID) state = SHIPPED;

}

};

5-mısal: Reverse Engineering (Kodtan model)

Kod:

class Car { Engine* e; }; Model:

[Car] <>-- [Engine] (Agregaciya/Kompoziciya).

ÁMELIY TAPSÍRMALAR

1-tapsırma: Online Dúkan (Klass Diagramması).

Tómendegi klasslar ushın diagramma sızıń (qaǵazda):

`User`, `Product`, `Order`, `Cart`.

Olar arasındaǵı baylanıslardı (1:*, *:*) kórsetiń.

2-tapsırma: Bankomat (Use Case).

Bankomat sistemasınıń 3 tiykarǵı paydalanıw jaǵdayın (Actor: Klient) jazıń hám sızıń.

(Mısalı: Aqsha sheshiw, Balans kóriw).

3-tapsırma: Kodqa aylandırıw.

Berilgen Diagramma:

[Animal] <|-- [Dog] (Inheritance) [Animal] : +eat()

[Dog] : +bark()

Bunı C++ klasslarına aylandırıń.

4-tapsırma: Sequence (Xabar almasıw).

`User` -> `Browser` -> `Server` -> `Database`.

"Izlew" (Search) procesiniń izbe-izligin jazıń (1. User jazadı, 2. Browser jiberedi...).

5-mısal: Jaǵdaylar (Svetofor).

Svetofor ushın State Machine diagrammasın sızıń. (Qızıl -> Sarı -> Jasıl -> Sarı -> Qızıl).

Hám kodta `switch-case` arqalı realizaciya etiń.

Соседние файлы в папке Programmalıq támiynat qurılması hám evolyuciyası