Obligatorisk opgave i objektorienteret analyse og design



Relaterede dokumenter
Eksempel: et ordresystem note 5 Lagdeling s. 1

Indhold. Side 2 af 26

Software Design (SWD) Spørgsmål 1

Views etc. Databaser

Vurdering af kvalitet en note af Tove Zöga Larsen

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Software Design (SWD) Spørgsmål 1

Kursusarbejde 2 Grundlæggende Programmering

Abonnementsstyring. Start af Stellar Abonnement. Indledende tekst. Indholdsfortegnelse

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model

Guide til Web-direct. Indholdsfortegnelse

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

Installationsguide. Integration af erhvervsdata fra NN Markedsdata til Microsoft Dynamics NAV 2015

Software Design (SWD) Spørgsmål 1

Installationsguide. Integration af erhvervsdata fra NN Markedsdata til Microsoft Dynamics NAV 2013

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Case: Svømmeklubben Delfinen

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Kort introduktion til e-boks

Lasso for. Microsoft Dynamics CRM

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Indholdsfortegnelse for kapitel 3

DKAL Snitflader REST Register

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

Vejledning: Kontaktbarhed med SEPO (Produktionsmiljøet)

Vejledning Post modul

e-conomic integration

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Supermarkedsmodellen for design af brugergrænseflade

. Outlook. Outlook.com

Manual sådan oprettes lukket miniudbud for inviterede leverandører

Underbilag 2O Beskedkuvert Version 2.0

Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester Vejledere: Tue Becher Ivan R. Frederiksen

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Serviceoperationer Puls

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Indholdsfortegnelse for kapitel 2

Instruktion til UNGDOMSSKOLEWEB BETALINGSMODULER. Version 1.04

TimeLog A/S. TimeLog Project. Standardfakturalinjeeksport. Thomas S. Gudmandsen. w w w. t i m e l o g. d k

3. semester, 2. projekt: Database

Bookingsystem til hoteller. JTA-Data Jylland JTA. Vinkelvej 108a 8800 Viborg Tlf DATA. Jylland

På nedenstående billede skal du finde den figur som optræder nøjagtig 3 gange.

FitLight Trainer brugsvejledning. Tablet controller. version 1.7

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Spiked Reality. Kvikguide til oprettelse af tilbud, nyheder og begivenheder. Version 2.0, september 2013

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Import af CSV AffaldsData indberetninger via Virk.dk

dit værktøj til vores værktøj

Casper Fabricius ActiveRecord. O/RM i Ruby on Rails

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Accepttest-specifikation

Funktioner i kundemodulet Oprettelse af en kunde

BAAN IVc. Brugervejledning til BAAN Data Navigator

Snitfladebeskrivelse for Snitfladebeskrivelse STD-8 KMD Boligstøtte Version 1.0.0,

1.TILBUD NYT TILBUD 1.1 TRIN FORUDSÆTNINGER

Google Plus for Virksomheder Hvordan laver man en Google plus side?

Vejledning til indberetningsløsning for statslige aktieselskaber m.v.

Vejledning i opdatering af vandindvindingsanlægsoplysninger

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Vejledning til Autodesk Account - Subscription

Annemette Søgaard Hansen/

SuperOffice. Europas ledende CRM software leverandør

FirstIVR Brugervejledning version 1.2

Automatisk Vandingssystem

Hvis du ikke kan huske adgangskoden, har andre problemer med at logge på eller ikke er oprettet, skal du kontakte:

Kvikguide til opsætning af Menuvalg i Scale SystemWeb. Adgang til Scale SystemWeb:

Vejledning: Kontaktbarhed med SEPO (Produktionsmiljøet)

CASEEKSAMEN INFORMATIONSTEKNOLOGI NIVEAU: C. 22. maj 2015

Databaseadgang fra Java

For at gøre det lettere at sende tilbud, har du mulighed for at oprette skabeloner.

EG Retail - Minimanual. SVANEN Grundlæggende

1. Administrer brugerkonti. Januar 2011

Vejledning til Autodesk Account - Autodesk Collection og Autodesk AutoCAD Toolset

TDC Scale Mobil. Administratorvejledning. opsætning af TDC Scale Mobil

MSI pakke til distribution af AutoPilot komponenter.

EU-Supply. Elektronisk udbudssystem Quick Guide. Leverandør

Markedsinfo. Microsoft Dynamics NAV 2009 SP1 Klassisk. Side 1 Copyright: Naddon version

Skriftlig eksamen i kurset. Informationssystemer

Skærmbillede tilpasning.

