![Syllabus(30+15+15)](_derived/syllabus_short.htm_cmp_tilt000_vbtn.gif)
| | Legend:
- lh means 'lecture hours' (1 lh = 45 minutes).
-
Red numbers denote more important topics.
- (CS-L)
marks all places where the case study for lectures
is used as an illustrative example during lectures. At this moment, these
examples will be included into lecture slides.
- (CS-Ldoc)
- the same as above, but these are examples of produced documents that use
the case study. These documents can be given to students for individual
inspection, or discussed during exercises.
-
(CS-XCTL)
marks all places where the additional case study
(XCTL control program) is used during lectures. Example(s) will be included
into lecture slides.
![](_themes/tilt/tlrule.gif)
Click
here for a shorter version of a course
(30+15+15)
![](_themes/tilt/tlrule.gif)
PART I
|
Introduction to Software engineering
|
5 lh |
1 |
What
is Software engineering? |
2 lh |
![bullet](_themes/tilt/tlbull1.gif) | Several definitions of software engineering |
![bullet](_themes/tilt/tlbull1.gif) | Areas of software engineering (i.e., what belongs to it) |
![bullet](_themes/tilt/tlbull1.gif) | The importance of software engineering in practice -
problems of software development |
![bullet](_themes/tilt/tlbull1.gif) | On the size of software |
![bullet](_themes/tilt/tlbull1.gif) | History of software engineering |
![bullet](_themes/tilt/tlbull1.gif) | Problems of introducing software engineering in education |
![bullet](_themes/tilt/tlbull1.gif) | Differences between software development in educational
environment and in practice |
![bullet](_themes/tilt/tlbull1.gif) | Goals of this course |
![bullet](_themes/tilt/tlbull1.gif) | Literature, articles, papers, ... |
2 |
Quality criteria
for software products |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Quality criteria for software products |
![bullet](_themes/tilt/tlbull1.gif) | Definition of every quality criterion |
![bullet](_themes/tilt/tlbull1.gif) | Classifications of quality criteria (inner and outer) |
![bullet](_themes/tilt/tlbull1.gif) | Standard ISO-9126 |
3 |
Software
process models - introduction |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | The importance of process models |
![bullet](_themes/tilt/tlbull1.gif) | Overview of existing models |
![bullet](_themes/tilt/tlbull1.gif) | Classical and iterative phase-model, Waterfall model |
![bullet](_themes/tilt/tlbull1.gif) | Statistics of phases |
![bullet](_themes/tilt/tlbull1.gif) | Alternative phases |
![bullet](_themes/tilt/tlbull1.gif) | Prototyping |
4 |
Basic concepts and software development
documents |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Description of results of software development phases -
software development documents |
![bullet](_themes/tilt/tlbull1.gif) | Definition of basic concepts of software engineering and
their classification |
![bullet](_themes/tilt/tlbull1.gif) | Basic concepts and software development phases |
![bullet](_themes/tilt/tlbull1.gif) | Basic concepts and document notations |
![bullet](_themes/tilt/tlbull1.gif) | Basic concepts and their application areas |
![bullet](_themes/tilt/tlbull1.gif) | Basic concepts and their use in analysis methods |
PART II
|
Requirements engineering (analysis and definition)
|
19 lh |
5 |
Results
of the „Analysis and Definition“ phase
|
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Overview of results: feasibility studies, Product
definition |
![bullet](_themes/tilt/tlbull1.gif) | The content of requirement specification |
![bullet](_themes/tilt/tlbull1.gif) | Standardization |
![bullet](_themes/tilt/tlbull1.gif) | An example of requirements document (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Realistic situation - example |
![bullet](_themes/tilt/tlbull1.gif) | Sources of costs |
![bullet](_themes/tilt/tlbull1.gif) | Influencing factors for cost analysis |
![bullet](_themes/tilt/tlbull1.gif) | Function-point method |
![bullet](_themes/tilt/tlbull1.gif) | An example of application of function point method (CS-L) |
7 |
Basic
concepts of the function-oriented view |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Function trees |
![bullet](_themes/tilt/tlbull1.gif) | Data-flow diagrams |
![bullet](_themes/tilt/tlbull1.gif) | Comparison of two views |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
8 |
Basic
concepts of data-oriented view |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Notation form for grammars (EBNF, data dictionary,
syntax-diagram) |
![bullet](_themes/tilt/tlbull1.gif) | Jackson diagram |
![bullet](_themes/tilt/tlbull1.gif) | Entity-Relationship model |
![bullet](_themes/tilt/tlbull1.gif) | Comparisons |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
9 |
Basic
concepts of rule-oriented view |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Rules |
![bullet](_themes/tilt/tlbull1.gif) | Decision tables |
![bullet](_themes/tilt/tlbull1.gif) | Decision trees |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
10 |
Structured analysis |
2 lh |
![bullet](_themes/tilt/tlbull1.gif) | Paradigms of software development - structured paradigm |
![bullet](_themes/tilt/tlbull1.gif) | Goal, basic concepts, and history of structured analysis |
![bullet](_themes/tilt/tlbull1.gif) | Documentation structure of structured analysis |
![bullet](_themes/tilt/tlbull1.gif) | Example: Data-Flow-Diagram hierarchy (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Example: Data Dictionary (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Mini-specifications |
![bullet](_themes/tilt/tlbull1.gif) | (Implicit) function tree |
![bullet](_themes/tilt/tlbull1.gif) | Evaluation of technique |
11 |
Basic concepts of state-oriented view
|
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | State automata |
![bullet](_themes/tilt/tlbull1.gif) | Activity diagrams |
![bullet](_themes/tilt/tlbull1.gif) | Petri-nets |
12 |
Basic concepts of scenario-based view |
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Collaboration diagrams |
![bullet](_themes/tilt/tlbull1.gif) | Sequence diagrams |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
13 |
Object-oriented analysis |
6 lh |
![bullet](_themes/tilt/tlbull1.gif) | Object-oriented analysis vs. Structured analysis |
![bullet](_themes/tilt/tlbull1.gif) | Approaches, literature, and systems |
![bullet](_themes/tilt/tlbull1.gif) | Basics of object-oriented paradigm of software systems |
![bullet](_themes/tilt/tlbull1.gif) | Class diagram of object-oriented analysis model |
![bullet](_themes/tilt/tlbull1.gif) | Example: class diagram (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Overview of UML |
![bullet](_themes/tilt/tlbull1.gif) | Use-cases. Examples (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Detailed class specification: data dictionary, signature,
pseudo-code,... |
![bullet](_themes/tilt/tlbull1.gif) | The place of object-oriented analysis in software
engineering |
![bullet](_themes/tilt/tlbull1.gif) | Template for performing object-oriented analysis |
![bullet](_themes/tilt/tlbull1.gif) | Demonstration of a CASE tool ('Together') |
14 |
Formal
software specifications and program
verification |
3 lh |
![bullet](_themes/tilt/tlbull1.gif) | Motivation |
![bullet](_themes/tilt/tlbull1.gif) | Algebraic specification |
![bullet](_themes/tilt/tlbull1.gif) | Hoare's specification and verification |
![bullet](_themes/tilt/tlbull1.gif) | Model-oriented specification: specification language Z |
![bullet](_themes/tilt/tlbull1.gif) | Evaluation of techniques |
15 |
Overview
of design activities
|
2 lh |
![bullet](_themes/tilt/tlbull1.gif) | Software architecture - documents of this phase (CS-Ldoc) |
![bullet](_themes/tilt/tlbull1.gif) | Quality criteria |
![bullet](_themes/tilt/tlbull1.gif) | Process and methods |
![bullet](_themes/tilt/tlbull1.gif) | Overview of characteristic software architectures |
16 |
Structured
design
|
1 lh |
![bullet](_themes/tilt/tlbull1.gif) | Overview |
![bullet](_themes/tilt/tlbull1.gif) | Description methods (structure charts) |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
17 |
Object-oriented
design |
2 lh |
![bullet](_themes/tilt/tlbull1.gif) | Phases and activities |
![bullet](_themes/tilt/tlbull1.gif) | Consequences to user-interface |
![bullet](_themes/tilt/tlbull1.gif) | Reusability |
![bullet](_themes/tilt/tlbull1.gif) | Performance improvements |
![bullet](_themes/tilt/tlbull1.gif) | Frameworks |
![bullet](_themes/tilt/tlbull1.gif) | Implementation design |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
PART IV
|
Implementation and Testing
|
10 lh |
![bullet](_themes/tilt/tlbull1.gif) | Documents of this phase (CS-Ldoc) |
![bullet](_themes/tilt/tlbull1.gif) | Principles and methods |
![bullet](_themes/tilt/tlbull1.gif) | Guidelines |
19 |
Systematic
testing
|
6 lh |
![bullet](_themes/tilt/tlbull1.gif) | Motivation and concepts |
![bullet](_themes/tilt/tlbull1.gif) | V (software process) model |
![bullet](_themes/tilt/tlbull1.gif) | The place of testing (validation) in quality assurance plan |
![bullet](_themes/tilt/tlbull1.gif) | Classification of techniques |
![bullet](_themes/tilt/tlbull1.gif) | Control-flow techniques |
![bullet](_themes/tilt/tlbull1.gif) | Data-flow techniques |
![bullet](_themes/tilt/tlbull1.gif) | Documents of this phase (CS-Ldoc) |
20 |
Functional testing |
2 lh |
![bullet](_themes/tilt/tlbull1.gif) | Functional testing |
![bullet](_themes/tilt/tlbull1.gif) | Testing tool CTE |
![bullet](_themes/tilt/tlbull1.gif) | Example (CS-L) |
PART V
|
Advanced problems
|
21 lh |
![bullet](_themes/tilt/tlbull1.gif) | The importance of measuring software |
![bullet](_themes/tilt/tlbull1.gif) | History |
![bullet](_themes/tilt/tlbull1.gif) | Overview and classification |
![bullet](_themes/tilt/tlbull1.gif) | Cyclomatic complexity |
![bullet](_themes/tilt/tlbull1.gif) | Halstead metrics |
![bullet](_themes/tilt/tlbull1.gif) | LOC metrics |
![bullet](_themes/tilt/tlbull1.gif) | Style metrics |
![bullet](_themes/tilt/tlbull1.gif) | Object-oriented metrics |
![bullet](_themes/tilt/tlbull1.gif) | McCabe testing toolset (CAME-Tools) |
![bullet](_themes/tilt/tlbull1.gif) | Evaluation of techniques |
![bullet](_themes/tilt/tlbull1.gif) | A realistic example (CS-L) |
![bullet](_themes/tilt/tlbull1.gif) | Types of maintenance |
![bullet](_themes/tilt/tlbull1.gif) | Maintenance requests specification |
![bullet](_themes/tilt/tlbull1.gif) | Costs and planning |
![bullet](_themes/tilt/tlbull1.gif) | An example (CS-L) |
23 |
Reverse
engineering
|
4 lh |
![bullet](_themes/tilt/tlbull1.gif) | Goals |
![bullet](_themes/tilt/tlbull1.gif) | Concepts |
![bullet](_themes/tilt/tlbull1.gif) | Techniques and tools |
![bullet](_themes/tilt/tlbull1.gif) | A realistic example (CS-XCTL) |
24 |
Quality of software development process and
its standardization |
3 lh |
![bullet](_themes/tilt/tlbull1.gif) | Relationship of quality of software development process and
the quality of software product |
![bullet](_themes/tilt/tlbull1.gif) | Meaning of the software development quality |
![bullet](_themes/tilt/tlbull1.gif) | ISO-9000 normative (CS-Ldoc) |
![bullet](_themes/tilt/tlbull1.gif) | Certificates (motivation and procedure) |
![bullet](_themes/tilt/tlbull1.gif) | Overview of capability assessment models (PSP, TSP, CMM) |
![bullet](_themes/tilt/tlbull1.gif) | Spiral software process model |
![bullet](_themes/tilt/tlbull1.gif) | Extreme programming |
25 |
Introduction to software ergonomics |
3 lh |
![bullet](_themes/tilt/tlbull1.gif) | Software ergonomics in GUI |
![bullet](_themes/tilt/tlbull1.gif) | Standards, guidelines |
27 |
Project management |
4 lh |
![bullet](_themes/tilt/tlbull1.gif) | Planning |
![bullet](_themes/tilt/tlbull1.gif) | Organization (CS-Ldoc) |
![bullet](_themes/tilt/tlbull1.gif) | People management |
![bullet](_themes/tilt/tlbull1.gif) | Configuration and documentation management (CS-Ldoc) |
![bullet](_themes/tilt/tlbull1.gif) | Risk management |
![bullet](_themes/tilt/tlbull1.gif) | Choosing development tools and support |
![bullet](_themes/tilt/tlbull1.gif) | Control |
[February 10, 2003]
| |
|