Software Architectures and ModelsLaajuus (5 ECTS)
Course unit code: TX00CG83
General information
- Credits
- 5 ECTS
Objective
Student is familiar with typical software architectures. He is able to describe and model software structures and functionality with common modeling techniques and tools. Student knows commonly used design patters and some important domain specific models. He is able to utilize models in software design. He is also familiar with programming work best practices.
Content
• software architectures
• object-oriented design patters
• software modeling, UML
• best practices
Qualifications
First year studies (Orientation to information and communication technology) or comparable knowledge, Object-oriented programming (C++).
Assessment criteria, satisfactory (1)
• Student understands concept of software architecture.
• Student is able to explain goals and need of modeling.
• Student is able to classify most important UML diagram types according to their usage.
• Student can explain and give an example of structural and functional models.
• Student can utilize a CASE tool for producing separate UML diagrams.
• Student knows best practices for programming work.
• Student can explain why design patterns are important, and knows some patterns.
Assessment criteria, good (3)
• Student is familiar with most important software architectures.
• Student is able to explain goals of modeling at various points of software life cycle.
• Student is able to utilize use case diagrams and descriptions in requirements analysis.
• Student is able to utilize class diagrams, sequence diagrams, and state diagrams for modeling various design aspects.
• Student is able to apply best practices and design patterns in programming work.
Assessment criteria, excellent (5)
• Student is able to design rational software architectures.
• Student is able to choose proper modeling technique for given domain and task.
• Student is able to choose proper modeling methodologies for varying software projects.
• Student is able to utilize modeling and UML diagrams at every phase of a software project.
• Student is able to comprehensively model a software system from various points of view and at different levels of abstraction.
• Student is versatile in applying best practices and design patterns
• Student is able to skillfully apply best practices and design patterns in programming work.