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

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

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

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Verifiering & Validering. Integrationstest. Enhetstest. Verifiering och & validering rep. -

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

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

Verifiering & validering -

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Föreläsning 4 Arkitektur, design, kodning

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

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

konfiguration och version och variant?

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Objektorientering Klasser

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Objektorientering. Grunderna i OO

Föreläsning 4 Arkitektur, design, kodning

Föreläsning 15: Repetition DVGA02

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

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Metoder och verktyg för funktionssäkerhet

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

Imperativ programmering. Föreläsning 4

Objektorienterad analys och design

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

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Objektorienterad analys och design

SKOLFS. beslutade den -- maj 2015.

Sammanfattningar Essentials of Software Engineering

Symptom på problemen vid programvaruutveckling

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Hemtentamen: ETSA02 Programvaruutveckling Metodik

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Del av projektuppgiften. Systemarkitektprogrammet

Föreläsning 3 Verifiering och Validering

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

Föreläsning 3 Verifiering och Validering

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

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Objektorienterad programmering

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT14

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

TDP005. Föreläsning 3 - UML. Filip Strömbäck

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Arkitektur Michael Åhs

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Kursplanering Objektorienterad programmering

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

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

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

Användning av modeller för system/produktutveckling

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Sammanfattning och Tentamensinfo Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Introduktion. Byggstenar TDBA

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

Några grundläggande begrepp

Föreläsning om OO, OOA och UML

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Projektering av informationssystem

RUP - Rational Unified Process

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Agil programutveckling

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

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

SKOLFS. beslutade den XXX 2017.

Transkript:

Föreläsning 5: V&V II + Design II Efterläsning Kodning Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp PHL kopierar L3 + PHL-protokoll + L4 till QAmapp Peer QA Signera av åtgärdslista i QA-mapp Meta QA PHL gör extra koll

Idé: Kommetera och färgkoda uppföljningen gult= kan ej, delvis, svårt att följa upp... Tisdag kl 10 i projektens folder Dela upp inom projektet (parvis?) Lägg rimlig tid (2-3 h / person) 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 Praktisk testning - fokus white-box Programvarudesign 2 Efterläsning programmering vid F5 F6 Utvecklingsprocesser

Verifiering & Validering II Programvaruutveckling - Metodik 2016 Jonas Wisbrant 5 White-box testing

Vad innebär det som står i kompendiets Testplanen (avsnitt 5) Betyder? 3.2 Unit testing Structural (white-box) testing is mainly used Before the developers check in and baseline any code, it should have been tested, using a complete statement coverage criteria No defects found 3.3 Integration testing The integration testing should exercise all calls to the other units API Complete coverage of the API No defects found 3.4 System testing Functional based on the requirements (Appendix A) all requirements are tested No critical defects are found when all defined test cases are executed 3.5 Acceptance testing Testrapporter från systemtest är en leverabel - uppfinn och beskriv (se 3.7.3) up to customer... White-box testing -

White-box och kodtäckning int foo (int x, int y) { int z = 0; if ((x>0) && (y>0)) { z = x; } return z; } White-box: Täcka vägar Antalet testfall exploderar med loopar! 4 vägar 8 vägar??? vägar

Programvarudesign II Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 1 Design

Design är både en aktivitet och ett resultat Typexempel Repository (delad data) Gemensam information repository subsystem 1 subsystem 2 subsystem n Fördelar: Svagheter: - Effektivt med mycket data - Alla subsystem måste använda samma dataformat - Data-producent måste inte veta så mycket om konsument - Operationer på all data underlättas, t.ex. backup - Vidareutveckling kan vara svårt eftersom mycket bygger på en viss datamodell

Typexempel - Client-server Klient 1 Klient 2 Klient n Nätverk Betj. 1 Betj. 1 Fördelar: Betj. m Svagheter: Uppdatering av klient eller betjänare kan kräva uppdatering av samtliga Ingen gemensam datamodell Distribuerad arkitektur Lätt att lägga till nya klienter och betjänare Typexempel Abstract machine Varje lager utgör en abstrakt maskin som används av nästa lager Fördelar: Svagheter: Stöd för inkrementell utveckling Underlättar portabilitet Kan uppstå beroenden mellan flera lager Kan bli sämre prestanda -

Objektorienterad design Implementationsnära design Beskrivning av hur komponenter implementeras på klassnivå Klasser beskriver meningsfulla entiteter i problemdomänen - Substantiv i beskrivningen blir klasser - Operationer implementeras i metoder Objektorientering - Fundamentala koncept 1. Inkapsling 2. Abstraktion 3. Arv 4. Polymorfism

