15. Evolutionary Object-Oriented Software Development (EOS) An agile process based on product-breakdown structure (PBS) Obligatory Literature



Similar documents
17. Evolutionary Object-Oriented Software Development (EOS) An agile process based on PBS

Formal Concept Analysis used for object-oriented software modelling Wolfgang Hesse FB Mathematik und Informatik, Univ. Marburg

Customer Intimacy Analytics

Literaturliste Software Engineering (wird ergänzt)

Evaluation of Students' Modeling and Programming Skills

25.1 Translational Frameworks (MDA with transformations)

Software Construction

Masters of Science in Software & Information Systems

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

Opportunities and Challenges in Software Engineering for the Next Generation Automotive

Developing Web-based Applications through e-prototyping

for High Performance Computing

Organization. Introduction to Software Engineering

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Demonstration of an Automated Integrated Test Environment for Web-based Applications

Agile Software Engineering Practice to Improve Project Success

Sequential Performance Analysis with Callgrind and KCachegrind

Research Associate at Universität Hamburg. Research Associate at University of Bath

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

Enterprise Architecture

Hochschule Esslingen University of Applied Sciences

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Component-Based Software Engineering (CBSE) Announcements

Agile Software Development Methodologies and Its Quality Assurance

Introduction to Geventis. Registration for the MIN Graduate School (MINGS)

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Object-Oriented Systems Analysis and Design

How To Develop A Business Model For Big Data Driven Innovation

Development of Tool Extensions with MOFLON

How to Write a Paper and Get It Published

Component Based Development in Software Engineering

feature requirements engineering

Computer programs (both source and executable) Documentation (both technical and user) Data (contained within the program or external to it)

A methodology for secure software design

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Project Management Part 2: Work Breakdown Structures

Agile Software Development Methodologies & Correlation with Employability Skills

Comparing Agile Software Processes Based on the Software Development Project Requirements

Test Coverage Criteria for Autonomous Mobile Systems based on Coloured Petri Nets

Web Application Development Processes: Requirements, Demands and Challenges

Development of Enterprise Architecture of PPDR Organisations W. Müller, F. Reinert

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

Sequential Performance Analysis with Callgrind and KCachegrind

Principles of Software Construction: Objects, Design, and Concurrency. Course Introduction. toad. toad Fall School of Computer Science

Using Bonds for Describing Method Dispatch in Role-Oriented Software Models

A Methodology for Capturing Software Systems Security Requirements

µfup: A Software Development Process for Embedded Systems

CS4507 Advanced Software Engineering

Master s Program in Information Systems

Ontologies in the Software Engineering process

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

MSE-201 SOFTWARE PROJECT MANAGEMENT

A Case Study on Benefits and Side-Effects of Agile Practices in Large-Scale Requirements Engineering

Quality Assurance by Means of Feature Models

EXTENDED ANGEL: KNOWLEDGE-BASED APPROACH FOR LOC AND EFFORT ESTIMATION FOR MULTIMEDIA PROJECTS IN MEDICAL DOMAIN

Contributions To Ontology-Driven Requirements Engineering

Software Design Document (SDD) Template

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Buyout and Distressed Private Equity: Performance and Value Creation

Multi-objective Design Space Exploration based on UML

Who is in charge: Corporate Communications or Corporate Marketing?

Boom and Bust Cycles in Scientific Literature A Toolbased Big-Data Analysis

Fabrice Mogo Nem. Engineering Networks Holistic approach for multidiscipiinary Product Lifecycle Management. Band 9

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

A Process View on Architecture-Based Software Development

Software Development Life Cycle (SDLC)

Treating Interfaces as Components

JOURNAL OF OBJECT TECHNOLOGY

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Towards an Integration of Process Modeling and Project Planning

Understanding Software Static and Dynamic Aspects

Test-Driven Automation: Adopting Test-First Development to Improve Automation Systems Engineering Processes

Transcription:

15. Evolutionary Object-Oriented oftware Development (EO) An agile process based on product-breakdown structure (PB) Prof. Dr. rer. nat. Uwe Aßmann Lehrstuhl oftwaretechnologie Fakultät Informatik Technische Universität Dresden Version 13-1.0, 20.04.12 1 The EO process model 2 Managing EO projects courtesy Prof. Wolfgang Hesse, University of Marburg 1 Obligatory Literature. arferaz: "Methods and tool support for evolutionary, object oriented software development", Ph. D. thesis, Univ. of Marburg [Hesse 97a] W. Hesse: From WOON to EO: New development methods require a new software process model; Bericht Nr. 12, Fachbereich Mathematik, Univ. Marburg; and: Proc. WOON 96, 1st Int. Conf. on OO technology, t. Petersburg 1997 [Hesse 97b] W. Hesse: Improving the software process guided by the EO model. In: Proc. PI '97 European Conference on oftware Process Improvement. Barcelona 1997 [Hesse, Weltz 94] W. Hesse, F. Weltz: Projektmanagement für evolutionäre oftware- Entwicklung; Information Management 3/94, pp. 20-33, (1994) [arferaz, Hesse 00]. arferaz, W. Hesse: CEO A Cost Estimation Method for Evolutionary, Object-Oriented oftware Development. In.: R. Dumke, A. Abran (Eds.): New Approaches in oftware Measurement. Proc. 10th Int. Workshop, IWM 2000, pringer LNC 2006, pp. 29-43 2 oftwaremanagement, Prof. Uwe Aßmann, Technische Universität Dresden, Fakultät Informatik References 15.1 The EO Process Model 3 4 [Beyer, Hesse 2002] Use of UML for software process modelling. Internal report, Univ. Marburg 2002 [Bittner, Hesse, chnath 95] U. Bittner, W. Hesse, J. chnath: Praxis der oftware- Entwicklung, Methoden, Werkzeuge, Projektmanagement - Eine Bestandsaufnahme, Oldenbourg 1995 [Frese, Hesse 93] M. Frese, W. Hesse: The work situation in software development - Results of an empirical study, ACM IGOFT oftware Engineering Notes, Vol. 18, No. 3, pp. A-65 - A-72 (1993) [Floyd, Reisin, chmidt 89] Ch. Floyd, F.-M. Reisin, G. schmidt: TEP to software development with users; in: C. Ghezzi, J. McDermid (eds.): EEC 89, 2nd European oftware Engineering Conference; LNC 387, pp. 48-64, pringer 1989 [Hesse, Merbeth, Frölich 92] W. Hesse, G. Merbeth, R. Frölich: oftwaretechnik - Vorgehensmodelle, Projektführung und Produktverwaltung, Handbuch der Informatik Bd. 5.2, Oldenbourg 1992 [Hesse 96] W. Hesse: Theory and practice of the software process - a field study and its implications for project management; in: C. Montangero (ed.): oftware Process Tech-nology, 5th Europ. Workshop EWPT 96; pringer LNC 1149, pp. 241-256 (1996) Heavy-weight process models are often too bureaucratic and not (or hardly) scalable The aspect of software evolution is hardly reflected Planning relies on assumptions and may go wrong Unforeseen descoveries change the planning Component-oriented, distributed and web-based W development requires flexible and well-adaptable processes EO works if the architecture of the system is clear (standard architecture, well-known domain, low innovation) But it treats unforeseen dependencies between the components Different availabilities of resources Parallel work

