Analysis of Software Process Models and Applications



Similar documents
A Comparison between Five Models of Software Engineering

A Comparison Between Five Models Of Software Engineering

Overview of Software Engineering and the Software Development Process

An Assessment between Software Development Life Cycle Models of Software Engineering

ASSESSMENT OF SOFTWARE PROCESS MODELS

What is Software? The Software Development Process. Definition of Software. Why Software?

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

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

Software Project Models

Software Development Life Cycle & Process Models

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

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

INTRODUCTION TO SOFTWARE ENGINEERING

Chakra Vs Spiral Model - A Practical Approach

Unit I. Introduction

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

CS4507 Advanced Software Engineering

Improving Resource and Manpower Allocation Using Enhanced Software Development Model for Efficient Generation of Software

A Process Model for Software Architecture

How To Model Software Development Life Cycle Models

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software Development Life Cycle

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

Unit 1 Learning Objectives

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

Evolving a Ultra-Flow Software Development Life Cycle Model

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

Rapid Software Development

Overview and History of Software Engineering

International Journal of Advance Research in Computer Science and Management Studies

Software Life Cycle Processes

2. Analysis, Design and Implementation

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Engineering Tools and Methods

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

Elite: A New Component-Based Software Development Model

P.G.D.C.A SOFTWARE ENGINEERING CONTENTS

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

A Survey of Software Development Process Models in Software Engineering

Umbrella: A New Component-Based Software Development Model

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

Software Engineering

Information Systems Development Process (Software Development Life Cycle)

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

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

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

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

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

What is a life cycle model?

Modelli di sviluppo software. Enrico Giunchiglia

2. Analysis, Design and Implementation

In the case of the online marketing of Jaro Development Corporation, it

A Review of an MVC Framework based Software Development

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

The Spiral development model is a risk-driven process model generator. It

Chapter 2 Software Processes

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

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

Reusability of WSDL Services in Web Applications

IT3205: Fundamentals of Software Engineering (Compulsory)

Software Engineering. What is a system?

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

Software Engineering Reference Framework

Describe the process of parallelization as it relates to problem solving.

A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement. Systems Engineering. Ali M. Hodroj

Software Development Processes. Software Life-Cycle Models

Knowledge, Certification, Networking

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Increasing Development Knowledge with EPFC

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

LESSON - 1 THE ROLE OF SOFTWARE

Introduction to Software Engineering

Applying Agile Methods in Rapidly Changing Environments

Software Development Life Cycle (SDLC)

Modeling the Mobile Application Development Lifecycle

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

Advanced Software Engineering. Software Development Processes

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

How To Understand The Limitations Of An Agile Software Development

SWEBOK Certification Program. Software Engineering Management

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

Basic Unified Process: A Process for Small and Agile Projects

Chapter 4 Software Lifecycle and Performance Analysis

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

Automated Test Approach for Web Based Software

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

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

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

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

How To Use Neural Networks In Data Mining

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

Managing TM1 Projects

Transcription:

Analysis of Software Process Models and Applications Abstract: The field of software engineering is related to the development of software. Large software needs systematic development. Simple Programs can be developed without following any systematic approach. From the last few years, the computer industry has undergone revolutionary changes in hardware as well as in software. Software management is a process that specifies the area of software development through the process models, which are known as software development life cycle. A brief overview about different models of software development and comparison between them was analyzed. This Paper categorizes and specifies a number of methods for describing or modeling how software systems are developed. It begins with background and definitions of traditional software life cycle models and current software development practices. K.Venkataramani 1 1 Sr.Asst.Professor, Dadi Institute of Engineering & Technology, NH-5,Anakapalli, Visakhapatnam 531002, INDIA Requirement Gathering: To develop software, first we have to gather all the requirements from customer or stakeholder. Planning: Basing on the requirements, budget, time has to be adjusted to develop the software. Analysis & Design: Complete Analysation is done on the requirements and planning. After complete analysation designing is started. For the design, different tools are used. Implementation: For the above design, code is generated with proper programming language. Testing and Maintenance: After completion of developing software, testing is performed. If the product is well tested then it will go for alpha and beta tests. Keywords: Software design, software management process, software design, framework activities, software development life cycle. The above activities are called frame work activities. In any software life cycle models or software process models these five activities are performed and modified. 1. INTRODUCTION The importance of computer is increasing day by day. Computer has become popular in different fields such as industry, medicine, commerce, education and even agriculture. Now a days, organizations become more dependent on computer in their works as a result of computer technology [4]. Computer is considered a timesaving device and its progress helps in executing complex, long, repeated processes in a very short time with a high speed. In addition to using computer for work, people use it for fun and entertainment. Noticeably, the number of companies that produce software programs for the purpose of facilitating works of offices, administrations, banks, etc, has increased recently which results in the difficulty of enumerating such companies. Today, software takes on a dual role. It is a product and, at the same time, the vehicle for delivering a product. Most of the people consider the program and software [12, 13] to be same. But software not only consists of programs but also the supporting documents. Software lifecycle models are used as tools for planning and monitoring software projects. Different models have been proposed. Each model s effectiveness varies with project circumstances. It is widely acknowledged that no single model is effective in all situations. Because of this, an effective model must be selected for every project. A software process model[14][5] is an abstract representation of a process. It presents a description of a process from some particular perspective as: 2. SOFTWARE APPLICATIONS Software may be applied in any situation for which a prespecified set of procedural steps (i.e., an algorithm) has been defined (notable exceptions to this rule are expert system software and neural network software). Information content and determinacy are important factors in determining the nature of a software application[6]. Content refers to the meaning and form of incoming and outgoing information. The following software areas indicate the breadth of potential applications[14]. System software.: System software is a collection of programs written to service other programs. Some system software (e.g., compilers, editors, and file management utilities) processes are complex, but determinate, information structures. Other systems applications (e.g., operating system components, drivers, telecommunications processors) process largely indeterminate data. In either case, the system software area is characterized by heavy interaction with computer hardware; heavy usage by multiple users; concurrent operation that requires scheduling, resource sharing, and sophisticated process management; complex data structures; and multiple external interfaces. Real-time software: Software that monitors/analyzes/controls real-world events as they occur is called real time. Elements of real-time software include a data gathering component that collects and formats information from an external environment, an Volume 3, Issue 3 May June 2014 Page 203

analysis component that transforms information as required by the application, a control/output component that responds to the external environment, and a monitoring component that coordinates all other components so that real-time response can be maintained. Business software: Business information processing is the largest single software application area. Discrete "systems" (e.g., payroll, accounts receivable/payable, inventory) have evolved into management information system (MIS) software that accesses one or more large databases containing business information. Applications in this area restructure existing data in a way that facilitates business operations or management decision making. In addition to conventional data processing application, business software applications also encompass interactive computing (e.g., pointof- sale transaction processing). Engineering and scientific software: Engineering and scientific software have been characterized by "number crunching" algorithms. Applications range from astronomy to volcanology, from automotive stress analysis to space shuttle orbital dynamics, and from molecular biology to automated manufacturing[7]. However, modern applications within the engineering/scientific area are moving away from conventional numerical algorithms. Computer-aided design, system simulation, and other interactive applications have begun to take on real-time and even system software characteristics. Embedded software.:intelligent products have become commonplace in nearly every consumer and industrial market. Embedded software resides in read-only memory and is used to control products and systems for the consumer and industrial markets. Embedded software can perform very limited and esoteric functions (e.g., keypad control for a microwave oven) or provide significant function and control capability (e.g., digital functions in an automobile such as fuel control, dashboard displays, and braking systems). Personal computer software:the personal computer software market has burgeoned over the past two decades. Word processing, spreadsheets, computer graphics,multimedia, entertainment, database management, personal and business financial applications, external network, and database access are only a few of hundreds of applications. Web-based software:the Web pages retrieved by a browser are software that incorporates executable instructions (e.g., CGI, HTML, Perl, or Java), and data (e.g.,hypertext and a variety of visual and audio formats). In essence, the network becomes a massive computer providing an almost unlimited software resource that can be accessed by anyone with a modem. systems, also called knowledgebased systems, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing are representative of applications within this category. 3. PROCESS MODELS The classic software life cycle models [3][13] usually include some version or subset of the following activities: Communication: There must be proper communication between user and developer for better understanding of requirements. Planning : planning for the proper budget and deadline are prepared. Analysis & Design: Analyze all requirements and construct proper design using design techniques. Implementation: Code is written in understandable programming language. Deployment: Testing is performed and released to end users. A software process model [8] is an abstract representation of a process. It presents a description of a process from some particular perspective as: 1. Specification. 2. Design. 3. Validation. 4. Evolution. General Software Process Models[1] are: 1. Waterfall model: Separate and distinct phases of specification and development. 2. Prototype model. 3. Rapid application development model(rad). 4. Evolutionary development: Specification, 5. Development and validation are interleaved. 6. Incremental model. 7. Iterative model. 8. Spiral model. 1. Water fall model: The waterfall model is the classical model of software engineering. This model is one of the oldest models and is widely used in government projects [2] and in many major companies. This model includes requirement gathering, planning, analysis & design, implementation, deployment. Artificial intelligence software: Artificial intelligence (AI) software makes use of nonnumerical algorithms to solve complex problems that are not amenable to computation or straightforward analysis[4]. Expert Volume 3, Issue 3 May June 2014 Page 204

