Slide 1 Konstruktion av IT-lösningar OH-serie i kursen Datasystem och systemarbete Kenneth Norrgård Baserat på boken: Praktisk konstruktion av IT-lösningar, Gunnarsson, Samuelsson, Svensson – Studentlitteratur 1999
Slide 2 Boken - läsanvisningar Kap 1Klargör förutsättningar (hela) Kap 2Detaljera produktkrav (2.1 – 2.4 och 2.8) - även bilagan Kravområden på sid 213 – 219) Kap 3Fastställ standarder och rutiner (hela) Kap 4Bestäm konstruktionsteknik (hela) Kap 5Från krav till produktionsspecifikation (hoppa över) Kap 6Att konstruera programvara (6.1, 6.2, 6.5) Kap 7Införande (hela) Kapitelindelning
Slide 3 Produktkrav Krav på driftsläge Funktionella krav t.ex. uppdatering av kunder, uträkning av moms Krav på externa systemgränssnitt t.ex. faktureringssystemet skall överföra info om fakturerade belopp till bokföringssystemet en gång i månaden Krav på interna gränssnitt Krav på intern datalagring Innebär i praktiken planering av databasen Anpassningskrav Kan innebära att databasen skall anpassas beroende på installation Kap 2 Checklista som bygger på standarden IEEE/EIA Software Development Documentation
Slide 4 Produktkrav (forts) Säkerhetskrav, fysisk säkerhet Säkerhetskrav, program och information Tillgänglighet; Sekretess; Riktighet Krav från omgivningen t.ex. buller, skakningar, ljus, elkvalitet… Resurskrav 1. Krav på hårdvara; 2. Krav på utnyttjande av hårdvara; 3. Krav på utvecklingsmiljön (t.ex. operativsystem, databasverktyg…) Krav på kommunikation t.ex. nättopologi, överföringstekniker och –hastigheter, volymer av data att överföra… Kap 2 Checklista som bygger på standarden IEEE/EIA Software Development Documentation
Slide 5 Produktkrav (forts) Kvalitetskrav t.ex. tillförlitlig, enkel att underhålla, flexibel, flyttbar… Finns egen standard för kvcalitetskrav ISO 9126 Design och konstruktionskrav Personrelaterade krav Användarspecifika Utbildningskrav Logistikkrav underhåll, flyttbarhet, versionshantering, programvarudistribution Övriga krav Kap 2 Checklista som bygger på standarden IEEE/EIA Software Development Documentation
Slide 6 Produktkrav Kap 2 Funktionskomponent Modellkomponent Gränssnittskomponent Funktionella krav Behandlingsregler Krav på gränssnitt Modellering och strukturering av objekt i verksamheten Verksamhet Användar- interaktion Användar- interaktion Datamodellen eller klassdiagrammet Datasystemet Informations struktur Kund Order Produkt Faktura
Slide 7 Versionshantering Varför versionshantering? Tillåter flera utvecklare att arbeta tillsammans med gemensam källkod Ger möjlighet att vid behov återgå till gamla versioner (t.ex. orsaken kan vara bristfälligt/ofullständig testning) Vad innebär versionshantering? Incheckling/utcheckning av filer Återskapande av tidigare filversioner Spårbarhet av ändringar i filer Jämförbarhet mellan versioner Kontroll över utvecklingsprojektets livscykel Standarder och rutiner - Kap 3
Slide 8 Versionshantering (forts.) Avancerad versionshantering Branching/Mergning – håller reda på två paralella utvecklingsspår (1) korrigeringar av befintlig funktionalitet och (2) utveckling av ny funktionalitet. Branching – Leverans i två paralella grenar Mergning – De paralella grenarna ”smälts” samman till en version Multipel utcheckning – En filversion kan checkas ut fast den redan är utcheckad – Vid incheckningen kontrolleras ändringarna och olika personers ändringar smälts samman Standarder och rutiner - Kap 3
Slide 9 Versionshantering (forts.) Vad skall versionshanteras? Beroende på projektets storlek och ambitionsnivå Källkod Planeringsdokument (t.ex. projektplan) Modeller Programdokumentation Standarder och rutiner - Kap 3
Slide 10 Ändrings- och felhantering Rutinen för hantering av ändringar bör vara väl definierad och hanteringen skall dokumenteras Gäller såväl projektdokumentation som programfiler Viktigt att tillräckligt med info ges om felsituationen och/eller ändringsbegäran (se boken sid 116) Ändrings- och felanmälningar kan matas in i databas (jämför med helpdesk-databas) Standarder och rutiner - Kap 3
Slide 11 Programvarans generella beteende Beskriv systemets gemensamma generella beteenden i ett inledande kapitel i handboken Exempel på generella beteenden Drag-and Drop Välja ur listor – t.ex. användande av Shift och eller Ctrl Högerklick Töjbara dialoger Fönsterhantering Kortkommandon – funktionsknappar Generella beteende - Kap 3
Slide 12 Programmeringsstandarder Hjälp- och meddelandehantering är till för att hjälpa nya användare och i speciellt komplexa funktioner Exempel på komponenter: Hjälpsystem Kontextkänslig (känner av var kursorn står) hjälp Grafiska indikatorer Programmering av speciella meddelanden till användaren Hjälpsystem är ofta komplexa att implementera – Vettigt planerade användargränssnitt minskar behovet av separata hjälpsystem Programmeringsstandarder - Kap 3
Slide 13 Namnstandarder Styleguide = Gemensamt överenskomna skrivregler för programmeringsarbetet Namngivning - använd hellre fullständiga namn framom förkortningar (se sid 124 i boken) Strukturer – t.ex. indrag i koden; blockavgränsares användning och placering; kommentarrader –var,när,hur Klasser – namngivningsstandarden är oftast verktygsberoende Operationer – t.ex. SkapaFaktura; UppdateraKonto Variabler – t.ex. itsSandningstid, itsTitel; theTitel, theVecka; aVecka, anAvsnittsnr…etc. Programmeringsstandarder - Kap 3
Slide 14 Komponenter Komponentbaserad utveckling Komponentbaserad utveckling stöds av objektorienterade metoder Design Patterns = färdiga lösningar/mönster för vanligt förekommande problem Återanvändning = dra nytta av redan gjorda lösningar/klasser/kod och inte ”uppfinna hjulet på nytt” Arkitektur Ett av de viktigaste besluten inför implementationen av ett nytt system är valet av arkitektur fysisk och logisk placering av systemets delar Konstruktionsteknik - Kap 4
Slide 15 Flerskiktslösning Systemet delas upp i olika skikt som utnyttjar varandras tjänster. Kontaktytan/integrationen mellan skikten görs så enkel som möjligt Konstruktionsteknik - Kap 4 Gränssnittsskikt Verksamhetsskikt Dataåtkomstskikt Datasystemet Presentation Hämtning Uppdatering Lagring
Slide 16 Olika systemarkitekturer Konstruktionsteknik - Kap 4 Gränssnitts skikt Verksamhets skikt Dataåtkomst skikt Server Klient Nätverk Gränssnitts skikt Distributed Interface Verksamhets skikt Dataåtkomst skikt Gränssnitts skikt Remote Application Verksamhets skikt Dataåtkomst skikt Gränssnitts skikt Distributed Application Verksamhets skikt Dataåtkomst skikt Gränssnitts skikt Remote Database Verksamhets skikt Dataåtkomst skikt Gränssnitts skikt Distributed Database Verksamhets skikt Dataåtkomst skikt
Slide 17 Informationslagring Val av lagringssätt och hantering av information Skilj mellan databasstruktur (metainfo) och databaseinnehåll (själva informationen) Viktigt att beakta i systemutvecklingsprojekt Relationsdatabas – Tabellstruktur; tabellinnehåll (t.ex. VB och SQL Server) Objektorienterade system – klasser; objekt (Java, C++) XML (se boken sid 147) Konstruktionsteknik - Kap 4
Slide 18 Verktyg och utvecklingsmiljöer Läs kap 4.4. Val av verktyg, 4.5. Att hitta komponenter och 4.6. Att skapa utvecklingsmiljö Konstruktionsteknik - Kap 4