CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT



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

A Comparision Between Traditional and Component Based Software Development Process Models

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

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

Umbrella: A New Component-Based Software Development Model

How To Model Software Development Life Cycle Models

Component Based Development in Software Engineering

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

Evolving a Ultra-Flow Software Development Life Cycle Model

Y: A New Component-Based Software Life Cycle Model

Unit 1 Learning Objectives

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

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

Software Project Models

Basic Trends of Modern Software Development

A Review of an MVC Framework based Software Development

Unit I. Introduction

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

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

Software Engineering. What is a system?

Software Life Cycle Processes

Software Development Life Cycle

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

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

Lecture 3 Software Development Processes

Software Engineering

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

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

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

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

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

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

The most suitable system methodology for the proposed system is drawn out.

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

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

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

CS4507 Advanced Software Engineering

Chap 1. Introduction to Software Architecture

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

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

SOFTWARE PROCESS MODELS

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

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

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

A Process Model for Software Architecture

AGILE vs. WATERFALL METHODOLOGIES

A Survey of Software Development Process Models in Software Engineering

Software Development Life Cycle (SDLC)

Introduction to Software Paradigms & Procedural Programming Paradigm

Extend the value of your core business systems.

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

Agile Processes and Methodologies: A Conceptual Study

Software Development Life Cycle & Process Models

Software Engineering Question Bank

What is a life cycle model?

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

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

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

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

Chapter 8 Approaches to System Development

Karunya University Dept. of Information Technology

Classical Software Life Cycle Models

Example Software Development Process.

A Comparison between Five Models of Software Engineering

Software Process and Models

Software Engineering 1

Software Life Cycle Models

An Improved Model for Component Based Software Development

CSE 435 Software Engineering. Sept 16, 2015

Lecture 1: Introduction to Software Quality Assurance

White Paper IT Methodology Overview & Context

(Refer Slide Time: 01:52)

Software Development Process Models

JOURNAL OF OBJECT TECHNOLOGY

INTRODUCTION TO SOFTWARE ENGINEERING

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

INTRODUCTION. Chapter Motivation

DATABASE DEVELOPMENT LIFE CYCLE

Weaving the Software Development Process Between Requirements and Architectures

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

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

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

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Chapter 3 Technology adapted

Development Methodologies

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

Modelli di sviluppo software. Enrico Giunchiglia

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Managing the Services Lifecycle SOA & BPM

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

IT3205: Fundamentals of Software Engineering (Compulsory)

International Journal of Advance Research in Computer Science and Management Studies

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

Transcription:

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT CONTENTS 5.1 Introduction 5.2 Component based software life cycle process model 5.2.1 Rapid Application Development Model 5.2.2 The Y Model 5.2.3 The X Model 5.3 Knot model for component based software development 5.4 Comparisons of software process models 5.5 Conclusions 5.1 INTRODUCTION A Software Life Cycle Model is an expressive and diagrammatic representation of the software process. Software life cycle model describes the phases of the software cycle. It also depicts the order in which these activities are to be commenced. A life cycle model maps the different activities performed on a software product from its inception to retirement. To develop a software product in a systematic and disciplined manner, the development team must identify a suitable life cycle model for the specific project and then follow it. The basic activities are included in all life cycle models, though the activities may be carried out in different orders in different life cycle models. The general basic model is: Requirements Design Testing < > f Implementation Figure 5.1 Basic Model of Software Development. STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 92

