Kap 2 Objektorienterad design

Från Mathonline
Version från den 27 november 2022 kl. 09.45 av Taifun (Diskussion | bidrag)

Hoppa till: navigering, sök
        <<  Agenda          Genomgång          Kap 3 Metoder i OOP          Dagens övningar          Nästa lektion  >>      


2.1   Modellering med UML

Projekt Lönespecifikation

Definition av program ur ett objektorienterat perspektiv:

Kravspecifikation.jpg


UML design och modellering i fyra steg

Steg 1   Förstå problemet:   Läs kundens kravspecifikation (rutan ovan) om och om igen!

Steg 2   Identifiera problemets nyckelbegrepp:

  
Saker som är relevanta för verksamheten, som man behöver lagra information om.
  Vid implementeringen kommer nyckelbegrepp att bli programmets klasser.

Steg 3   Identifiera datamedlemmar till varje klass:   Vad består den av? Testa "Har"-relationen!

Steg 4   Identifiera metoder till varje klass:   Vad gör den eller vad kan man göra med den?

  Vilka operationer är relevanta, karakteristiska eller typiska för den?

Läs mer om UML design och modellering i fyra steg i kursboken, sid 93-96.


Klassdiagram

Resultat av modellering av projektet Lönespecifikation:

Klassdiagrama.jpg


Modellen ovan följer det objektorienterade modelleringsspråket Unified Modeling Language (UML):

Varje klass modelleras i en ruta som innehåller klassens datamedlemmar och metoder.

Minustecknen står framför datamedlemmarna och plustecknen står framför metoderna.

I de högra kolumnerna står datamedlemmarnas datatyper resp. metodernas returtyper.


  •    Modellen är projektets arkitektur och därför logiskt primär. Koden är sekundär.
  •    Modellen är oberoende av programmeringsspråket.
  •    Modellen måste vara objektorienterad för att programmet ska bli det.
  •    Modellen "planteras", koden växer ur modellen och följer den.
  •    Därför kallas omvandlingen av modell till kod implementation.


Implementation av modellen

Klassen Time

Time.jpg

Klassen Employee

EmployeeL.jpg

För enkelhetens skull deklareras klassernas datamedlemmar som public.

Därför definieras inte heller någon konstruktor. I en skarp version borde datamedlemmarna vara private.


Array av referenser

Array av Referens.jpg


Huvudprogrammet EmploTest

EmploTest.jpg


Skrivning till fil

Klassen WriteFile

WriteFilea.jpg


Ett körexempel

EmploKorres.jpg










Copyright © 2022 TechPages AB. All Rights Reserved.