A Comparision Between Traditional and Component Based Software Development Process Models



Similar documents
Elite: A New Component-Based Software Development Model

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

Umbrella: A New Component-Based Software Development Model

Component Based Development in Software Engineering

How To Model Software Development Life Cycle Models

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Development Life Cycle

Software Project Models

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Software Engineering. What is a system?

THE EVOLUTION OF COMPONENT BASED SOFTWARE ENGINEERING FROM THE TRADITIONAL APPROACH TO CURRENT PRACTICES

Evolving a Ultra-Flow Software Development Life Cycle Model

An Improved Model for Component Based Software Development

A Survey of Software Development Process Models in Software Engineering

Chapter 3. Technology review Introduction

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

COMPARISON OF VARIOUS SDLC MODELS

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios

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

Y: A New Component-Based Software Life Cycle Model

Agile software development

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Development Life Cycle & Process Models

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Software Life Cycle Processes

A Review of an MVC Framework based Software Development

The W-MODEL Strengthening the Bond Between Development and Test

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER-6 NEW COMPONENT COMPOSITION METRICS FOR COMPONENT BASED SOFTWARE DEVELOPMENT

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

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

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

Unit I. Introduction

A Configuration Management Model for Software Product Line

Karunya University Dept. of Information Technology

Software Development Life Cycle (SDLC)

Evolving a New Software Development Life Cycle Model SDLC-2013 with Client Satisfaction

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

Lecture 3 Software Development Processes

A Model for Component Based E-governance Software Systems

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

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

A Comparison between Five Models of Software Engineering

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Software Engineering. Objectives. Designing, building and maintaining large software systems

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Architecture Centric Development in Software Product Lines

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Process Models and Metrics

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

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

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

International Journal of Advance Research in Computer Science and Management Studies

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Software Life Cycle Models

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

(Refer Slide Time: 01:52)

Basic Trends of Modern Software Development

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Fourth generation techniques (4GT)

University of Calgary Schulich School of Engineering Department of Electrical and Computer Engineering

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

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Modelli di sviluppo software. Enrico Giunchiglia

An Overview of Quality Assurance Practices in Agile Methodologies

Comparison study between Traditional and Object- Oriented Approaches to Develop all projects in Software Engineering

The Dynamics of Project Management

Higher National Unit specification. General information. Software Development: Analysis and Design (SCQF level 7) Unit code: HA4C 34.

A Process Model for Software Architecture

SOFTWARE PROCESS MODELS

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

INTRODUCTION. Chapter Motivation

Application of software product quality international standards through software development life cycle

Contrastive Analysis of Software Development Methodologies

Knowledge, Certification, Networking

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Agile Based Software Development Model : Benefits & Challenges

Chakra Vs Spiral Model - A Practical Approach

Chapter 4 Software Lifecycle and Performance Analysis

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Software Engineering

What is a life cycle model?

Unit 1 Learning Objectives

BCS Professional Examination 2015 Professional Graduate Diploma. April Examiners Report. System Design Methods

Design and Develop an Intrusion Detection System Using Component Based Software Design

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

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

LECTURE-4. Dronacharya College of Engineering

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

The Software Lifecycle. Software Lifecycles

Software Engineering 1

Lina khalid Ahmed Department of Software Engineering Zarqa University Amman, Jordan

A Guide to Open Source Transformation Services. How and Why Organizations are Making the Move to Open Source

Introduction to Systems Analysis and Design

A Methodology for the Development of New Telecommunications Services

International Journal of Advanced Research in Computer Science and Software Engineering

Transcription:

