Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Similar documents
Chapter 3 Prescriptive Process Models

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Introduction to Systems Analysis and Design

Software Engineering Part 2

Introduction to Software Engineering

Pertemuan 2. Software Engineering: The Process

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Chapter 6. Software Quality Management & Estimation

Software Processes 1

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

Software Design COSC 4353/6353 D R. R A J S I N G H

Explore Comparative Analysis Software Development Life Cycle Models

Note 10: Software Process

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

SDLC Models- A Survey

Chapter 3 Software Process Model

A Comparative Study on Software Development Life Cycle Models

3. Comparison of Above Described SDLC Models

Software Development Life Cycle (SDLC) Tata Consultancy Services ltd. 12 October

Darshan Institute of Engineering & Technology for Diploma Studies


Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

The software process

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

SOLUTION BRIEF CA AGILE REQUIREMENTS DESIGNER FOR CA AGILE CENTRAL. CA Agile Requirements Designer for CA Agile Central

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

A Comparative Study of Universally Accepted SDLC Models for Software Development

CMPT 275 Software Engineering

The Systems Development Lifecycle

Analysing client requirements

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Basics of Software Engineering. Carmen Navarrete

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

SDLC AND MODEL SELECTION: A STUDY

Software Engineering

COSC 735: Software Engineering Test 1 Sample Solution

Building Information Systems

Software Engineering

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

Test Workflow. Michael Fourman Cs2 Software Engineering

A New Divide & Conquer Software Process Model

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

CSE 435 Software Engineering. Sept 14, 2015

Chapter 13. Building Information Systems

Waterfall model is the earliest SDLC approach that was used for software development.

A Comparison Between Evolutionary and Prototype Model

03. Perspective Process Models

Chapter 1 Systems Development in an Organization Context

SOFTWARE ENGINEERING

Software configuration management

Confident Software Development Process Model

A Review Paper on Software Testing

Software Engineering COMP 201

Information Systems Development

Chap 1 : Business Process Management & IT

Management Information Systems. B14. Acquiring IT Applications and Infrastructure

Building Information Systems

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Chapter 2: Project Methodologies and Processes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

5) A work breakdown structure is a list of tasks broken down to small manageable activities. Answer: TRUE Diff: 2 Page Ref: 42

2068 I. Attempt any ten questions. (10x6=60)

Software Development Life Cycle:

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

Modern Systems Analysis and Design Seventh Edition

What We ll Cover. What is the SDLC? Component 8 Installation and Maintenance of Health IT Systems

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Software Engineering & Architecture

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Course Information. Course Topics

Introduction. Figure 1-1

Chapter 26. Quality Management

Software Engineering (MCA)

Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 21 st, Requirements Engineering

Watson Internet of Things. Agile Development Why requirements matter

Agile Projects 7. Agile Project Management 21

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Transition from conventional to Agile process model An Experience Report

An Application of Causal Analysis to the Software Modification Process

The Top Thrill Dragster

Program Lifecycle Methodology Version 1.7

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Master of Computer Applications

1. Can you explain the PDCA cycle and where testing fits in?

Sistemi ICT per il Business Networking

Software Estimation Is the problem solved? Sanathanan Rajagopal CAAS

CHAPTER 2 LITERATURE SURVEY

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas

SWE 211 Software Processes

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters. Software Engineering

9/24/2011 Sof o tw t a w re e P roc o e c s e s s s Mo M d o e d l e s l 1 Wh W a h t t i s i s a Pr P oc o ess s 2 1

Transcription:

Failure Rate Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1 SOFTWARE (What is Software? Explain characteristics of Software. OR How the software product is differing than hardware product? OR Explain: Software doesn t wear out, but it does deteriorate. ) Software is a set of programs, which is designed to perform a well defined function. Software can be difficult to describe because it is virtual, or not physical like computer hardware. Instead, software consists of lines of code written by computer programmers. CHARACTERISTICS OF WELL ENGINEERED SOFTWARE If software satisfies all the beloved characteristics then it is said to be good software or the software is well engineered. Software is engineered, not manufactured like hardware Software development is same as hardware manufacturing but it is fundamentally different activity. In hardware manufacturing it introduce quality problem but it can easily corrected in software development. Once a product is manufactured it is not possible or not easy to correct it, change it, enhance it, remove error from it without temper product or it is costly. But software can easily. So the approach of construction of product is different. In case of hardware product numbers of copies generate a cost due to raw material and other manufacturing processing expenses but in case of software it is not the issue. You can create number of copies of software. Software does not wear out First we understand the characteristic of hardware. Hardware can damaged after running time. As time passes hardware component suffer from effects of dust, vibration, misuse, temperature and many other environmental effects. So the failure rate rises. This is the wear out of hardware. Born Phase Usefull Life Phase Wear out Phase Time Figure 1 Figure 2 1 Dept: CE FSD (3341603) Piyush Bhut

