Software Engineering
|
Lecturer:
|
Florian Matthes |
|
Duration:
|
2 hours per week lectures, 1 hour per week lab classes |
|
ECTS Credits:
|
-- |
|
Periodicity:
|
every summer semester |
|
Certificate:
|
written exam at the end of the semester |
| |
|
Introduction to the principles, concepts, notations, methods and tools used
for the engineering of large-scale software systems. In accompaning lab classes
students learn to apply this knowledge for the development of a small software
system in a team of developers.
This course focuses on theobject-oriented software engineering paradigm.
| Positin within the Curriculum |
- 6th semester targeting students of computer science engineering, electrical
engineering and general engineering
- Introduction and overview
- functional, operational and business requirements for software systems
- software development phases
- software development process models
- computer-aided software engineering (CASE)
- Enterprise modeling
- enterprise overview diagram
- business process model
- Planning phase
- requirements document
- cost estimation techniques
- Analysis phase
- functional specification
- user interface concept
- draft user manual
- enterprise data model and world model
- class diagram
- interaction diagram
- state machine
- object-oriented analysis techniques
- Design phase
- software architectures (overview of design alternatives)
- user interaction
- persistent object storage
- object distribution
- software component management
- top-down vs. bottom-up design
- class and component libraries
- design patterns
- object-oriented design techniques
- Implementation phase
- language-independent implementation principles
- programming guidelines
- stepwise refinement
- Cutover and installation
- Software maintenance and software evolution
- Helmut Balzert: Lehrbuch der Software-Technik, Band 1 und 2, Spektrum
Akademischer Verlag, 1998.
- Ian Sommerville: Software Engineering, 5th Edition, Addison Wesley,
1996.
- Additional references are provided in the lecture.