581358 Ohjelmistoarkkitehtuurit

Principal theme Prerequisite knowledge Approaches the learning objectives Reaches the learning objectives Deepens the learning objectives
Software Architecture and modeling

Software Modelling (course in Intermediate studies, required): UML

Software Engineering (course in Intermediate studies, required): general understanding of the nature of software development and development methods and of the different activities involved

Software Engineering Project (course in Intermediate studies, recommended): developing software as group work using agile methods

Can explain what software architecture means

Can explain and give examples of the elements used in modelling software architecture (components, connectors)

Can explain what a View means in architecture models

Can explain the role of software architecture and modelling in software development

Can describe the canonical structure of a software architecture model and the relationships between the main parts of the model

Knows different ways to model software architecture and can apply some of them

Can justify the applicability of the different viewtypes for documenting and modeling of architecture

Can justify different strategic choices for managing the gap between architecture design and the implementation (code model) of a system

 

Can develop a domain and design model for a software system

Knows and can justify which models to make during sofware development and how to maintain them during the lifecycle

Architectural Styles and Patterns Design Patterns (f.ex from Software Engineering course)

Can explain what Architectural Style means

Can explain the basic ideas of some common architectural styles

Can explain why some common architectural style fits or does not fit a certain design problem (context)

Can evaluate and compare the pros and cons of using common architectural styles in a certain situation

Can identify and analyse which architectural styles have been applied in the design of a software system

Can identify and analyse which architectural styles have been applied in the design of a software system
Architecture Design  

Can list and briefly describe quality requirements that affect software architecture

Can explain the issues in taking quality requirements into account in software development

Can describe some design tactics that help to reach certain quality attribute targets (modifiability, performance)

Can evaluate/rationalize the impact of architecture design decisions on the quality attributes of a software system

Knows a comprehensive set of architectural design tactics that affect different quality attributes

Masters the design tactics and patterns that affect a certain quality attribute and can apply them

Reuse of Architectures  

Can explain the terms domain specific software engineering, product family, reference architecture, product-line architecture, software framework

Can explain the role of variants and variation in the context of product-line architectures and frameworks

Knows and can discuss the principles underpinning product-line architectures and software frameworks

Can explain the life-cycles of a product-line architecture and a framework

Can create an architecture model of a product-line architecture and a framework

Can design an architecture for a simple framework

(Targets for the separate Lab course)

Architecture Assessment  

Can explain the goals of architecture assessment

Can give an example of an architecture assessment methodology and explain its principles

Can assess and evaluate an architecture from the perspective of a quality attribute

(Target for the separate Lab course)

 

12.12.2016 - 17:49 Antti-Pekka Tuovinen
07.10.2014 - 16:30 Antti-Pekka Tuovinen