Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Relevanta dokument
Föreläsning 3: Test, Konfigurationer. Övning 2 Riskhantering, intressenter och kravgranskning.

Detta har hänt... Kursinformation. Utse kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

Detta har hänt... Jonas Wisbrant - kort CV. Kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT. Övning 2 Riskhantering, intressenter och kravgranskning.

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Var är vi? Föreläsning 4 Arkitektur, design, kodning. Agenda. Kursinformation. Produktlinjer. Konfigurationshantering - forts. Detta har hänt...

Föreläsning 3 Verifiering och Validering

Är instruktionerna oklara, projektet rörigt och allmänt frustrerande?

Föreläsning 4 Arkitektur, design, kodning

Föreläsning 3 Verifiering och Validering

konfiguration och version och variant?

Föreläsning 4 Arkitektur, design, kodning

Föreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Agenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation

Agenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Agenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

Exercise 1b: Requirements evaluation

Exercise 1b: Requirements evaluation

Min frånvaro. Agenda. Föreläsning 4: Design och praktisk testning

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Några grundläggande begrepp

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Agenda. Kursinformation. Manual för systemstart. Föreläsning 6: Summering och om tentamen. Målgrupp:

Exempel på verklig projektplan

Agenda. Föreläsning 6: Summering och om tentamen Kursinformation

Detta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur?

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Verifiering & validering -

Specifikationer i kompendiet Övningar på moodle.cs.lth.se Support Onsdag kl i E: (84?) Frågestund: F3

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Configuration Management

Föreläsning 5 Processer, vidare utveckling

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

Föreläsning 5 Processer, vidare utveckling

Föreläsning 6. Utvärdering, om tenta, avrundning

Föreläsning 6. Utvärdering, om tenta, avrundning. Agenda. Kursinformation. Schemalagda kursmoment. Jonas Wisbrant. Kursinformation

Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15. Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1

Detta har hänt... Agenda. Kursinformation. Kursinformation

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Detta har hänt... Kursinformation. Agenda. Kursinformation

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Steget efter CAD Data Management. Per Ekholm

Hemtentamen: ETSA02 Programvaruutveckling Metodik

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Testplan Cykelgarage

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

men borde vi inte också testa kraven? Robert Bornelind

Detta har hänt... Sammanfattning - Krav. Agenda F2. Föreläsning 2: Projektplanering & granskning

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Symptom på problemen vid programvaruutveckling

Checklista för Driftsättning - Länsteknik

Streamade föreläsningar på webben

Streamade föreläsningar på webben. Föreläsning 1: Kursen & Projektuppgift. Utvecklingsprojekt & Kravhantering. Utmaning. Jonas Wisbrant - kort CV

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7)

Programvara i säkerhetskritiska tillämpningar

Utmaning. Föreläsning 1: Kursen & Projektuppgift Utvecklingsprojekt & Kravhantering. Agenda F1. Jonas Wisbrant - kort CV

Diskutera medan vi väntar. Agenda. Föreläsning 4: Design och praktisk testning. Arkitektur & Design

Projektplan, Cykelgarage

men borde vi inte också testa kraven?

REGELVERK & HANDBÖCKER

Regressionstestning teori och praktik

Diskutera medan vi väntar. Detta har hänt... Agenda. Föreläsning 5: Processer och vidareutveckling. Kan man utveckla programvara

Distribuerade affärssystem

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Detta har hänt... Föreläsning 2: Projektplanering & Granskning Bildat projektgrupper. Pratat och provat kravhantering. Skaffat litteratur?

Diskutera medan vi väntar

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Fel och risker. Christin Lindholm

Föreläsning 5 Processer Vidare utveckling

Processbeskrivning Test

RUTIN FÖR DRIFTSÄTTNING

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Produktionssättning. Stockholms stad SOA-plattform. Sida 1 (9)

ISTQB Testarens ledstjärna

Metoder och verktyg för funktionssäkerhet

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Att fatta rätt beslut vid komplexa tekniska upphandlingar

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Verifikation, validering och testning

Agil testning i SCRUM

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Filip Strömbäck. Verifikation, validering och testning

Rutin för dokumenthantering inom Ladok3-projektet

TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Idag. EDAA35: Utvärdering av programvarusystem. Mål. Innehåll. Kursmoment. Lärare

Produktens väg från idé till grav