J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) A Comparision Between Traditional and Component Based Software Development Process Models MANJU KAUSHIK 1 and M. S. DULAWAT 2 1 Research Scholars, Mohanlal Sukhadia University, Udaipur, INDIA. 2 Department of Mathematics and Statistics, Mohanlal Sukhadia University, Udaipur, INDIA (Received on: May 16, 2012) ABSTRACT Traditional models of software evolution have been with us since the earliest days of software engineering. The traditional software life cycle model provides a systematic method to separate the different phases with efficient boundaries. A number of software life cycle models existing today primarily focused on building of traditional software systems. Software Process Improvement is generally regarded a key to economic success by increasing the quality of software systems, accelerating time-to-market and decreasing development costs. Component-based software engineering, as an emerging development paradigm, targets very similar goals by focusing on the assembly of software systems from components and emphasizing software reuse. Componentbased software development approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture. Because the new software development paradigm is much different from the traditional approach. In this paper, we survey and compare traditional software development models and current component-based software models, describe their advantages and disadvantages, and discuss the features they inherit. Keywords: Component, Software development, off-the-shelf, Component-Based System Development Lifecycle. INTRODUCTION Traditional methods for software development approach to the functionality of the system and mainly follow the sequential models like waterfall, which are mostly overridden by the Iterative and Evolutionary models like increment, prototyping,

309 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) Boehm s Spiral Model. The primary role of component-based software engineering is to address the development of systems as an assembly of parts (components), the development of parts as reusable entities, maintenance and upgrading of systems by customizing and replacing such parts. One of the main contributions that CBSE is the to reuse of software components in multiple systems. Component Reusability for component-based software development is a new topic in the software engineering community. In this way a software component is developed only once, and can save out development effort multiple times. This approach towards saving effort and work for other (intermediate) products that are made in the course of software development. An approach puts this idea central is called reuse-based software engineering. Component based software development approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture. The purpose of CBSD is to develop large systems, incorporating previously developed or existing components, thus cutting down on development time and costs. It can also be used to reduce maintenance associated with the upgrading of large systems. It is assumed that common parts (be it classes or functions) in a software application only need to be written once and re-used rather than being re-written every time a new application is developed. TRADITIONAL SOFTWARE DEVELOPMENT MODELS In this section of the course focuses on the traditional generic software process models to highlight them effectively demonstrate the different approaches to software development. Such models include the: 1. Build And Fix : This model, shown in Fig. 1.1, is the worst model for developing a project. The product is built without proper specifications and design steps. In essence, the product is built and modified as many times as possible until it satisfies the client. The cost of using this approach is greater than if specifications are drawn up and a design is carefully developed. Software engineers are strongly discouraged from using this development approach. Advantages It provides immediate feedback to developers: This shows immediate signs of progress. Removes planning/design/documentation overhead Disadvantages Increased time is spent debugging Does not promote documentation and therefore produced software is costlier to maintain. Design changes cost mush more after coding has started. After the sequences of changes, the codes structure become so messy that subsequent corrections become harder to apply and results become less reliable. 2. Waterfall Model: The waterfall model derives its name due to the cascading effect from one phase to the other. In this model

Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 310 each phase well defined starting and ending point, with identifiable deliveries to the next phase. The model consists of six distinct stages, namely: 2.1. In the requirements analysis phase. 2.2. The specification phase 2.3. The system and software design phase 2.4. The implementation and testing 2.5. The integration and system testing phase 2.6. The maintenance phase Advantages It enforces a disciplined engineering approach. Verification is done after each phase. Documentation produced can reduce maintenance cost. Feedback loops help to correct faults immediately. Disadvantages It only incorporates iteration indirectly, thus changes may cause considerable confusion as the project progresses. As The client usually only has a vague idea of exactly what is required from the software product, this WM has difficulty accommodating the natural uncertainty that exists at the beginning of the project. The customer only sees a working version of the product after it has been coded. This may result in disaster any undetected problems are precipitated to this stage. 3. Prototyping Model: A prototype is a working model that is functionally equivalent to a component of the product. In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed. This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product. The developmental process only continues once the client is satisfied with the functioning of the prototype. At that stage the developer determines the specifications of the client s real needs. Advantages When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the software and he can suggest changes and modifications. This type of approach of developing the software is used for non-it-literate people. They usually are not good at specifying their requirements, nor can tell properly about what they expect from the software. When client is not confident about the developer's capabilities, he asks for a small prototype to be built. Based on this model, he judges capabilities of developer. Sometimes it helps to demonstrate the concept to prospective investors to get funding for project.