The "bathtub curve" shown in Figure 1 depicts failure rate of hardware as a function of time. Hardware suffers high failure rate early in its life. There are three phases in hardware life. In first phase failure rate is much more. But after testing and fixing bugs failure rate will come down and may stabilize after certain time. Second phase is useful life phase of hardware component where failure rate is approximately low and constant. And after few years it comes in last stage where failure rate is high and product will wear out. But software is not highly affected by environmental effects which cause hardware to wear out. The failure rate graph for software component is "Idealized curve" shown in Figure 2. Undiscovered errors will cause high failure rates early in the life of a program. However, these are corrected and the curve becomes flat as shown. The "actual curve" is shown in Figure 2. During its life, software will undergo change or maintenance. As changes are made, some new defects will be introduced, causing the failure rate curve to spike. When hardware component wears out, it is just replaced by spare parts. There is no spare part to replace in software component. It requires further changes in existing product or component. So it is more complex than hardware. Software gives component-based construction, it gives reusability of components Now a day s industry is moving towards component based construction. Efforts have been made to design standard components that may be used in new project. Software reusability has introduced another area which is known as component based software engineering. A software component should be designed and implemented so that it can be reused in many different programs. Once different components are created and tested separately, at final product each component separately not needed to be checked or tested. Integration of components and final product should be tested. Graphical User Interfaces are built using reusable components that enables the creation of graphics window and animated menus. Software is flexible for custom built A program can be developed to do anything. Sometimes, this characteristic may be the best and may help us to accommodate any kind of change. However, most of the times, this "almost anything" characteristic has made software development difficult to plan, monitor and control. This unpredictability is the beginning of software crisis. SOFTWARE MYTHS Software myths propagate false beliefs and confusion in the minds of management, users and developers. 2 Dept: CE FSD (3341603) Piyush Bhut

Management Myths Manager is responsible to maintain a software budget, time constraints, improved quality, and many other considerations. Common management myths are listed in Table. Myths We already have book that s full of standards and procedures for building software. If the project is behind schedule, increasing the number of programmers can reduce the time gap. If the project is outsourced to a third party, the management can relax and let that party develop software for them. Reality Standards are incomplete and outdated. Developers are unaware of standards. Developers rarely follow standards. New workers take longer to learn about the project as compared to those already working on the project. So further delays the project. If organization does not understand how to manage and control software project internally. It will invariably suffer when it outsources the software projects. User Myths Common user myths are listed in Table. Myths Brief requirement stated in the initial process is enough to start development; detailed requirements can be added at the later stages. Software is easy to change because software is flexible. Reality Starting development with incomplete and ambiguous requirements lead to software failure. Adding requirements at a later stage often requires repeating the entire development process. Changes at later stage may require redesigning and extra resources. Developer Myths Some of the common developer myths are listed in Table. Myths Once the program is written, the job has been done. Software quality can be measure only after the program is executed. The only product that is delivered after the completion of a project is the working program(s). Unnecessary documentation slows down the project. Reality 60% to 80% of all the efforts are expended after the software is delivered to the user. Using formal technical review quality of software measured during any phase of development process. Successful project includes not only the working program but also the documentation to guide the users for using the software. Proper documentation enhances quality which results in reducing the amount of rework. 3 Dept: CE FSD (3341603) Piyush Bhut

SOFTWARE ENGINEERING (What is software engineering? Explain Software Engineering as a Layered Technology. OR What is software engineering? Explain the need of Software Engineering.) Software engineering is a branch in computer science that deals with developing applications. It covers the technical part of building software systems through designing, implementing, and modifying software. It also covers software management issues, such as directing programming teams, scheduling, and budgeting. Software engineering may be defined as the systematic design and development of software products and the management of the software process. NEED OF SOFTWARE ENGINEERING Software engineering is methodology provides the framework that guides engineers to developing the software. This framework defines different phases of software development such as requirements analysis, designing, testing, implementation, maintenance etc. The hard part of building software is the specification, designing and testing, not the representation and implementation. Software engineering describes how the software is designed, what types of their requirements and what types of different phases are needed to complete the software product. The main goal of software engineering is to provide models and processes that produce welldocumented, maintainable software. Using process model we can determine in advance how much time, cost and efforts are required to produce the final complete product. Main important point of any software development process is the life cycle on which flow of process is based. This is called software development life cycle (SDLC). SDLC includes requirement phase, design phase, implementation phase, testing phase, installation phase, maintenance phase. Different process models are used in different condition and situations. To get the advantages of any specific process model, particular process model should be followed during development of any software product. This process model specifies a general process, usually a set of stages in which a project should be divided, the order in which the stages should be executed. Overall, the actual purpose of these software life cycle models is to provide a conceptual scheme for managing the development of software systems. Such a scheme could therefore serve as a basis for planning, organizing, staffing, coordinating, budgeting and directing software development activities. SOFTWARE ENGINEERING: A LAYERED TECHNOLOGY Software engineering is a layered technology. Software engineering includes process, methods and tools that enable complex computer system to be built in a timely manner with quality. To build any software product engineer should use and aware of these four layers: Quality, Process, Methods and Tools. 4 Dept: CE FSD (3341603) Piyush Bhut