Vejledning til Facebook-virksomhedsprofil

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.

Tender Management Quick Guide. For Leverandør

Markedsinfo. Microsoft Dynamics NAV 2009 SP1 Rollebaseret. Side 1 Copyright: Naddon version

UML til kravspecificering

Katrines Kælder Kasseapparat

Administration...2 Organisation...2 Brugere...5 Grupper...11

Transkript:

Obligatorisk SD-opgave s. Obligatorisk opgave i objektorienteret analyse og design Løs følgende, som en indviduel opgave. I må gerne samarbejde i grupper, men alle har ansvar for at udfærdige sin egen aflevering. Håndskrevne afleveringer er ok, hvis man ikke har lyst til at tegne og forklare på computer. Firmaet Bladhuset udgiver forskellige blade og tidsskrifter. Teknologien til deres nuværende abonnentsystem er forældet, hvorfor der skal laves et nyt. Bladhuset har en salgskonsulent, som varetager de fleste opgaver i systemet, herunder registrering af nye blade/tidsskrifter, kundekontakt, abonnementer og afgivelse af tilbud. Der er disse Use-cases: Udgivelse af nyt blad (brief) Når Bladhuset har valgt at udgive et nyt blad eller tidsskrift, registrerer salgskonsulenten det i systemet med angivelse af navn, udkommelsesfrekvens ( gang om ugen, gang pr måned etc.) og pris pr. blad. Modtag abonnements-tegning (brief) Når salgskonsulenten modtager en tegning af et abonnement på et blad/tidskrift fra en kunde pr. telefon, post eller mail, skal det registreres i systemet. Først undersøges det, om kunden findes i systemet i forvejen, ellers opretter han kunden med navn, adresse, postnr, by, telefonnr og eventuelt e-mail og systemet opretter kunden med et kundenummer. Derefter registrerer salgskonsulenten abonnementet på kunden med oplysninger om det er et elektronisk eller almindeligt abonnement, betalingsform (giro eller PBS) samt evt. rabatprocent, hvis abonnementet er oprettet i forbindelse med en kampagne. Afgiv tilbud (brief) Det hænder, at bladhuset kører kampagner, hvor der gives speciel-rabat på abonnementer, hvis man har mere end ét abonnement (i de første 6 måneder af 20 kørte de følgende tilbud:. abonnement er til fuld pris, 2. abonnement får 0% rabat, 3. abonnement får 20%, 4. og flere abonnementer får 30%). n opgiver sit kundenummer, og salgskonsulenten slår op i systemet for at se en liste over dennes abonnementer med oplysninger om navn, pris og rabatsats. Salgskonsulenten laver derefter et tilbud på nye rabat-satser på de enkelte abonnementer. Salgskonsulenten registrerer de nye rabat-satser i systemet, hvis kunden siger ok.

Obligatorisk SD-opgave s. 2 Domænemodel (ufuldstændig og forkert): Abonnement Blad Opgaver Følgende indeholder både spørgsmålene og Kims løsninger på spørgsmålene. Spørgsmål a) Find de rigtige multipliciteter i domænemodellen ovenfor. b) Find de attributter der skal være i domænemodellen ud fra de givne use cases. c) Tegn en objekt-model for systemet (eksempler på instantiering af domæne modellen, med praktisk data) Jeg starter med et use case diagram for at få et overblik over interessenter, ud fra use casene (ikke påkrævet i opgaven, men for overblikkets skyld). Use Case Diagram Bladhus Opret bladtype Opret kunde Blad leverandør Salgskonsulent Abonnementstegning Opret tilbud

Obligatorisk SD-opgave s. 3 Domænemodel (besvarer a og b) ID Nr Navn Adresse Postnr By Land Tlf E-mail Har AbonnementsID..* AbonnementsType * Betalingsform RabatType Kan deltage i Abonnement Indeholder BladID BladNavn Udkommelsesfrekvens Pris 0, Kampagne KampagneID KampagneNavn KampagneStartDato KampagneSlutDato RabatType BladNavn Multipliciteterne (relationerne) ses mellem klasserne, med associationer. Attributterne ses i de enkelte klasser (, Abonnement osv.) Forklaring på klasser: En kunde har en eller flere abonnementer. Et abonnement indeholder én bladtype. Et bladtype kan deltage i nul eller én kampagne på det givne tidspunkt. Uddybende -klasse forklaring: Her menes bladtype, ikke antal fysiske blade at bladtypen kan indeholde over tid. Bladet kan kun komme fra ét abonnement, og bladet kan deltage i 0 eller kampagne. Uddybende Abonnement-klasse forklaring: Attributterne "AbonnementType", "Betalingsform", "RabatType" og "Kampagne" skal alle tildeles egen tabel i databasen, hvorfor disse navngives med nummer. I databasen, hvor der f.eks. står "" under betalingsform defineres denne som f.eks. GIRO. Derfor har disse udledte attributter kaldet "integer" (int) og ikke en string, som definerer tekst.