311 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) It reduces risk of failure, as potential risks can be identified early and mitigation steps can be taken. Iteration between development team and client provides a very good and conductive environment during project. Time required to complete the project after getting final the SRS reduces, since the developer has a better idea about how he should approach the project. Disadvantages Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. It can be done using Rapid Application Development (RAD) tools. Please note sometimes the start-up cost of building the development team, focused on making prototype, is high. Once we get proper requirements from client after showing prototype model, it may be of no use. That is why; sometimes we refer to the prototype as "Throw-away" prototype. It is a slow process. Too much involvement of client is not always preferred by the developer. Too many changes can disturb the rhythm of the development team. 4. Incremental Model: This model derives its name from the way in which the software is built. More specifically, the model is designed, implemented and tested as a series of incremental builds until the product is finished. A build consists of pieces of code from various modules that interact together to provide a specific function. Advantages Generates working software quickly and early during the software life cycle. More flexible - less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Easier to manage risk because risky pieces are identified and handled during its iteration. Disadvantages At each stage of the IM a new build is coded and then integrated into the structure, which is tested as a whole. Each phase of an iteration is rigid and do not overlap each other. Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. 5. Spiral Model: The spiral model, combines the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model, therein providing the potential for rapid development of incremental versions of the software. In this model the software is developed in a series of incremental releases with the early stages being either paper models or prototypes. Later iterations become increasingly more complete versions of the product. Advantages The spiral model is a realistic approach to the development of large-scale software products because the software evolves as the process progresses. In

Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 312 addition, the developer and the client better understand and react to risks at each evolutionary level. The model uses prototyping as a risk reduction mechanism and allows for the development of prototypes at any stage of the evolutionary development. It maintains a systematic stepwise approach, like the classic life cycle model, but incorporates it into an iterative framework that more reflect the real world. If employed correctly, this model should reduce risks before they become problematic, as consideration of technical risks are considered at all stages. Disadvantages Demands considerable risk-assessment expertise. It has not been employed as much proven models (e.g. the WF model) and hence may prove difficult to sell to the client (esp. where a contract is involved) that this model is controllable and efficient. [More study needs to be done in this regard] COMPONENT BASED SOFTWARE DEVELOPMENT (CBSD) Component-based software development approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture. The term componentbased software development (CBD) can be referred to as the process for building a system using components 3. This approach is based on the idea that software systems can be developed by selecting appropriate offthe-shelf components and then assembling them with a well-defined software architecture 8,9. This new software development approach is very different from the traditional approach in which software systems can only be implemented from scratch. These commercial off-the shelf (COTS) components can be developed by different developers using different languages and different platforms. This can be shown in Fig.1. where COTS components can be checked out from a component repository, and assembled into a target software system. WHAT IS A COMPONENT? In defining a software component, this definition can be quoted: A component is a software element that conforms to a software model and can be independently deployed and composed without modification according to a composition standard 7. Fig. 1 Component-Based Software Development

