Software architectures2015VT
|
|
Course plan
No of lectures
5 x 1h lectures with course introduction, an overview of software architectures, contemporary research challenges and course topics, and course summary. Invited guest lecture 2h.
Recommended for
PhD students with a research topic in Software Engineering and a background in CS/SE from Master's level studies.
The course was last given
This is a new course.
Goals
After the course, students should be able to:
- Distinguish between software architecture styles used to create software
- Describe common software qualities and metrics for them.
- Evaluate a given implementation of a software architecture with respect to
software quality criteria
- Describe theoretical properties of software component models and their
relationships to practical problems in software engineering.
- Describe and analyze techniques used to create software components in
contemporary software component frameworks.
- Construct software components in a given software architecture with an
existing ecosystem of software components.
- Analyze contemporary paradigms and frameworks for building large-scale
applications with respect to software qualities.
Prerequisites
Students should be able to work independently with large-scale software systems, be familiar with concepts in object-oriented software design such as, for example, Design Patterns, SOLID, coupling and cohesion. Students should be able to read research papers in software engineering related to topics of the course, and to write a technical report in proper English.
Organization
The course is organized around a set of lectures on some selected topics in
Software Architectures and large-scale software development, and a series of
seminars where students present practical and theoretical work during the
course.
Students are required to select their own topics to work on during the course,
read and evaluate others' papers, and construct practical learning material for
other participants in the course. There will be a set of topics for students to
choose from, and all topics must be chosen. For each main topic, students may
choose to direct their studies to particular areas of interest during the
course.
Contents
Software Quality Attributes, Software Quality Metrics, Software Architecture
Styles. Challenges related to distributed development and deployment,
availability, scalability, and evolution.
Theoretical and empirical research methods in software architecture.
Examples of techniques from functional programming for solving scalability and
availability in software architectures such as Reactive Programming, Map-Reduce
and LINQ.
Examples of techniques for solving problems related to development and
deployment in large-scale software development, such as the OSGi Component
Model and specifically the Eclipse platform as built on the Equinox OSGi
container.
Examples of distribution and dependency models for software components, such as
Apache Maven and the Debian package management system.
Literature
http://www.ida.liu.se/~olale/software_architecture/literature.en.shtml
Lecturers
Ola Leifler and a guest lecturer.
Examiner
Kristian Sandahl and Ola Leifler
Examination
Written 10-page report, participation in seminars and reviewing other students' papers in the course. Construction of a tutorial lab on a selected technology, and participation in a set of tutorial sessions constructed by other students.
Credit
6 hp
Comments
Page responsible: Director of Graduate Studies