Systemutvecklingsprocess, hitta objekt och lite Javakodning OOMPA 1999 Föreläsning 9 Systemutvecklingsprocess, hitta objekt och lite Javakodning Innehåll Systemutveckling Något om att hitta klasser och objekt Java några kodexempel (vi kör ett par modifierade grafiska Budd-exempel)
Systemutveckling-mjukvaruindustri i kris "Om man frågar kunden efter vad han vill så skulle vi börja koda med en gång" Endast en liten del av alla levererade system har all önskad funktionalitet Dom flesta projekt förlitar sig på experter som har gjort samma sak tidigare Vi söker en standard som löser alla problem © Björn Eiderbäck 1999
Systemutveckling-Processen, vad ger den? En välbeskriven arbetsprocedur med en organiserade aktiviteter och information Ett av flera nödvändiga verktyg för utveckling Vi får Kontroll Tillförlitliga resultat Oberoende av fysisk organisation Reducerar tid Säkrare förutsägelser © Björn Eiderbäck 1999
Varför används utvecklingsprocesser oftare Typiska kommentarer och påståenden Datorvetenskapen relativt ung Systemutveckling är en konst Systemutveckling är väldigt svårt Alla vet hur man skriver ett program Kunden är inte beredd att betala för det hela .... © Björn Eiderbäck 1999
Systemutveckling-Processen, hur ser den ut? Nya eller modi- fierade krav Ny version av systemet Systemutveckling © Björn Eiderbäck 1999
Delprocesser Nya eller modi- fierade krav Kravanalys Analys Design Implementation Testning Ny version av systemet © Björn Eiderbäck 1999
har väldefinierad in- respektive utdata utför upprepade aktiviteter Definition av process En process är en välbeskriven fungerande procedur med organiserade aktiviteter och information har väldefinierad in- respektive utdata utför upprepade aktiviteter bevarar en modell har väldefinierat resultat © Björn Eiderbäck 1999
Olika typer av modeller Olika systemmodeller En modell är en komplett systemspecifikation från en viss synvinkel och en viss abstraktionsnivå Olika typer av modeller Användningsfallsmodell - en beskrivning av systemets funktionalitet och dess kommunikation med omgivningen Analysmodell - en beskrivning av systemets ideala struktur Designmodell - en beskrivning av det implementerade systemets struktur Kodmodell - den mest detaljerade beskrivningen av ett system (källkoden) Testmodell - en beskrivning av dom tester som skall göras respektive deras resultat © Björn Eiderbäck 1999
Exempel-lagersystem: användningsfall © Björn Eiderbäck 1999
...analysmodell... © Björn Eiderbäck 1999
...designmodell... © Björn Eiderbäck 1999
...kod- och testmodell © Björn Eiderbäck 1999
Fokusera på ett problem Olika behov av information Varför flera modeller? Fokusera på ett problem Olika behov av information Observera att alla modeller beskriver samma system men från olika synvinklar och med olika abstraktionsgrad © Björn Eiderbäck 1999
Modeller är dokument Varje modell dokumenteras med hjälp av flera olika sorters dokument, som översiktsdokument detaljerad beskrivning diagram designregler och beslut produktbeskrivningar spår- och förändringskartor .... © Björn Eiderbäck 1999
Processen är iterativ Kravanalys Analys Design Implementation Testning © Björn Eiderbäck 1999
Systemutveckling är att utveckla modeller! © Björn Eiderbäck 1999
Avsikten med delprocess Kravanalys - beskriv och validera vad systemet skall göra Analys - identifiera systemets struktur så att systemet är enkelt att modifiera om kraven förändras Design - beskriv hur systemet skall realiseras Implementation - implementera systemet och utför enhetstester Testning - verifiera systemet © Björn Eiderbäck 1999
En fas är en tidsperiod i ett projekt Process och faser En process beskriver vad som skall göras, kriterier, nödvändig input, vad som skall produceras, osv En fas är en tidsperiod i ett projekt Flera processer utförs parallellt under en viss fas och en viss process utförs under flera faser En modell kan modifieras under flera faser men bara av en process © Björn Eiderbäck 1999
Formulera funktionella krav Kravanalysprocess Formulera funktionella krav komplettera, ommöblera tjänster och deras innehåll definiera ett gränssnitt mot systemet validera krav ("skriv ett kontrakt med kunden") Involvera kunden och slutanvändare i utvecklingsarbetet Utveckla användningsfallsmodeller används i kommunikation med kunder och användare grund för att strukturera system samt för testning grund för planering samt beräkningar av omfattning och tid används för att spåra vägen från krav till kod © Björn Eiderbäck 1999
Översikt Indata Aktiviteter Utdata Kravspecifikation Affärsmodell Intervjuver med kunder, slutanvändare, domänexperter Utdata Användningsfallsmodeller Översiktsbeskrivningar och beskrivande dokument Diagram Gloslista (updaterade kravspecar) Aktiviteter Hitta aktörer Sammanställ gloslista Hitta användningsfall Beskriv användningsfall Iterera Granska © Björn Eiderbäck 1999
Proceduren Hitta potentiella aktörer Sammanställ gloslista Namnge och gör kortfattad beskrivning av varje aktör Begränsa systemet Sammanställ gloslista För varje aktör: Hitta nödvändiga användningsfall Namnge och gör kortfattad beskrivning av varje användningsfall Granska aktörer och användningsfall och iterera Missade aktörer eller användningsfall? Duplikat? Identifiera gemensamma delar, strukturera modellen, iterera Beskriv varje användningsfall Granska beskrivningarna och iterera Missad eller felaktig funktionalitet? Granska, validera och godkänn modellen © Björn Eiderbäck 1999
Analysprocedur För varje användningsfall: definiera ett samarbete Beskriv samarbetet översiktligt För varje samarbete: hitta potentiella klasser och associationer Namnge och gör översiktsbeskrivning Granska samarbetena och iterera Missade roller Hitta nödvändiga klasser och associationer, iterera Leta efter synonymer, homonymer och duplikat Identifiera gemenesamma strukturer, lokalisera, strukturera och paketera modellen Beskriv klasser och associationer, granska, iterera Beskriv varje samarbete, granska, iterera missade och förändrade roller och funktionalitet Granska och godkänn modellen © Björn Eiderbäck 1999
Vad skiljer process och metod? En process beskriver hur flera människor arbetar tillsammans, itererar eller arbete som pågår parallellt beskriver vad som skall konstrueras och hur det skall dokumenteras beskriver vad som skall granskas och hur En metod är en steg-för-steg-procedur fokuserar på en person En metod är del av en process En process kan använda flera olika metoder och en metod kan användas i flera processer © Björn Eiderbäck 1999
Använd en anpassningsbar utvecklingsprocess Det finns INGEN universell utvecklingsprocess! Beroende av behoven, målsystem och krav i projektet, anpassa (och dokumentera) modellspråk arbetsprocedurer dokumentmallar © Björn Eiderbäck 1999
...olika konfigurationer Implementation Kravanalys Design Implementation Testning Kravanalys Analys Design Implementation Testning © Björn Eiderbäck 1999
Kan vara bra att använda som stöd för processen Verktyg Kan vara bra att använda som stöd för processen utveckling av modeller dokumentation versionshantering verifiering transformation ... © Björn Eiderbäck 1999
Hur hitta klasser och objekt Under kursen har vi bla diskuterat användningsfall och scenarier som sätt att identifiera vad ett system skall göra Från dessa beskrivningar kan man hitta en del objekt i systemet Vi har också diskuterat CRC-kort som ett sätt att spåna fram klasser, ansvar och relationer Senare i kursen kommer vi också diskutera designmönster som ett sätt att applicara återanvända och identifiera framgångsgrika strukturer på olika designproblem © Björn Eiderbäck 1999
Wirfs-Brocks nominalfras-strategi Läs och förstå kravdokumentet. Målet är att hitta en modell som väldigt väl avspeglar den aktuella problemdomänen Läs igenom dokumentet igen. Titta speciellt efter nominalfraser. Skapa en preliminär lista av dessa fraser och ändra alla plural till singular Dela nominalfraserna i tre kategorier: definitivt objekt, nonsensobjekt och möjliga objekt Strunta i nonsenobjekten Diskutera "möjliga objekt" och placera vart ett av dom i någon av dom andra två kategorierna © Björn Eiderbäck 1999
Exempel Vi skall bygga ett datorsystem för ett universitetsbibliotek Några krav Böcker och tidningar. Biblioteket innehåller böcker och tidningar. Det kan finnas flera kopior av en given bok. Vissa böcker kan bara lånas på korttidslån. Alla andra böcker kan lånas av en lånekortsinnehavare i tre veckor. En lånekortsinnehavare kan normalt låna sex saker samtidigt, men anställda kan låna upp till 12 saker på en gång. Endast anställda får låna tidningar. Lån. Systemet måste hålla reda på när böcker och tidningar är lånade och tillbakalämnade under reglerna som beskrevs ovan. © Björn Eiderbäck 1999