313 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) COMPONENT-BASED SYSTEM DEVELOPMENT LIFECYCLE The different steps in the componentbased systems development process are: Find components which may be used in the system. All possible components are listed here for further investigation. To successfully perform this procedure, a vast number of possible candidates must be available as well as tools for finding them. This is an issue not only of technology, but also of business. Select the components which meet the requirements of the system. Often the requirements cannot be fulfilled completely, and a trade-off analysis is needed to adjust the system architecture and to reformulate the requirements to make it possible to use the existing components. Alternatively, create a proprietary component to be used in the system. In a component based development process this procedure is less attractive as it requires more efforts and lead-time. However, the components that include corefunctionality of the product are likely to be developed internally as they should provide the competitive advantage of the product. Adapt the selected components so that they suit the existing component model or requirement specification. Some components would be possible to directly integrated in to the system, some would be modified through parameterization process, some would need wrapping code for adaptation, etc. Compose and deploy the components using a framework for components. Typically component models would provide that functionality. Replace earlier with later versions of components. This corresponds with system maintenance. Bugs may have been eliminated or new functionality added. VARIOUS COMPONENT BASED SOFTWARE DEVELOPMENT PROCESS MODEL 1. Rapid Application Development Model (RAD) Achieves rapid development using a component based construction approach. But this model has various drawbacks such as efficient RAD teams; proper modularization is required, inappropriate when technical risks are high. Fig. 2 RAD Model of Software Development. This model is proposed when requirements and solutions can be modularized as independent system or

Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 314 software components, each of which can be developed by different teams. Then after it smaller components are developed, they are integrated to produce a large software system. 2. W-Model The W-model is presented. This is based on the general V-model and the disadvantages previously mentioned are removed 10. Steps involved in W Model are 1. Start of the Test Activities Review of the Requirements / Planning and Preparing Acceptance Test 2. Review of the Specification / Planning and Preparing System Test 3. Review of the Architectural Design Detailed Design Planning and Preparing Integration Test Unit Test 4. Executing Tests / Debugging and Changing 3.V Model Many of the process models currently used can be more generally connected by the V-model where the V describes the graphical arrangement of the individual phases. The V is also a synonym for verification and validation. The model is very simple and easy to understand. By the ordering of activities in time sequence and with abstraction levels the connection between development and test activities becomes clear. Oppositely laying activities complement one another i.e. serve as a base for test activities.

315 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 4. The Y Model The Y Software Life Cycle Model (Luiz, 2005) describes software reusability during CBSD. The Y Shape of the model considers iteration and overlapping. Although the main phases may overlap each other and iteration is allowed, the planned phases are: domain engineering, frame working, assembly, archiving, system analysis, design, Implementation, testing, deployment and maintenance.

Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 316 The reusability within this life cycle is smoother and more effective than within the traditional models because it integrates at its core, the concern for reuse and the mechanisms to achieve it. There is an upper layer that shows the component templates and a lower layer that consists of run-time objects that depicts the behavior of a particular software system. The development of a component should therefore be with generality and reuse in mind placing perhaps less emphasis on satisfying the specific needs of an application that is being developed. 5. The X Model In this X Model, the processes are started by requirement engineering and requirement specification. The main characteristic of this software life cycle model is reusability in which software is developed by Building reusable components for software development and software development from reusable and testable components. In software development, it uses two main approaches, develop software component for reuse and software development with or without modification in reusable component. Fig. 3 X Model of Software Development. The X model appears to be the best for large software development and has main focus on reusability but it does not depict risk analysis, feedback in various phases which is one of the reasons for the very success of Boehm s Spiral Model. Moreover the X-shape represents overlapping and increases complexity.