Obligatorisk SD-opgave s. 4 Objektmodel (besvarer c) Følgende viser objektmodellen med detaljer, som giver kunden et bedre overblik, set i forhold til domænemodellen, som kunden bedre kan comitte sig til. Abonnement Abonnement 2 Kampagne Hver 2. gratis 0.05.203 3.05.203 BT (Ill.Videnskab) SYSTEM : Per Pedersen Pederstræde 4 5000 Odense C Danmark Tlf: 6565 6565 Abonnement 3 Abonnement 4 Kampagne 2 2 (BT) 3 (Anders And) 2 Abonnement 5 4 (Bilen) Abonnement 6 Spørgsmål 2 Lav for use-casen Udgivelse af nyt blad: a) SSD, b) Operationskontrakt og c) SD System Sekvens Diagram (besvarer 2a) En SSD er en interaktion mellem bruger og systemet, betragtet som en blackbox (Larman kap.0). Det handler om den ydre opførsel, mens et SD diagram er den indre opførsel. Den ydre opførsel vil se således ud: : SYSTEM Salgskonsulent Opret nyt blad (navn, udkommelsesfrekvens, pris) Returnerer data

Obligatorisk SD-opgave s. 5 Operationskontrakt (besvarer 2b) Følgende viser de krav som stilles til opførslen på use casen "Udgivelse af nyt blad" på et dybere niveau end i selve use casene. De definerer konkret hvad der skal ske i systemet, med udgangspunkt i SSD'en. Operationskontrakt =Opret(bladtypenr) Cross case: Use case: Pre condition: Post condition: Output: none Udgivelse af nyt blad Det ønskede er ikke oprettet er oprettet, som er oprettet, vises i skærmbillede. Sekvens Diagram (besvarer 2c) En SD giver yderligere og dybere indsigt i hvad som skal programmeres. Den laves ud fra operationskontrakten, som er afledt af SSD'eren. Det handler her om den indre opførsel. Den indre opførsel vil se således ud: SD _Opret Bladkartotek Opret Create (fra domænemodel) ny bladliste.add(blad) Spørgsmål 3 Lav for use-casen Modtag abonnements-tegning: a) SSD, b) Operationskontrakt og c) SD

Obligatorisk SD-opgave s. 6 System Sekvens Diagram (besvarer 3a) : SYSTEM Salgskonsulent henvendelse Check (om kunden eksisterer i DB) Svar om kunden eksisterer i DB ALT [ findes] Abonnér Opret Succes Abonnementsregistrering (Type, Betalingsform, Kampagne) Succes Operationskontrakt (besvarer 3b) Operationskontrakt Abonnement=OpretAbn(Abnnr) Cross case: Use case: Pre condition: Post condition: Output: none Modtag abonnements-tegning Vi ved ikke om kunden eksisterer i DB. n abonnerer ikke på. Vi ved nu om kunden eksisterer i DB. Hvis kunden ikke eksisterer i DB oprettes denne i DB. n abonnerer nu på. Skærmbillede viser, at kunden nu er oprettet (hvis ikke kunden er det i forvejen). Skærmbillede viser, at abonnement nu er tildelt kundenummeret.

Obligatorisk SD-opgave s. 7 Sekvens Diagram (besvarer 3c) SD Abonnement_OpretAbn OpretAbn til eksisterende kunde Kartotek Abn List find(kunde) opretabn* nyabn opretblad() Abonnementsliste.Add *n er et objekt vi finder frem fra listen. Spørgsmål 4 Konstruer et designklassediagram (DCD) for systemet med korrekt associationer, attributter og metoder med typer. ID: int Nr: int Navn: string Adresse: string Postnr: int By: string Land: string Tlf: int E-mail: string Har AbnID: int..* AbnType: int Betalingsform: int * RabatType: int Kan deltage i Abonnement makeabn(...) Indeholder BladID: int BladNavn: string Udk.frekvens: int Pris: int create(...) createcustomer(...) 0, Kampagne KampagneID: int KampagneNavn: str KampStart: DateTime() KampSlut: DateTime() RabatType: int BladNavn: string makecampaign(...) endcampaign(...)