Unified Modeling Language - UML Generellt språk för att modellera programvarusystem Standardiserat av ISO Tre skapare, varav en svensk: Ivar Jacobson Statisk modell av systemet Klassdiagram Dynamisk modell av systemet Sekvensdiagram Mer i kursen Objektorienterad design och modellering eller Objektorienterad design och diskreta strukturer Klassdiagram

Sekvensdiagram (c-sharpcorner) Designmål: Låg koppling (coupling) I hur stor utsträckning är klasser i programmet kopplade till varandra? Låg koppling underlättar underhåll och evolution

Designmål: Hög samhörighet (cohesion) Hur väl innehållet i en klass hänger samman Exempel: Logisk t.ex. en klass som sköter all utmatning av data Temporal t.ex. en klass som sköter all uppstart eller avslut Procedurbaserad aktiviteter som utförs efter varandra slås ihop Kommunikationsbaserad delar som behandlar samma data slås ihop Sekventiell kedja av aktiviteter som hänger ihop i sekvens Funktionell innehållet står för en enstaka funktion, t ex sortera vektor Designmönster Beprövade lösningar på återkommande problem Ursprungligen från arkitektur Inom programvara används objektorienterade koncept Några exempel: Singleton Iterator Visitor garanterar ett unikt objekt av en klass traverserar en samling objekt gör en operation på samtliga objekt i en samling

Exempelmönster: Observer Separera ett objekts tillstånd från presentation Möjliggör flera olika vyer Design av användargränssnitt Textbaserat gränssnitt Kraftfullt för expertanvändare Grafiska användargränssnitt Lättare att lära sig och använda

Några grundläggande designprinciper Igenkänning Använd välkänd terminologi från domänen Följ beprövade koncept (fönster, flikar, dialogfönster etc.) Konsistens i GUIt Använd samma grafiska komponenter överallt Erbjud samma kortkommandon överallt Inga överraskningar Användaren ska kunna förutspå vad som händer Återhämtning Användare gör fel: tillåt återgång till föregående tillstånd Guida användaren Hjälp användaren och presentera feedback I projektet: Designdokumentet Ingen mall finns Hitta ett format som funkar enligt policy i procesmodellen Rita klassdiagram Behöver inte vara UML Relationer och multiplicitet Alla GUI-klasser behöver ej visas (en GUI -box räcker) Högnivå beskrivning av ansvarsfördelning Referens till javadoc med: - Ansvarig utvecklare och kort förklaring av klassens syfte. - Alla publika metoder. Namn, parametrar och returvärde. - @taggar där lämpligt

Design - sammanfattning Design är både en aktivitet och ett resultat Arkitekturdesign är en övergripande nedbrytning av systemstruktur: System Subsystem Moduler Val av arkitektur beror på kvalitetskraven Exempel: repository, client-server, abstract machine Objektorienterad design beskriver hur komponenter implementeras av klasser Beskrivs vanligtvis med UML Sträva efter låg koppling och hög sammanhållning Utveckla GUI som matchar användarens mentala modell Parvis systemtestning - exempel Programvaruutveckling - Metodik 2016 Jonas Wisbrant 3 0

Hitta testfall för parameterpar för systemtest av diskmaskin - 9 av 18 fall räcker Testparametrar: Temperatur Miljöläge Nedsmutsningsgrad (45, 55, 65) (on, off) (lätt, måttlig, grov) Utfall: Diskresultat (rent, smutsigt) Temp Miljö Resultat Smuts Parvis testning för systemtest av diskmaskin 3 x 2 x 3 = 18 möjliga testfall

Parvis testning Samtliga kombinationer av parameterpar testas En black box-teknik Färre testfall än vad som krävs för uttömmande testning Men en rimlig nivå för att hitta defekter Generera testdata som uppnår parvis täckning med ett minimalt antal testfall är svårt ett kombinatoriskt optimeringsproblem Systemtest diskmaskin: Möjliga par Temperatur-Miljöläge (3 x 2 komb.) 45-on, 45-off 55-on, 55-off 65-on, 65-off Temperatur-Nedsmutsningsgrad Miljöläge-Nedsmutsningsgrad (3 x 3 komb.) (2 x 3 komb.)

Parvis testning för systemtest av diskmaskin 9 testfall räcker för att testa alla parameterpar