IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Softwarearkitektur 
Kursusnavn (engelsk):Software Architecture 
Semester:Efterår 2013 
Udbydes under:Master i it, Softwarekonstruktion (sko) 
Omfang i ECTS:7,50 
Min. antal deltagere:15 
Forventet antal deltagere:25 
Maks. antal deltagere:40 
Formelle forudsætninger:To sign up for the course you should have a working knowledge of software system analysis and design using approaches like object-oriented analysis and design, and object-oriented programming. The required knowledge may have been gained through work experience as a software developer with object oriented technologies for at least 2 years or taking up courses a University on the topics relevant to Object-Orientation.

For M.Sc. students: you should have skills in software system analysis and design and object-oriented programming at least on a level comparable to the courses aimed at teaching students requirements engineering and system analysis and design, Model-Driven Development, and object oriented programming 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'.

PLEASE NOTE: The learning activities in this course (i.e., Lectures, Exercises, and Assignments) do not usually have programming related tasks. Whilst the programming related knowledge and skills can be beneficial, this course is not suitable for those who want to do a course which has programming related tasks and learning activities.

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: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 for designing and evaluating a system's architecture
• Discuss and evaluate the current trends and technologies such as model-driven and service-oriented architectures
• • Evaluate the coming attractions in software architecture research and practice 
Fagligt indhold: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.

PLEASE NOTE: The learning activities in this course (i.e., Lectures, Exercises, and Assignments) do not usually have programming related tasks. Whilst the programming related knowledge and skills can be beneficial, this course is not suitable for those who want to do a course which has programming related tasks and learning activities.

The following are the main 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.
• Approaches and tools for designing and evaluating software architectures for the state-of-the-art technologies such as cloud-computing and service-orientation, and mobile computing.
• 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. 

Obligatoriske aktivititer: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) 
Eksamensform og -beskrivelse:A11: Skriftlig eksamen (stedprøve) med adgang til internet, skriftlige og trykte hjælpemidler., 7-trins-skala, Ekstern censur

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

Submission/completion of mandatory activities before xxx  

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. 
Følgende personer underviser på kurset:
Navn Stilling Undervisertype Indsats (%)
Muhammad Ali Babar Lektor(ITU) Kursusansvarlig 100
Muhammad Aufeef Chauhan Ph.d.-studerende(ITU) Underviser 0
Mansooreh Zahedi Ph.d.-studerende(ITU) Underviser 0
Paolo Tell Ph.d.-studerende(ITU) Underviser 0

Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
Ugedag Tidspunkt Forelæsning/Øvelser Sted Lokale
Mandag 17.00-18.50 Forelæsning ITU Aud. 4
Mandag 19.00-20.50 Øvelser ITU Aud.4, 4A56, 4A58

Eksamen afholdes på følgende tid og sted:
Eksamensdato Tidspunkt Eksamenstype Sted Lokale
2014-01-09 09:00-13:00 Skriftlig eksamen ITU 4A16