IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Analyse, design og softwarearkitektur 
Kursusnavn (engelsk):Analysis, Design and Software Architecture 
Semester:Efterår 2011 
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:70 
Maks. antal deltagere:77 
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, and

  • 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 with its subsequent project along with the Object-oriented Software Design 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 must:

  • 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, BON, Javadoc, C#'s documentation tools, etc.,

  • 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 a modeling language such as UML or BON

  • 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 og 12 øvelsesgange

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 instructor.

Thus,

Assignment 1 distributed week 35, due week 36
Assignment 2 distributed week 36, due week 37
etc.

Project work begins on/around week 46. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

Summative assessment for this course consists of a combination of summative assessment of submitted homework assignments and the oral examination.

Assignments 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 (incl. group presentation).  

Litteratur udover forskningsartikler:The most important books that we will use are:

  • Seamless Object-Oriented Software Architecture by Kim Waldén and Jean-Marc Nerson (downloadable)
  • Object-Oriented Software Construction (2nd ed.) by Bertrand Meyer (what we will call OOSC2)
  • C# Precisely by Peter Sestoft and Henrik I. Hansen
  • ECMA C# and CLI Standards (downloadable)


I strongly suggest purchasing a copy of OOSC2. A new edition of C# Precisely is being written at the moment and we may have an opportunity to use, and give feedback on, drafts of it in this course. It 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.

Note that any decent textbook on C#, not just “C# Precisely,” will likely suffice when it comes to learning the language. I like Peter’s book because it is precise (surprise, surprise), concise, and to-the-point. The resources that come with VisualStudio are also likely enough to learn the language too, as it includes an entire book on C#, which is installed optionally with the IDE.

Additional texts that cover the various areas that this course touches upon include the following.

C#

  • Essential C# 4.0 by Mark Michaelis

  • Programming C# (4th ed.) by Jesse Liberty



    • Software Engineering
    • Software Engineering: Modern Approaches (2nd ed.) by Eric J. Braude and Michael E. Bernstein

    • Software Engineering (8th ed.) by Ian Sommerville

    • Software Engineering: Principles and Practice (3rd ed.) by Hans Van Vliet

    • Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition by Frederick P. Brooks Jr.

    • Facts and Fallacies of Software Engineering by Robert L. Glass



    Software Architecture

    • Software Architecture in Practice (2nd ed.) by Len Bass, Paul Clements, and Rick Kazman

    • Software Architecture: Foundations, Theory, and Practice by Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy



    Software Design and Development

    • Program Development in Java: Abstraction, Specification, and Object-Oriented Design by Barbara Liskov with John Guttag

    • Code Complete (2nd ed.) by Steve McConnell

    • Object-Oriented Analysis and Design with Applications (3rd ed.) by Grady Booch; Robert A. Maksimchuk; Michael W. Engle; Bobbi J. Young Ph.D.; Jim Conallen; Kelli A. Houston

    • Design Patterns in C# by Steven John Metsker

    • Refactoring: Improving the Design of Existing Code by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts



    The Unified Modeling Language and Process

    • UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed.) by Martin Fowler

    • Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd ed.) by Craig Larman

    • Learning UML 2.0 by Russ Miles and Kim Hamilton

    • UML 2.0 in a Nutshell (1st ed.) by Dan Pilone and Neil Pitman

    • Visual Modeling with IBM Rational Software Architect and UML by Terry Quatrani and Jim Palistrant

     
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 12.00-13.50 Forelæsning ITU Aud 4
Mandag 14.00-15.50 Forelæsning ITU Aud 4
Mandag 16.00-17.50 Øvelser ITU Aud 4
Onsdag 12.00-13.50 Forelæsning ITU Aud 5 (3A12/14)
Onsdag 14.00-15.50 Forelæsning ITU Aud 5 (3A12/14)
Onsdag 16.00-17.50 Øvelser ITU Aud 5 (3A12/14)

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2011-12-14 09:00-15:00 Skriftlige arbejder ITU Eksamenskontoret (2E)
2012-01-17 Please contact the course manager Mundtlig eksamen ITU 2A52
2012-01-18 Please contact the course manager Mundtlig eksamen ITU 2A52
2012-01-19 Please contact the course manager Mundtlig eksamen ITU 2A52
2012-01-20 Please contact the course manager Mundtlig eksamen ITU 2A52