As this model emphasizes planning in early stages, it ensures design flaws before they develop. The model begins with establishing system requirements and software requirements and continues with architectural design, detailed design, coding, testing, and maintenance. The waterfall model serves as a baseline for many other lifecycle models. 2.Prototype Model: The concept of prototyping is not new in various streams of engineering. A prototype is a partially developed product. Management define prototyping as a process [6] of developing working replica of a system. This activity of prototyping now forms the basis of prototype software development life cycle model. Most of the users do not exactly know what they want until they actually see the product. Prototyping is used for developing a mock-up of product and is used for -obtaining user feedback in order to refine it. 1. Requirements Gathering focuses on collecting requirements using elicitation techniques [14] 2. User Description Requirements are detailed by taking users feedback by building prototype using development tools. 3. Construction The prototype is refined to build the product and released to the customer. 4. Cutover or testing involves acceptance testing by the user and their training. 5. Deployment: Maintenance of the product. 4.. Incremental model: Rapid Throwaway Prototyping: This approach is used for developing the systems or part of the systems where the development team does not have the understanding of the system. The quick and dirty prototypes are built, verified with the customers and thrown away. This process continues till a satisfactory prototype [9] is built. At this stage now the full scale development of the product begins. Evolutionary Prototyping: This approach is used when there is some understanding of the requirements. The prototypes thus built are not thrown away but evolved with time. The concept of prototyping has also led to the Rapid prototyping model and the Spiral model. The Incremental Software Development Life Cycle Model Software like all other complex systems is bound to evolve due to changing business requirements or new requirements coming up [2]. Hence there is a need to have a model which can accommodate the changes in the product. The models discussed earlier do not take into consideration the evolutionary nature of the product. Evolutionary models are also iterative in nature. The incremental software development life cycle model is one of the popular evolutionary software process model used by industry.in this model,once the product is developed and wants to add new features later then incremental models are used. 3. Rapid application development model (RAD): The Rapid Application Development (RAD) model [9][10] was proposed by IBM in 1980s and later on was introduced to software community by James Martin through his book Rapid Application development. The RAD model consists of following phases: Volume 3, Issue 3 May June 2014 Page 205

5. Spiral model: The spiral model[14] is similar to the incremental model, with more emphases placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting[14] in the planning phase, requirements are gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase. Software is produced in the engineering phase, along with testing at the end of the phase. The evaluation phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral. In the spiral model, the angular component represents progress, and the radius of the spiral represents cost[7][11]. Importance of model selection The selection for a software lifecycle model for a project is an important decision. It impacts on project success by affecting the following: The software lifecycle s overall cost The distribution of cost over the software lifecycle Software development speed Software quality The ability to tracking and control the project The project s overhead The level of risk associated with the project Client relations No single software lifecycle model is appropriate for all situations. This is due to the diversity in project, system and organisational characteristics[12]. This fact is reflected by the standards. Because of this, a software lifecycle model must to be selected to suit each project s characteristics. 4. CONCLUSION The Software life cycle models are the tools that help to manage software life cycle. They will provide common understanding about life cycles. This paper represents comparison of different software process models. These models specify process consistency and improvement. Each model has its own strengths and weaknesses. Some models are more appropriate in certain project circumstance than others. The selection of a software lifecycle model for a project is an important decision. The use of an inappropriate model can be detrimental to project success and software quality. This paper categorizes and examines a number of methods for describing or modeling how software systems are developed, what are the applications of software etc.. It begins with background and definitions of traditional software life cycle models and current software development practices. References [1] Balzer, R., Transformational Implementation: An Example, IEEE Trans. Software Engineering, 7, 1, 3-14,1981. [2] Kaiser, G., P. Feiler, and S. Popovich, Intelligent Assistance for Software Development and Maintenance, IEEE Software, 5, 3, 1988. [3] Zave, P., The Operational Versus the Conventional Approach to Software Development, Communications of the ACM, 27, 104-118, 1984. [4] Ian Sommerville, "Software Engineering", Addison Wesley, 7th edition, 2004. [5] Steve Easterbrook, "Software Lifecycles", University of Toronto Department of Computer Science, 2001. [6] Karlm, "Software Lifecycle Models', KTH,2006. [7] CTG. MFA 003, "A Survey of System Development Process Models", Models for Action Project: Developing practical Approaches to Electronic Records management and Preservation, Center for Technology in Government university at Albany / Suny,1998. [8] A.T. Bahill. and S. J. Henderson. Requirements Development, Verification and Validation Exhibited in Famous Failures. Wiley Periodicals, Inc, Systems Engineering, 8(1): 1-14,2005. [9] B.Nuseibeh and S.Easterbrook. Requirements engineering: a roadmap. In Proceedings of the Conference on the future of Software Engineering. Limerick, Ireland 2000. [10] Alexander, L, Davis, A, Criteria for Selecting Software Process Models, presented at COMPSAC 1991. [11] International Organisation for Standardization / International Electrotechnical Commission 2004. Software Engineering Guide to the Software Engineering Body of Knowledge (SWEBOK), ISO/IEC TR, 1975. [12] Comer, E, Alternative Software Life Cycle Models, presented at International Conference on Software Engineering 1997. [13] JJ Kuhl, "Project Lifecycle Models: How They Differ and When to Use Them",2002 www.businessesolutions.com Volume 3, Issue 3 May June 2014 Page 206

[14] Software Engineering-Practitioner s approach-roger S Pressman AUTHOR Venkataramani Korupala is a Sr. Assistant Professor in the Department of Computer Science & Engineering, Dadi Institute of Engineering and Technology (Affiliated to JNTUK), Anakapalle, Visakhapatnam, Andhra Pradesh, India. She obtained his M.Tech in Computer Science and Engineering from JNTU, Kakinada. Her main research interests are Software Engineering, Mobile Computing, Computer Networks. Volume 3, Issue 3 May June 2014 Page 207