Tutorial A: Model-based Transition from Requirements to High-level Software Design

The primary objective of this tutorial is to improve software development in practice regarding the difficult and important transition from requirements to high-level software design. The participants will understand several key problems with current OO methods and how they can be resolved. In particular, they will see how scenarios and use cases can be utilized for requirements engineering and software design. But they will also see the additional need to specify the functional requirements for the system to be built. In addition, they will be able to distinguish between domain objects and software objects. They will experience UML as a language for representing OO models, but also the need to be clear about what kind of objects are represented. This is important for the model-based transition from requirements to design.

Target Groups
The target groups are software development practitioners, such as requirements engineers, software designers and project leaders. Also educators will benefit from this tutorial. The assumed attendee background is some familiarity with object-oriented concepts as well as interest in requirements, analysis or software design.

  • How can the application domain and the requirements be better understood using object-oriented (OO) modeling?
  • How do scenarios / use cases fit together with functional requirements?
  • How can a domain model be used for a model-based transition to a design model?

This tutorial addresses these questions in the following manner. It shows how each requirement given in natural language can be viewed itself as an object and modeled as such. This approach facilitates both a hierarchical organization (by grouping requirements instances into classes and subclasses) and explicit association (by relating requirements through OO associations). UML is involved as a language for representing OO models, but the need to be clear about what kind of objects are represented is explained.

While scenarios / use cases can somehow illustrate the overall functionality, additionally functional requirements for the system to be built should be formulated and related to them appropriately. All kinds of requirements make statements about the application domain, which should be first represented in a domain model of conceptual classes, in order to make the requirements better understandable.

This tutorial explains a seamless transition to a high-level design model, where design classes are abstractions of implementation classes. This transition from requirements to software design is also investigated in model-driven terms, whether it is a transformation or just a mapping. In addition, the influence of non-functional requirements for selecting an architecture will be explained.

Introduction and Background
  • Requirements
  • Object-oriented core concepts
  • Use cases

Business and domain modeling using objects and UML
  • Business process - Business Use Case
  • Domain model

Functional requirements, goals and scenarios / use cases
  • Functional requirements
  • Goals

Requirements and UML models
  • Types of requirements

Requirements and UML models (cont.)
  • Non-functional / quality requirements
  • Conflicts between quality requirements
  • OOA (object-oriented analysis) model
  • Requirements vs. requirements representation
  • Software Requirements Specification

Transition to software design
  • Animated transition example
  • OOD (object-oriented design) model and architecture
  • Sequence diagrams for OOA vs. OOD models
  • Transition recommendations
  • Model-based transition

High-level software design
  • Software architecture
  • Selection depending on non-functional requirements

Summary and conclusion

Dr. Hermann Kaindl, Professor
Vienna University of Technology, ICT

Hermann Kaindl joined the Institute of Computer Technology at the Vienna Univ. of Technology in early 2003 as a full professor, where he also serves in the Senate. Prior to moving to academia, he was a senior consultant with the division of program and systems engineering at Siemens AG Austria. There he has gained more than 24 years of industrial experience in software development and human-computer interaction. He has published five books and more than 150 papers in refereed journals, books and conference proceedings. He is a Senior Member of the IEEE, a Distinguished Scientist member of the ACM, a member of the INCOSE and the AAAI, and is on the executive board of the Austrian Society for Artificial Intelligence.

Tutorial B: Software Effort Estimation and Risk Management

The tutorial teaches the basics of systematic effort estimation and risk management for software development projects. Participants will learn about different estimation approaches (such as Delphi Approach, CoCoMo II, and CART) and their practical usage. Moreover, approaches for determining the size of a development project (such as functional size measurement with IFPUG function points) at early stages will be discussed as one major input of estimation models. Finally the CoBRA® approach for creating risk-based effort estimation models will be presented. The participants will obtain an overview on how to create their own estimation models and conduct systematic effort estimation and risk management.

Target Groups
Manager, Team Lead, SEPG Members, Project Manager, Project Planners, and Quality Manager

Every software business has to be able to budget and plan its software development projects realistically. Since software projects are usually fraught with uncertainty, they inherently involve planning risks right from the start. Consequently, it is important to manage cost-related risks in order to monitor them and implement adequate contingency plans when a crisis occurs. Since not all projects are equal, it is important to identify the specific factors (cost drivers) that have a positive or negative influence on productivity. Thus, the use of appropriate cost estimation approaches does not only contribute to accurate project planning and successful risk management, but also to improved software processes and overall organization maturity.

Effort Estimation Basics
  • Why effort and cost estimation?
  • Common mistakes in practice
  • Overview of estimation approaches
  • When to use which approach?

Functional Sizing
  • Basics of functional size measurement
  • IFPUG Function Points and COSMIC FFP
  • FP versus LOC
  • Productivity Measurement

The CoBRA® Approach
  • Develop custom-tailored estimation models
  • Effort estimation
  • Risk management
  • Benchmarking

Industrial Case Study and Summary

Dr. Jens Heidrich
Fraunhofer IESE, Kaiserslautern, Germany

Dr. Jens Heidrich is head of the processes management division at the Fraunhofer Institute for Experimental Software Engineering (IESE) in Kaiserslautern, Germany. His research interests include project management, quality assurance, and measurement. He received his doctoral degree (Dr. rer. nat.) in Computer Science from the University of Kaiserslautern, Germany. He is lecturer at the University of Kaiserslautern and gives seminars on software measurement and effort estimation.