Projektplanering. Projektplanen. Om inte projektet planeras noga, kommer det garanterat att misslyckas

Sammanfattningar Essentials of Software Engineering

Medan vi väntar: Diskutera

Bilaga 9 Säkerhet Dnr: /2015 Förfrågningsunderlag

Streamade föreläsningar på webben

Projektarbete. Johan Eliasson

TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Kursprogram, ETSF20 Programvaruutveckling för stora projekt (PUSP), 7,5 hp

Transkript:

Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Snabbrepris: Test Testning kan påvisa fel, men inte bevisa att det inte finns fel Testprocessen kopplar samman integration med testning: enhetstest, integrationstest, systemtest, acceptanstest Testmetoder kan vara antingen black box eller white box Dokumentgranskning är en testform där man kritiskt läser ett dokument på ett systematiskt sätt. Verifiering Validering Dynamisk testning Statisk testning Enhetstest Integrationstest Systemtest Acceptanstest Testfall Kravtäckningsmatris Black-box-test White-box-test Ekvivalensklass-partitionering Gränsvärdestestning Parvis testning Stresstest Kodtäckning Bransch coverage Testprotokoll Felrapport

Färdigtestat? När vi gjort vad vi lovat i projekt- och testplan: t ex visat att alla kraven på alla abstraktionsnivåer är uppfyllda:...traverserat alla grenar i koden......med alla upptänkliga kombinationer av variabler......på alla plattformar......med max+ belastning Kursinformation Nyligen: Levererat L3: Krav + projektplan och granskningar Pratat och testat Test Skissat på testplan + testspecifikation på systemnivå På gång: Nu: Kl 1: Snart: Föreläsning 4 FB3 = Grankningsprotokoll i rätt gdrive-mapp Muntlig komplettering FB - enligt ÖK med PHL Onsdag-torsdag Ö4a-b: Kodgranskning + dubbelworkshop för testfall för UC1: Cykel Garage Måndag nästa vecka: F5 + L4: Krav1.0 och Plan 1.0 = Baseline MS1

Vad händer med L3: Muntlig återkoppling + ΔL3-L4 för Krav följs upp av annan projektgrupp PHL kopierar L3 som PDF FB3 = Granskningsprotokoll. Beslut: Go/redo Muntlig komplettering FB3 per grupp PHL kopierar L3 + PHL-protokoll + L4 till QAmapp Peer QA Signera av åtgärdslista i QA-mapp Bokat tid för muntlig återkoppling Omarbete Meta QA PHL gör extra koll OBS! v 1.1 Vad händer med L5: Granska annan grupps testplan/specifikation PHL kopierar Test 1.0 till QA-mapp OBS! v 1.1 Peer Granskning av Test ==> Granskningsprotokoll till QA-mapp Meta QA PHL gör extra koll

Agenda F4-F6 F4 Konfigurations- och versionshantering står inte så tydligt i boken regler för projektet finns i projektmaterialet på kurswebben Plattformar & produktlinjer står inte så tydligt i boken (kort i måna av tid) Programvarudesign 1 Programvarudesign 2 Efterläsning programmering vid F5 Praktisk testning - fokus white-box F6 Utvecklingsprocesser Konfigurationer och versioner Programvaruutveckling - Metodik 2016 Jonas Wisbrant 8

Diskussion - försök förklara för din granne: Vad är det för skillnad mellan: Konfiguration Version Variant? Hur håller vi isär pågående versioner från frysta? Konfigurationshantering Testprotokoll Utb.plan Design Process Test Projektplan Manualer Krav Kod

Configuration Management Configuration management (CM) is a field of management that focuses on establishing and maintaining consistency of a system's or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life. Configuration Management Configuration management (CM) is a field of management that focuses on establishing and maintaining consistency of a system's or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.

Typiska frågor man kan vilja ha svar på Vilka kunder har installerat en viss version av systemet? Vilken hårdvara och OS krävs för en viss version? Vilka versioner har levererats av ett visst system? Vilka versioner påverkas om jag ändrar en viss komponent i systemet? Hur många olika ändringar håller man på att göra av ett visst system? Hur många rapporterade men ännu ej rättade fel finns det i ett system hos en viss kund? Planering av konfigurationhantering Bestäm vad som ska konfigurationshanteras Projektdokument inte säkert Produktdokument ja Organisationsdokument ja, men inte av projektet Bestäm rutiner för konfigurationshantering Bestäm ansvarig för konfigurationshantering Bestäm hur ändringshantering ska gå till Bestäm vilka verktyg för konfigurationshantering som ska användas (och vilken typ av databas man ska använda)