Knot Modelfor CBSD 5.2 COMPONENT BASED SOFTWARE LIFE CYCLE PROCESS MODEL A few process models have been designed by a number of researchers so far for component based software development. Most common among them are studied and described briefly. 5.2.1 Rapid Application Development Model The RAD (Rapid Application Development Model) is a linear sequential software development process model that achieves rapid development using a component based construction approach. It is effective when requirements are well understood and project scope is constrained. Software reuse and component-based construction reduces the cost. But this model has various drawbacks such as efficient RAD teams, proper modularization is required, inappropriate when technical risks are high. For large, but scalable projects, RAD requires sufficient resources. Its quality depends on the quality of existing components. It is not appropriate projects with high technical risk and new technologies. Modeling informahon /low among functions Team ft i Business Modeling Modeling information fl<m> in terms ofbuaness data and objects ~] Data Modeling 60-90 days Defming functional processes by mapping the tko preiious results ' ' Process Modeling Usefourth generation techniques or automatic tools to constructsoftnare > Application Generation Testing new components perform integration tests 1 Testing & Timm er Figure 5.2 RAD Model of Software Development. 93 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS

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. Then after it smaller components are developed, they are integrated to produce a large software system. 5.2.2 The Y Model The Y Software Life Cycle Model [Luiz05] describes software reusability during CBSD. ft explicitly encourages reusability along all their phases. The main characteristic of this software life cycle model is the emphasis on reusability during software creation and evolution and the production of potentially reusable components that are meant to be usefiil in fiiture software projects. The main idea behind this model is reusability by initially selecting reusable components and assembling them or by adapting the software from a reusable library. System Analysis Deployment Implcmcniat Assembly Archiving Selection/ \^ Adaptation Frameworking Catalog/ Storage Domain Engineering D Figure 5.3 Y Model of Software Development. STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 94

The Y Shape of the model considers iteration and overlapping where appropriate. 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. 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.2.3 The X Model In this X Model, the processes are started by requirement engineering and requirement specification. It has a complex multifaceted activity that involves software analysis and specifications, design, coding and archiving, component testing, component wrapping, domain analysis, domain engineering, frame working, assembling, system testing, implementation and deployment, and maintenance of software components. Software development with components is focused on the identification of reusable entities and relations between them, beginning from the system requirements and from the availability of components already existing. 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. X model appears to cover the likely phases of large software development and enforces software reusability along its phases. Components are built to be used and reused in many applications. In software development, it uses two main approaches, develop software component for reuse and software development with or without modification in reusable component [GillOS]. 95 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS

Softworc specif k:atwn> I «55t t^*'*'' Development With Reuse '^^ ^^^^ Select Component oeconding Sof twore Andysis, Specifications & Design Figure 5.4 X Model of Software Development. Analysis & Specifkotions 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. 5.3 A- KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT In this study, a new Component based model is described in which reusability in the form of component is applied. The utmost emphasis is given on estimation, reusability, modularity, risk analysis and feedback in each phase. This model provides simple, error free and a profound new system, with proper feedback in each phase of software development. For a new CBSD, it uses all the three constituents: the newer one, the existing component and the modified component to build up a new development. STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 96

Knot Modelfor CBSD It consists of four phases. 1 Reusable Component Pool 2 Development of New Component 3 Modification of Existing Component 4 Development of New Component Based Software Development. Component CcKlng& Documentation Evaluate & Adaptability Componenti Telling RUb Analysis ^ "«JBt Implementation '^^ " - ^ Feedborfj Maintenance Figure 5.5 A New Knot Model of Software Development. The major advantages of this software life cycle is to handle the complex systems using modularity, reusability, life time process, evaluation & testing in each phase to reduce the risk. And moreover the developed CBSD itself is available in pool for the newer version of the software. Older versions of the software were kept intact in pool for reverting as or when required during testing and hence reliability of the system is enhanced. 97 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS

Chapter-5 This model is easy to adopt as it follows the existing models like increment, prototyping and spiral model durmg various phases. 5.3.1 Reusable Component Pool This phase of Ji- Knot Model in CBSD life cycle acts as a central reservoir of the components. All the other three phases are directly interact with it. Reusable Component Pool Figure 5.6 Knot Model- Reusable Component Pool It is considered as a warehouse of the Ji- Knot Model. It is helpful in selecting the desired component which is used for development as per design and specifications. Whenever a new component is developed that becomes the component/member of the pool. And more over the final product also lies with the pool to enhance the library. 5.3.2 Development of New Component In this phase a new component is developed whenever the existing component in library/reusable component pool does not satisfy the required software analysis, specifications and design. The end-product of this phase enhances the component warehouse. This phase started with an estimating cost, risk analysis, and then STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 98

