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) |