The Helicoidal Life Cycle as a Tool for Software Development and Enhancement



Similar documents
Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Development/Maintenance/Reuse: Software Evolution in Product Lines

Software Development Life Cycle

2. Analysis, Design and Implementation

Title: Topic 3 Software process models (Topic03 Slide 1).

Classical Software Life Cycle Models

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Software Engineering. What is a system?

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

(Refer Slide Time: 01:52)

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

SOFTWARE PROCESS MODELS

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

I219 Software Design Methodology

IV. Software Lifecycles

What is a life cycle model?

Why process models? Topic 3 Software process models. 3. Process models. What is a process model?

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

CS4507 Advanced Software Engineering

Advancements in the V-Model

The Software Lifecycle. Software Lifecycles

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

BUSINESS RULES AND GAP ANALYSIS

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Using Productivity Measure and Function Points to Improve the Software Development Process

A Process Model for Software Architecture

2. Analysis, Design and Implementation

Umbrella: A New Component-Based Software Development Model

Chap 1. Introduction to Software Architecture

Software Engineering

Software Development Life Cycle (SDLC)

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

What CMMI Cannot Give You: Good Software

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

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

A Review of an MVC Framework based Software Development

Basic Unified Process: A Process for Small and Agile Projects

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

POSITIVE TRENDS IN REQUIREMENT ENGINEERING PRACTICES FOR HIGHER SOFTWARE QUALITY

Iterative Design and Testing within the Software Development Life Cycle

To introduce software process models To describe three generic process models and when they may be used

Risk Analysis: a Key Success Factor for Complex System Development

Attempt to Integrate System Dynamics and UML in Business Process Modeling

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

A Rapid Development Process with UML

General Problem Solving Model. Software Development Methodology. Chapter 2A

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

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

Software Life Cycle Processes

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

The W-MODEL Strengthening the Bond Between Development and Test

Evaluating OO-CASE tools: OO research meets practice

How To Design An Information System

ASSESSMENT OF SOFTWARE PROCESS MODELS

Data Modeling Basics

Designing Real-Time and Embedded Systems with the COMET/UML method

Aspect Oriented Strategy to model the Examination Management Systems

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

Chapter 4 Software Lifecycle and Performance Analysis

A Comparison between Five Models of Software Engineering

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

The profile of your work on an Agile project will be very different. Agile projects have several things in common:

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Evolving a Ultra-Flow Software Development Life Cycle Model

Software Life Cycle Models

A Survey of Software Development Process Models in Software Engineering

How To Model Software Development Life Cycle Models

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Process for QA

Agile Techniques for Object Databases

Process Models and Metrics

Software Development Processes. Software Life-Cycle Models

Introduction to Software Engineering (ESE : Einführung in SE)

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

A Process for ATLAS Software Development

The Challenge of Productivity Measurement

Information systems modelling UML and service description languages

Software development process

A process-driven methodological approach for the design of telecommunications management systems

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

How To Develop A Multi Agent System (Mma)

How To Develop Software

Domain Modeling of Software Process Models

Software Development Process

Transcription:

