Courses

PA1454 Software Architectures and Quality

Programme course, 6 Higher education credits, First cycle, autumn semester 2022

This course is part of a programme and cannot be applied.

Software Architecture is an important technical concept in modern large-scale software development that serves several purposes: planning development resources; analyzing the problem domain from multiple perspectives using the architectural views; and abstracting big amounts of information to obtain a useful overview of the system.
In addition, the architecture and the decisions on how to construct architecture are a key component to plan and achieve a certain level of quality in a system, which thereby determines how successful the system will be.
In the course the students are expected to obtain detailed knowledge about software architectures and software quality and the effects software architectures and architectural decisions have on the qualities of the software product under development.
The students will acquire understanding about how to: i) document software architectures of existing systems; ii) construct software architectures based on modern methods and ideas such as architecture styles and patterns and tactics, by considering the intended product, the surrounding technology and the developing organization; iii) discuss the suitability of a software architecture for a specific software product in a specific context using facts as basis.

Facts

  • Mode of delivery: On campus, day, part-time 50%
  • Programme period: 2022-October-31 until 2023-January-15
  • Education level: G1F
  • Application: This course is part of a programme and cannot be applied.
  • Language of instruction: The teaching language is English.
  • Location: Karlskrona
  • Main field of study: Software Engineering
  • Course plan: Download
  • Welcome letter: This course is part of a programme and has no welcome letter.
  • Entry requirements: The student must have successfully completed a total of 22,5 ECTS credits within the following areas: Software Design, Data Structures and Algorithms, Database Systems, Computer Networks, Real-Time Systems, Operating Systems and successfully completed a course in Programming of at least 6 credits.

Content

The course comprises the following topics:
  • Quality aspects in software and software architectures
  • Architectural styles, views, languages and patterns
  • Recovery and description of software architecture from source code
  • Methods for architectural design, evaluation and transformation
  • Literature review of relevant research articles about software architecture.

Learning outcomes

Knowledge and understanding
On completion of the course, the student should be able to:
  • Read, interpret, produce and reason about software architecture descriptions, relating to different architectural concerns, with some of the most common architectural views.
  • Recognize and reason about the connections between software architecture, product qualities, the development process, the resource needs, and the development organization.



Competence and skills
On completion of the course, the student should be able to:
  • Produce, document and communicate a simple system software architecture, so that this documentation can be used as guidance to develop the system and to achieve the desired qualities/characteristics.
  • Select and apply the most suitable solutions to achieve the quality requirements.
  • Identify and document the implementation rules and guidelines based on a software architecture.


Judgement and approach
On completion of the course, the student should be able to:
  • Critically evaluate a software architecture, and with facts an explicit assumption as the basis, assess how well the development work needs are met, and the quality characteristics can be achieved.
  • Analyze, recommend and apply architectural modifications and improvements to be able to meet certain quality levels.

Course literature and other teaching material

Main books
1.- Software Architecture in Practice, 3rd Edition
Authors: L. Bass, P. Clements, and R. Kazman
Addison-Wesley, 2012.
ISBN10: 0321815734 ISBN13: 97803218157362.

2.- Applied Software Architecture
Authors: C. Hofmeister, R. Nord, and D. Soni,
Addison-Wesley Professional, 2000.
ISBN 10: 0321643346 ISBN 13: 9780321643346.

Reference Materials
3. Documenting Software Architectures: Views and Beyond, 2nd Edition
Authors P. C. Clements et al.,
Pearson Education, 2010.
ISBN 10: 0321552687 ISBN 13: 978-0321552686.

Course literature and other teaching material

Main books
1.- Software Architecture in Practice, 3rd Edition
Authors: L. Bass, P. Clements, and R. Kazman
Addison-Wesley, 2012.
ISBN10: 0321815734 ISBN13: 97803218157362.

2.- Applied Software Architecture
Authors: C. Hofmeister, R. Nord, and D. Soni,
Addison-Wesley Professional, 2000.
ISBN 10: 0321643346 ISBN 13: 9780321643346.

Reference Materials
3. Documenting Software Architectures: Views and Beyond, 2nd Edition
Authors P. C. Clements et al.,
Pearson Education, 2010.
ISBN 10: 0321552687 ISBN 13: 978-0321552686.

Learning methods

The course builds upon individual readings, lectures, individual research work, as well as team work in small projects (assignments).
The course contents are organized around a number of lectures where the students are expected to actively participate by discussing, questioning and reflecting about their own experiences, and their understanding of the conflicting concepts they have read in the course literature and in research papers in the area. These lectures together with their readings constitute the pillars over which the group assignments build upon.
The two assignments consist on real-world but scale-controlled exercises in which the students are intended to apply the concepts, methods and techniques presented in class to document, evaluate and eventually transform software architectures.
Interleaved in between the lectures and assignments, there are a number of practical sessions (seminars) in which the students, with the assistance of the instructor, cooperate to solve some of the problems related to their own assignments.
A written exam completes the course, comprising both multiple-choice and / or essay, open questions.
This gives a mixture of state-of-the-art as described in research articles, and state-of-practice as evidenced by personal experiences, and industry studies.

Work placement

Practice, project work and guest lectures (most years).

Teachers

Planned learning activities

Lectures, seminars, exercises and laboratory sessions.

Time allocation

On average, a student should study 160 hours to reach the learning outcomes.
This time includes all the various available learning activities (lectures, self studies, examinations, etc.).
This estimation is based on the fact that one academic year counts as 60 ECTS credits,
corresponding to an average student workload of 1 600 hours. This may vary individually.

Assessments

Component examinations for the course
Code Title ECTS credits Grade
1710 Assignment 1 1.5 A-F
1720 Assignment 2 3 A-F
1730 Written exam 1.5 A-F

Grading

The course will be graded A Excellent, B Very good, C Good, D Satisfactory, E Sufficient, FX Insufficient, supplementation required, F Fail.

Exams

More information about exams are found in the Student's Portal, where you also enrolls for most exams.


There might be other scheduled examinations. Information regarding these examinations are available in the learning platform Canvas or at other places that the person who is responsible of the course will refer to.

Course Evaluation

The course manager is responsible for the views of students on the course being systematically and regularly gathered and that the results of the evaluations in various forms affect the form and development of the course.