Friday, November 10, 2006

[Event] Software Engineering for Everday Business - Review of the First Event

The first presentation of the series “Software Engineering for Everyday Business”, initiated by UBIT of the Wirtschaftskammer Wien took place on October 9th. The content of the three presentations focused on Software Engineering and Software Processes.

Starting with a basic introduction to Software Engineering and corresponding Life-Cycle Phases, a set of selected recent software processes (Vorgehensmodelle) were presented to provide an introduction to modern software engineering practice.

The slides (german) from this event can be downloaded here.

Part 1: Introduction to Software Engineering

The construction of high-quality software products requires professional processes (Software Engineering). Depending on various project criteria (e.g., project type, project size, and application domain) different requirements must be considered at the beginning of each software project. The increasing complexity of projects needs efficient and effective teams with appropriate roles and adequate skills. Examples for a suitable role distribution regarding “small” and “large” projects conclude the first part of the presentation.

Part 2: Life-Cycle Phases

The Life-Cycle-Process affects software projects and products as well. The typical Life-Cycle starts with the first idea, includes analysis, design, implementation and testing, operation and maintenance, and concludes with the retirement of the product. The presentation of this part includes important aspects of all Life-Cycle Phases and pays special attention to the requirements elicitation and analysis phase. Two selected concepts - the V-Model and the incremental model - of basic software processes conclude this part of the presentation.

Part 3: Selected Software Processes

According to a wide range of project requirements, a large number of different software processes came up in industrial practice. The third presentation focus on three selected recent software processes: V-Modell XT, Rational Unified Process and concepts of Agile Software development.

The V-Modell XT - based on the V-Modell 97 – is a mandatory process approach for all common IT-projects in the public area in Germany. An important enhancement focuses on the integration of acquirers within the software engineering process through a specific project type. The basic components of the V-Modell XT support flexibility and adjustment possibilities to individual project requirements: (a) project modules (Vorgehensbausteine) encapsulate products, roles, and activities; (b) project execution strategies (Durchführungsstrategien), and (c) Decision Gates (Entscheidungspunkte) defines the sequence of modules and their dependencies. Tailoring, i.e., individual selection of process modules (mandatory, required and optional modules) according to project type enables a sound adjustment to individual projects. These concepts support the applicability for small and medium enterprises (SME) as well.

Further information about the V-Modell XT framework and (open source) tool support are available at http://www.v-modell-xt.de.

The Rational Unified Prozess (RUP) is a phase-oriented process model with wide dissemination in industrial practice. The process model consists of four major phases (inception, elaboration, construction, and transition) including 9 workflows / disciplines. The basic concept includes roles (responsibility), artefacts (products) and activities (how to proceed). Workflows (6 engineering workflows and 3 supporting workflows) describe the sequence of steps to construct a product.
Milestones at the end of every phase enable the review / inspection of the constructed artefacts. Based on the decision at the milestones, phases may be repeated (incremental approach) to achieve higher product quality and/or completeness of requirements. RUP is supported by a wide range of software tools.

Agile Software development models, e.g., eXtreme Programming (XP) and SCRUM enable iterative software development in very short time intervals and with tight customer interaction. This tight customer cooperation enables a flexible management of requirements (e.g. changing of customer requirements) and leads to an early delivery of products, e.g., prototypes. Agile software development models came up to improve common (strictly defined) software processes and still grow in their importance.


Further Information:


Coming Up


Next event of this series of presentation: 30.11.2006, 16:00. These presentations will dal with modelling approaches, UML (Unified Modelling Language) and MDA (Model Driven Architecture).

No comments: