Kursplan fastställd 2020-02-20 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 52113
- 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
Kursen består av föreläsningar varje vecka, vilka täcker kursens teoretiska innehåll. Därutöver görs ett projektarbete i grupper och, som en del i detta, har grupperna obligatoriska handledningsmöten varje vecka. Studenterna introduceras även för koncepten grupparbete och gruppdynamik via en skräddarsydd lektion. Varje enskild student har ansvar för en specifik del av det övergripande projektet.Utöver projektet och den skriftliga inlämningen görs en slutpresentation av projektarbetet vid kursens slut.
Litteratur
Information om kurslitteratur hittas på kursens hemsida.
Examination inklusive obligatoriska moment
Examinationen består av två delar: en individuell skriftlig rapport och muntlig uppgift (1,5 hp) och ett grupprojekt (6 hp). De två delmomenten betygsätts individuellt, båda enligt skalan: 3, 4, 5, samt Underkänt (U). Slutbetyg på kursen beräknas som följer:- Betyg 3: minst betyg 3 på projektet och minst betyg 3 på den skriftliga inlämningen
- Betyg 4: minst betyg 4 på projektet och minst betyg 4 på den skriftliga inlämningen
- Betyg 5: betyg 5 på både projektet och den skriftliga inlämningen
- Betyg U: i övriga fall
Kursplanen innehåller ändringar
- Ändring gjord på kurstillfälle:
- 2020-06-09: Examinator Examinator ändrat från Thorsten Berger (bergert) till Gregory Gay (ggay) av Viceprefekt
[Kurstillfälle 1]
- 2020-06-09: Examinator Examinator ändrat från Thorsten Berger (bergert) till Gregory Gay (ggay) av Viceprefekt