Versioner, releaser och delta V 1.0 release Versi V 1.1 version V 1.2 version V 1.3 version V 2.0 V1.1 Delta 1 release V 2.1 V1.0 V1.2 Delta 2 version Lagra ändringar i delta Hålla reda på ändringshistoria ID för varianter/grenar V1.1a V1.0 V1.1 V1.1.1 V1.2 V2.0 V1.1b Ändringshantering ordnad övergång Begär ändring genom att fylla i formulär Analysera ändringsbegäran Om ändring nödvändig och korrekt { Utvärdera hur ändring kan göras + kostnad Skicka förfrågan till CCB Om ändring accepterad { Ändra i systemet Uppdatera ändringsbegäran tillverka ny version av systemet } } Delta?

Formulär för ändringshantering, del av information Del 1 Namn Projekt Ändring nr Anledning Objekt att ändra Del 3 Förslag på ändring Skattad tid CCB-möte, datum CCB beslut Del 2 Utredare Resultat av utredning Del 4 Ansvarig för ändring Kommentar Ny version: CCB Change Control Board Strategiska beslut om vilka ändringar som ska ske Inte bara tekniska beslut Representerar kund, projekt och andra intressenter För programvara som används i flera produkter blir det mer komplicerat

Systembygge Bygga en fungerande version av hela systemet från de komponenter som finns, t ex Senaste versionerna av allt En viss version av en viss produkt En viss version av en viss produkt till en viss kund En viss version av en viss produkt till en viss plattform Behövs t ex vid systemtest och andra tester (och såklart vid leverans) Tekniska, praktiska och politiska versioner? Teknisk version varje gång man sparar händer ofta med automatik möjliggör ibland roll-back Praktisk version när man jobbar på olika håll ofta vid samarbete (distribuerat?) men inget som kräver beslut Politisk version när man ändrar nummer: Låser historiken Underlag för beslut Beskriver förändringar Kopplar ihop olika dokument Möjliggör ordnad förgrening

Ändringshantering av i ert projekt Baserat på: Efter baseline dvs efter att milstolpe uppnåtts Ansvariga för dokument som bestämmer vem som får ändra vad Uppdatering av versionsnummer Spridande av information inom gruppen Speciella regler för kravspecifikationen (efter baseline får man inte ändra utan att ansöka hos projekthandledaren) 1. Kort version av vår process: 2. Person A finds out that there is something wrong in a document Person A locates the fault in the document (currently in version 1.0) Person A notifies the person responsible for the document (person B) and asks for permission to change it Person B gives person A permission to change the document Person A updates the document, updates the version number to 1.1 and gives it to person B. Person B is now responsible for telling all persons that are working with the document or depend on it, that there is a new version. 3. 4. 5. 6. 7. Versionshistoria i dokument och ändringsformulär Ladda ner, skriv mail eller imlementa i driven enligt ÖK med PHL

Alltså: Projektens versionsnummer för kravspecifikation blir t ex 0.0 första version inom projektet 0.x nya versioner efter arbete med dokumentet 0.99version inlämnad till projekthandledare 1.0 Dokument för godkänd milstolpe MEN, stryk de som är äldre än 1.0... 1.1 ny version efter att projekthandledare godkänt ändring 1.2 -- -- Konfigurationshantering - sammanfattning Ändringshantering görs för rätt beslut ska tas baserat på beslut ska tas baserat på både tekniska frågor ochatt affärsbeslut både tekniska frågor och affärsbeslut ni vill innan v 0.99, men efter det måste ni följa procedurerna i kompendiet. För kravspecifikationen måste änd I projektet får ni göra mycket som ni vill innan v 0.99, men efter det måste ni följa procedurerna i kompendiet. För kravspecifikationen måste ändringar efter 1.0 godkännas av projekthandledaren.

Plattformar & produktlinjer Programvaruutveckling - Metodik 2016 Jonas Wisbrant 2 5

