Diskutera medan vi väntar. Agenda. Föreläsning 4: Design och praktisk testning. Arkitektur & Design
|
|
- Dan Nilsson
- för 5 år sedan
- Visningar:
Transkript
1 Diskutera medan vi väntar Ingen kursinformation idag. MS1 på onsdag MS2 på onsdag efter påsk. 1. Läs kurswebben och kursplanen och egen projektplan 2. Fråga projekthandledarna Föreläsning 4: och praktisk testning Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Agenda Arkitektur, design, kodning, produktlinjer Test fortsättning: White box Demo - datorstödd testning: Optimala par ==> JUnit testfall i eclips ==> Arkitektur & Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant
2 täckning är både en aktivitet och ett resultat täckning Modulär nedbrytning men man kan ju även designa bottomup Helt system Helt system M1 M2 M3 M1 Helt system M2 M21 M22 M11 M3 M12 M11 M12 M21 M22 M1 M11 M12 M2 M21 M22 M3 Hela systemet M1 M11 M12 M2 M21 M22 M
3 täckning täckning täckning täckning Alltså Koppling Top-down Bottom-up Toppom-dup I hur stor utsträckning är enheter i programmet kopplade till varandra? Man vill ha låg koppling Koppling påverkas av Samhörighet (Cohesion) Antal gränssnitt mellan olika delar Typ av gränssnitt Enkla gränssnitt ger lägre koppling än komplicerade gränssnitt Åtkomst av interna detaljer ger högre koppling än endast anrop av funktioner Kommunikation av endast data ger lägre koppling än kommunikation av kontrollinformation Helt system Vid objektorientering komponent-nivå-koppling t ex när en klass har en annan klass som instansvariabel Interaktionskoppling (som gränssnitt ovan) Koppling baserat på ärvning M1 M2 M21 M22 M11 M3 M12 Hur väl innehållet i en del hänger samman Slumpvis inga meningsfulla beroenden, bara paketerat Logiskt t ex en modul som sköter all utmatning av data Temporal t ex en modul som sköter all uppstart eller avslut Procedurbaserad när procedurer som utförs efter varandra slås ihop, t ex innehållet i en loop Kommunikationsbaserad när delar som behandlar samma data slås ihop Sekvensiell när serier av procedurer som utgör indata till varandra slås samman Funktionell när innehållet står för en enstaka funktion, t ex sortera vektor
4 täckning täckning täckning täckning Diskutera i grupper om 2-3 personer Mål med en arkitekturdesign - dokumentet Varför är det viktigt med låg koppling och hög samhörighet i allmänhet i ert projekt Hur ska man göra för att uppnå detta rent konkret i ett projekt som ert? Förståelse och kommunikation Möjliggöra återanvändning på hög nivå Stöd för konstruktion och utveckling Underlag för analys Helt system M1 M11 M12 M2 M21 M22 M Arkitekturdesign, olika vyer Arkiterturer - exempel /patterns Modul-beskrivning t ex programkod med relationer Klass A är beroende av Klass B Komponenter och konnektorer t ex binärer och kopplingar Object A delar data med objekt B Allokeringsbeskrivningar fysisk allokering av systemets komponenter låsreglerna finns i systemet, låstimern finns i dörrposten Delad data Del- system 1 gemensam information repository Del- system 2 Del- system n Abstract-machine modellen / Layered system Client-server -modellen Klient 1 Klient 2 Klient n Nätverk Betj. 1 Betj. 1 Betj. m Pipes and filters
5 Delad data gemensam information repository Client-server -modellen Klient 1 Klient 2 Delsystem 1 Delsystem 2 Delsystem n Fördelar: Svårigheter: - Effektivt med mycket data - Alla delsystem använder samma dataform - De som producerar data måste inte veta så mycket om mottagaren - Backup, etc lätt Nätverk Betj. 1 Betj. 1 Betj. m Fördelar: - Vidareutveckling kan vara svårt eftersom mycket bygger på en viss datamodell Distribuerad arkitektur Lätt att lägga till klienter och betjänare X Klient n Nya enheter måste kanske anpassas Ingen gemensam datamodell Svårigheter: X V-modellen för programvaruutvecking Layered system: Exempel OSI - referensarkitektur Hur ska man välja arkitektur? - Kritiska funktioner i lägre lager, Säkerhet för användaren (Safety) - Operationer i begränsat antal moduler, barhet - Komponenter som är lätta att förstå för sig själva, låg komplexitet, 177 Säkerhet mot intrång (Security) - Inte för mycket kommunikation, - Redundanta komponenter, Prestanda (svarstid, genomströmning) Tillgänglighet täckning påverkar beslutet, t ex: X
6 täckning täckning täckning - Mått på design? Hur avgör man om en design är bra? Ett förslag: Graph impurity Några förslag: Graph impurity Informationsflöde = size * (inflow * outflow)2 Weighted methods per class:... WMC= n c i i=1 Helt system GI = n e 1 n = antal noder e = antal bågar GI = 0: perfekt Är detta ett bra mått på en design? - Varför? - Varför inte? M1 M11 M12 M2 M21 M22 M3 178 Inte uppenbart hur man ska mäta detta = = -8 /arkitektur handlar också om att fördela ansvar Varje modul/klass/etc ska utvecklas av någon Person, avdelning, företag, Kort om kodning Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Även resurser i organisationen kan påverka design/arkitektur Organisation speglar design (och vice versa?)
7 Kodning Ett exempel på en kodningsstandard (Java) Kombineras med enhetstestning Kodningsstandarder kan finnas ar kan utföras Basic - File names - File organization - Indention (4 characters) - Comments - Declarations (1/line) - Statements (if always with {}) - White space (2 lines between ) - Naming conventions Additional - Naming (semantic consistency, understandable abbreviations, ) - Constant names instead of raw numbers) - Every class should have a comment - Avoid static variables - File size < 200 LOC Varför vill man ha denna typ av standarder? Ökad rörlighet Personer kan gå mellan projekt Plattformar & produktlinjer Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Erfarenheter best practice Trovärdighet Vilka problem finns att införa standarder? Vad kan man göra för att komma tillrätta med problemen?
8 Plattformar inom produktutveckling Software product line Inte bara inom programvara: Black & Decker Battery Pack Motor Pack 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. F k1 F k2 F kn Bilindustri Peugeot, Fiat, Toyota, etc Plattform v. k F k+1.1 F k+1.2 F k+1.m Plattform v. k Vad innebär detta? kursens projekt 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 Ingen mall finns Alla klasser ska beskrivas Namn, konstruktorer, publika metoder, ärvning Ange även ansvarig för klasser/metoder Nya produkter innehåller funktioner från tidigare produkter -> I stort sett aldrig specifikation från 0. Mycket arv Rita grafiskt (klassdiagram) Följ gränssnitt enligt projektbeskrivningen
9 Föreläsning 5 inleds med en tecknad serie - sammanfattning och i andra kurser -> ingår inte i denna kurs görs på olika nivåer: arkitektur -> design -> kodning Man vill ha låg koppling och hög sammanhållning Exempel på vanliga arkitekturer: delad data, client server, layered system, pipes and filters krav påverkar arkitekturen Plattformsbaserad utveckling ger parallellism och kortare tid till marknad, men också ökad komplexitet Från F3 Black-box vs. White-box Verifiering och & validering Verifiering validering- forts. rep. Black-box Programmet ses som en svart låda och man utnyttjar inte någon kunskap om koden i samband med definition av testfall specifikationen används för att ta fram testfall Testar utfall/resultat Ingenjörsprocessen metodik ETSA01 VT13 INGENJÖRSPROCESSEN METODIK ETSA01 VT14 Jonas Wisbrant White-box Kräver tillgång till koden Testar utfall och inre funktion - täcker vi koden? - täcker vi vägarna?
10 Från F3 Från F3 Ekvivalenspartitionering stestning Hitta värden för in- och utdata som behandlas på inbördes enhetligt sätt Vanliga gränsvärden Robust-test (gröna) (röda) ekvivalensklasser Kombinationer av gränsfall (vita) ekvivalensklasser indata utdata variabel 1 ekvivalensklasser variabel 2 Från F3 Parvis testning Vissa fel single mode T ex lägga in viss typ av kurs Andra fel uppstår som kombination av två parametrar: T ex lägga in viss typ av kurs för viss institution Parvis testning: täck alla möjliga kombinationer av värden för alla möjliga par av parametrar Eller ännu fler parametrar T ex lägga in viss typ av kurs för viss institution för visst år och viss studentgrupp Antag ett system för att hantera kurser och studenter, med följande parametrar: Kurstyp (G1, G2, A) Institution (CS, EIT, Math, ) År (2006, 2007, 2008, 2015) Studentgrupp (C, D, E, ) Verifiering och & validering - forts. INGENJÖRSPROCESSEN Ingenjörsprocessen metodik METODIK ETSA01 ETSA01 VT13 VT14 Jonas Wisbrant
11 White-box testing Täcka rader (statement coverage) Kräver tillgång till koden Tanken är att testfallen ska täcka all kod Men vad menas med all kod? Betrakta kodens kontrollflödesgraf Exekvera alla rader minst en gång Alla noder i kontrollflödesgrafen Täcka grenar (branch coverage) Täcka vägar (path coverage) Exekvera alla grenar minst en gång Alla bågar i kontrollflödesgrafen Innefattar även komplett radtäckning Exekvera samtliga vägar från startnod till slutnod Innefattar även komplett grentäckning Antalet testfall exploderar med loopar 4 vägar Hur många vägar?
12 Täcka enkla vägar (simple path coverage) McCabe s Cyclomatic Complexity (CC) Exekvera samtliga linjärt oberoende vägar från startnod till slutnod Innefattar komplett grentäckning Hanterar problematiken med loopar Ofta en rimlig kompromiss Används för att beräkna antalet enkla vägar i en kontrollflödesgraf Antal linjärt oberoende vägar: CC = #bågar - #noder Vägar: (1,1) (0,0) (1,0) (0,1) Ej linjärt oberoende En enda komponent i grafen En unik startnod samt en unik slutnod Exempel (CC = #bågar - #noder + 2) Ett lite större exempel CC = #bågar - #noder +2 = = = 4 3 linjärt oberoende vägar If: CC = = 2 If-else: CC = = 2 2 linjärt oberoende vägar CC = =
13 Praktisk testning: Demo av testverktyg Parvis testning för systemtest av diskmaskin 1. Motivering av parvis testning ning av en diskmaskin 2. Praktiskt exempel Kvalitetssäkring av personnummerklass 1. Webbtjänst Hexawise: Optimala testfall för parvis testning 2. Optimala testfall testfall i JUnit 3. med CodeCover i Eclipse Testparametrar: Temperatur (45, 55, 65) Miljöläge Nedsmutsningsgrad Utfall: Diskresultat Temp (on, off) (lätt, måttlig, grov) (rent, smutsigt) Miljö Resultat Smuts Parvis testning för systemtest av diskmaskin 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 3 x 2 x 3 = 18 möjliga testfall
14 diskmaskin: Möjliga par Temperatur-Miljöläge 45-on, 45-off 55-on, 55-off 65-on, 65-off (3 x 2 komb.) Temperatur-Nedsmutsningsgrad (3 x 3 komb.) Miljöläge-Nedsmutsningsgrad (2 x 3 komb.) Parvis testning för systemtest av diskmaskin Temp. Miljö. Smuts T1 45 On Lätt T2 55 Off Lätt T3 65 On Lätt T4 45 Off Medel T5 55 On Medel T6 65 Off Medel T7 45 On Grov T8 55 Off Grov T9 65 On Grov testfall räcker för att testa alla parameterpar extern modul för personnummer Demo Verifiering av praktisk & validering testning- forts. INGENJÖRSPROCESSEN Ingenjörsprocessen metodik METODIK ETSA01 ETSA01 VT13 VT14 Jonas Wisbrant Nytt krav på cykelgaraget Beställaren vill att ha stöd för personnummer Del av betalningsmodellen Projektet bestämmer sig för att integrera funktionalitet hittad i öppen källkod Kvalitetssäkring av den externa koden krävs Hur gör man?
15 Verifieringsapproach Personnummerkoll för användare Skapande av testfall genom black box-tekniker Ekvivalenspartitionering Parvis testning White box-testning för att avgöra testkvalitet stestning Personnummer anges enligt format: XXXXXX-XXXX eller XXXXXX+XXXX (standard: + betyder > 100 år) XXXXXXXX-XXXX (long format) XXXXXXXXXX (short format) Sista siffran är en kontrollsiffra (Luhn-algoritmen) Istället för accepteras även / Personer klassificeras i en ålderskategori <10, 10-18, 18-65, 66-99, >99 Vi identifierar följande ekvivalensklasser: User category (child, teen, adult, senior, golden) ID format (standard, short, long) Separator (-, /) Only digits (true, false) Input date (valid, future date, invalid month, invalid day) Checksum (correct, incorrect) Personnummerkoll för användare Hexawise ID format Separator Only digits Input date Checksum User category Verktyg för att generera testfall för parvis täckning Vi identifierar följande ekvivalensklasser: User category (child, teen, adult, senior, golden) ID format (standard, short, long) Separator (-, /) Only digits (true, false) Input date (valid, future date, invalid month, invalid day) Checksum (correct, incorrect) 216 Vi kan inte testa 5 x 3 x 2 x 2 x 4 x 2 = 480 kombinationer 217
16 218 Category Format Sep Only digits Birth date Checksum Test 1 child standard - TRUE correct correct 20 testfall täcker alla exvivalensklasspar Test 2 child short / FALSE future date incorrect Test 3 child long / TRUE invalid month correct Test 4 child standard - FALSE invalid day incorrect Test 5 teen short - TRUE correct incorrect Test 6 teen standard / TRUE future date correct Test 7 teen standard - FALSE invalid month correct Test 8 teen long - TRUE invalid day correct Test 9 adult long / FALSE correct incorrect Test 10 adult standard - TRUE future date correct Test 11 adult short / FALSE invalid month correct Test 12 adult short / FALSE invalid day incorrect Test 13 senior standard - TRUE correct correct Test 14 senior long / FALSE future date incorrect Test 15 senior short - FALSE invalid month incorrect Test Lund 16 University senior Computer Science short Jonas Wisbrant ETSA01 - Ingenjörsprocessen TRUEmetodik invalid day incorrect 219 Formulera testfallen i JUnit 220 Category Format Sep Only digits Birth date Checksum Test 1 child standard - TRUE correct correct 20 testfall täcker alla exvivalensklasspar Test 2 child short / FALSE future date incorrect Test 3 child long / TRUE invalid month correct Några av förslagen är omöjliga man måste hitta dem själv Test 4 child standard - FALSE invalid day incorrect Test 5 teen short - TRUE correct incorrect Test 6 teen standard / TRUE future date correct Test 7 teen standard - FALSE invalid month correct Test 8 teen long - TRUE invalid day correct Test 9 adult long / FALSE correct incorrect Test 10 adult standard - TRUE future date correct Test 11 adult short / FALSE invalid month correct Test 12 adult short / FALSE invalid day incorrect Test 13 senior standard - TRUE correct correct Test 14 senior long / FALSE future date incorrect Test 15 senior short - FALSE invalid month incorrect Test Lund 16 University senior Computer Science short Jonas Wisbrant ETSA01 - Ingenjörsprocessen TRUEmetodik invalid day incorrect 221 Mäta kodtäckning med CodeCover
17 Summering: Parvis testning och kodtäckning 1. Generera testfall för parvis testning Testning är dyrt Testning ofta den enskilt dyraste aktiviteten i ett utvecklingsprojekt 2. Implementera de möjliga testfallen i JUnit 3. Exekvera testfallen med CodeCover $$$ % - vad innebär det? 223 När är testningen färdig? Snabbguide på hemsidan Finns inga garantier att alla defekter är hittade Man kan alltid testa mer Avbryta för sent Avbryta för tidigt Slösade resurser Defekter finns kvar Försenad release Missnöjda användare Ökade kostnader Dyr support 224 Dyrt underhåll 225
Verifiering & Validering. Integrationstest. Enhetstest. Verifiering och & validering rep. -
Från F3 Verifiering och & validering rep. - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Verifiering & Validering Verifiering Bygger vi produkten
Läs merVerifiering & validering -
Verifiering & validering - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 Verifiering och validering rep. INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 1 1 Från F3 Verifiering & Validering Verifiering
Läs merETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg
Föreläsning 4: Design och praktisk testning ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg 1 Min frånvaro Spårbarhet för säkerhetskritiska programvarusystem Bilindustri - ISO 26262 Processautomation
Läs merMin frånvaro. Agenda. Föreläsning 4: Design och praktisk testning
Föreläsning 4: Design och praktisk testning ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg Min frånvaro Spårbarhet för säkerhetskritiska programvarusystem Bilindustri - ISO 26262 Processautomation
Läs merFöreläsning 4 Arkitektur, design, kodning
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 4 Arkitektur, design, kodning Jonas Wisbrant 1 Agenda Kursinformation Arkitektur Design Kodning Produktlinjer Konfigurationshantering
Läs merVar är vi? Föreläsning 4 Arkitektur, design, kodning. Agenda. Kursinformation. Produktlinjer. Konfigurationshantering - forts. Detta har hänt...
Agenda Kursinformation ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Arkitektur Design Kodning Föreläsning 4 Arkitektur, design, kodning Produktlinjer Jonas Wisbrant Konfigurationshantering
Läs merkonfiguration och version och variant?
Att fundera på medan vi väntar: Vad är det för skillnad mellan konfiguration och version och variant? ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik & Föreläsning 4 Arkitektur, design, kodning
Läs merFöreläsning 4 Arkitektur, design, kodning
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 4 Arkitektur, design, kodning Jonas Wisbrant 2 Agenda Kursinformation Arkitektur Design Kodning Produktlinjer Konfigurationshantering
Läs merVad 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
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
Läs merProgramvaruutveckling - Metodik 2016 Jonas Wisbrant
Föreläsning 3: Test och efterläsning om kodning Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Kursinformation Detta har hänt: Pratat och skapat krav (och plan) Övning 2 Riskhantering, intressenter
Läs merFöreläsning 3: Test, Konfigurationer. Övning 2 Riskhantering, intressenter och kravgranskning.
Föreläsning 3: Test, Konfigurationer Ingenjörsprocessen metodik ETSA01 VT15 Jonas Wisbrant 105 Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning.
Läs merFöreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg
Föreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg 1 Agenda F4 Kursformalia Översikt Kursbetyg Projektet Nästa fas: Construction Burndown charts Programvarutestning - del
Läs merDetta har hänt... Kursinformation. Utse kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan
Föreläsning 3: Test, Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat
Läs merFöreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant
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
Läs merFöreläsning 3 Verifiering och Validering
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 3 Verifiering och Validering Jonas Wisbrant 2 Detta har hänt... Pratat och skapat krav och plan Några har kommit i kontakt med IP3-projekt
Läs merFöreläsning 3 Verifiering och Validering
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 3 Verifiering och Validering Jonas Wisbrant 2 Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter
Läs merDetta har hänt... Jonas Wisbrant - kort CV. Kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan
Föreläsning 3: Test, Ingenjörsprocessen metodik ETSA01 VT15 Jonas Wisbrant Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat
Läs merÄr instruktionerna oklara, projektet rörigt och allmänt frustrerande?
Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Genomfört granskningar inför 2 x 0.99 och omarbete? ETSA01 Ingenjörsprocessen för programvaruutveckling
Läs merNågra grundläggande begrepp
Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?
Läs merINGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT. Övning 2 Riskhantering, intressenter och kravgranskning.
Föreläsning 3: Test, & INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 2 Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat
Läs merExercise 1b: Requirements evaluation
Resurser Produktmål Tidplan Projektplan Idé Affärsmål Användarfall Risker Krav Design Gränssnitt hårdvara Återanvänd kod Funktionella krav Kvalitetskrav Granskning Programkod Applikation Validera Kodgranskning
Läs merAgenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation
Föreläsning 6: Utvärdering och om tentamen INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet
Läs merExercise 1b: Requirements evaluation
Resurser Produktmål Tidplan Idé Affärsmål Användarfall Risker Krav Gränssnitt hårdvara Återanvänd kod Funktionella krav Kvalitetskrav Granskning Programkod Applikation Validera Kodgranskning Versioner
Läs merINGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT
Föreläsning 6: Utvärdering och om tentamen INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 2 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet
Läs merAgenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen
Föreläsning 6: Utvärdering och om tentamen Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet
Läs merConfiguration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar
Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault
Läs merExercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15
Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Lund U niversity Computer Science Jonas W isbrant ETSA01 Ingenjörsp ro cessen metodik V-modellen för programvaruutvecking
Läs merÖversikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem
Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från
Läs merAgenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation
Föreläsning 6: Utvärdering och om tentamen Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant 288 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter
Läs merMetoder och verktyg för funktionssäkerhet
Metoder och verktyg för funktionssäkerhet Projektstart 1. Hantera kraven En bra process är grunden för att hantera kraven i ett säkerhetsprojekt. Det krävs att du har en tydlig spårbarhet mellan krav och
Läs merTDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan
Läs merTestplanering, test-first, testverktyg
Testplanering, test-first, testverktyg Mats Skoglund Department of Computer and Systems Sciences Stockholm University/Royal Institute of Technology Stockholm, Sweden 12 mars 2007 Mats Skoglund Page 1(33)
Läs merInkapsling (encapsulation)
UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar.
Läs merTestning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning
ning på 3 föreläsningar Första föreläsningen Översikt PV7180 Verifiering och Validering Föreläsning 3 ning del 1 Andra föreläsningen Coverage ing, OO-ing, Utvärdering av tekniker Tredje föreläsningen Automatiserad
Läs merTestning av program. Verklig modell för programutveckling
Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket
Läs merExercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15. Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1
Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1 Agenda L4: Some quick reminders Testing in the projects
Läs merHemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant
Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant 2014-06-02 1 Inledning 1.1 Mål Tentamensformen, dvs hemtentamen, har valts eftersom den möjliggör att ni både kan
Läs merFöreläsning 1, vecka 6: Abstraktion genom objektorientering
TDA 548: Grundläggande Programvaruutveckling Föreläsning 1, vecka 6: Abstraktion genom objektorientering Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Hur skulle ni implementera detta? (3D demo) Vi återkommer
Läs merTestning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer
Testning 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer UP Faser Elaboration ü Syfte: Fastställa och validera en basarkitektur för systemet vilket ger en stabil grund för den största delen av utvecklingsarbetet
Läs merSammanfattningar Essentials of Software Engineering
Sammanfattningar Essentials of Software Engineering F10, Testning Quality Assurance (QA) inkluderar testning. Testning är en aktivitet som handlar om att utvärdera produktens kvalitet, och att förbättra
Läs mer2015-05-14. Agenda. Kursinformation. Manual för systemstart. Föreläsning 6: Summering och om tentamen. Målgrupp:
Föreläsning 6: Summering och om tentamen ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet
Läs merTDDD78, TDDE30, 729A85 Objektorienterad programmering och Java
jonas.kvarnstrom@liu.se 2018 TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java Kursinformation Examinator, kursledare: Jonas Kvarnström Fråga kommentera avbryt! Utan OO har vi datastrukturer
Läs merLaboration 2: Designmönster
Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om
Läs merOOP Objekt-orienterad programmering
OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första
Läs merHemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik
Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant 2011-05- 26 1 Inledning 1.1 Mål Tentamensformen, dvs hemtentamen, har valts eftersom den möjliggör att ni både kan
Läs merArkitektur Michael Åhs
Arkitektur Michael Åhs Kalle & Hobbe: En utvecklares drömsystem 1. Vad är arkitektur? 2. Arkitektur i UML Innehåll 3. Utveckla en arkitektur 4. Arkitektur i projektet Del 1 - Vad är Arkitektur? Pattern-Oriented
Läs merObjektorienterad konstruktion
Analys - Objektorienterad konstruktion Vad är objektorientering?» Ett sätt att angripa programmeringsproblem» Ett sätt att tänka när man programmerar Vad innebär objektorientering?» Att uppmärksamheten
Läs merDeluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.
Page 1 (5) Hemuppgift 1DV404 150115-150118 Deluppgift 1 Processmodeller a) (4p) Alla mjukvaruutvecklare följer någon form av utvecklingsprocess i sitt arbete. Diskutera vad organisationer brukar ange som
Läs merMer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML
Målet Mer OOP Mer om klasser Några exempel UML Modularitet Språkligt modulära enheter Få gränssnitt Små gränssnitt Tydliga gränssnitt Dold information Återanvändbarhet Variation i typer Variation i datastrukturer
Läs merTDDD78, TDDE30, 729A85 Objektorienterad programmering och Java
jonas.kvarnstrom@liu.se 2019 TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java Kursinformation Examinator, kursledare: Jonas Kvarnström Fråga kommentera avbryt! Utan OO har vi datastrukturer
Läs merMetoder för utveckling av produktlinjer
Metoder för utveckling av produktlinjer Magnus Eriksson, PhD Senior systemingenjör Bakgrunden till programvaruproduktlinjer Sedan 60:talet har effektiv återanvändning efterstävats Svårt att lyckas, småskalig
Läs merVälkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA
Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande
Läs merTentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Läs merClasses och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna
Läs merAbstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser
Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna
Läs merObjektorienterad Programmering (OOP) Murach s: kap 12-16
Objektorienterad Programmering (OOP) Murach s: kap 12-16 2013-01-28 1 Winstrand Development Objektorienterad Programmering Förkortas OOP Objektorientering innebär att man delar in koden i olika block,
Läs merDetta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur?
Föreläsning 2: ering & granskning Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant 60 Detta har hänt... Pratat och provat kravhantering Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med
Läs merLaboration: Whitebox- och blackboxtesting
Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merObjektorienterad Programkonstruktion
Objektorienterad Programkonstruktion Föreläsning 9 Projektuppgift Collection, Iterator, Composite Christian Smith ccs@kth.se 1 Projektuppgift IM, skickar meddelanden mellan datorer En lite större labbuppgift,
Läs mer729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Läs merPROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer
Läs merÖverlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar
Läs merF6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander
F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merMjukvarudesign. Designprocessen. Teknisk design. Konceptuell design
RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign
Läs merPROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Läs merKonstruktion av datorspråk
Konstruktion av datorspråk Fö2: Funderingar kring hur man kan bedöma programspråk samt några fler detaljer i Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet
Läs merDistribuerade affärssystem
Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska
Läs merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs mer729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Läs merL0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)
L0009B Moment FL 1: Kursintroduktion. Kursinformation: G:\L0009B\Allmänt\KursInformationL0009B.pdf (F) Kursplan: Se https://portal.student.ltu.se/stuka/kurs.php?kurs=l0009b&lang=swe (F) Allt som markerats
Läs merTentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!
Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs merProgrammering = modellering
Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal
Läs merFöreläsning 15: Repetition DVGA02
Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras
Läs merUndervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:
WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska
Läs merFöreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Läs merFöreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Läs merNär? Varför? För vem? Resultat? (Artefakter?)
Arkitektur Vad är arkitektur? Vad har vi arkitekturmodellen till? Hur redovisar vi en arkitektur? Hur tar vi fram en arkitektur? Uppgift När? Varför? För vem? Resultat? (Artefakter?) Efter lunch Redovisning/Diskussion
Läs merLänkade listor och automatisk testning
1 (6) Länkade listor och automatisk testning Algoritmer och datastrukturer Obligatorisk nr 3 Syfte Att ge träning i programmering av länkade listor på låg abstraktionsnivå med primitiv pekarmanipulering.
Läs merDatastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö
Datastrukturer och algoritmer Föreläsning 4 Test, Stack och Kö 1 Innehåll Test Datatyperna Stack och kö Specifikation och Gränssnitt Konstruktion Tillämpning 2 Testa VIKTIGT! Test går att göra under många
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merAgenda. Föreläsning 6: Summering och om tentamen Kursinformation
Föreläsning 6: Summering och om tentamen ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg 1 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet
Läs merTentamen Datastrukturer (DAT037)
Tentamen Datastrukturer (DAT07) Datum och tid för tentamen: 2016-01-09, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och ca
Läs merSKOLFS. beslutade den XXX 2017.
1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning
Läs merObjektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
Läs merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merProgrammering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Läs merLaboration 2: Designmönster
Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om
Läs merÖversikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)
Översikt Programmering tillämpningar och datastrukturer 729G58 (HKGBB7) Kursinformation Objektorienterad programmering: Klasser och objekt Arv Polymorfism Metoder Programexempel Programmering tillämpningar
Läs merFöreläsning 5 Innehåll
Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur
Läs merTPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER
TPFD Beskrivning Rev 4 1(10) TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER Anv.krav Terminologi Detaljkrav Konfigdok Hantera Utgåvor Projektplan Testplan Test-o-felrättning Ändringslogg Återst.
Läs merProjekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss
Läs merSeparation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018
Separation of Concern Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Modulär design Fördelar med välgjord modulär design: Lätt att utvidga Moduler går
Läs merIntroduktionsmöte Innehåll
Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14 EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs
Läs mer