Modulewijzer RIVIO

advertisement
HOGESCHOOL ROTTERDAM/RIVIO
HOGESCHOOL ROTTERDAM / RIVIO
MODULEWIJZER INFPRO03
Object georiënteerd programmeren
Aantal studiepunten 2cp
Module-eigenaar INF
6-4-2005
INFPRO03 20-07-17
1
HOGESCHOOL ROTTERDAM/RIVIO
A4-Modulebeschrijving
Modulecode:
Modulenaam:
Belasting (aantal
CP):
Relatie met andere
onderwijs
Vereiste voorkennis:
Programmasoort
Werkvormen:
Looptijd
Toetsing:
Vrijstelling:
Leermiddelen:
INFPRO03
Object georiënteerd programmeren
2
Competenties en
Leerdoelen:
Van de competentie realiseren op niveau 2.: een object georiënteerd ontwerp
programmeren en implementeren m.b.v. een objectgeoriënteerde
programmeertaal tot een werkend systeem.
Inhoud:
Het programmeren in java van een object georiënteerd ontwerp in UML:
 Implementatie van classes en objects
 Implementatie van statisch gedrag
 Implementatie van generalization-specialisation
 Implementatie van relationships
 Implementatie van usecases en sequence diagrammen
Voorbereiding voor IAN02 en project 7/8. Bouwt voort op de programmeer
modulen.
INFPRG00, INFPRG01 en INFPRG02
kennisgestuurd
Hoorcollege en practicum
Week1 t/m week4
Practicum toets na 4 weken
Practical object-oriented development with UML and Java
ISBN: 0-13-067238-6
Introduction to Java programming
ISBN: 0-13-185721-5
Opmerkingen:
Auteur(s):
VersieDatum:
Module beheerder:
INFPRO03 20-07-17
C.H.Bos
6-4-2005
2
HOGESCHOOL ROTTERDAM/RIVIO
Inhoudsopgave
HOGESCHOOL ROTTERDAM / RIVIO ....................................................................................................................1
A4-Modulebeschrijving .............................................................................................................................................2
1.
Algemene omschrijving.................................................................................................................................4
1.1
Inleiding ..........................................................................................................................................................4
1.2
Inhoud .............................................................................................................................................................4
1.3
Relatie met andere onderwijseenheden.....................................................................................................4
1.4
Leerdoelen en competenties .......................................................................................................................4
1.5
Werkvorm(en) ................................................................................................................................................4
1.6
Literatuur en ICT-bronnen ............................................................................................................................4
2. Programma ...............................................................................................................................................................5
week 1 ........................................................................................................................................................................5
week 2 ........................................................................................................................................................................5
week 3 ........................................................................................................................................................................5
week 4 ........................................................................................................................................................................6
week 5 ........................................................................................................................................................................6
3 Toetsing en beoordeling .............................................................................................................................................6
3.1 procedure.............................................................................................................................................................6
3.2 toetsmatrijs praktijktentamen . ..........................................................................................................................6
3.3 voorbeeldtoets praktijktentamen ......................................................................................................................7
INFPRO03 20-07-17
3
HOGESCHOOL ROTTERDAM/RIVIO
1.
Algemene omschrijving
1.1
Inleiding
In de praktijk vindt de software systeem ontwikkeling steeds meer object georiënteerd plaats. Dit omdat
object georiënteerde software systemen beter herbruikbaar, uitbreidbaar en onderhoudbaar zijn. Van het te
maken (complexe) software systeem wordt eerst een ontwerp gemaakt in UML waarna dit ontwerp wordt
geprogrammeerd.
1.2
Inhoud
Het programmeren in java van een object georiënteerd ontwerp in UML:
 Implementatie van classes en objects
 Implementatie van statisch gedrag
 Implementatie van generalization-specialisation
 Implementatie van relationships
 Implementatie van usecases en sequence diagrammen
1.3
Relatie met andere onderwijseenheden
Om deze module succesvol af te ronden is het noodzakelijk dat men al vertrouwd is met met:
 Statements voor toekenning, selectie en herhaling. (programmeren 0)
 Classes, datamembers, arrays en methods (programmeren 1)
 Object based programmeren (programmeren 2)
