Kursplan för Software engineering principles for complex systems

Kursen är nedlagd
Kursplanen innehåller ändringar
Se ändringar

Kursplan fastställd 2024-05-07 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

Kurstillfället är inställt. För frågor kontakta utbildningssekreteraren för
  • Undervisningsspråk Engelska
  • Anmälningskod 52130
  • Blockschema
  • Sökbar för utbytesstudenterNej
  • Endast studenter med kurstillfället i programplan.

Poängfördelning

0119 Projekt 6 hp
Betygsskala: TH
0 hp6 hp0 hp0 hp0 hp0 hp
0219 Inlämningsuppgift 1,5 hp
Betygsskala: TH
0 hp1,5 hp0 hp0 hp0 hp0 hp

    Examinator

    Gå till kurshemsidan (Öppnas i ny flik)

    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.

    1. Kunskap och förståelse:
    • 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
    2. Färdighet och förmåga:
    • 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
    3. Värderingsförmåga och förhållningssätt:
    • 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.  Utöver det, ingår individueller skriftliga inlämningsuppgifter.

    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.

    Kursplanen innehåller ändringar

    • Ändring gjord på kurs:
      • 2024-05-06: Nedlagd Ändrat till nedlagd av UOL/PA
        Kursen är nedlagd
    • Ändring gjord på kurstillfälle:
      • 2024-05-06: Inställd Ändrat till inställd av UOL/PA
        [Kurstillfälle 1] Inställt