Session 11: Introduktion til Systemudvikling

Slides:



Advertisements
Lignende præsentationer
Automatiseret GUI-test Lars Kjølholm Testnet maj 2009.
Advertisements

Anskaffelse af ny teknologi
Teststrategi Engrosmodellen
Datakvalitetsstrategi Engrosmodellen
Lean Salgskonsulentuddannelsen
Værdistrømsanalyser.
Arkitektur - data.
Thomas, Nicklas, Kim, Dennis G., Benjamin
Gruppe 4. En kunde henvender sig i butikken for at købe en vare. Ekspedienten scanner varen og modtager betaling. Systemet fjerner varen fra lageret og.
06.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Brug Oversigt, principper og teknikker Kapitel 6.
Arkitektur, lagdeling og pakker
Iterativ udvikling og UP
UP som framework UP på 1. semester Planlægning efter UP Input til UP
Teststrategi Engrosmodellen
Softwarekonstruktion
Brian, Christian, Jens, Nicklas
Krav og usecases Larman kap. 5 og 6 (del1) Larman kap del1
Udvikling – del II.
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
Obligatorisk projekt 5: ERP-systemer
WOC2006 foranalyse workshop del 1
Regnskab & økonomistyring - Lektion 14 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
Analyse af anvendelsesområde
Mød Microsoft – for udviklere & arkitekter Visual Studio, Express og Team System Niels Hilmar Madsen Microsoft
Introduktion til Access (Access, del 1)
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer Del 2 af 2: Proces- og funktionsdiagrammering Aalborg Universitet, d. 9. oktober 2006.
Formål med projektet At I kommer i dybden med de faglige emner: virksomhedsforståelse, krav, design og implementering. At I lærer at arbejde i grupper.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
Klasser Modeller.
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
Udledning af krav samt use case modellering
Softwarekonstruktion
Objektorienteret programmering
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Uddannelse, marts 2007 Søren Vallø Business Development Manager.
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
Effektiv adgang til data Niels Mørck, Carl Bro GIS & IT  Carl Bro GIS og IT  Problemstillingen  Nordjyllands Amts Blanketsystem  Centralisering / decentralisering.
Context- og flow-diagrammer (databaser, del 3)
1 Dagens gang Sidste uges opgaver –Klasse opgaver –Adfærdsmønstre (Låner, Reservation, Materiale, Eksemplar) Brugsmønstre og funktioner Nye opgaver.
Microsoft Office System 21. Oktober 2003 Jesper Aaberg, Business Productivity Advisor Microsoft Danmark.
Virksomhedens informationsbehandling
Spørgetime. Kunde / konto eksemplet Konto åbnet( ) Beløb indsat( , 100) Konto åbnet( ) Beløb hævet ( , ) Beløb indsat( ,
Marokko Holiday Center
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Objekter og klasser Rasmus D. Lehrmann DM
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
Struktureret ProgramUdvikling MM 5
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
Gruppe D/4 Tema Design.
September 20031KUP - Videndeling i udvikling Udviklingsprocessen Fremstillingsdiscipliner Identificerer kundens krav Omsætter gradvist og struktureret.
Briding the Gaps Between Developers and Users v. Grudin Indledning Faktorer som kan påvirke bruger involvering Kontrakt udvikling Produkt udvikling Intern.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Oprettelse af tabeller (Access, del 2)
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
E/R-diagrammering 7. Semester.
Unified Modeling Language
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
Indledende Programmering Uge 6 - Efterår 2006
 Astrid Lumbye 2002Objektorienteret systemudvikling Begreber i systemudviklingsprocessen Udviklingsmodel Metode Beskrivelsesteknik Værktøj.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Hvad er en inkrementel og iterativ process?
Forretningsmodellering 2. Modul Foråret 2008 Nord LBP.
Jan Christiansen Nyborg Gymnasium
Abstraktioner.
Tre lags arkitektur.
Dokumentation.
Software Construction
Præsentationens transcript:

Session 11: Introduktion til Systemudvikling Krav Design Realisering Test

Hvad er systemudvikling? Få en ide / Identificer behov find krav  design løsning  realiser ide  vedligehold løsningen 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Proces-tilgange Vandfaldsmodel: Et sekventielt gennemløb gennem hovedaktiviteterne. Iterativ model: Planlægning af aktiviteter sker successivt og tilpasset omstændighederne 2013-02-05 UCN AK IT: Softwarekonstruktion

Traditionel vandfald model 2013-02-05 UCN AK IT: Softwarekonstruktion

IT-udviklingsprocesser Klassisk opfattelse: Processen er plandreven: Er dokumenterbar Kan gentages Er forudsigelig Hviler på den antagelse at problemet er velforstået inden start at en præcis kravspecifikation foreligger/kan udarbejdes 2013-02-05 UCN AK IT: Softwarekonstruktion

IT-udviklingsprocesser Brugerne ved ikke hvad de vil have, før de reelt har fået IT systemet. Analysis paralysis. Nye muligheder dukker op. Krav ændres. Brugernes/kundens prioriteter ændres. 2013-02-05 UCN AK IT: Softwarekonstruktion

IT-udviklingsprocesser Moderne udviklingsprocesser er agile: Situationsbestemte Iterative og inkrementelle Eksperimenterende Udviklerne lærer, mens de udvikler Ofte opdages nye behov og muligheder undervejs 2013-02-05 UCN AK IT: Softwarekonstruktion

IT-udviklingsprocesser Klassisk Agil …og specifikationen ændrer sig undervejs… Specifikation Specifikation Løsning Løsning 2013-02-05 UCN AK IT: Softwarekonstruktion

Unified process (UP)– metoden ? 2013-02-05 UCN AK IT: Softwarekonstruktion

Udviklingsmodel, metode og notation En udviklingsmodel er en samling af aktiviteter, der fører frem til det færdige IT system En metode er konkrete retningslinjer for, hvordan de enkelte aktiviteter skal udføres UP er både en udviklingsmodel og en metode En notation er et sprog til beskrivelse og visualisering Unified Modelling Language (UML) er en fælles standard for visualisering af modeller og understøttes af forskellige case-værktøjer UP og mange andre metoder benytter UML. 2013-02-05 UCN AK IT: Softwarekonstruktion

Discipliner, aktiviteter og produkter Krav : Domænemodel: hvilke informationer skal håndteres i systemet (klasser) Use cases: hvilke funktioner skal der være i systemet Ikke-funktionelle krav: brugervenlighed, svartider, sikkerhed, vedligeholdelsesvenlighed… Design løsning: arkitektur database klassedesign (metoder og objektinteraktion) hvordan skal skærmbilleder se ud (GUI) Realiser Programmer og test Database 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Domænemodel Find entiteter/objekter, som systemet skal håndtere. Objekterne skal komme fra domænet – være fra brugerens verden. Beskriv deres sammenhæng (associeringer, aggregeringer, specialiseringer) Se tidligere lektioner. 2013-02-05 UCN AK IT: Softwarekonstruktion

Indhold af kravsspecifikation En kravspecifikation skal indeholde flg.: Funktionelle krav til IT systemet (use cases) Information som IT systemet skal registrere (domænemodel) Ikke-funktionelle krav I det følgende drejer det sig om 1. og 2. – use cases og domænemodel 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Hvad er en use case? Use cases er beskrivelser af systemets funktionalitet set fra en brugers (kaldet aktør) perspektiv. Gennem use casen fortælles historien om hvordan en aktør bruger et system og herigennem illustreres de funktionelle krav. En use case kan defineres som en samling af relaterede succes og fejlscenarier, som beskriver hvordan en aktør bruger systemet til at opnå et bestemt mål. 2013-02-05 UCN AK IT: Softwarekonstruktion

Gode og dårlige use cases Kriterier: Afsluttede; målet er nået; kaffepause Små beslægtede opgaver bundtes i én beskrivelse (CRUD) Gode eller dårlige? Administration af bøger Registrer bogens titel Udlån af bog Ret reservation Slet reservation Kontrol: Er alle opgaver med? Er alle aktørernes opgaver dækket? Er kritiske opgaver med? Kan alt data registreres, ændres, slettes (CRUD)? 2013-02-05 UCN AK IT: Softwarekonstruktion

Eksempel: Hændelsestabel fra et ordresystem = Use case ”Rolle” der bruger systemet Step i use case Hændelse Aktivitet Step i brugen af IT systemet Aktør Kunde afgiver ordre Registrer ordre Registrere varer Registrere kunden Gemme ordren Udskrive ordreseddel og faktura Ekspedient Faktura sendt til kunden Overvåg ordre Sammenligne betalingsfrist med dags dato Genfremsende hvis overskredet (hændelse ”Tid til betaling”)….. System …… ……. 2013-02-05 UCN AK IT: Softwarekonstruktion

Use case diagram – første version for ordrestyring Er en grafisk model over systemets funktionalitet og kommunikationen med dets aktører Omfatter: Use cases Aktører Associeringer mellem use cases og aktører Systemafgrænsning (ikke vist) 2013-02-05 UCN AK IT: Softwarekonstruktion

Udvidelse af use case diagrammet for ordrestyring Afvigelser fra et normalt flow i forretningsscenariet, fx Annuller ordre Registrer returvare osv… Vedligeholdelse af varebeholdning Registrer vare Find vare Ændre vareoplysninger Slet vare Vedligeholdese af kundekartotek Registrer kunde osv Samles i use casen: Håndter vare - CRUD Samles i use casen: Håndter kunde - CRUD 2013-02-05 UCN AK IT: Softwarekonstruktion

Udvidet use case diagram for ordrestyring 2013-02-05 UCN AK IT: Softwarekonstruktion

Opsummering: Find aktører Tag udgangspunkt i hvem/hvad der bruger systemet og hvilken rolle de spiller? – Generaliser. Ud over de aktører der deltager i forretningsprocessen kan der være andre, fx systemadministrator, leder. Brug en tidsaktør til tidsafhængige funktioner. Aktørerne navngives, og beskrives ud fra et forretningsperspektiv. Eksempel: Navn: Ekspedient Opgave: Er ansvarlig for at modtage og registrere ordrer fra kunder, samt vedligeholdelse af kundekartotek 2013-02-05 UCN AK IT: Softwarekonstruktion

Opsummering: Find use cases Forretningskritiske use cases findes ved at kortlægge hændelser i forretningsområdet, der initierer aktiviteter, som skal understøttes af IT. Herudover kan man kigges på de primære aktører og deres formål med at bruge systemet. Ud over de forretningskritiske use cases vil der typisk være use cases for afvigelser i forretningsprocessen samt til vedligeholdelse. Fokus i afgrænsningen af use-cases skal være, at use casen skal give aktøren en observerbar nytteværdi (kaffe pause testen: fortjener aktøren at holde kaffepause efter use casen er afsluttet?). En hyppig fejl er at use cases fastlægges på et for lavt niveau, fx er Udskriv bekræftelse som regel en del af noget andet. 2013-02-05 UCN AK IT: Softwarekonstruktion

Beskrivelsesformater for use cases Overordnede tekstuelle beskrivelser i en kort summeret form (kunderettet) brief: tekstuel beskrivelse af happy days scenariet casual: variationer af happy days scenarier Detaljerede beskrivelser i en “expanded” form - fully dressed Trinene i use casen og variationer heraf beskrives i detaljer En grafisk visning af interaktionen i use casen i et systemsekvensdiagram – SSD (udviklerrettet) Alle use cases beskrives brief og/eller causal. Kun de kritiske beskrives fully dressed med tilhørende SSD og kontrakter 2013-02-05 UCN AK IT: Softwarekonstruktion

Use case beskrivelse: Kort- eller oversigtsform (brief) ”Steps” fra hændelsestabellen samt mock up’s af skærmbilleder giver input til use case beskrivelserne. Template for brief beskrivelse : Use case: Navn på use casen Beskrivelse: En overordnet men komplet beskrivelse af hvem der initierer use casen, de forventede systemhandlinger og responsen herpå, der tilføjer værdi for aktøren. 2013-02-05 UCN AK IT: Softwarekonstruktion

Eksempel: Brief use case beskrivelse Hændelsestabel giver input til beskrivelse af use case: Hændelse Aktivitet Step i brugen af IT systemet Aktør Kunde afgiver ordre Registrer ordre Registrere varer Registrere kunden Gemme ordren Udskrive ordreseddel og faktura Ekspedient Brief beskrivelse, Use case: Registrer Ordre En kunde henvender sig for at afgive en ordre. Ekspedienten bruger systemet til at oprette en ny ordre, tilføje varer til ordren, registrere kundeoplysninger, gemme ordren og udskrive ordreseddel og faktura. Undervejs viser systemet detaljer om varerne, deltotal og total. 2013-02-05 UCN AK IT: Softwarekonstruktion

Prioritering af use cases Systemet designes, implementeres og testes igennem et antal iterationer jf. UP modellen. De højest prioriterede use-case analyseres, designes og kodes i de første iterationer (så må man formode at resten også kan laves). Trin i udvikling af use-cases: Use-cases identificeres og de vises i et UML use-case diagram. Dernæst beskrives de på brief eller casual form. På dette grundlag prioriteres use-cases (ud fra arkitekturmæssig vigtighed, risici og forretningsværdi), og derefter analyseres de vigtigste med henblik på design ved prototyper og ”fully dressed” beskrivelser. 2013-02-05 UCN AK IT: Softwarekonstruktion

Use case beskrivelse: ”Fully dressed” Detaljering af use cases i step (flow of events): Aktørhandling < - > Systemsvar. Tilføjelse af aktører samt pre- og post betingelser. Brief-beskrivelser bruges som udgangspunkt for ”fully dressed” beskrivelser. 2013-02-05 UCN AK IT: Softwarekonstruktion

Use case: Registrer Ordre Mock UP’s fra test: 1. Start på registrering af varer Flow of events i fully dressed beskrivelse : Use casen starter med at en kunde henvender sig telefonisk for bestille varer. Ekspedienten påbegynder en ny ordre. Systemet opretter en ny ordre. Ekspedienten angiver id på de ønskede varer. Systemet returnerer varebeskrivelse, pris, deltotal , samt løbende total. Ekspedienten tilføjer det ønskede antal varer. Systemet tilføjer varen. Trin 4-7 gentages indtil alle varer er tilføjet. Ekspedienten angiver leveringsoplysninger. Systemet validerer oplysningerne og registrer kunden. Ekspedienten afslutter orden. Systemet gemmer ordren. Ekspedienten beder om en ordreseddel og faktura. Systemet udskriver en bekræftelse. 2. Respons på vare nr 1231 2013-02-05 UCN AK IT: Softwarekonstruktion

Fully dressed af use casen: Registrer ordre 2013-02-05 UCN AK IT: Softwarekonstruktion

Domænemodel vs. use cases I systemudviklingskredse diskuteres: ”Model før krav” (skandinavisk skole). ”Use cases før model” (amerikansk skole). De udvikles ”hånd-i-hånd”. (og skal noget komme først, så hælder denne forelæser til ”model-før-krav”). ? 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Design Design løsning: arkitektur database klassedesign (metoder og objektinteraktion) hvordan skal skærmbilleder se ud (GUI) 2013-02-05 UCN AK IT: Softwarekonstruktion

N-tier (multi-tier) Architecture Database access layer: All code to access database is here. Makes it possible to change data store. Web server accesses application layer – not the database directly. Easier maintenance: No business logic in the web server (or other clients). Application server: All (almost) business logic is re-used. New client may be added without code duplication. Client accessing web services Browser Client Internet Dedicated Client Web Server DB Database Server Application Server Database Access Layer Backend Mobile Client New Dedicated Client 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Databasedesign Tabeller designes ud fra domænemodellen En tabel pr. objekt Customer (Bank)Account Meget mere i næste fag:-) 1- n associeringen fra Customer til BankAccount implementeres i databasen ved at inkludere custNo som fremmednøgle i Account. 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Klassedesign Designklassediagram: Metoder på klasser og objektinteraktion fastlægges. Controllere tilføjes. Data access klasser. 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Om test Test udføres altid i henhold til specifikationer. En test kan aldrig påvise korrekthed - kun tilstedeværelse af fejl! En succesfuld test finder fejl!!! Udvikleren skal ikke teste sig selv. Et system er færdigtestet, når hyppigheden af fejl er reduceret til et forretningsmæssigt acceptabelt niveau!! 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Testmodel En samling af Test-cases Test-procedurer Eksekverbare komponenter, som tester Omfatter typer af test: Modultest eller unit-test (klasseniveau) Integrationstest Systemtest Accepttest 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Test model Krav Accepttest Arkitektur Integrationstest Design Test af klasser Design metoder Test af metoder Kodning 2013-02-05 UCN AK IT: Softwarekonstruktion

Modultest (unit-test) Alle en klasses metoder skal testes Black-box test ud fra specifikation (pre- og post-betingelser) White-box test udfra kendskab til intern struktur: test grænsetilfælde og normaltilfælde 2013-02-05 UCN AK IT: Softwarekonstruktion

Integrations- og systemtest Integrationstest skal finde fejl i måden moduler spiller sammen på og udføres efter hvert build. (Design by Contract er vigtigt.) Systemtest skal finde fejl i systemet som helhed og udføres i slutningen af hvert gennemløb af implementationsprocessen 2013-02-05 UCN AK IT: Softwarekonstruktion

UCN AK IT: Softwarekonstruktion Test-cases Test-cases findes udfra use-case modellen Hver test-case tester et scenarium for en use-case En test-case skal specificere input, forventet output og evt. betingelser for testen Husk også belastningstest!!! 2013-02-05 UCN AK IT: Softwarekonstruktion

Test-procedurer og komponenter Test-procedurer specificerer, hvordan en test gennemføres kan være manuelle eller - bedre - automatiske Test-komponenter - eller drivere automatisering af testprocedurer Tilstræb design af test-procedurer og -komponenter, så der er så meget genbrug som muligt 2013-02-05 UCN AK IT: Softwarekonstruktion