Deze module is voorbereidend voor de module object georiënteerd ontwerpen (ian02) en voor project 7/8
waarin een software systeem zal worden ontwikkeld.
1.4
Leerdoelen en competenties
Van de competentie realiseren op niveau 2.: een object georiënteerd ontwerp programmeren en
implementeren m.b.v. een objectgeoriënteerde programmeertaal tot een werkend systeem.
1.5
Werkvorm(en)
Week 1 t/m week 3: 2 uur hoorcollege en 3 uur practicum.
Week 4: 5 uur practicum
Week 5: 2 uur tentamen
1.6
Literatuur en ICT-bronnen
Verplichte literatuur:
Introduction to JAVA programming
Y. Daniel Liang
Pearson Prentice Hall ISBN:
Practical Object-oriented development with UML en Java.
Richard C. Lee, William M. Tepfenhart.
Prentice Hall ISBN 0-13-067238-6
Aanbevolen literatuur:
Objectgeorienteerde Software engineering een projectmatige aanpak
Evelyn Stiller & Cathie leBlanc
Addison Wesley ISBN: 90-430-0636-X
INFPRO03 20-07-17
4
HOGESCHOOL ROTTERDAM/RIVIO
2. Programma
Het doel van de module is een gegeven ontwerp in UML diagrammen (class- en sequence) te kunnen
programmeren. In de hoorcolleges zullen een aantal UML taalelementen worden behandeld en hoe deze
geïmplementeerd kunnen worden.
Bij het practicum zal een gegeven ontwerp geïmplementeerd worden. Hierbij wordt er samengewerkt in
groepen van maximaal 3 personen.
week 1
2 uur hoorcollege
Onderwerpen:
 wat is een object en wat is een class?
 Wat is UML?
 Notatie van een object en een class in UML
 Implementatie van classes en objects in Java.
 Implementatie van statisch gedrag
3 uur practicum:
Van het gegeven class diagram de classes implementeren in Java. Waar mogelijk de methodes van de
classes implementeren. Classes testen m.b.v. een driver.
Zelfstudie:
Bestuderen uit het studieboek hoofdstuk blz 24 t/m 28, 395 t/m 398, 401 t/m 403, hoofdstuk 13 en 14
Afmaken implementatie van classes uit het gegeven ontwerp.
week 2
2 uur hoorcollege
Onderwerpen:
 Generalization-specialisation
 Notaties in UML
 Mapping naar inheritance
 Derived- en base class
 Polymorfisme
 Relationships; association, aggregation, composition
 Implementing relationships (1:1, 1:N, N:M)
 Implementing aggregation
3 uur practicum:
Van het gegeven class diagram de overerving en relationships implementeren in Java. Implementatie van
de grafische user interface. Het geheel testen m.b.v. een driver.
Zelfstudie:
Bestuderen uit het studieboek blz 406 t/m410, hoofdstuk 16, 17 en eventueel hoofdstuk 6 uit Introduction to
Java programming.
Afmaken implementatie van het gegeven ontwerp zover mogelijk.
week 3
2 uur hoorcollege
Onderwerpen:
 Usecases en usecasediagram
 Sequence diagram, synchrone en asynchrone messages
3 uur practicum:
Implementatie van het gehele ontwerp.
Zelfstudie:
Bestuderen uit het studieboek blz 398 t/m 400, 411 t/m 414, blz 71 t/m 78, en hoofdstuk 10.
Verder werken aan implementatie van het gehele ontwerp.
INFPRO03 20-07-17
5
HOGESCHOOL ROTTERDAM/RIVIO
week 4
5 uur practicum:
Implementatie van het gehele ontwerp afmaken en laten controleren.
Zelfstudie:
Bestuderen van alle behandelde stof.
week 5
2 uur schriftelijk tentamen.
3 Toetsing en beoordeling
3.1 procedure
De module wordt beoordeeld op de uitgewerkte practicum case en een praktijktentamen, weging 50%-50%
mits beide onderdelen met een 4 of hoger beoordeeld zijn, anders is het eindcijfer het laagste van beide.
3.2 toetsmatrijs praktijktentamen .
Toetsvorm: praktijktentamen
1. het kunnen implementeren van classes in UML notatie in java code. (30%)
Implementatie van:
 class naam
 attributen met datatypen
 methoden met parameters en return type
 modifiers private protected en public
 class attributen en methoden
2. het kunnen implementeren van relaties tussen classes in en classdiagram in java. (20%)
Implementatie van:
 Associaties, aggregaties, composities. (1:1, 1:N, N:M), rollen.
 Overerving, super en subclasses, abstract classes
 Interfaces