Quality Process Method The main focus of software engineering is to develop quality product. Quality of product refers to the characteristics that engineer specify for the product. In software development, quality of product refers to the output meets the functions and features specified in the requirement model. The foundation layer is process layer. It is the heart of the software engineering approach. Software process is a set of activities together if ordered and performed properly the desired result would be produced. It defines framework activity. Main objective of this layer is to deliver software in time. The layer after process is method. It describes how to build the software product. Method includes different tasks such as user communication, requirement analysis, design modeling, coding, testing and maintenance. Method gives the exact way to build the software. Method is a way to execute processes in proper manner. Tools Software engineering tools provide automated and semi-automated support to method and process. Any information created by one tool can be used by another, when tools are integrated. Computer aided software engineering (CASE) combines software, hardware, and software engineering database (a repository containing important information about analysis, design, program construction and testing) to create a software engineering environment. SOFTWARE PROCESS Software process means methods of developing software. A software process is a set of activities, together with ordering among them, such that if the activities are performed properly, the desired result is produced. 5 Dept: CE FSD (3341603) Piyush Bhut

Generic View of Software Engineering (Explain three phases of generic view of a software engineering.) The work associated with software engineering can be categorized into three generic phases. Definition Phase The definition phase focuses on what. During definition, the software engineer identify what information is to be processed, what function and performance are desired, what system behavior can be expected, what interfaces are to be established, what design constraints exist, and what validation criteria are required to define a successful system. Development Phase The development phase focuses on how. During development a software engineer define how data are to be structured, how function is to be implemented, how interfaces are to be characterized, how the design will be translated into a programming language, and how testing will be performed. Support Phase The support phase focuses on change associated with error correction. Four types of change are associated with support phase: Correction: Corrective maintenance changes the software to correct defects. Adaptation: Adaptive maintenance results in modification to the software to accommodate changes to its external environment. Enhancement/Perfection: Perfective maintenance extends the software beyond its original functional requirements. Prevention: Computer software deteriorates due to change, and because of this, preventive maintenance, often called software reengineering and must be conducted to enable the software to serve the needs of its end users. 6 Dept: CE FSD (3341603) Piyush Bhut

GENERIC FRAMEWORK ACTIVITIES AND UMBRELLA ACTIVITIES (Explain Generic Framework Activities and Umbrella Activities.) Generic Framework Activities In software engineering an effective process model should define a small set of framework activities that are always applicable regardless of project type. There are five process framework activities: Communication: This activity involves communication with customers and other stakeholders in order to gather requirements and other related activities. Planning: it requires defining resources, timelines and other project related information and describe technical and management risks. Modeling: A model will be created to better understand the requirements and design to achieve these requirements. Construction: Here the code will be generated and tested. Deployment: Here, a complete or partially complete version of the software is represented to the customers to evaluate and they give feedbacks based on the evaluation. These above described five activities can be used in any kind of software development. Each framework activity populated by number of task set that identifies work task that are to be completed, milestones that will be used to indicate progress, deliverables that will be produced and quality assurance points that will be required to get quality product at each stage. Umbrella Activities Umbrella activities are independent of anyone framework activity. Typical activities in this category include: Project tracking and control: allows the team to track progress against the project plan and take necessary action to maintain schedule. 7 Dept: CE FSD (3341603) Piyush Bhut