software analysis and its specifications followed by design, coding, testing and feedback. Figure 5.7 Knot Model- Development of New Component These steps are carried out considering the services of the required component, portability, in the current system and as well for the future use. Depending upon the component design, one can opt for a suitable existing model like increment, prototyping, and spiral model to carry out this phase. Modularity is the key concern so that a system is decomposed before starting of this phase. 5.3.3 Modification of Existing Component This phase of x- Knot Model adopting reusability whenever the existing components in the reservoir does satisfy the required software analysis, specifications and design up to an extent. This phase thus results to the modification of components from the existing pool having most of the specification according to new requirements. This phase plays a significant role in this model as most of the components are to be modified according to the specifications and design from the existing pool. 99 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS

Modification of Existint Component KNOT MODEL Selecting a Desired Component Figure 5.8 Knot Model-Modification of Existing Component The reusability lies as most of the component specifications are carried with the new system. But it requires a categorized/indexed form of the components so that at the beginning, a right component is being selected which satisfies most of the specifications in the new system. 5.3.4 Development of New Component Based Software Development This is the final phase of this model which again starts from the component pool. This phase provides the shape to the new system as all the desired components are now assembled by resolving the inter-component risk and the process is carried out till the retirement of the software. So finally, the cost is estimated for the CBS system using existing tools and then risk with assembling of components are detected and resolved to continue this phase. As this phase is the actual software development of CBS, so by assembling the components available in the repository, the whole system testing and implementation is carried out. During this, process techniques like black box or white box for testing or other traditional techniques/ tools for software testing are used. STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 100

KNOT MODEL Estimating Risk Analysis Assembly System Testing mpiementation Feedback Maintenance Figure 5.9 Knot Model-Component Based Software Development After than Implementation and system acceptance phases are carried out. Feedback plays the main role in maintaining quality of the system. The maintenance stage is not meant ftjr feedback solutions but it is a life time process till the retirement of the software. Maintenance includes the update of software, addition, modification, scalability or any type of improvement on latter stages. 5.4 COMPARISONS OF SOFTWARE PROCESS MODELS Table 5.1: Comparisons of Software Process Models Process Strengths Weakness Model Waterfall Simple, concise, easy to execute, logical ordering, For well understood problems, short duration's projects. Requirements are frozen early, user feedback & changes not allowed, Linear series of actions 101 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS

Prototyping Iterative Spiral X Model Y Model Knot Model Help in requirements elicitation, constructive feedback, reduce risks, leads to better systems. Quick delivery, reduce risk, allows user feedback, when requirement are not known earlier. Planning and negotiations easier, flexibility in development, for larger projects Reusability, clear requirements, for large systems Reusability, Solving by analogy, Follows both top down and bottom up approach Reusability, Easy Planning, requirements clear, no complexity of software applications, reduces risk and development time, reduces cost, applicable on larger & complex systems Heavy process, disallow later changes Each iteration have plarming overhead, cost increase during iteration, effective management to control iterations Requirement not clear, needs confirmations and high risks hicreases complexity, no risk analysis, increases cost Iteration and overlapping during process Selecting a right component is difficult, reservoir may be huge or difficult to manage 5.5 CONCLUSIONS In this chapter a new ji- Knot Model for Component Based Software Development Life Cycle is proposed which lays emphasis on reusability considering risk analysis and feedback in each and every phase. This model is best suited for medium or larger complex system's development. It is based on three states of the component STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS 102

When a new component is not available in the repository, then it develops a new component for reuse and places it in the pool. When a component is partially available, then modifies it for reuse and places it in the pool. When a component is available in the repository then reuses it during the new proposed system. An utmost care should be taken that each component is created for reuse, so the component is not based on particular application's specification but must carry general specifications. In this model risk is resolved in early stages of each phase. This results in the reduction of cost and time and makes the software more reliable and efficient. Moreover feedback at the end of each phase results in fiirther improvement and revised form of component. It also reduces the cost and time by better management as it resolves the conflicts, if any, during that phase. This model may require further improvement with the change of technologies in this fast emerging field. 103 STUDY AND DESIGN OF OBJECT-ORIENTED AND COMPONENT-BASED METRICS