3. het kunnen implementeren van usecases met bijbehorende sequence diagrammen in UML tot een
werkend java programma. (50%)
INFPRO03 20-07-17
6
HOGESCHOOL ROTTERDAM/RIVIO
3.3 voorbeeldtoets praktijktentamen
Gegeven is het ontwerp van een applicatie waarmee eenvoudige rekensommen kunnen worden geoefend.
De grafische userinterface ziet er als volgt uit:
Als de applicatie wordt opgestart ziet men dit scherm met alle tekstvelden leeg.
Drukt men op de knop “maak nieuwe toets” wordt er een nieuwe toets gemaakt bestaande uit 10 sommen
waarvan er 5 optelsommen zijn en 5 vermenigvuldigsommen. De eerste som wordt op het scherm
getoond.
Als er een som wordt getoond kan de gebruiker een antwoord intypen in het tekstveld rechts van het
gelijkteken. Als een antwoord is ingetypt moet de gebruiker op de “OK” knop drukken. Het systeem zal dan
het gegeven antwoord vergelijken met het juiste antwoord.
Als het antwoord goed is wordt de volgende som getoond, anders wordt het getal in het tekstveld “aantal
foute antwoorden” met 1 verhoogd.
Als er op de knop “volgende som” gedrukt wordt, wordt de volgende som getoond.
De code van de class Hoofdscherm is gegeven.
Opdracht1 (3 punten)
Schrijf de code van de klassen Toets, Som, OptelSom en VermenigvuldigSom, dit wil zeggen
De class declaratie, de data member declaraties en van de methoden de signaturen.
Opdracht 2. ( 2 punten)
Vul de code aan voor de implementatie van de associaties.
Opdracht 3 (5 punten)
Vul de code aan van de methode actionPerformed in de class Hoofdscherm en de code van de andere
classes aan de hand van de sequence diagrammen.
INFPRO03 20-07-17
7
HOGESCHOOL ROTTERDAM/RIVIO
Klasse diagram:
INFPRO03 20-07-17
8
HOGESCHOOL ROTTERDAM/RIVIO
Sequence diagram: programma starten
INFPRO03 20-07-17
9
HOGESCHOOL ROTTERDAM/RIVIO
sequence diagram: nieuwe toets maken
INFPRO03 20-07-17
10
HOGESCHOOL ROTTERDAM/RIVIO
sequence diagram: antwoord geven
INFPRO03 20-07-17
11
HOGESCHOOL ROTTERDAM/RIVIO
sequence diagram: volgende som
INFPRO03 20-07-17
12
HOGESCHOOL ROTTERDAM/RIVIO
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class HoofdScherm extends JFrame implements ActionListener
{
JTextField tf_aantalFouten;
JTextField operand1,operator,operand2,antwoord;
JButton bt_maaktoets,bt_volgendesom,bt_antw_ok;
Toets toets;
public HoofdScherm()
{
super("sommen maken");
Container con=getContentPane();
con.setLayout(new GridLayout(3,1));
JPanel p1=new JPanel();
JLabel l1=new JLabel("aantal foute antwoorden");
p1.add(l1);
tf_aantalFouten=new JTextField(3);
p1.add(tf_aantalFouten);
con.add(p1);
JPanel p2=new JPanel();
operand1=new JTextField(2);
p2.add(operand1);
operator=new JTextField(2);
p2.add(operator);
operand2=new JTextField(2);
p2.add(operand2);
JLabel gelijk=new JLabel("=");
p2.add(gelijk);
antwoord=new JTextField(2);
p2.add(antwoord);
con.add(p2);
bt_antw_ok=new JButton("OK");
bt_antw_ok.addActionListener(this);
p2.add(bt_antw_ok);
JPanel p3=new JPanel();
bt_maaktoets=new JButton("maak nieuwe toets");
bt_maaktoets.addActionListener(this);
p3.add(bt_maaktoets);
bt_volgendesom=new JButton("volgende som");
bt_volgendesom.addActionListener(this);
p3.add(bt_volgendesom);
con.add(p3);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==bt_maaktoets)
{
//zelf invullen
}
else if (e.getSource()==bt_volgendesom)
{
//zelf invullen
}
else if (e.getSource()==bt_antw_ok)
{
//zelf invullen
INFPRO03 20-07-17
13
HOGESCHOOL ROTTERDAM/RIVIO
}
}
public void geefWeerSom(Som som)
{
if (som!=null)
{
operand1.setText(""+som.getOperand1());
operator.setText(""+som.getOperator());
operand2.setText(""+som.getOperand2());
}
else
{
JOptionPane.showMessageDialog(null,"er zijn geen sommen meer",
"Toets sommen",JOptionPane.INFORMATION_MESSAGE);
}
}
public void geefweerAantalFouten(int aantalFouten)
{
tf_aantalFouten.setText(""+aantalFouten);
}
public static void main(String[] args)
{
new HoofdScherm();
}
}
INFPRO03 20-07-17
14
Download