Risk Management: Identify the risks that may affect the outcome of the project or the quality. Software quality assurance: It defines and conducts the activities to ensure the software quality. Formal Technical Review: It is necessary to uncover or remove errors before they are propagated to the next action or activity. Software configuration management: Manages the effect of change throughout the Software process Reusability management: It defines criteria for work product reuse and establishes mechanism to achieve reusable components. Work product preparation and production: It create work products such as models, documents, etc. Measurement: defines and collects process, project, and product measures that assist the team in delivering Software that meets customers needs. LIFE CYCLE MODEL (SOFTWARE DEVELOPMENT MODELS) A software life cycle model (also called process model) is a descriptive and diagrammatic representation of the software life cycle. A life cycle model represents all the activities required to make a software product transit through its life cycle phases. CLASSICAL WATERFALL MODEL (Define SDLC model. Provide a diagram representing waterfall model. Also, explain various phases of waterfall model.) Feasibility study The main aim of feasibility study is to determine whether it would be financially and technically feasible to develop the product. At first project managers or team leaders study different input data to the system and output data to be produced by the system. The feasibility study concentrates on the following area. Operational Feasibility: Operational feasibility study tests the operational scope of the software to be developed. The proposed software must have high operational feasibility. The usability will be high. Technical Feasibility: The technical feasibility study compares the level of technology available in the software development area and the level of technology required for the development of the product. Here the level of technology consists of the programming language, the hardware resources, other software tools etc. Economic Feasibility: The economic feasibility study evaluates the cost of the software development against the income or benefits gets from the developed system. There must be scopes for profit after the successful Completion of the project. 8 Dept: CE FSD (3341603) Piyush Bhut

Feasibility study Requirement analysis and specification Design Coding and unit testing Integration and system testing Requirements analysis and specification Design Maintenance The aim of the requirements analysis and specification phase is to understand the exact requirements of the customer and to document them properly. This phase consists of two distinct activities, namely Requirements gathering and analysis, and Requirements specification Requirements gathering: The goal of the requirements gathering activity is to collect all relevant information from the customer regarding the product to be developed. This is done to clearly understand the customer requirements so that incompleteness and inconsistencies are removed. Requirements analysis: This activity is begun by collecting all relevant data regarding the product to be developed from the users of the product and from the customer through interviews and discussions. Requirements specification: During SRS activity, the user requirements are systematically organized into a Software Requirements Specification (SRS) document. During the design phase the software architecture is derived from the SRS document. Two distinctly different approaches are available. Traditional design consists of two different activities; first a structured analysis of the requirements specification is carried out where the detailed structure of the problem is examined. During structured design, the results of structured analysis are transformed into the software design. 9 Dept: CE FSD (3341603) Piyush Bhut

Coding and unit testing (Implementation) The purpose of the coding and unit testing phase of software development is to translate the software design into source code. Each component of the design is implemented as a program module. The end-product of this phase is a set of program modules that have been individually tested. Each module is unit tested for determine the correct working of all the individual modules. Integration and system testing Maintenance Integration of different modules is done once they have been coded and unit tested. During the integration and system testing phase, the modules are integrated. Finally, when all the modules have been successfully integrated and tested, system testing is carried out. The goal of system testing is to ensure that the developed system conforms to its requirements specifies in the SRS document. System testing usually consists of three different kinds of testing activities. α testing: It is the system testing performed by the development team. β Testing: It is the system testing performed by a friendly set of customers. Acceptance testing: It is the system testing performed by the customer himself after the product delivery to determine whether to accept or reject the delivered product. Maintenance involves performing any one or more of the following three kinds of activities: Correcting errors that were not discovered during the product development phase. This is called corrective maintenance. Improving and enhancing the functionalities of the system according to the customer s requirements. This is called perfective maintenance. Porting the software to work in a new environment. For example, porting may be required to get the software to work on a new computer platform or with a new operating system. This is called adaptive maintenance. Shortcomings of the classical waterfall model It is very difficult to strictly follow all the phases in all types of projects. It is not possible to go back and solve the error in this model. High amount of risk. PROTOTYPE MODEL (Define SDLC model. Provide a diagram representing prototyping model. Also, explain various phases of prototyping Model.) A prototype is the sample implementation of the real system. A prototype is a toy implementation of the system. A prototype includes limited functional capabilities, low reliability, and inefficient performance compared to the actual software. 10 Dept: CE FSD (3341603) Piyush Bhut

There are several uses of a prototype. An important purpose is to illustrate the input data formats, messages, reports, and the interactive dialogues to the customer. This is a valuable mechanism for gaining better understanding of the customer s needs: how the screens might look like how the user interface would behave how the system would produce outputs Requirement gathering Quick Design Refine requirement incorporating customer suggestions Build prototype Customer evaluation of prototype Prototype development Acceptance by customer Design Implement Iterative development Test Maintain Prototyping model can be used when technical solutions are unclear to the development team. As shown in figure the first phase is prototype development to control various risks. This is followed by an iterative development cycle. In this model prototyping start with an initial requirements gathering phase. A quick design is carried out and a prototype is built. The developed prototype is submitted to the customer for evaluation. Based on the customer feedback the requirements are refined and the prototype is suitably modified. This cycle of obtaining customer feedback and modifying the prototype continues till the customer approves the prototype. Once the customer approves prototype the actual system is developed using the iterative waterfall approach. 11 Dept: CE FSD (3341603) Piyush Bhut

