Programmalıq támiynat qurılması hám evolyuciyası / 12-ameliy_PTQE
.pdf
12-ámeliy jumıs. Agile Unified Process metodologiyası tiykarında programmalıq támiynattı islep shıǵıw.
Jumıstıń maqseti: Agile Unified Process (AUP) metodologiyasınıń tiykarǵı principlerin úyreniw. RUP (Rational Unified Process) hám Agile (Scrum/XP) usıllarınıń birlestiriliwin túsiniw. Iterativ islep shıǵıw (Iterative Development), Modellestiriw (Modeling), Kodlaw (Implementation) hám Testlew (Testing) processlerin kishi proekt mısalında ámelge asırıw.
Teoriyalıq bólim:
AUP: RUP-tıń jeńillestirilgen versiyası.
4 Faza:
1)Inception (Baslaw): Maqset hám texnologiya.
2)Elaboration (Anıqlaw): Arxitektura.
3)Construction (Qurıw): Kod hám funkcional.
4)Transition (Ótkiziw): Paydalanıwshıǵa tapsırıw.
Agile qosımshası: TDD, Refactoring, Úziliksiz integraciya.
ÁMELIY BÓLIM:
"Studentler Reytingi" proektin AUP boyınsha islep shıǵamız.
1-mısal: Inception (Jobalastırıw)
Biznes Talap: "Studentlerdiń bahaların esaplaytuǵın ápiwayı konsol programması kerek."
Texnologiya: C++, STL.
Joba: 2 iteraciya (1. Baza, 2. Fayl menen islesiw).
2-mısal: Elaboration (Arxitektura)
Klasslar:
*Student (atı, bahaları).
*GradeManager (esaplaw logikası).
*UI (konsol menen islesiw).
Baylanıs: UI -> GradeManager -> Student.
3-mısal: Construction (Iteraciya 1 - Kod)
Kod (Student.h):
class Student { public:
string name; vector<int> grades; double getAverage() {
if (grades.empty()) return 0; int sum = 0;
for (int g : grades) sum += g; return (double)sum / grades.size();
}
};
Kod (Main.cpp): int main() {
Student s;
s.name = "Azamat"; s.grades = {4, 5, 3};
cout << s.name << ": " << s.getAverage() << endl; return 0;
}
4-mısal: Testlew (TDD)
Kodtan aldın test jazıw kerek edi (Agile). void testAverage() {
Student s; s.grades = {5, 5};
assert(s.getAverage() == 5.0);
}
5-mısal: Transition (Release)
Programmanı `.exe` faylǵa aylandırıw hám qollanba (Readme.txt) jazıw.
ÁMELIY TAPSÍRMALAR
1-tapsırma: Inception Fazası.
"Kitapxana" proekti ushın 3 tiykarǵı talaptı hám 1 qáwipti (Risk) anıqlań.
2-tapsırma: Elaboration (Klasslar).
Kitapxana ushın 3 klastıń atın hám olardıń 1 tiykarǵı metodın jazıń. (Mısalı:
Book::isAvailable()).
3-tapsırma: Construction (Kod).
`Book` klasın C++ tilinde implementaciya etiń.
Atributlar: `title`, `author`, `isTaken` (bool).
4-tapsırma: Testlew.
`Book` klası ushın test scenariyin jazıń.
1.Kitap jaratıldı -> `isTaken` false bolıwı kerek.
2.Kitap alındı -> `isTaken` true bolıwı kerek.
5-tapsırma: Refactoring (Agile).
Kodtaǵı `public` atributlardı `private` etip, `getter/setter` qosıń. Bul "Kod sapasın jaqsılaw" iteraciyası.