The Helicoidal Life Cycle as a Tool for Software Development and Enhancement Antonio Carlos Pinto Dias Alves Universidade Federal do Rio de Janeiro COPPE Programa de Engenharia Nuclear Av. Brigadeiro Trompowiski SN, Bloco G, Ilha do Fundão Rio de Janeiro, RJ, Brasil Abstract: - In recent years we have been seeing great advances in methodologies and languages for the development of computational systems. This work presents a tool, the Helicoidal Life Cycle Model, which is not a mere evolution of the spiral or any other model. With this life cycle model, it is possible to make precise measurements of terms and costs as well as see the stages of system development. The practical application of this tool in the development of some Information Technology (IT) designs will be shown as much as that the helicoidal life cycle represents the most general model a life cycle can achieve. Key-Words: - Software Engineering, Life Cycle, System Development 1 Introduction Traditional life cycles like waterfall, prototyping, spiral; structured life cycles and those cycles that are object-oriented (like Schlaer-Mellor) all have the prime objective of allowing a high-level management of the state of development in computational projects. The older one, Waterfall [1][2][3], although it is loosing importance, can still have some utility, especially in those safety critical systems and when revisions in old systems are necessary. This case had happened some years ago in many Y2K projects. Prototyping [1][2] is an evolutionary principle for structuring the life cycle. Increments are delivered to the customer as they are developed and so an initial version (or prototype) is progressively transformed into the final application. More generally, prototyping is viewed as a tool in the process of understanding the user s requirements. The most modern traditional life cycle is the spiral [1][2][4] and it was developed to allow a more effective project management, including foreseeing the various iterations by which medium to high complexity (from 100.000 to over 1.000.000 code lines) projects pass by. Lately, some researchers proposed the structured life cycle [5] that was intended to be a control instrument in projects that use structured techniques of development. As the object-oriented languages and techniques had arisen, the object-oriented development theory was posed. This kind of development first models the entire problem instead of allowing lines and lines of indiscriminate code. In general, this requires more time in analysis but, as it sees the whole process, a well-succeeded model can solve as much the original problem as others that can arise during the development process. A methodology, the UP (Unified Process) uses UML to implement its methodological issues and includes its own life cycle model [6][7]. Among the many object-oriented development methods, a category includes, among others, the Booch, Rumbaugh and OMT methods. This approach makes iterations through analysis, design and coding, catching additional information in each passage until the final iteration be at the code level. Another category includes a method of life cycle ISBN: 978-960-6766-67-1 352 ISSN: 1790-2769

very well succeeded, the Schlaer-Mellor, which automatically interprets object-oriented analysis models in object code, having for basis informations passed by CASE tools. The Schlaer-Mellor uses a concise notation to implement the automatic translation of methods in code and it partitions the problem in logical domains promoting the opportunity of code reuse at domain level. The benefits of reuse are specially obtained in largescale and/or long-term projects that foresee actualization or related projects in the future [7]. Back to traditional models, system analysis brings in an analysis of the problem. Afterwards, system design creates a design which implements this analysis and the code is then written in order to implement the design. The code testing can discover bugs, the design itself can change (demanding that the code also be redone) or even the entire system can change, because of new analysis that also change the design and the code. However, as anyone knows, many times the code changes because of new technologies, but neither the analysis nor the design are redone. In Schlaer-Mellor, the independent domains analysis occurs, in general, both in parallel and concurrently. Both the simulations and testing can happen at the analysis level. By the use of adequate tools, the model can translate directly in code. If there are changes in a domain, those changes do not necessarily affect other domains. In general, the analysis and coding phases remain in synchronism. Nevertheless, how can one quantitatively see the synchronism between these phases? 2 The metrics problem There were always attempts to make the formalization of phases in early life cycle models. These attempts defined the documents to be issued, phases to be accomplished and, in some cases, the iterations to be gone through. Unfortunately, information of great importance, the metrics, could never be explicitly incorporated in none of them. life cycle where the rise of the radius leads towards the completeness of the system. However, both the axis that are defined in this model do not have any relevant meaning, having only the objective of taking the quadrants apart. The vertical axis, which is intended to show the cumulative costs of the project, in truth, shows nothing, since it assumes cyclical positive and negative values. In Schlaer-Mellor, there are defined steps and marks to track the progress of the project phases instead of percentage marks of the progress of those phases. In an object-oriented design it is possible to estimate the number of necessary objects from the number of entities (tactiles or untactiles) which the project have to deal with. Anyway, even the Schlaer-Mellor does not allow the inclusion of metrics in the life cycle and, this way, it does not contribute for a quantitative analysis or management. 3 The helicoidal life cycle In the helicoidal life cycle the state of the development of a system is precisely defined by a point P in the space defined by a cylindrical coordinates system, where P= f (R,θ, θ,t) as one can see in figure 1. Dimensions R,θ,T are defined as follows: R represents the amount of resources allocated to the phase of development under consideration (analysis, design, coding, ), for instance, crew members, monetary values, computational resources and so on. Phases are divided in cycles named iterations. Coordinate θ relates to the percentage of an iteration that is completed. Quarters, which are gone through in clockwise direction as in the spiral life cycle, can be associated a percentage of 25% each, for example, when one considers a cycle should be completed when θ reaches 360º. In an alternative way, each 360º gone through by θ can be linked to one of the quarters of the spiral cycle, for instance, the stage of customer evaluation. Perhaps the way that best allows the full use of the helicoidal cycle flexibility is that shown in figure 1. For example, in waterfall, prototyping and structured life cycles metrics are not even considerated. A first trying was done with the spiral ISBN: 978-960-6766-67-1 353 ISSN: 1790-2769

