IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Software Architecture, DIT 
Kursusnavn (engelsk):Software Architecture, DIT 
Semester:Forår 2017 
Udbydes under:Diplom i it, Diplom (dit) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:20 
Formelle forudsætninger:There are no formal prerequisites for this course, but the students are expected to have knowledge of the following topics, or be willing to learn them during the course without significant teaching staff support.
• Basic concepts of software engineering, requirements engineering and object-oriented analysis and design.
• Fundamental software patterns, such as ‘model-view-controller’ and ‘broker’.
• Basic knowledge of UML (Unified Modeling Language), as software architecture will be documented using UML.
The knowledge outlined above could be gained through work experience, or by taking university courses relevant to object-oriented concepts. 
Læringsmål:After the course, the students are expected to be able to:

• Argue the importance and role of software architecture in large-scale software systems
• Recognize major software architectural styles, design patterns, and frameworks
• Describe a software architecture using various documentation approaches
• Generate architectural alternatives for a problem, consider trade-offs, and make a selection among the alternatives
• Identify and assess quality attributes of a system at the architectural level
• Analyze architectural concerns for designing and evaluating a system architecture 
Fagligt indhold:PLEASE NOTE: The learning activities in this course (i.e., lectures, exercises, and assignments) do not have programming-related tasks. Whilst the programming-related knowledge and skills can be beneficial, this course is not suitable for those, who want to take a course which has programming-related tasks and learning activities.

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 organizations 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 DIT students with a sound technical exposure to the concepts, principles, methods, and best practices in software architecture.

The course will cover the following main topics:

• 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
• Future challenges and emerging trends in software architecture discipline 
Læringsaktiviteter:

Project Cluster 2.0. That is, 4 weeks of teaching, each including a 2-hour lecture and a 2-hour exercise, and a supervision of a written assignment (project).
The lectures will be designed in a seminar style, where the students are expected to take active participation. 

Obligatoriske aktivititer:
Eksamensform og -beskrivelse:D11: Aflevering med mundtlig eksamen baseret på aflevering., (7-scale, internal exam)

-  

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

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 following; if relevant material from these books is used, you would be provided with the material in an electronic form, such as a pdf. You are NOT required to buy any of these books for this course.

• Hruby, P., Kiehn, J., Scheller, C.V: Model-Driven Design Using Business Patterns, Springer 2006.
• 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.