IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Analyse, design og softwarearkitektur 
Kursusnavn (engelsk):Analysis, Design and Software Architecture 
Semester:Efterår 2018 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:15,00 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:165 
Formelle forudsætninger:The student must have the following skills to register for this course:

familiarity with at least one object-oriented programming language such as Java, C++, C#, Objective-C

be able to design, implement, and test medium-sized object-oriented programs that includes the use of concepts such as classes, encapsulation, inheritance/polymorphism, interfaces, packages, data structures (arrays, collections, lists, etc.), threading, IO operations (files, streams, and serialization), and basic GUI programming

These background skills are achieved by following the Basic Programming courses in the 1st and 2nd semester at the IT University's Bachelors degree program in Software Development.


Information om studiestruktur
Dette kursus indgår på tredje semester på bacheloruddannelsen i softwareudvikling. 
Læringsmål:After completing the course and its project work, students should be able to:

- describe and apply object-oriented methods for analysis and design,
- explain the principles of software architecture, including the variety of common architectures and design patterns and their use,
- explain and be able to execute all the primary facets of software development within software engineering including analysis, design, implementation, testing, validation, and verification,
- document the analysis, design, and software architecture of large systems through the use of common standards for documentation including UML and C#'s documentation tools,
- design and implement software using the C# programming language, including the use of C# data structures (arrays, collections, strings, regexp), delegates, events, generics, LINQ, data access, multi-processing and threading, distributed programming, testing and NUnit, user interface programming, and Web programming,
- continuously change (re-factor) a software system through adjustments in its architecture or refinements in its configuration,
- construct useful, coherent, large-scale systems of up to approx. 10 KLOC in size in the C# programming language, including the ability to perform system and domain analysis for a given problem, propose an appropriate software architecture, write a system specification and its implementation, and validate the implementation against its specification.
- effectively test large-scale systems. This includes both the understanding of the design implications as well as the ability to write effective tests using test-driven (or test-first) techniques. 
Fagligt indhold:object-oriented analysis and design using UML as modeling language

software architectures and design patterns

principles of software engineering

the C# programming language and the .NET Core

advanced programming in an OO language

test-driven development using C# and 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange

Object-Oriented Analysis and Design: 12 lectures and weekly exercises
Object-Oriented Programming: 12 lectures and weekly exercises

Teaching and learning interactions are primarily in the form of lectures, small group exercises, and assignments in the first two-thirds of the course. The last third of the semester focuses on a software engineering project.

Assignments will be given each week and they will be due in one week, but for the break in week 42. Each assignment will be specified to be individual or group-based. Individual assignments must be completed individually; group assignments must be completed with a group. Groups will be determined at the beginning of the term.

Project work begins mid-November. 

Obligatoriske aktivititer:To access the exam, students will have to get approved all the mandatory activities throughout the course.

Be aware: The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt. 
Eksamensform og -beskrivelse:X: Eksperimentel eksamensform., (7-scale, external exam)

The exam is twofold. First component is a project which must be handed in the form of a technical report. Second component is a 4 hours written exam on paper with no access to books or electronic aids.

The Technical report and written exam will be assessed independently; one single grade will be computed based on a 30/70 ratio between hand-in and written exam respectively. However, both the hand-in and the written exam will have to receive a grade of at least 2 to successfully pass the exam.

Submission of the technical report will follow the normal ITU submission timeline.

The reexam form will depend of the number registered for re-exam  

Følgende personer underviser på kurset:
NavnStillingUndervisertypeIndsats (%)
Rasmus Lystrøm Ekstern lektor(ITU) Underviser 50
Maria Paasivaara Lektor(ITU) Underviser 20
Mansooreh Zahedi Postdoc(ITU) Kursusansvarlig 30
Niels Frederik Ejlersen Hjælpelærer(ITU) Hjælpelærer 0
Marcus Winding Quistgaard Hjælpelærer(ITU) Hjælpelærer 0
Mikkel Sønderby Lamhauge Hjælpelærer(ITU) Hjælpelærer 0
Paw Saabye Pedersen Hjælpelærer(ITU) Hjælpelærer 0
Pernille Lous Hjælpelærer(ITU) Hjælpelærer 0