(as well as the nomination of the stages themselves) can be freely assigned by the user needs. Figure 2 Helicoidal path made by a point P in the cylindrical coordinates space. Each time the point goes through 360º in xy plane, it completes an iteration. Figure 1 Cylindrical coordinates space and sectors and stages of the helicoidal life cycle As in prototyping, we divide an iteration into slices like a pie. We call each slice a sector. Each sector is defined by an arbitrary angle θ and defines a stage. In figure 1 5 stages of the first cycle in the analysis phase have been drawn. Sector 1, the first one, defines the stage of information gathering of customer needs. In the second stage, the risk analysis of the whole project is done. The third and fourth sectors show that the percentages of the iteration assigned for planning and engineering stages are bigger than for the early ones. Finally, the amplitude of sector 5 can show the percentage assigned to the stage of customer evaluation. Surely the amplitude of the angles that define each sector Variable T is the temporal dimension of the cycle. The bigger it is, more time had been wasted for a target stage to be completed. As in the spiral cycle, where each lap of the ellipse means the system development is going towards its end, the greater the value of T should the system be closer to its end. A point P in this cylindrical coordinates space then makes a helicoidal path as can be seen in figure 2. One can note that, if the gap in T assigned to a stage is very big, then that stage is probably wasting time (and money). Dimensions R,θ,T are independent from each other. This way, for instance, more or less resources can be allocated (varying R) without affecting the other dimensions. Alternatively, changing the allocation of resources, dimensions θ and T can vary with the progress of the system development. Sure it is that marks defined in the T dimension should have constant gaps and so only the slope of the helicoid will vary, as will be seen lately. For the moment, such as in the spiral model, axis x and y do not have any important meaning and act mainly to take the quadrants apart, unless one desires to describe the point P in its parametric equations. ISBN: 978-960-6766-67-1 354 ISSN: 1790-2769

Figure 3 and shows an example of use. The iterations plotted are for the analysis phase. From the beginning up to time T 1, the resources allocated sum R 1. At this point, new resources are gathered (for example, one more analyst) and the size of R becomes R 2. The other dimensions aren t affected. The helicoidal life cycle allows significant savings of time and resources because; conversely of all others kinds of life cycles, in this model the different development phases can superpose. We call this superposition an interaction. Figure 3 Adding up resources to a project. Views 3D and Frontal. A more realistic case is drawn in figure 4. Allocation of new resources makes the analysis phase gets under its way faster towards its end, as can be seen by smaller increments in the T dimension. In this new life cycle model, the diverse development phases are plotted in a very adequate way and can be very easily controlled as is plotted in figure 5. Figure 4 Adding up resources to a project reduces costs and the spending of time. Views 3D and Frontal. Figure 6 shows three phases of the development of a system: the analysis phase is the first to begin and design and coding phases are inside and outside it, respectively. As one can see, even the analysis phase still taking place, the design phase can begin without any loss in the control of resources. Also, it can be seen that the coding phase begins before the end of the design and analysis phases. Not only this superposition of phases is possible but everybody knows that it really occurs nowadays in systems ISBN: 978-960-6766-67-1 355 ISSN: 1790-2769

