Course Software Engineering by Components and Pattern
Responsible: Prof.Dr. Kreiser
Course
Meets requirements of following modules(MID)
Course Organization
Version |
created |
2013-07-24 |
VID |
2 |
valid from |
WS 2012/13 |
valid to |
|
|
|
Course identifiers |
Long name |
Software Engineering by Components and Pattern |
CID |
F07_SEKM |
CEID (exam identifier) |
|
|
Contact hours per week (SWS) |
Lecture |
2 |
Exercise (unsplit) |
|
Exercise (split) |
|
Lab |
|
Project |
1 |
Seminar |
2 |
Tutorial(voluntary) |
|
|
|
Total contact hours |
Lecture |
30 |
Exercise (unsplit) |
|
Exercise (split) |
|
Lab |
|
Project |
15 |
Seminar |
30 |
Tutorial (voluntary) |
|
|
|
Max. capacity |
Exercise (unsplit) |
|
Exercise (split) |
|
Lab |
|
Project |
18 |
Seminar |
30 |
|
Total effort (hours): 150
Instruction language
Study Level
Prerequisites
- object oriented programming, preferred language C++
- modeling object oriented software systems using UML
- class diagram
- use-case diagram
- activity diagram and concept of actions
- sequence diagram
- state machine diagram and variants
- package diagram
- component diagram
- evolutionary process models, e.g. SCRUM or XP
- essential softare architectural models
- interconnection models in software systems (OSI, TCPIP, Messaging)
Textbooks, Recommended Reading
- D. Schmidt et.al.: Pattern-Oriented Software Architecture. Patterns for Concurrent and Networked Objects (Wiley)
- Gamma et.al.: Design Patterns, (Addison-Wesley)
- Martin Fowler: Refactoring, Engl. ed. (Addison-Wesley Professional)
- U. Hammerschall: Verteilte Systeme und Anwendungen (Pearson Studium)
- M. Born et. al.: Softwareentwicklung mit UML 2. Die "neuen" Entwurfstechniken UML 2, MOF 2 und MDA (Addison-Wesley)
- Andreas Andresen: Komponentenbasierte Softwareentwicklung m. MDA, UML2, XML (Hanser Verlag)
- T. Ritter et. al.: CORBA Komponenten. Effektives Software-Design u. Progr. (Springer)
- Bernd Oestereich: Analyse und Design mit UML 2.3 (Oldenbourg)
- OMG Unified Modeling Language Spec., www.omg.org/uml
- I. Sommerville: Software Engineering (Addison-Wesley / Pearson Studium)
- K. Beck: eXtreme Programming (Addison-Wesley Professional)
- Ken Schwaber: Agiles Projektmanagement mit Scrum (Microsoft Press)
Instructors
Supporting Scientific Staff
Transcipt Entry
Software Engineering by Components and Pattern
Assessment
Type |
oE |
50% |
oR |
50% (based on seminar work) |
Total effort [hours] |
oR+oE |
10 |
Frequency: 2-3/year
Course components
Lecture/Exercise
Objectives
Contents
- Terminology
- value vs. cost of a technical software
- distributed software system, concurrency
- software quality, quality of service, refactoring
- complexity (algorithmic, structural), emergence
- re-use, symmetry and symmetry operations, abstraction, invariants
- quality controlled re-use, methodical approaches
- variants of white box re-use
- black box re-use
- grey box re-use (hierarchical approach to re-use)
- re-use in automation control software systems
- determinism
- benefits and challenges
- tailoring process models and personnel structures in projects
- meet requirements in development projects predictably (product quality, cost, deadlines)
- distributed development, maintenance and support of software systems
- software pattern
- pattern description using UML
- essential architectural pattern
- construction pattern
- structural pattern
- behavioural pattern
- class based (static) vs. object based (dynamic) pattern
- essential pattern for concurrent and networked real time systems
- encapsulation and role based extension of layered architectures
- concurrency structures to optimize throughput and system response latency
- distributed event processing
- process synchronisation
- thread safety (optional)
- construction and use of pattern catalogues, pattern languages
- pattern based design of complex software systems
- components and frameworks
- design principles
- interface architectur
- active and passive system elements
- design, programming and test
- quality
- configuration and use
- using middleware systems to develop architectures of technical software systems
- ORB architectures, e.g. CORBA and TAO
- integrated system plattforms, e.g. MS .NET
- multi agent systems (MAS)
- agent architectural models
- collaboration between agents
- agent languages
- considering cases for MAS application
Acquired Skills
- use pattern to design complex software systems
- extract and discuss purpose, limitation of use, invariant and configurable parts of pattern from english and german literature sources
- understand implementation skeletons of pattern and map them to problem settings with limited technical focus
- discuss benefits of using object oriented programming languages
- derive recurrent settings in the development of complex software systems
- implement pattern on exemplary settings and test resulting implementations
- reasonably combine pattern to solve recurring problem settings with a broader technical focus
- use UML2 notations
- use professional UML2 IDE for round-trip-engineering
- integrate software system based on exemplary implementations of the pattern to combine
- conduct integration test, assess software quality and optimize software system
- construct black-box-components based on pattern
- analyse component based software architectures
- derive suitable scope from architectural specs
- understand and discuss development process to construct software systems
- find active and passive system elements and derive system run time behaviour
- understand abstract system interfaces to interconnect, configure and activate components
- understand abstract system interfaces to exchange applicational run time data
- understand system extension points (functional and structural system configuration layer)
- analyse distribution architectures
- understand basic system services (describe and reason service usage, relate to system tasks)
- relate pattern to structure making architectural software artefacts
- derive suitable range of appications for a given distribution architecture
- understand engineering process to construct user applications (application layer)
- discuss attributes and limitation of usage of interconnection protocols
- find designated system extension points
- compare MAS to conventional distribution architectures
- agent vs. component
- architectural models
- activation of agents
- deployment of agents
- protocols for interconnection and collaboration
- range of appications and and limitation of usage
Additional Component Assessment
Type |
fPS |
excercise (on course and self study) |
Contribution to course grade |
fPS |
not rated |
Frequency: 1/year
Project
Objectives
Operational Competences
- develop a software artefact of a distibution architecture for complex software systems
- use agile process model to control development in a distributed team
- analyse complete functionality of software artefact in distribution architecture
- conduct requirements analysis for the software artefact
- specify and model software artefact
- use design principles and pattern to hold specified quality goals
- model interfaces, behaviour and structure based on pattern using UML2
- confidently use professional UML2 IDE
- verify, evaluate, correct and optimize models
- use C++ language to program software artefact
- define suitable test scenarios and verify software artefact
- evalute quality of developed software artefact
- present project outcomes to academic audience
Additional Component Assessment
Type |
fTP |
3 lab experiments (each 4h) per project team |
oR |
presentation on fTP (20min per project team) |
Contribution to course grade |
fTP |
Attestation |
oR |
prerequisite to course exam |
Frequency: 1/year
Seminar
Objectives
Acquired Skills
- discuss methodic concepts for re-use of software artefacts (potential topics: pattern for distributed and networked systems, distribution architectures, MAS or any related topic)
- literature study (academic literature)
- analyse and classify with regard to given set questions
- exemplarily implement (as skeleton or executable example software regarding to complexity) and reason implemenation
Operational Competences
- summarize findings as academic lecture and paper
- present lecture to academic audience (20-30min presentation) and discuss findings
Additional Component Assessment
Type |
fLP |
literatur study (scientific literatur) |
fIN |
academic discourse on given problem |
Contribution to course grade |
fLP |
rated (contributes to oR) |
fIN |
rated (contributes to oR) |
Frequency: 1/year
Das Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki?
Feedback senden