Phase-oriented vs. component-oriented process 5 Objects and features of the software process 6 Process in phases (Phasenmodell): Ph 1 Ph 2 Ph 3... The product breakdown structure (PB, Produktstruktur) is a decomposition of the software product into components In EO, it is assumed that the PB is organised in a hierarchy with three level system development structure with three forms of components: level level EO is a process structured along product breakdown strukture (PB, Produktstruktur): 1 2 3 C 21 C 22 Legend: Building block Phase or activity C level What are the features of those objects? Attributes: ize, Responsible_person, tart_date_of_work, Delivery_date,... Operations: Development :,,, Operational_Use tate: active, interrupted, completed Development Cycles 7 Phases of a imple Object-Oriented Development Cycle 8 Each development cycle, for every component on every level, has the same structure and consists of (.A) : Define requirements, build model, consult building block (BB) library (.D) : pecify and construct BB s Use environment Use & Operations (.I) : Transform designed BB s to code, test, integrate (.O) Operational use: installation, acceptance test, usage, revision Evolutionary development is supported by: Integration of operational use (incl. maintenance and revision) into development cycles Further development and re-use of components Dynamic project planning and control based on cycles and Development environment planning, analytic synthetic, verifying

Combining development cycles in a traditional way Development phases for the components overlap has n subsystems i i has m classes C ij A D A D CA CD O I O I CO CI 9 Typical EO-like Process tructure EO blends the phases k parallel development threads, resp. state tokens Development cycles intertwined in time If an obstacle appears, thread continues elsewhere E.g., when dependencies to other components appear which were not known beforehand Parallel wavefront algorithm over the 3-level tree (bush) C01 C21 2 1 3 C31 C02 4 10 EO is Agile with Backlogs Metamodel for EO process elements 11 12 As in CRUM, there is a backlog of prioritized next At the completion of an activity (small or large), EO allows for replanning and reprioritization of the to perform (agile development) Costs can be estimated anew (agile cost estimation) k parallel development threads Very flexible Customer can be involved, but need not from: [Beyer, Hesse 2002])

EO is a Heterogeneous Process EO allows for other process models in each of the four big phases 13 15.2 Managing EO Projects Here: UML activity diagram for system analysis (A) phase 14 oftwaremanagement, Prof. Uwe Aßmann, Technische Universität Dresden, Fakultät Informatik Principles of Managing EO Projects Management principles (cont'd) 15 16 Management structure follows system structure (PB) tarting point: the EO hierarchy levels -cycle: Global planning (project-wide) Object oriented resp. component-oriented workpackages Developers are primarily responsible for objects and comnponents - not for. Planning refers to objects rather than to : -cycles: Detailed steps (e.g. team work packages) C-Cycles: Activities of single developers Differenciated units of planning and control (on each level) 1st planning stage: development cycle as a whole 2nd planning stage: phases within cycle Dynamic, situative planning (agile) Rather informal planning, "stand by"-management ituation-driven adjustment of plans (backlogs) Frequent plan revisions. on - and -level: by development (&support) teams (with users participating whereever necessary). on C-level: by single developers or users Transparent planning, reliable plan control Continuous information of teams on the project status Plan revisions at defined points of time ( revision points) Dynamic and adaptable cost and effort estimation based on the EO process structure, experience data and statistical regression methods [arferaz, Hesse 2000] EO is not time-boxed, but clearly structured along the PB If the PB is stable, but it remains unclear, how long it takes to realize the, EO is a very amenable process

Revision points ummary and Outlook A revision point is a special milestone, more differentiated and flexible, because lying between small or large Revision points allow for replanning and reestimation C A H CD C-cycles H C A E CD E CI E A J 17 EO combines the ideas of evolutionary, agile, component-oriented, and object-oriented software development The development process is structured along the PB by three hierarchy levels (system, component/subsystem, class) by four phases (analyse, design, implement, operate) Cycles and phases are linked in a systematic and orthogonal manner 18 A G D G A D D D I D -cycles A B D B I B O B A DA I A O A A D A I -cycle Wavefront algorithm for parallel development Development cycles are planned and executed on demand and in a dynamic way Project managers can plan and survey the project on every level of detail by means of revision points t R1