development. However, it is virtually impossible of being controlled in any other kind of life cycle model. As we have already seen, when two or more phases superpose we say there is an interaction between (among) them. Figure 5 Different development phases shown in the Helicoidal life cycle. 4 Examples The helicoidal life cycle had already been used for the control of development of some systems. Two are here presented for comparison. Based on previous experiences in similar projects, each of them was assigned a term for being finished as well as the time and money available for each phase, depending upon the life cycle that were to be used as paradigm. Both projects were assigned a crew composed by 3 systems analysts and 3 programmers analysts. The first project had been made by an assessor company and dealt with the task of building a system for a telemarketing company, since setting the interfaces with the local telephone company and the Pabx, installation of the Pabx itself, up to installation and configuration of the computer network, software testing, and so on. The project had been intended to be guided by the spiral life cycle and so, terms and costs were assigned to that kind of life cycle. Nevertheless, instead of following the spiral model, the manager of the project had chosen to try the helicoidal model. Figure 7 shows the results. Figure 6 Interaction of different development phases in views 3D Frontal. In one can see the overall reduced time in software development against what was expected from the spiral model. The use of the helicoidal model brought a reduction in development time of almost 50%. Figure 7 shows the reduction of costs in some phases of the process. That was achieved by allowing phases to interact. The second project had dealt with the task of building a complete simulation environment for emulating and control some systems and faults of a nuclear power plant [8]. It demanded not only the software to be programmed but also a heavy hardware project had to be built. The Schlaer-Mellor cycle was then chosen to control the whole project because of its capabilities of partition the problem in logical domains and then integrating the code generated with the architecture built. However, ISBN: 978-960-6766-67-1 356 ISSN: 1790-2769