Plattformar inom produktutveckling Inte bara inom programvara: Black & Decker Battery Pack Motor Pack Bilindustri Peugeot, Fiat, Toyota, etc Software product line A software product line is a set of software-intensive systems that share a common, managed set of feature that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. http://www.sei.cmu. Fk1 Fk2 edu/productlines/about_pl.html Fkn Plattform v. k Fk+1.1 Fk+1.2 Plattform v. k+1 Fk+1.m

Vad innebär detta? Parallell utveckling -> lägre kostnader, fler produkter, kortare tid till marknad per produkt Ökad komplexitet: t ex nya krav och påverkar flera produkter (och plattformar). Mer komplexa projektplaner, testning, organisation Långsiktiga beslut för plattform, kortsiktiga beslut för produkter Nya produkter innehåller funktioner från tidigare produkter -> I stort sett aldrig specifikation från 0. Mycket arv Programvarudesign Programvaruutveckling - Metodik 2016 Jonas Wisbrant 3 0

Agenda F4-F6 F4 Konfigurations- och versionshantering står inte så tydligt i boken regler för projektet finns i projektmaterialet på kurswebben Plattformar & produktlinjer står inte så tydligt i boken (kort i måna av tid) Programvarudesign 1 Programvarudesign 2 Efterläsning programmering vid F5 Praktisk testning - fokus white-box F6 Utvecklingsprocesser Programvarudesign - agenda Arkitekturdesign Objektorienterad design Design av användargränssnitt

Design Design är både en aktivitet och ett resultat

Modell för design av objektorienterad programvara Arkitekturdesign Nedbrytning av systemets övergripande struktur System - helheten Subsystem enhet som ej beror på andra subsystem Moduler enhet som verkar ihop med andra moduler (Komponenter en eller flera klasser) System Subsystem A M A-1 Subsystem B Subsystem C M C-1 M B-1 M C-2 M A-2 M B-2 M B-3 M C-3

System-of-sys tems Syfte med arkitekturdesignen Länk mellan kraven och detaljerad design Grov ritning för implementation Kommunicerar designbeslut i organisationen Grund för systemanalys Säkerhet Prestanda Underlättar återanvändning Använda delar i andra system Utveckla produktlinjer

Val av arkitekturdesign Förståelse för kontext och intressenter nödvändig för bra beslut Kvalitetskraven avgör ofta beslutet Vad vill vi uppnå? Motsättningar vanligt! Övriga faktorer som kan avgöra Organisationens tekniska kompetens och erfarenhet Återanvändning av tidigare arkitektur Standarder som behöver uppfyllas Prestanda? Kommunikation är en prestandatjuv! Samla tunga beräkningar i moduler som kommunicerar minimalt utåt Acceptera att beräkningsmoduler blir stora System Subsystem A Subsystem B M A-1 M A-2 M A-3 M A-4 M A-5 M A-6 M C-1 M C-2 M C-3

Säkerhet? (security) Åtkomstbegränsning viktigt Introducera säkerhet i olika lager Hantera den känsligaste informationen innerst System Subsystem A M A-1 M A-4 M A-2 Subsystem A M A-3 M A-1 M A-2 M A-3 M A-4 M A-5 M A-6 M SECURE Säkerhet? (safety) Att verifiera säkerhetskrav är svårt och dyrt Samla alla säkerhetskritiska operationer i separat subsystem System Subsystem A M A-1 Subsystem B Subsystem C M C-1 M B-1 M C-2 M A-2 M B-2 M B-3 M C-3

Tillgänglighet? Minimera risken att systemet är otillgängligt Introducera redundans System Subsystem B1 Subsystem A M B1-1 M A-1 M A-2 M A-3 M A-4 M A-5 M A-6 Subsystem B2 M B2-1 43 Enkelt underhåll/evolution? Fokusera på små oberoende moduler Minimal kommunikation gör det lättare att ersätta moduler i framtiden System Subsystem A Subsystem A M A-1 M A-2 M A-3 M A-4 M A-5 M A-6 44 M A-1 M A-2 M A-3 M A-4 M A-5 M A-6 M A-7 M A-8 M A-9

LinkedIn: Java-arkitektur Övning 4a och 4b Samma upplägg som Ö1a-Ö1b kursvecka 2 - Övning 4a på onsdag kl. 13-15 eller 15-17 - Hemarbete 2 h - Övning 4b på torsdag kl. 8-10 eller 10-12 Sista övningarna - men kod/projekt-jour minst kommande onsdag...