317 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) Comparison of Traditional & Component Based Software Development Process Models Table 1: Comparisons of Software Process Models Categories TRADITIONAL SOFTWARE PROCESS MODELS COMPONENT BASED SOFTWARE PROCESS MODELS Process Model Build and Fix Waterfall Prototyping Model Incremental Strengths Provides immediate feedback to developers, Removes Planning/design/documentation overhead Simple, concise, easy to execute, logical ordering, For well understood problems, short duration s projects. Customer can see steady progress, ease when requirement change rapidly. Develop high risk first, Initial product delivery is fast.. Spiral Introduces risk management, Prototyping controls costs, All iteration meets project need RAD W Model V Model Y Model X Model Knot Model This model is proposed when requirements and solutions can be modularized as independent system or software components, each of which can be developed by different teams. The tests and the ordering of the individual activities for testing are Clear, strengthen bond between tester and developer. The model is very simple and easy to understand. Reusability, Solving by analogy, Follows both top down and bottom up approach Reusability, clear requirements, for large systems Reusability, Easy Planning, requirements clear, no complexity of software applications, reduces risk and development time, reduces cost, applicable on larger & complex systems Weakness Time Costly. Consuming, Requirements are frozen early, user feedback & changes not allowed, Linear series of actions There is no way to changing rapidly know the number of iterations will be required. Require good planning and design, well define module interfaces, Complicated, Require attentive and knowledgeable management Effect team required, Proper modularization, AD is not appropriate when technical risks are high. Do not clarify the xpenditure needed for resources. Coarse division into constructive work on the left-hand side of the V and the more destructive tasks on the right-hand side. Iteration and overlapping during process Increases complexity, no risk analysis, increases cost Selecting a right component is difficult, reservoir may be huge or difficult to manage

Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) 318 ADVANTAGES OF COMPONENT BASED SOFTWARE DEVELOPMENT PROCESS MODELS Table 2: Advantages and disadvantages of Traditional & Component Based Software Development Process Models Process Models Advantages Disadvantages Traditional Process Models Easy to understand and implement. Widely used and known (in theory!). Works well on large/mature products and weak teams. Sometimes unrealistic to expect accurate requirements early in a project. Systems poorly structured. Requires highly skilled people analysis and planning. Requires more time, and is more expensive. Needs technical expertise in risk analysis and Risk management to work well. Component based Process Models Software re-used and reusability provides a number of tangible benefits. Reduce costs and risks. Faster delivery. Reduction in development cycle time. Improve Quality. Functionality can be delivered with less effort so productivity improves. More reliable systems, due to using previously tested components Time and effort required for development of components. Unclear and ambiguous requirements. Conflict between usability and reusability. Component maintenance costs. Reliability and sensitivity to changes. CONCLUSION In this paper we studied that there are many existing models for developing systems for different sizes of projects and these models were established in 70 s. Classical model and risk analysis model are used commonly in developing systems. Each model has advantages and disadvantages for the development of systems, so each model tries to eliminate the disadvantages of the previous model. In this evolving era of Information Technology, there is lot of pressure on software research community to reduce development cost as well as development time. So the component based software process models introduced. In our research paper we did the comparison

319 Manju Kaushik, et al., J. Comp. & Math. Sci. Vol.3 (3), 308-319 (2012) between development model and component based software process model. In our forthcoming papers we will proposed a new component based software process model. REFERENCES 1. Boehm B., A Spiral Model of Software Development and Enhancement, ACM SIGSOFT Software Engineering Notes, Vol. 11, No. 4, pp. 14-24 (1986). 2. Gill N. S. and Tomar P., X Model: A New Component-Based Model, MR International Journal of Engineering and Technology, Vol. 1, No. 1 & 2, pp. 1-9 (2008). 3. Luiz Fernando Capretz, " Y: A new Component-Based Software Life Cycle Model ", Journals of Computer Science1 (1) : pp.76-82. 4. Pressman, R.S., Software Engineering: A Practitioner s Approach, McGraw Hill, 6th ed., (2005). 5. Ivica Crnkovic Component-based Software Engineering New Challenges in Software Development. 6. Xia Cai, Michael R. Lyu, Kam-Fai Wong, Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes.. 7. George T. Heineman and William T. Councill, Component-Based Software Engineering Putting the Pieces Together, Addison-Wesley, Boston, MA,880, June (2001). 8. Xia Cai, Michael R. Lyu, Kam-Fai Wong Roy Ko, Component-Based Software Engineering Technologies Development Frameworks and Quality Assurance Schemes, The Chinese University of Hong Kong Hong Kong Productivity Council. 9. G. Pour, Component-Based Software Development Approach: New Opportunities and Challenges, Proceedings Technology of Object-Oriented Languages, TOOLS 26., pp. 375-383, (1998). 10. Spillner, A: From V-Model to W-Model Establishing the Whole Test Process., 11. Proceedings Conquest - 4th Conference on Quality Engineering in Software Technology, (2000).