despite using CASE tools, analysts decided to use the Schlaer-Mellor mainly as a methodology and let the helicoidal model guide the system life cycle. The results are shown if figure 8. In we see that the overall reduced development time was about 30% over what had been presupposed. Application, architecture and implementation domain analysis, all experienced reductions in their terms and costs. Development Time administrative tasks, etc.). The helicoidal life cycle can efficiently track where time (and money) is being wasted thus promoting efficient allocation of the resources available. The percentage of errors in design and coding was almost the same of what had been expected, showing that the controlled interaction (superposition) of phases does not contribute for a growing in design and/or coding errors. Development Time 250 250 200 200 150 150 100 100 50 50 0 Spiral Helicoidal 0 Schlaer-Mellor Helicoidal Model Model Development Costs Development Costs 150 150 100 100 50 50 0 Analysis Design Coding 0 Aplic. Architect. Implem. Spiral Helicoidal Sch-Mellor Helicoidal Figure 7 Helicoidal cycle against Spiral model Overall reduced time in software development and Reduction in costs by phase. For the application domain analysis, the cost reduction was of almost 50%. From many studies (which are not referenced here) we know that almost 40% of the time available for a technical team is spent in non-technical work, (like meetings, Figure 8 Helicoidal cycle against Schlaer-Mellor model Overall reduced time in software development and Reduction in costs by phase. 5 Reduction to conventional life cycles The helicoidal life cycle can be easily reduced to any of the conventional life cycles. Figure 9 shows how, by not allowing the phases to interact and ISBN: 978-960-6766-67-1 357 ISSN: 1790-2769

simply inverting the diagram, the helicoidal cycle can be seen as the waterfall one. The reduction to the prototyping model is also possible as one can see in figure 10. This case is very interesting. Since prototyping already divides the cycle into sectors, the analogy is immediate. As we have already said, each sector defines a stage. Then iterations of the helicoidal model are grouped so an observer placed directly over them sees only one iteration. This iteration is the own prototyping cycle. Reduction to the spiral model is even easier as can be seen in figure 11. Each iteration of the helicoidal model can be immediately transcript to the spiral one by adjustment of the growing rate of the radial dimension of the spiral model to the growing rate of T in the helicoidal model. Figure 9 Reduction of the Helicoidal cycle to the Waterfall cycle. Sectors remain defining stages and variable T remains measuring the time spent in each stage, allowing the control of terms and costs. Another construction is possible. Each sector of the prototyping model can be assigned to an iteration of the helicoidal model. The control of these iterations brings to an optimal control of time and resources. Figure 11 Reduction of the Helicoidal cycle to the Spiral cycle in views Frontal Top. In any case reduction causes some information to be lost. For instance, in the case reduction is done to the spiral model, we lose the allocation of resources visualization by suppressing the model s radial dimension. The loss of information is even bigger in the case reduction is to the prototyping model and severe when the reduction is to the waterfall model. Figure 10 Reduction of the Helicoidal cycle to the Prototyping one. The structured life cycle as it was proposed by Yourdon [5] is, as long as we know, an adaptation of the waterfall model to be used with structured techniques. So, the reduction of the helicoidal model to the structured one is done in the same way for the ISBN: 978-960-6766-67-1 358 ISSN: 1790-2769

waterfall. The reduction to the Schlaer-Mellor model can also be done in a convenient way and an example is drawn in figure 12. the Helicoidal life cycle is the most general life cycle proposed until now. References: [1] Ghezzi, C.; M. Jazayeri, M.; Mandrioli, D. Fundamentals of Software Engineering (1 ed, New Jersey, Prentice Hall, 1991). [2] Pressman, R. S. Software Engineering (New York, McGraw-Hill, 1992). [3] Peters, J. F.; Pedrycz, W.; Software Engineering: An Engineering Approach (1 ed. New York, John Wiley & Sons, 2000). Figure 12 Reduction of the Helicoidal cycle to the Schlaer-Mellor cycle. 6 Conclusions From the considerations above, we can see that the helicoidal life cycle conveniently represents the different phases and stages of software development. Compared to other traditional life cycles, it can track the costs and terms of projects in a very suitable way. We have seen that even the spiral cycle, in its attempt of tracking costs, can bring one misinterpretations because of its system of axis, which is meaningless. On the other side, the helicoidal cycle shows dimensions that have strong meanings and so allow a precise control of the resources being used and the progress achieved. Moreover, the Helicoidal Life Cycle allows superposition of different development phases, thus promoting saving time and costs. Although some phases can be completely superposed by others, each one can be tracked independently whereas the whole system development can be tracked by another helicoidal life cycle that covers the inner ones in an onion style. So, from the examples of use presented, we have seen that reductions in development time and costs cannot be ignored. In some real cases, those reductions reached almost 50%. May be, when CASE tools specifically designed for use with the helicoidal cycle be in use, savings can be even bigger. Finally, by the examples of reduction to many other life cycles that were here presented we proved that [4] Boehm, B. W.; A spiral model of software develop-ment and enhancement, IEEE Computer,21(5),1988, 61-72. [5] Yourdon, E.; Managing the system life cycle. (2 ed. New York, Prentice-Hall, 1988). [6] Sommerville, I.; Engenharia de Software. (6 ed. São Paulo, Addison Wesley, 2003). [7] Dejesus, E. X.; Programação sem sustos, BYTE Brasil, 4(8), 1995, 130-136. [8] Alves, A.C.P.D.; A Low-Cost PWR Nuclear Power Plant Simulator for Initial Training of Operators and Educational Purposes, Proceedings of XI Enfir, Nova Friburgo, RJ, Brasil, 1997. [9] Alves, A.C.P.D.; Introducing the Helicoidal Life Cycle A Tool for Management of Software Development, Proceedings of 7 th International Conference of Software Engineering and Applications SEA 2003, Marina del Rey, CA, USA, 2003. [10] Alves, A.C.P.D.; Managing Terms And Costs With The Helicoidal Life Cycle, Proceedings of 26 th Annual Conference of the The International Society of Parametric Analysts, Frascati, Italy, 2004. ISBN: 978-960-6766-67-1 359 ISSN: 1790-2769