Programmeringsstil 18/3-2002 Praktiska detaljer Skarpa projekt Processer och processmetoder Rast: Läs utdelat exempel Genomgång av exemplet Joel Brynielsson, 2002-03-18 1
Praktiska detaljer FAQ på hemsidan Datorhjälp Dokumentfrågor Utskrift av OH-bilder Välj med omsorg! Uppskov p.g.a. KS i Logik Vi är generösa, men du måste säga till i förväg. Joel Brynielsson, 2002-03-18 2
Uppkomna frågor GUI i kravspecifikationen? Detaljnivå behövs oftast inte. Undantag: Speciell programvara där utseendet är ett eget krav. Ex: Ikon-editor för militära förbandssymboler Konceptuella skisser kan vara bra. En bild säger mer än 1000 ord. Joel Brynielsson, 2002-03-18 3
E-postfilter Länken till NADA:s IMAP-server inte helt bra. Titta under More information Mailfil med spam och instruktioner för hur du mixar denna med din vanliga inbox kommer att tillhandahållas. Joel Brynielsson, 2002-03-18 4
Återstående skarpa projekt 1 Automat-meshning av extremt simpla skruvar i skalmeshade strukturer (Scania). Parsa indatafil, finn kanter som utgör skruvhål (diameter < 20 mm). Lägg in ny nod som representerar skruven. Joel Brynielsson, 2002-03-18 5
Joel Brynielsson, 2002-03-18 6
Joel Brynielsson, 2002-03-18 7
Indatafil ** ---------------------------------------------- ** ** NODE DEFINITION ** ** *NODE ** 5201,1.262056698E+00,1.197988841E+00,4.999984326E-03 5202,1.262056698E+00,1.197988841E+00,-1.050000157E-01 5199,1.150058877E+00,1.198020237E+00,-1.050000125E-01 5200,1.150058877E+00,1.198020237E+00,4.999987471E-03 5196,1.076968811E+00,8.182460132E-01,1.245761353E-01 5195,1.086209886E+00,1.013042006E+00,7.109814270E-02 5198,1.086209618E+00,1.013036366E+00,-1.308927606E-01 5197,1.076968795E+00,8.182456725E-01,-7.758734742E-02 9,1.168610000E+00,1.198015036E+00,-1.134696973E-01 10,1.168610000E+00,1.198015036E+00,-1.094393943E-01 11,1.168610000E+00,1.198015036E+00,-1.054090913E-01 Joel Brynielsson, 2002-03-18 8
Återstående skarpa projekt 2 Kontroll av webbsidor Filbläddrare med egna ikoner Träd för grammatikgranskning Illustrering av sökmotorresultat Institutionsvis schema Joel Brynielsson, 2002-03-18 9
Mjukvaruprocess - Syfte Att effektivisera arbetet med att utveckla mjukvara Olika processer passar olika bra, beroende på vilka behov som föreligger Militära applikationer ställer höga krav på tillförlitlighet Skall processen användas av en organisation, en grupp, eller rör det sig om en individ? Joel Brynielsson, 2002-03-18 10
Mjukvaruprocess - Fördelar Ej beroende av nyckelpersoner dokumenterad process finns kvar även om geniet lämnar firman Ökar produktivitet genom samordning av aktiviteter (inget oplanerat kaos) Baseras på erfarenhet slipper uppfinna hjulet på nytt undviker göra om samma kostsamma misstag Joel Brynielsson, 2002-03-18 11
Processer - Nackdelar Grad av beskrivning Är processen för detaljerat beskriven, dödas den kreativa sidan Är processen för vagt beskriven ger den minimalt/inget stöd Svårt veta vilken grad som passar bäst Anpassning av process Oftast är en process i behov att anpassas till den aktuella organisationen. Hänsyn bör tas till personalen, gruppinteraktion, företagskulturen m.m. Ingen Off-The Shelf Software Joel Brynielsson, 2002-03-18 12
Mjukvaruprocesser Exempel 1 Rational Unified Process (RUP) organisationsnivå, beskriver VAD som skall göras, 30-tal roller, stödjer hela utvecklingen från initial kontakt med kund till installation av system hos kund Joel Brynielsson, 2002-03-18 13
Rational Unified Process Joel Brynielsson, 2002-03-18 14
Mjukvaruprocesser Exempel 2 Extreme Programming individnivå, beskriver VAD som skall göras jobbar parvis, granskar varandras kod, diskuterar uppdrag mot kund m.h.a. s.k. user stories Joel Brynielsson, 2002-03-18 15
Mjukvaruprocesser Exempel 3 The Cleanroom Process gruppnivå, undvika införande av defekter, idé är att tillämpa formell specification och design, verifiera rätt funktionalitet m.h.a. matematik, innehåller inte enhetstest (eftersom enheterna inte innehåller några defekter ) Joel Brynielsson, 2002-03-18 16
The Cleanroom Process Frozen specification Establish rerquirements Formal specification Develop s/w increment Deliver software Requirements change request Joel Brynielsson, 2002-03-18 17
Processmodeller Vattenfallsmodellen Kravspec. Design Implementation Integration Underhåll från en fas till en annan, no turning back bra överblick (åtminstone på papperet) spikar planen i början, svårt ta hänsyn till ändrade behov hos kunden Joel Brynielsson, 2002-03-18 18
Processmodeller Evolutionär utveckling (iterativ utveckling) Utvecklar första version av system, baserat på en initial kravspecifikation Itererar därefter de faser/aktiviteter som berörs när nya önskemål framkommer Fördel, kravspecen behöver inte låsas från början, kunden kan ändra sig Min erfarenhet är att många företag tillämpar någon form av iterativ utveckling idag Nackdel: Svårare bestämma var i projektet man ligger Fördel: Kunden blir troligtvis nöjdare med slutprodukten Joel Brynielsson, 2002-03-18 19
Processmodeller Formell Systemutveckling Idén är att skapa m.h.a. formella metoder (matematik) en systemspec som sedan tolkas/transformeras (m.h.a. matematik) till ett program. Fördel: Förutsatt att systemspecifikationen är korrekt, och matematiken tillämpas korrekt, så blir slutprodukten korrekt (d.v.s. funktionaliteten är densamma som angavs i systemspecifikationen) Nackdel: Komplext, inte många har kunskapen, kravsättning av matematisk notation, svårt hitta sätt att föra över dem till den önskade funktionaliteten Joel Brynielsson, 2002-03-18 20
Exempel: Personal Organizer Peter Wåhlander och Bernt-Uno Högman http://www.d.kth.se/~d97- bho/prost/ Joel Brynielsson, 2002-03-18 21
Disposition 1. Introduktion 2. Allmän beskrivning 3. Krav 4. Ändringar Joel Brynielsson, 2002-03-18 22
Kap 1: Inledning ( Introduktion ) 1.1 Målen 1.2 Programvarans omfång 1.3 Programmvaran i sitt samanhang 1.4 Definitioner och förkortningar 1.5 Referenser 1.6 Översikt över resten av dokumentet Joel Brynielsson, 2002-03-18 23
Kap 2: Allmän beskrivning 2.1 Beskrivning av data 2.1.1 Händelse 2.1.2 Kontakt 2.1.3 Uppgift 2.2 Programmets funktioner 2.2.1 Kalendern 2.2.2 Adressbok 2.2.3 Göra-listan 2.3 Användarprofil 2.4 Allmäna restriktioner 2.5 Antaganden Joel Brynielsson, 2002-03-18 24
Kap 3: Systemkrav ( Krav ) 3.1 Funktionella krav 3.1.1 Kalender 3.1.1.1 Spara kalendern till fil 3.1.2 Adressbok 3.1.3 Att göra 3.2 Icke-funktionella krav Joel Brynielsson, 2002-03-18 25
3.1.1.1 Spara kalendern till fil Funktion Spara kalendern. Beskrivning Man ska kunna spara ner alla händelser som finns i kalendern så att man kan öppna den igen utan att händelserna har ändrats. Input Filnamn, händelser. Källa Filnamn kommer från användaren, händelser kommer från händelselistan. Output En fil med sparade händelser. Destination En fil på hårddisken. Villkor Ingångsvillkor Att det finns någon händelse att spara. Att det finns plats på hårddisken. Utgångsvillkor Innehållet i händelserna ändras inte. Sideffekter Tar diskutrymme. Joel Brynielsson, 2002-03-18 26
Obs! Motivering saknas Ett funktionellt krav skall alltid ha en avslutande mening med titel Motivering, Incitament eller liknande. Joel Brynielsson, 2002-03-18 27
Kap 4: Ändringar Revisionshistorik Kronologisk ordning Viktigt - inte minst i denna kurs! Joel Brynielsson, 2002-03-18 28
Slutord kravhantering Viktigt ha en balans mellan nödvändiga och icke nödvändiga krav... Joel Brynielsson, 2002-03-18 29