Skillnad mellan versioner av "Kap 2 Objektorienterad design"

Från Mathonline
Hoppa till: navigering, sök
(Skapade sidan med '__NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" |   {{Not selected tab|Lektion 4...')
 
m
Rad 21: Rad 21:
  
  
= <b><span style="color:#931136">Objektorienterad modellering i fyra steg</span></b> =
+
= <b><span style="color:#931136">UML design och modellering i fyra steg</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
 
<big>
 
<big>
Rad 38: Rad 38:
 
::&nbsp;&nbsp;Vilka operationer är relevanta, karakteristiska eller typiska för den?
 
::&nbsp;&nbsp;Vilka operationer är relevanta, karakteristiska eller typiska för den?
  
Läs mer om modellering i fyra steg i kursboken, sid 133-135.
+
Läs mer om UML design och modellering i fyra steg i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 93-96.
 
</big>
 
</big>
 
</div>
 
</div>
Rad 45: Rad 45:
 
= <b><span style="color:#931136">Klassdiagram</span></b> =
 
= <b><span style="color:#931136">Klassdiagram</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
=== <b><span style="color:#931136">Resultat av modelleringen:</span></b> ===
+
=== <b><span style="color:#931136">Resultat av modellering av projektet Lönespecifikation:</span></b> ===
  
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Klassdiagrama.jpg]]</div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Klassdiagrama.jpg]]</div>
 +
  
 
<big>
 
<big>
Följer regler enligt det objektorienterade modelleringsspråket <b>Unified Modeling Language (UML)</b>:
+
Modellen ovan följer det objektorienterade modelleringsspråket <b>Unified Modeling Language (UML)</b>:
  
 
Varje <b>klass</b> modelleras i en ruta som innehåller klassens datamedlemmar och metoder.  
 
Varje <b>klass</b> modelleras i en ruta som innehåller klassens datamedlemmar och metoder.  
Rad 62: Rad 63:
  
 
<div class="border-divblue">
 
<div class="border-divblue">
<big>
+
<big><big>
Modellen är projektets <b><span style="color:red">arkitektur</span></b> och därför logiskt primär.
+
* &nbsp;&nbsp; Modellen är projektets <b><span style="color:red">arkitektur</span></b> och därför logiskt primär. Koden är sekundär.
  
Modellen är <b><span style="color:red">oberoende</span></b> av programmeringsspråket.
+
* &nbsp;&nbsp; Modellen är <b><span style="color:red">oberoende</span></b> av programmeringsspråket.
  
Modellen måste vara objektorienterad för att programmet ska bli objektorienterat.
+
* &nbsp;&nbsp; Modellen måste vara objektorienterad för att programmet ska bli det.
  
Omvandlingen av modell till kod kallas <b><span style="color:red">implementation</span></b>.
+
* &nbsp;&nbsp; Modellen "planteras", koden växer ur modellen och följer den.  
  
Modellen "planteras", koden växer ur den.
+
* &nbsp;&nbsp; Därför kallas omvandlingen av modell till kod <b><span style="color:red">implementation</span></b>.
</big>
+
</big></big>
 
</div>
 
</div>
  

Versionen från 26 november 2022 kl. 15.31

        <<  Agenda          Innehåll & struktur          Genomgång          Dagens övningar          Nästa lektion  >>      



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

Employeea.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.


Skrivning till fil

Klassen WriteFile

WriteFilea.jpg


Huvudprogrammet EmploTest

EmploTest.jpg


Ett körexempel

EmploKorres.jpg










Copyright © 2022 TechPages AB. All Rights Reserved.