IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Analyse, design og softwarearkitektur 
Kursusnavn (engelsk):Analysis, Design and Software Architecture 
Semester:Efterår 2014 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:15,00 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:65 
Maks. antal deltagere:70 
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, or Eiffel

  • be able to design, implement, and test medium-sized programs that includes the use of concepts such as threads, inheritance, object identity, object state, packages, files, streams, and serialization.


These background skills are achieved by following the Basic Programming course in 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,

  • understand and be able to execute all the primary facets of software development within software engineering including analysis, design, implementation, testing, validation, and verification,

  • be able to use the common tools of the domain including configuration management, build systems, test frameworks, and version control,

  • be able to 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.

  • be able to continuously change (re-factor) a software system through adjustments in its architecture or refinements in its configuration,

  • be able to 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.


The design and implementation of such an application may include the use of advanced OO constructs such as generics, callbacks, delegates, events, aliasing, etc., advanced data types and algorithms, the use of third-party APIs and frameworks, distributed systems constructs including sockets, streams, remote procedure calls, concurrency constructs such as threads, semaphores, monitors, messages, tasks, etc., graphical user interface toolkits, and databases. 
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 platform

  • advanced programming in an OO language

 
Læringsaktiviteter:12 forelæsninger + lejlighedsvis øvelser i forbindelse med undervisningen

12 lectures + 10 exercise sessions.

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 with the assistance of the teaching assistants.

Project work begins on/around Nov. 18. 

Obligatoriske aktivititer:8 of the 10 exercises has to be approved in order to go to the exam.

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 with the assistance of the teaching assistants. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern prøve

Summative assessment for this course consists of a combination of summative assessment of the project and the oral examination.

The project work constitute 60% of the final course mark; the oral exam constitutes 40% of the final course mark.

The duration of the oral exam is 20 minutes.  

Litteratur udover forskningsartikler:Course Book:
------------
* [OOSE] Object-Oriented Software Engineering by Bernd Bruegge and Allen H. Dutoit. 3rd. edition. 2010. [OOSE] is the main text book for the course, which we shall follow. Most of this book will be used and will be the basis for most of the lectures on Tuesdays.

C# & .NET Literature:
---------------------
* [PrC#] Programming C# 5.0 by Ian Griffiths. This book gives a thorough introduction to C# version 5.0 and the whole .NET platform.

Additional Literature:
----------------------
* [SE9] Software Engineering 9th ed by Ian Sommerville. [SE9] is the bible within software engineering. We shall use some of the chapters in this book (ca. 10 chapters out of 30, ~30%) in this course. Mainly on Tuesdays. Even though we only use 30% of the book, we still encourage you to buy it. It works as a compendium containing a description of many important SE concepts and principles, which you may need in your future studies and jobs.
* [SA2] Software Architecture in Practice (2nd ed.) by Len Bass, Paul Clements, and Rick Kazman. [SA2] is a core reference book within Software Architecture. We shall use some of the chapters and concepts from this book in this course, mainly on Tuesdays. If you are interested in Software Architecture in your future career, this book is a must have if not, try to borrow it from the library.
* [C#P] C# Precisely by P. Sestoft and Henrik I. Hansen. [C#P] is a distillation of the ECMA C# standard for the reader who knows Java and for those not interested in digesting the entire 500+ page standard