IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Softwarearkitektur 
Kursusnavn (engelsk):Software Architecture 
Semester:Efterår 2011 
Udbydes under:Master i it, softwarekonstruktion (sok) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:15 
Forventet antal deltagere:25 
Maks. antal deltagere:50 
Formelle forudsætninger:To sign up for the course you should have a good knowledge of object-oriented programming, e.g. by working as a software developer with object oriented languages for at least 2 years.

For M.Sc. students: you should have skills in object oriented programming at least on a level comparable to the object oriented programming course offered at the IT University. Preferably, you have experience with object oriented software development through participating in a small or medium size software engineering project. You should be familiar with the notion and usage of object oriented design patterns like 'facade', 'factory', or 'observer pattern'.

Moreover the student must always meet the admission requirements of the IT University.

Other information but not formal prerequisite:

The students are expected to know Unified Modeling Language (UML) as software architecture design will be documented using UML. Or the students are willing to learn UML for documenting software architectures with minimum support from the teaching staff. The course will also involve architectural and design patterns (Object-Oriented and Service-Oriented) and the students will be encouraged to learn a selected set of architectural patterns if they would have a good knowledge about them. 
Læringsmål:Software Architecture has been attracting significant attention from researchers and practitioners since the last decade of 20th century. The increasing size, complexity, and demand for quality software systems are some of the most important issues that have increased interest in this sub-discipline of software engineering. Since a good architecture is considered one of the key factors in successfully developing and evolving a system or a family of systems, an increasing number of organisations are spending a considerable amount of effort and resources on designing and evaluating architectures of their software-intensive systems. Employers are expecting software engineers to be highly skilled and competent in designing, evaluating, and managing architectures of large-scale systems. That is why an increasing number of academic institutes are responding to the increasing demand of knowledgeable and skilled software architects by offering dedicated courses on software architecture in software engineering curricula.
The objective of the course is to provide postgraduate students with a sound technical exposure to the concepts, principles, methods, and best practices in software architecture. At the conclusion of the course, the students are expected to be able to:

• Argue the importance and role of software architecture in large scale software systems
• Design and motivate software architecture for large scale software systems
• Recognise major software architectural styles, design patterns, and frameworks
• Describe a software architecture using various documentation approaches and architectural description languages
• Generate architectural alternatives for a problem and select among them
• Use well-understood paradigms for designing new systems
• Identify and assess the quality attributes of a system at the architectural level
• Motivate the architectural concerns and approach for families of products
• Discuss and evaluate the current trends and technologies such as model-driven, service-oriented, and aspect-oriented architectures
• Evaluate the coming attractions in software architecture research and practice 
Fagligt indhold:The following are the topics to be covered in this course:

• Introduction to the fundamentals of software architecture.
• Software architecture and quality requirements of a software system
• Fundamental principles and guidelines for software architecture design, architectural styles, patterns, and frameworks.
• Methods, techniques, and tools for describing software architecture and documenting design rationale.
• Software architecture design and evaluation processes.
• Rationale and architectural knowledge management in software architecting.
• Software architectures for product lines.
• Model Driven approaches and tools for designing and evaluating architectures.
• Service-oriented architectures.
• Future challenges and emerging trends in software architecture discipline. 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

14 weeks of teaching consisting of lectures and exercises


The course will also involve guest lectures, students presentations, and project work.

Note: The lectures will be designed along the lines of seminar style where the students are expected to take active participation. While the attendance in most of the lectures are not mandatory, it is quite difficult to perform well without attending the lectures and exercise sessions. 

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

The duration of the written examination is 4 hour(s).


Qualification for examination:

There will be three components. Feedback on these assignments will be provided in the exercise classes ONLY. Individual and/or detailed feedback will be provided whenever request by an individual student. Each student must satisfactorily perform on all three components of the mandatory assignments in order to qualify for the final exam.

Individual assignments (Two)
Group presentations (One)
Group project (Two phases)

Submission/completion of mandatory activities before Friday 2. December 2011 at 15:00.  

Litteratur udover forskningsartikler:The students will be expected to work with the course curriculum based on the following book:

1. Gorton, I., Essential Software Architecture, First edition (2006) or Second edition (2011), Springer.

Some material for the course will also be drawn from other complementary books such as the followings; if relevant material used from these books, you would be given photocopies of the material. You are NOT required to buy any of these books for this course:

• Bass, L., Clements, P. and Kazman, R., Software Architecture in Practice, 2003, Addison-Wesley.
• Taylor, R., Medvidovic, N., Dashofy, E., Software Architecture: Foundations, Theory, and Practice, 2010, Wiley.
• Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, j., Little, R., Nord, R. and Stafford, J., Documenting Software Architectures: Views and Beyond, 2002, Addison-Wesley.
• Clements, P., Kazman, R. and Klein, M., Evaluating Software Architectures: Methods and Case Studies, 2002, Addison-Wesley.
• Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Pattern-Oriented Software Architecture: A System of Patterns, 1996, Wiley. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 17.00-18.50 Forelæsning ITU Aud 5 (3A12/14)
Mandag 19.00-20.50 Øvelser ITU Aud 5 (3A12/14)

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2012-01-05 09:00-13:00 Skriftlig eksamen ITU 2A12/2A14