Kursplan fastställd 2021-02-17 av programansvarig (eller motsvarande).
Kursöversikt
- Engelskt namnSoftware engineering principles for complex systems
- KurskodTDA594
- Omfattning7,5 Högskolepoäng
- ÄgareTKITE
- UtbildningsnivåGrundnivå
- HuvudområdeDatateknik, Informationsteknik
- InstitutionDATA- OCH INFORMATIONSTEKNIK
- BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd
Kurstillfälle 1
- Undervisningsspråk Engelska
- Anmälningskod 52127
- Blockschema
- Sökbar för utbytesstudenterNej
- Endast studenter med kurstillfället i programplan.
Poängfördelning
Modul | LP1 | LP2 | LP3 | LP4 | Sommar | Ej LP | Tentamensdatum |
---|---|---|---|---|---|---|---|
0119 Projekt 6 hp Betygsskala: TH | 6 hp | ||||||
0219 Inlämningsuppgift 1,5 hp Betygsskala: TH | 1,5 hp |
I program
- MPSOF - SOFTWARE ENGINEERING AND TECHNOLOGY - UTVECKLING OCH IMPLEMENTERING AV MJUKVARA, MASTERPROGRAM, Årskurs 2 (valbar)
- TKITE - INFORMATIONSTEKNIK, CIVILINGENJÖR, Årskurs 3 (obligatorisk)
Examinator
- Gregory Gay
- Docent, Interaktionsdesign och Software Engineering, Data- och informationsteknik
Behörighet
Grundläggande behörighet för grundnivåSökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.
Särskild behörighet
Samma behörighet som det kursägande programmet.Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.
Kursspecifika förkunskaper
The student must know Java programming and must have taken courses on data structures and algorithms (e.g., TDA416) as well as on object-oriented programming (e.g., TDA552, TDA367). Courses on user-interface development (e.g., DAT216, TDA289), and on testing (e.g., TDA567) are recommended.
Syfte
Real-world software systems are becoming increasingly complex and pervasive. Consider application domains such as enterprise computing (e.g., data-processing/AI systems), business information systems (e.g., web portals), cyber-physical systems (e.g., automotive software), systems software (e.g., operating system kernels), or mobile software and software ecosystems (e.g., Android apps). All these domains boast software systems of unprecedented complexity, many of which are long-living and exist in many different variants. As such, these software systems require dedicated planning, modeling, design, realization, and advanced analysis techniques presented in this course.
Lärandemål (efter fullgjord kurs ska studenten kunna)
Identifiera och resonera kring återkommande problem inom konstruktion och hantering av komplexa system, och applicera lämpliga lösningar. Lärandet drivs av ett konkret exempel genom ett projekt för programvaru-konstruktion eller -omformande, vilket utvecklas i grupp.- Redogöra för utmaningarna med att konstruera och hantera komplexa mjukvarusystem
- Redogöra för hur komplexa mjukvarusystem praktiskt hanteras och konstrueras inom industrin
- Redogöra för koncept för att konstruera och hantera mjukvarusystem med många varianter (e.g. software product lines, ekosystem för programvara)
- Redogöra för affärs-, arkitektur-, process-, och organisations-orienterade aspekter av att konstruera och hantera komplexa mjukvarusystem
- Modellera ett mjukvarusystem utifrån olika perspektiv (e.g. använda funktionsmodeller, UML-diagram eller beskrivningsspråk för arkitektur)
- Konstruera ett variant-rikt mjukvarusystem (e.g. variant-rika mjukvarusystem, software product line, ekosystem för programvara)
- Analysera ett komplext mjukvarusystem (e.g. samhörighet, variabilitetsanalys, modell/kod-analys)
- Redogöra för modulariseringstekniker
- Använda moderna komponent- eller service-ramverk
- Analysera existerande mjukvarusystem och diskutera möjligt förbättring eller re-engineering
- Redogöra för typiska egenskaper hos olika koncept för modularitet inom programvara
- Avgöra i vilka situationer vilka principer för hantering av komplexa mjukvarusystem är lämpliga
- Läsa och analysera vetenskaplig litteratur
Innehåll
Programmeringsexpertis är endast en av många färdigheter som krävs för att konstruera och hantera komplexa programvarusystem. I denna kurs analyserar vi vilka Software Engineering-principer som stödjer konstruktion och hantering av komplexa programvarusystem. Vi diskuterar dessa principer under föreläsningarna och applicerar dem i projektarbetet.
Organisation
Litteratur
Information om kurslitteratur hittas på kursens hemsida.
Examination inklusive obligatoriska moment
Examinationen består av två delar: en individuell skriftlig rapport uppgift (1,5 hp) och ett grupprojekt (6 hp). Projektet betygssätts individuellt, där hänsyn tagits till gruppens resultat samt studentens individuella bidrag till gruppens arbete.Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.