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

  • German, 80%
  • English, 20%

Study Level

  • graduate

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

  • Prof.Dr.Kreiser

Supporting Scientific Staff

  • Dipl.-Ing. N. Kellersohn

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

Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki? Feedback senden