Uppgift 4 - Att implementera ett givet klassdiagram
Denna uppgift innefattade att implementera ett givet klassdiagram. Detta klassdiagram innehöll superklassen Personal med tre subklasser - Systemutvecklare, IT-tekniker och Projektledare, en klass vid namn Projekt samt en körbar klass kallad Uppgift4. Man skulle kontrollera att de projektmedlemmar man skapat uppfyllde ett projekts krav på kunskaper inom exempelvis språk, operativsystem och databaser. Projektets nettovinst/budget skulle även uträknas. För att lösa denna uppgift har jag haft mycket hjälp av uppgift 1, som även den var i objektorientering. Python-kursboken var även bra att ha till hands.
Jag startade med att noggrant studera klassdiagrammet, för att förstå vilka klasser, attribut och metoder som skulle finnas med i lösningen. Jag öppnade tre filer; Personal.py, Projekt.py samt Uppgift4.py. I den förstnämnda skapade jag Personal-klassen och dess tre underklasser. Attributen för Personal var grundläggande information såsom för- och efternamn, telefonnummer och månadslön. Attributen för subklasserna var mer specifika, såsom vilka språk, programmeringsspråk och databaser systemutvecklaren, IT-teknikern respektive projektledaren behärskar.
Projekt-klassen är uppbyggd på samma sätt som Personal-klassen, men definierar attribut och metoder för ett projekt, såsom kund, team, budget, språk, programmeringsspråk och databas. I Uppgift4-klassen började jag med att först och främst importera Personal- och Projekt-klasserna. Sedan skapade jag tre personalobjekt, det vill säga tre projektmedlemmar - en för varje Personal-underklass, och angav vad för kunskaper etcetera de hade. Jag skapade ett projekt och testade därefter huruvida projektmedlemmar och deras kvalifikationer uppfyllde de krav jag satt för projektet. Ifall projektmedlemmen uppfyllde dessa krav printades det i körningen att projektmedlem x infriade kraven. Om inte skrevs däremot ett meddelande ut som uppmanade att "se över denna anställdas kvalifikationer". Slutligen uträknades projektets nettovinst.