EVOLUTIONARY MODEL (INCREMENTAL MODEL) (Explain Incremental model With Diagram.) In the evolutionary life cycle model the software requirement is first broken down into several modules (functional units) that can be constructed and delivered. Rough requirement specification Identify the core and other parts to be developed incrementally Develop the core part using an iterative waterfall model Collect customer feedback and modify requirement Develop the next identified features using an iterative waterfall model All features complete Maintenance The development team first develops the core modules of the system. The core modules are those that do not need services from core modules. Non-core modules need services from the core modules. This initial product is refined into increasing levels of capability by adding new functionalities in successive version. Each evolutionary version may be developed using an iterative waterfall model of development. Each successive version of the product is fully functioning software capable of performing more work than the previous version. SPIRAL MODEL (Describe Spiral model with necessary diagram.) The Spiral model of software development is shown in figure. The diagrammatic representation of this model appears like a spiral with many loops. The exact number of loops in the spiral is not fixed. Each loop of the spiral represents a phase of the software process. For example, the innermost loop might be concerned with feasibility study. The next loop with requirements specification, the next one with design, and so on. 12 Dept: CE FSD (3341603) Piyush Bhut

Each phase in this model is split into four sectors (or quadrants) as shown in figure. The following activities are carried out during each phase of a spiral model. Quadrant 1: Determine objectives Identify the objectives, relationships and find the possible alternate solution. Objectives like: performance, functionality, hardware software interface etc. Also examine the risks associated with these objectives. Quadrant 2: Evaluate Alternatives, identify and resolve risks Alternative solutions are evaluated and risks are reduces at this quadrant. In this detailed analysis is carried out of each identified risks. Quadrant 3: Develop, Verify, Next-Level Product Develop and validate the next level of the product after resolving the identified risks. Resolution of critical operational and technical issues, activities to develop, then verification of next-level product are performed. As a result, the basic waterfall approach may be used. Quadrant 4: Customer evaluation Includes evaluation of software by the customer and implementing feedback in the next iteration of the software development. 13 Dept: CE FSD (3341603) Piyush Bhut

RAD MODEL (Explain RAD model.) Rapid Application Development (RAD) is an incremental software process model that is a high speed adaptation of the waterfall model. It makes heavy use of reusable software components If requirements are well understood and project scope is constrained, the RAD process enables a development team to create a fully functional system within a very short time period (e.g. 60 to 90 days). Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product. In RAD model the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Communication is an activity which works to understand the business problem and the information characteristics that should be accommodate by the software. In RAD model Planning is required because many software teams work in parallel on different system functions. Modeling includes three major phases - 1. Business modeling 2. Data modeling 3. Process modeling 14 Dept: CE FSD (3341603) Piyush Bhut

Business Modeling: The business model for the product under development is designed in terms of flow of information and the distribution of information between various business functions. A complete business analysis is performed to find the important information for business, how it can be obtained, how and when is the information processed and what are the factors driving successful flow of information. Data Modeling: The information gathered in the Business Modeling phase is reviewed and analyzed to form sets of data objects importance for the business. The attributes of all data sets is identified and defined. The relation between these data objects are established and defined in detail in relevance to the business model. Process Modeling: The process model for any changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding, deleting, retrieving or modifying a data object are given. Construction focuses mainly on the use of existing software components and the application of automatic code generation. In the last stage Deployment establishes a basis for subsequent iterations if necessary. A business application which can be modularizing in a way that allows each major function to be completed in less than three months is useful for RAD. Each major function can be addressed individually by a separate RAD and then integrated to form a whole application. Programs versus Products Program Program is a sequence of logically related statements that are written to perform a specific task. Programs are developed by single user for their personal use. Programs are small in size and have limited functionality. Author of the program himself uses his program so it is possible that there is not a proper user interface and proper documentation. A program consists of only program code. A program can be developed according to the programmer s individual style of development Software Software is a set of programs, which is designed to perform a well defined function. Software is an application that is designed by one or more software developer. Software products are extremely large and they have multiple users. Software has multiple users and therefore it contains good user interface and good documentation. Software consists of program code with specification document, design document, test document and user s manual. Software product must be developed using the software engineering principles. 15 Dept: CE FSD (3341603) Piyush Bhut