Modern mjukvaruutveckling

15 hp

Kursplan, Avancerad nivå, 2IS071

Kod
2IS071
Utbildningsnivå
Avancerad nivå
Huvudområde(n) med fördjupning
Informationssystem A1N
Betygsskala
Underkänd (U), godkänd (G), väl godkänd (VG)
Fastställd av
Institutionsstyrelsen, 25 oktober 2018
Ansvarig institution
Institutionen för informatik och media

Behörighetskrav

90 hp informationssystem eller motsvarande

Mål

Vad gäller kunskap och förståelse förväntas studenten efter genomgången kurs kunna:

- förklara hur formella språk kan användas för att strukturera och resonera om digitala system,

- förklara hur extensibility, reusability and modifiability kan stödjas genom grundläggande principer inom objektorienterad design,

- förklara begreppet designmönster inom mjukvaruutveckling,

- förklara den teoretiska grunden för begreppet utbytbarhet/substitutability,

- förklara hur design science forskning kan användas inom modern mjukvaruutveckling.

Vad gäller färdigheter och förmåga förväntas studenten efter genomgången kurs kunna:

- tillämpa formella språk för att strukturera och resonera om digitala system,

- genomföra testdriven utveckling och omstrukturering,

- känna igen och kunna använda sig av grundläggande objektorienterade designmönster,

- konstruera datalogiskt sunda objekthierarkier,

- konstruera feltoleranta programkomponenter,

- planera och strukturera ett design science research-projekt, inklusive konstruktion och utvärdering av programvara.

Vad gäller värderingsförmåga och förhållningssätt förväntas studenten efter genomgången kurs kunna:

- motivera designval i programlösningar utifrån deklarativa och objektorienterade principer,

- evaluera och värdera resultatet av ett mjukvaruutvecklingsprojekt utgående ifrån en design science ansats.

Innehåll

Kursen visar hur programmering i det lilla kan utvidgas till större skala genom objektorientering, mjukvaruutvecklingsmetoder och designmönster. Grundläggande begrepp som cohesion, coupling och substitutibility, vilka utgör byggstenar av vilka skalbar och pålitlig programvara är uppbyggd, introduceras. Kursen fortskrider genom att visa hur underhåll samt förbättring av programvara stöds genom testdriven utveckling och refactoring. Slutligen täcks användningen av designmönster, vilka gör det möjligt att återanvända lösningar till tidigare problem.

För att underbygga ovanstående täcker kursen objektorienterad design på hög nivå från konstruktionsmässiga och kritiska perspektiv, pålitlig programvara genom feltolerans (fault tolerance), rigorös mjukvaruutveckling genom testdriven utveckling och användningen av kontrakt, samt automatiserad konstruktion, testning och implementering. Formella språk, inklusive relaterade begrepp som mängder, funktioner, relationer, satslogik, predikatlogik, teorembevisning, samt standardspecifikationer och Model Checking toolset, fungerar som grund för det praktiska arbetet inom kursen.

Kursen bidrar också till programmets integrerade forskningsmetod genom att introducera studeranden till forskningsansatsen design science research, vilken används som ansats för utvecklingsprojekt under kursen.

Undervisning

Föreläsningar, seminarier och laborationer.

Examination

Seminarier, laborationer, inlämningsuppgifter och skriftlig tentamen. Obligatorisk närvaro krävs på vissa moment.

Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare eller beslut om undantag som fattats av institutionens arbetsgrupp för studieärenden.

FÖLJ UPPSALA UNIVERSITET PÅ

facebook
instagram
twitter
youtube
linkedin