Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore BCA123 CU-BCA-SEM-II-Software Engineering-26.10.2020-converted-converted

BCA123 CU-BCA-SEM-II-Software Engineering-26.10.2020-converted-converted

Published by Teamlease Edtech Ltd (Amita Chitroda), 2021-04-19 10:32:43

Description: BCA123 CU-BCA-SEM-II-Software Engineering-26.10.2020-converted-converted

Search

Read the Text Version

Cfl4EBIG4Rfl INSTITUTE OF UflIVERSITT DISTANCE & ONLINE LEARNING CHANDIGARH UNIVERSITY Discover. Learn. Empower. BCA SOFTWARE ENGINEERING BCAJ23 www.cuchd.in

BACHELOR OF COMPUTER APPLICATIONS SEMESTER-II SOFTWARE ENGINEERING BCA123 1 CU IDOL SELF LEARNING MATERIAL (SLM)

CHANDIGARH UNIVERSITY Institute of Distance and Online Learning Course Development Committee Prof. (Dr.) R.S.Bawa Pro Chancellor, Chandigarh University, Gharuan, Punjab Advisors Prof. (Dr.) Bharat Bhushan, Director – IGNOU Prof. (Dr.) Majulika Srivastava, Director – CIQA, IGNOU Programme Coordinators & Editing Team Master of Business Administration (MBA) Bachelor of Business Administration (BBA) Coordinator – Dr. Rupali Arora Coordinator – Dr. Simran Jewandah Master of Computer Applications (MCA) Bachelor of Computer Applications (BCA) Coordinator – Dr. Raju Kumar Coordinator – Dr. Manisha Malhotra Master of Commerce (M.Com.) Bachelor of Commerce (B.Com.) Coordinator – Dr. Aman Jindal Coordinator – Dr. Minakshi Garg Master of Arts (Psychology) Bachelor of Science (Travel &Tourism Management) Coordinator – Dr. Samerjeet Kaur Coordinator – Dr. Shikha Sharma Master of Arts (English) Bachelor of Arts (General) Coordinator – Dr. Ashita Chadha Coordinator – Ms. Neeraj Gohlan Academic and Administrative Management Prof. (Dr.) R. M. Bhagat Prof. (Dr.) S.S. Sehgal Executive Director – Sciences Registrar Prof. (Dr.) Manaswini Acharya Prof. (Dr.) Gurpreet Singh Executive Director – Liberal Arts Director – IDOL © No part of this publication should be reproduced, stored in a retrieval system, or transmitted in any form 2 or by any means, electronic, mechanical, photocopying, recording and/or otherwise without the prior written permission of the authors and the publisher. SLM SPECIALLY PREPARED FOR CU IDOL STUDENTS Printed and Published by: TeamLease Edtech Limited www.teamleaseedtech.com CONTACT NO:- 01133002345 For: CHANDIGARH UNIVERSITY Institute of Distance and Online Learning CU IDOL SELF LEARNING MATERIAL (SLM)

3 CU IDOL SELF LEARNING MATERIAL (SLM)

4 CU IDOL SELF LEARNING MATERIAL (SLM)

First Published in 2020 All rights reserved. No Part of this book may be reproduced or transmitted, in any form or by any means, without permission in writing from Chandigarh University. Any person who does any unauthorized act in relation to this book may be liable to criminal prosecution and civil claims for damages. This book is meant for educational and learning purpose. The authors of the book has/have taken all reasonable care to ensure that the contents of the book do not violate any existing copyright or other intellectual property rights of any person in any manner whatsoever. In the even the Authors has/ have been unable to track any source and if any copyright has been inadvertently infringed, please notify the publisher in writing for corrective action. 3 CU IDOL SELF LEARNING MATERIAL (SLM)

CONTENT Unit 1: Software Basics ..........................................................................................................4 Unit 2: Software Process Models ........................................................................................20 Unit 3: Software Project Concepts .....................................................................................41 Unit 4: Software Project Planning......................................................................................60 Unit 5: Cost Estimation Models ..........................................................................................79 Unit 6: System Analysis 1...................................................................................................102 Unit 7: System Analysis 2 ..................................................................................................127 Unit 8: Software Design 1 ..................................................................................................143 Unit 9: Software Design 2 ..................................................................................................160 Unit 10: Testing Fundamentals .........................................................................................182 Unit 11: Testing Strategies.................................................................................................211 3 CU IDOL SELF LEARNING MATERIAL (SLM)

UNIT 1 SOFTWARE BASICS Structure Learning Objectives Introduction Software basics Software Characteristics Components Applications Summary Key Words/Abbreviations Learning Activity Unit End Questions (MCQ and Descriptive) References LEARNING OBJECTIVES After studying this unit, you will be able to: • Recognize the evolving role of software. • Describe basics of computer software. • Discuss characteristics, components, applications of software. INTRODUCTION The complexity and nature of software have changed tremendously in the last four decades. 4 CU IDOL SELF LEARNING MATERIAL (SLM)

In the 70s applications ran on a single processor, received single line inputs and produced. Alphanumeric results. However, the applications today are far more complex running on client-server technology and have a user friendly GUI. They run on multiple processors with different OS and even on different geographical machines. The software groups work hard as they can to keep abreast of the rapidly changing new technologies and cope with the developmental issues and backlogs. Even the Software Engineering Institute (SEI) advises to improve upon the developmental process. The “change” is an inevitable need of the hour. However, it often leads to conflicts between the groups of people who embrace change and those who strictly stick to the traditional ways of working. In earlier times, software was simple in nature and hence, software development was a simple activity. However, as technology improved, software became more complex and software projects grew larger. Software development now necessitated the presence of a team, which could prepare detailed plans and designs, carry out testing, develop intuitive user interfaces, and integrate all these activities into a system. This new approach led to the emergence of a discipline known as software engineering. Software is a program or set of programs containing instructions which provide desired functionality. And Engineering is the processes of designing and building something that serves a particular purpose and finds a cost-effective solution to problems. The software is used extensively in several domains including hospitals, banks, schools, defense, finance, stock markets and so on. Software engineering is defined as a process of analyzing user requirements and then designing, building, and testing software application which will satisfy those requirements. Let's look at the various definitions of software engineering: IEEE, in its standard 610.12-1990, defines software engineering as the application of a systematic, disciplined, which is a computable approach for the development, operation, and maintenance of software. Fritz Bauer defined it as 'the establishment and used standard engineering principles. It helps you to obtain, economically, software which is reliable and works efficiently on the real machines’. Boehm defines software engineering, which involves, 'the practical application of scientific knowledge to the creative design and building of computer programs. It also includes associated documentation needed for developing, operating, and maintaining them. 5 CU IDOL SELF LEARNING MATERIAL (SLM)

SOFTWARE BASICS The role of software has undergone drastic change in the last few decades. These improvements range through hardware, computing architecture, memory, storage capacity and a wide range of unusual input and output conditions. All these significant improvements have led to the development of more complex and sophisticated computer-based systems. Sophistication leads to better results but can cause problems for those who build these systems. Lone programmer has been replaced by a team of software experts. These experts focus on individual parts of technology in order to deliver a complex application. However, the experts still face the same questions as that by a lone programmer: Why does it take long to finish software? Why are the costs of development so high? Why aren’t all the errors discovered before delivering the software to customers? Why is it difficult to measure the progress of developing software? All these questions and many more have led to the manifestation of the concern about software and the manner in which it is developed – a concern which lead to the evolution of the software engineering practices. Today, software takes on a dual role. It is a product and, at the same time, the vehicle for delivering a product. As a product, it delivers the computing potential embodied by computer hardware or, more broadly, a network of computers that are accessible by local hardware. Whether it resides within a cellular phone or operates inside a mainframe computer, software is information transformer— producing, managing, acquiring, modifying, displaying, or transmitting information that can be as simple as a single bit or as complex as a multimedia presentation. As the vehicle used to deliver the product, software acts as the basis for the control of the computer (operating systems), the communication of information (networks), and the creation and control of other programs (software tools and environments). Software delivers the most important product of our time—information. Software transforms personal data (e.g., an individual’s financial transactions) so that the data can be more useful in a local context; it manages business information to enhance competitiveness; it provides a gateway to worldwide information networks (e.g., Internet) and provides the means for acquiring information in all of its forms. The role of computer software has undergone significant change over a time span of little more Notes than 50 years. Dramatic improvements in hardware performance, profound changes in computing architectures, vast increases in 6 CU IDOL SELF LEARNING MATERIAL (SLM)

memory and storage capacity, and a wide variety of exotic input and output options have all precipitated more sophisticated and complex computer-based systems. The lone programmer of an earlier era has been replaced by a team of software specialists, each focusing on one part of the technology required to deliver a complex application. Characteristics of software In the first NATO conference on software engineering in 1968, Fritz Bauer defined Software engineering as “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines”. Stephen Schach defined the same as “A discipline whose aim is the production of quality software, software that is delivered on time, within budget and that satisfies its requirements”. The software differs from hardware as it is more logical in nature and hence, the difference in characteristics. Let us now explore the characteristics of software in detail. Software is developed or engineered and not manufactured -Although there exist few similarities between the hardware manufacturing and software development, the two activities differ fundamentally. Both require a good design to attain high quality. But the manufacturing phase of hardware can induce quality related problems that are either non- existent for software or can be easily rectified. Although both activities depend on people but the relationship between people and work is totally different. Software does not wear out- Figure 1.1 shows the failure rate of hardware as a function of time. It is often called the “bathtub curve”, indicating that a hardware shows high failure at its early stage (due to design and manufacturing defects); defects get resolved and the failure rate reduces to a steady-state level for some time. As time progresses, the failure rate shoots up again as the hardware wears out due to dust, temperature and other environmental factors. 7 CU IDOL SELF LEARNING MATERIAL (SLM)

Fig 1.1 Failure Curve For Hardware Should flatten out after the initial stage of its life. The initial failure rate is high because of undiscovered defects. Once these defects are fixed, the curve flattens at a later stage. Thus, the software does not wear out but deteriorates. The actual curve as shown in Figure 1.2 can explain the contradiction stated above. Because software undergoes changes during its lifetime as a part of the maintenance activities, new defects creep in causing the failure rate to rise (spike). While the software enters its steady state further more changes are added which induce further more defects and hence, spikes in the failure rate 8 CU IDOL SELF LEARNING MATERIAL (SLM)

Fig 1.2 Failure Curve For Software Software is Custom Built and Not Designed Component -Wise Software is designed and built so that it can be reused in different programs. Few decades ago subroutine libraries were created that re-used well defined algorithms but had a limited domain. Today this view has been extended to ensure re-usability of not only algorithms but data structures as well. Thus, the data and the processes that operate on this data were combined together to be able to use later on. • Reusability of components: As the software never wears out, neither do its components, i.e. code segments. So, if any particular segment of code is required in some other software, we can reuse the existing code form the software in which it is already present. This reduced our work and also saves time and money. • Flexibility of software: Software is flexible. What this means is that we can make necessary changes in our software in the future according to the need of that time and then can use the same software then also. • Maintainability of software: Every software is maintainable. This means that if any 9 CU IDOL SELF LEARNING MATERIAL (SLM)

errors or bugs appear in the software, then they can be fixed. • Portability of software: Portability of the software means that we can transfer our software from one platform to another that too with ease. Due to this, the sharing of the software among the developers and other members can be done flexibly. • Reliability of Software: This is the ability of the software to provide the desired functionalities under every condition. This means that our software should work properly in each condition. Components of software Software is more than programs. It comprises of programs, documentation to use these programs and the procedures that operate on the software systems. Fig 1.3 Components of software A program is a part of software and can be called software only if documentation and operating procedures are added to it. Program includes both source code and the object code. 10 CU IDOL SELF LEARNING MATERIAL (SLM)

Fig.1.4.List of documentation manuals Operating procedures comprise of instructions required to setup and use the software and instructions on actions to be taken during failure. List of operating procedure manuals/ documents is given in Figure 1.5. Fig. 1.5 List of Operating Procedure Manuals Applications Any area that involves a sequence of steps (i.e. an algorithm) to generate output can make 11 CU IDOL SELF LEARNING MATERIAL (SLM)

use of software engineering. The nature of the software application depends upon two things: (1) The form of incoming and outgoing information. Some business applications generate more complex results then others and require more complex inputs. (2) The sequence and timing of the information being used. A program that takes data in a predefined order, applies algorithms to it and generates results is called a determinate program. On the other hand, the application that accepts data from multiple users at varied timings, applies logic that can be interrupted by external conditions, and generates results that vary according to time and environment are called indeterminate. Although software application cannot be categorized, following areas show the potential application of software in various breadths: • Real-time software: It refers to the software that controls the events and when they occur. The data gatherer component of the software gathers the data and formats it into an acceptable form. The analyzer component that transforms information as required by the application. The output component that interacts with the external environment and the monitoring component that coordinates with all the components to generate timely results. • Business software: It is the single largest area of software application. These areas use one or more large databases for business information and reframe the information in such a manner that facilitates business operations and decision making. For example, library management, data inventory, HR management, etc. • System Software: It is the software program that interacts with the hardware components so that other application software can run on it. Operating systems like Windows, Unix, DOS, etc., are examples of the system software. Such type of software perform a wide range of operations like allocation and distribution of memory amongst various computer processes, process scheduling, resource scheduling, etc. • Embedded software: This software resides in the commodities for the consumer and industry markets in the form of read-only memory devices. They perform limited functions e.g. keypad of an automatic washing machine or significant functions as per 12 CU IDOL SELF LEARNING MATERIAL (SLM)

requirement e.g. dashboard functions in an aircraft. • Personal computer software: These software programs have grown rapidly over the past Notes few decades. These include the like of database management, entertainment, computer graphics, multimedia, etc. • Web-based software: The web-pages displayed by a browser are programs that include executable instructions (e.g. CGI, Perl, Java), hypertext and audio-visual formats. Artificial intelligence software: AI software uses algorithms to solve problems that are not open to simple computing and analysis. For example, Pattern matching (voice or image), game playing, robotics, expert systems, etc. • Engineering software: The software is characterized by number-crunching algorithms ranging from molecular biology, automated manufacturing to space shuttle orbit management, etc. SUMMARY • Software engineering is a process of analyzing user requirements and then designing, building, and testing software application which will satisfy that requirements • The economics of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. • Software engineering expenditure represents a significant fraction of GNP in all developed Notes countries. Software engineering is concerned with cost-effective software development. • Software has become a key element in the evolution of computer-based systems. • Over the past five decades it has evolved from a specific problem solving and analysis tool to a complete industry in itself. However, some initial stage practices have led to certain problems today. 13 CU IDOL SELF LEARNING MATERIAL (SLM)

• Software comprises of programs, data and documents. The purpose of software engineering is to provide a framework to develop high quality software. • Software engineering is an engineering discipline, which is concerned with all aspects of software production. • Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability. • The software process consists of activities, which are involved, in developing software products. Basic activities are software specification, development, validation and evolution. Methods are organized ways of producing software. They include suggestions for the process to be followed, the notations to be used, and rules governing the system descriptions, which are produced and design guidelines. • Important reasons for using software engineering are: 1) Large software, 2) Scalability 3) Adaptability 4) Cost and 5) Dynamic Nature. • In late 1960s many software becomes over budget. Therefore it offers unreliable software which is expensive to maintain. • The late 1970s saw the widespread uses of software engineering principles. • Software engineering concept 1) Computer Science 2) Management Science 3) System engineering and 4) Economics • Increased market demands for fast turnaround time are the biggest challenges of software engineering field. • Maintainability, 2) Dependability, 3) Efficiency and, 4) Usability are the most important attributes of software products. • Three most important characteristics of good software are 1) Operational 2) Transitional 3) Maintenance. 14 CU IDOL SELF LEARNING MATERIAL (SLM)

• Software paradigms refer to the methods and steps, which are taken while designing the software. There are many methods proposed and are in work today, but we need to see where in the software engineering these paradigms stand. These can be combined into various categories, though each of them is contained in one another: • Programming paradigm is a subset of Software design paradigm which is further a subset of Software development paradigm. • The need of software engineering arises because of higher rate of change in user requirements and environment on which the software is working. • Large software - It is easier to build a wall than to a house or building, likewise, as the size of software become large engineering has to step to give it a scientific process. • Scalability- If the software process was not based on scientific and engineering concepts; it would be easier to re-create new software than to scale an existing one. • Cost- As hardware industry has shown its skills and huge manufacturing has lower down, he prices of computer and electronic hardware. But the cost of software remains high if proper process is not adapted. • Dynamic Nature- The always growing and adapting nature of software hugely depends upon the environment in which user works. If the nature of software is always changing, new enhancements need to be done in the existing one. KEY WORDS/ABBREVIATIONS • ASCII: American Standard Code for Information Interchange. • Alphanumeric: pertaining to a character set that contains letters, digits, and usually other characters such as punctuation marks. • Anomaly: anything observed in the documentation or operation of software that deviates from expectations based on previously verified software products or 15 CU IDOL SELF LEARNING MATERIAL (SLM)

reference documents. See: bug, defect, error, exception, and fault. • Block diagram: a diagram of a system, instrument or computer, in which the principal parts are represented by suitably annotated geometrical figures to show both the basic functions of the parts and the functional relationships between them. • Computer language: a language designed to enable humans to communicate with computers. See: programming language • CASE: Computer Aided Software Engineering • CMM: Capability Maturity Model • DOS: Disk Operating System • HR: Human Resources IPR: Intellectual Property Rights • KPA: Key Process Area PSP: Personal Software Process LEARNING ACTIVITY 1. Why Software Engineering is Popular? 2. Write relationship of Software Engineering with Other Discipline UNIT END QUESTIONS (MCQ AND DESCRIPTIVE) A. Descriptive Types Questions 1. Identifying the processes of designing and building something that serves a particular purpose and find a cost-effective solution to problems with its relevant applications? 16 CU IDOL SELF LEARNING MATERIAL (SLM)

2. State with details explanation on processes in programs that can be run only by a user with root authority and Operation performed by this process. 3. Choose an application and discuss (i) the software application category that is belongs to, (ii) the data contents associated with it and (iii) the information determinacy of the application. 4. Analyze which designs describes the processing flow within each operation in detail by means of pseudo code or UML activity diagrams in detail? 5. With an application to justify collection of programs that controls the running of programs and organizes the resources of a computer system. B. Multiple Choice Questions 1. What are the characteristics of software? (a) Software is developed or engineered; it is not manufactured in the classical sense. (b) Software doesn’t “wear out”. (c) Software can be custom built or custom build. (d) All mentioned above 2. Compilers, Editors software come under which type of software? (a) System software (b) Application software (c) Scientific software (d) None of the above. 3. Which of the following is the understanding of software product limitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc? (a) Software Design (b) Feasibility Study 17 CU IDOL SELF LEARNING MATERIAL (SLM)

(c) Requirement Gathering (d) System Analysis 4. Which design identifies the software as a system with many components interacting with each other? (a) Architectural design (b) High-level design (c) Detailed design (d) Both b & c 5. Which defect amplification model is used to illustrate the generation and detection of errors during the preliminary steps of a software engineering process? (a) Design (b) Detailed design (c) Coding (d)All mentioned above Answers 1. (d), 2. (a), 3. (d), 4. (a), 5. (d) REFERENCES • Jalote P. (2019). An Integrated Approach to Software Engineering. New Delhi: Narosa Publications. • Mall R. (2003). Fundamentals of Software Engineering. New Delhi: PHI. • Ali Bethforooz and Frederick J. Hudson (1996). Software Engineering Fundamentals. UK: Oxford University. • https://www.scribd.com/doc/10880744/Ethical-Issues-in-Software-Development • https://en.wikipedia.org/wiki/Software_engineering 18 CU IDOL SELF LEARNING MATERIAL (SLM)

• http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7/Presentations/ PDF/ch4.pdf • Dumke and A. Schmietendorf, “Possibilities of the description and evaluation of software components,” Metrics News, vol. 5, no. 1, pp. 13-26, 2000. • Clements, Software Product Lines. USA: Addison-Wesley, 2002. • Summerville I. (2013). Software Engineering. New Delhi: Pearson Education. • Pressman R.S. (2009). Software Engineering - A Practitioner’s Approach. New Delhi: MGH Publications. 19 CU IDOL SELF LEARNING MATERIAL (SLM)

UNIT 2 SOFTWARE PROCESS MODELS 20 Structure Learning Objectives Introduction Software Process Models Waterfall Spiral Prototyping Fourth Generation Techniques Summary Key Words/Abbreviations Learning Activity Unit End Questions (MCQ and Descriptive) References LEARNING OBJECTIVES After studying this unit, you will be able to: • Recognize the perspective model. • Describe the waterfall, prototyping, and spiral models. • Explain fourth generation techniques. INTRODUCTION CU IDOL SELF LEARNING MATERIAL (SLM)

There are three major models of the software engineering process. The waterfall model was for many years the front runner and is required for many military applications. (The procurement process of the US military has had a profound effect on computer science and software engineering in particular.) It is a rigid system well suited to applications where the buyer is as sophisticated about computer systems as the seller. Prototyping is popular with those who work in the marketplace of “user friendly” software. This software is historically less maintainable (and less maintained) than the so called “big iron” applications that were historically developed using the waterfall model. The incremental model works from the notion that software is built. The Spiral model is a more recent model that tries to enjoy the best of both worlds. Each of these models shares some common features. In particular they all involve establishing the requirements that the system is to meet. A software process model represents the order in which the activities of software development will be undertaken. It describes the sequence in which the phases of the software lifecycle will be performed. Software Processes is a coherent set of activities for specifying, designing, implementing and testing software systems. A software process model is an abstract representation of a process that presents a description of a process from some particular perspective. There are many different software processes but all involve: • Specification – defining what the system should do; • Design and implementation – defining the organization of the system and implementing the system; • Validation – checking that it does what the customer wants; • Evolution – changing the system in response to changing customer needs A software process model is a simplified representation of a software process. Each model represents a process from a specific perspective. We’re going to take a quick glance about very general process models. These generic models are abstractions of the process that can be used to explain different approaches to the software development. They can be adapted and extended to create more specific processes. 21 CU IDOL SELF LEARNING MATERIAL (SLM)

SOFTWARE PROCESS MODEL Waterfall Model- Waterfall model is the simplest model of software development paradigm. It says the all the phases of SDLC will function one after another in linear manner. That is, when the first phase is finished then only the second phase will start and so on. Fig 2.1 Waterfall model The simplest software development life cycle model is the waterfall model, which states that the phases are organized in a linear order. However, there are many variations of the waterfall model depending on the nature of activities and the flow of control between them. In a typical model, a project begins with feasibility analysis. On successfully demonstrating the feasibility of a project, the requirements analysis and project planning begins. The design 22 CU IDOL SELF LEARNING MATERIAL (SLM)

starts after the requirements analysis is complete and coding begins after the design is complete. Once the programming is completed, the code is integrated and testing is done. On successful completion Notes of testing, the system is installed. After this, the regular operation and maintenance of the system takes place. The model is shown in Figure 2.1We will discuss the activities related to the development of software. Thus, we will only discuss phases from requirements analysis to testing. The requirements analysis phase is mentioned as “analysis and planning.” Planning is a critical activity in software development. A good plan is based on the requirements of the system and should be done before later phases begin. However, in practice, detailed requirements are not necessary for planning. Consequently, planning usually overlaps with the requirements analysis, and a plan is ready before the later phases begin. This plan is an additional input to all the later phases. With the waterfall model, the sequence of activities performed in a software development project is: requirement analysis, project planning, system design, detailed design, coding and unit testing, system integration and testing. This is the order in which the different phases will be discussed in this book, keeping the sequence as close as possible to the sequence in which the activities are performed. Linear ordering of activities has some important consequences. First, to clearly identify the end of a phase and the beginning of the next, some certification mechanism has to be employed at the end of each phase. This is usually done by some verification and validation means that will ensure that the output of a phase is consistent with its input (which is the output of the previous phase), and that the output of the phase is consistent with the overall requirements of the system. 23 CU IDOL SELF LEARNING MATERIAL (SLM)

Fig 2.2 Waterfall Model The consequence of the need for certification is that each phase must have some defined output that can be evaluated and certified. That is, when the activities of a phase are completed, there should be some product that is produced by that phase. And the goal of a phase is to produce this product. The outputs of the earlier phases are often called work products (or intermediate products) and are usually in the form of documents like the requirements document or design document. For the coding phase, the output is the code. From this point of view, the output of a software project is not just the final program along with the user documentation, but also the requirements document, design document, project plan, test plan, and test results. The waterfall model derives its name due to the cascading effect from one phase to the other as is illustrated in the Figure 2.2 In this model each phase is well defined, has a starting and ending point, with identifiable deliveries to the next phase. This model has five phases: (i) Requirement analysis and specification, (ii) Design, (iii) Implementation and unit testing, (iv) Integration and system testing and (v) Operation and maintenance. All the phases occur one-by-one without overlapping. The next phase begins only after the end of the previous phase. • Requirement analysis and specification: This phase aims at understanding the exact requirements of the customer and documents them. Both the customer and the software developer work together so as to document all the functions, performance and interfacing requirements of the software. It describes the “what” of the system to be produced and not “how”. In this phase a large document called Software Requirement Specification document (SRS) is produced which contains the detailed description of what the system will do in the common language. 24 CU IDOL SELF LEARNING MATERIAL (SLM)

• Design phase: The aim of this phase is to transform the requirements gathered in the SRS into a suitable form which permits further coding in a programming language. It defines the overall software architecture together with high level and detailed design. All this work is documented as Software Design Description document (SDD). • Implementation and unit testing phase: The actual coding begins at his stage. The implementation goes smoothly if the SDD has complete information required by the software engineers. During testing, the code is thoroughly examined and modified. Small modules are testes in isolation initially. Thereafter, these modules are tested by writing some overhead code in order to check the interaction between these modules and the flow of intermediate output. • Integration and system testing: This phase is highly crucial as the quality of the end product is determined by the effectiveness of the testing carried out. Better output will lead to satisfied customers, lower maintenance costs and accurate results. Unit testing determines the efficiency of individual modules. However, in this phase the modules are tested for their interactions with each other and with the system. • Operation and maintenance phase: Maintenance is the task performed by every user once the software has been delivered to the customer, installed and operational. Thus, the delivery of software initiates the maintenance phase. The time and efforts spent on the software to keep it operational after release is important. It includes activities like error correction, removal of obsolete functions, optimization and enhancements of functions. It may span for 5 to 50 years. A successful software product is one that satisfies all the objectives of the development project. Notes these objectives include satisfying the requirements and performing the development within time and cost constraints. Generally, for any reasonable project size, all the phases listed in the model must be performed explicitly and formally. Informally performing the phases will work only for very small projects. The second reason is the one that is now under debate. For many projects, the linear ordering of these phases is clearly the optimum way to organize these activities. However, some argue that for many 25 CU IDOL SELF LEARNING MATERIAL (SLM)

projects this ordering of activities is infeasible or sub-optimum. We will discuss some of these ideas shortly. Still, the waterfall model is conceptually the simplest process model for software development that has been used most often. Project Outputs in Waterfall Model -As we have seen, the output of a project employing the waterfall model is not just the final program along and documentation to use it. There are a number of intermediate outputs that must be produced to produce a successful product. Though the set of documents that should be produced in a project is dependent on how the process is implemented, the following is a set of documents that generally forms the minimum set that should be produced in each project: • Requirements document • Project plan • System design document • Detailed design document • Test plan and test reports • Final code Software manuals (e.g., user, installation, etc.) • Review reports Except for the last one, these are the outputs of the phases, and they have been briefly discussed. To certify an output product of a phase before the next phase begins, reviews are often held. Reviews are necessary, especially for the requirements and design phases, because other certification means are frequently not available. Reviews are formal meetings to uncover deficiencies in a product and will be discussed in more detail later. The review reports are the outcome of these reviews. Limitations of the Waterfall Model Software life-cycle models of the waterfall variety are among the first important attempts to structure the software life cycle. However, the waterfall model has limitations. Like a 26 CU IDOL SELF LEARNING MATERIAL (SLM)

waterfall, progress flows in one direction only, towards completion of the project (from one phase to the next). Schedule compression relaxes this requirement but introduces new complexities. Well-defined phases, frozen deliverables, and formal change control make the waterfall model a tightly controlled approach to software development. The waterfall model’s success hinges, however, on the ability: • To set the objectives, • To state requirements explicitly, • To gather all the knowledge necessary for planning the entire project in the beginning. • The waterfall model’s original objectives were to make small, manageable, individual development steps (the phases) and to provide enough control to prevent runaway projects. There are a few problems that have caused dissatisfaction with this phased life- cycle approach. • The new software system becomes useful only when it is totally finished, which may create problems for cash flow and conflict with organizational (financial) objectives or constraints. Too much money may be tied up during the time the software is developed. • Neither user nor management can see how good or bad the system is until it comes in. The users may not have a chance to get used to the system gradually. • Changes that “aren’t supposed to happen”, are not viewed kindly, neither for requirements nor during the operational life of the system. This can shorten the software’s useful life. Because of these shortcomings, other process models have appeared. They are based on the concept of iteration and evolution. Waterfall model, although widely used, has some limitations. Here we list some of these: Despite these limitations, the waterfall model is the most widely used process model. It is well suited for routine types of projects where the requirements are well understood. That is, if the developing organization is quite familiar with the problem domain and the requirements for the software are quite clear, the waterfall 27 CU IDOL SELF LEARNING MATERIAL (SLM)

model works well. The Spiral Model As it is clear from the name, the activities in this model can be organized like a spiral that has many cycles. The radial dimension represents the cumulative cost incurred in accomplishing the steps done so far, and the angular dimension represents the progress made in completing each cycle of the spiral. The model is shown in Figure 2.2.2-1, Each cycle in the spiral begins with the identification of objectives for that cycle, the different alternatives that are possible for achieving the objectives, and the constraints that exist. This is the first quadrant of the cycle (upper-left quadrant). The next step in the cycle is to evaluate these different alternatives based on the objectives and constraints. The focus of evaluation in this step is based on the risk perception for the project. Risks reflect the chances that some of the objectives of the project may not be met. The next step is to develop strategies that resolve the uncertainties and risks. This step may involve activities such as benchmarking, simulation, and prototyping. Next, the software is developed, keeping in mind the risks. Finally, the next stage is planned. The development step depends on the remaining risks. For example, if performance or user interface risks are considered more important than the program development risks, the next step may be an evolutionary development that involves developing a more detailed prototype for resolving the risks. On the other hand, if the program development risks dominate and the previous prototypes have resolved all the user- interface and performance risks, the next step will follow the basic waterfall approach. 28 CU IDOL SELF LEARNING MATERIAL (SLM)

Fig-2.3: Spiral Model The risk-driven nature of the spiral model allows it to accommodate any mixture of a specification-oriented, prototype-oriented, simulation-oriented, or some other type of approach. The spiral model works for development as well as enhancement projects. In a typical application of the spiral model, one might start with an extra round zero, in which the feasibility of the basic project objectives is studied. These project objectives may or may not lead to a development/ enhancement project. Such high-level objectives include increasing the efficiency of code generation of a compiler, producing a new full-screen text editor and developing an environment for improving productivity. The alternatives considered in this round are also typically very high-level, such as whether the organization should go for in- house development, or contract it out, or buy an existing product. In round one, a concept of operation might be developed. The objectives are stated more precisely and quantitatively and the cost and other constraints are defined precisely. The risks here are typically whether 29 CU IDOL SELF LEARNING MATERIAL (SLM)

or not the goals can be met within the constraints. The plan for the next phase will be developed, which will involve defining separate activities for the project. In round two, the top-level requirements are developed. In succeeding rounds, the actual development may be done. This is a relatively new model; it can encompass different development strategies. In addition to Notes the development activities, it incorporates some of the management and planning activities into the model. For high-risk projects, this might be a preferred model. Advantages • High amount of risk analysis Good for large and mission-critical projects. • Software is produced early in the software life cycle. Disadvantages • Can be a costly model to use. Risk analysis requires highly specific expertise. • Project’s success is highly dependent on the risk analysis phase. • Doesn’t work well for smaller projects. Prototyping Model In this model, a working model of actual software is developed initially. The prototype is just like a sample software having lesser functional capabilities and low reliability and it does not undergo through the rigorous testing phase. Developing a working prototype in the first phase overcomes the disadvantage of the waterfall model where the reporting about serious errors is possible only after completion of software development. The working prototype is given to the customer for operation. The customer, after its use, gives the feedback. Analyzing the feedback given by the customer, the developer refines, adds the requirements and prepares the final specification document. Once the prototype becomes operational, the actual product is developed using the normal waterfall model. Figure 2.4 depicts the prototyping model. 30 CU IDOL SELF LEARNING MATERIAL (SLM)

Feedback Start Fig. 2.4 Prototyping Model The prototype model has the following features: (i) It helps in determining user requirements more deeply. (ii) At the time of actual product development, the customer feedback is available. (iii) It does consider any types of risks at the initial level. There are four types of model available: A) Rapid Throwaway Prototyping – This technique offers a useful method of exploring ideas and getting customer feedback for each of them. In this method, a developed prototype need not necessarily be a part of the ultimately accepted prototype. Customer feedback helps in preventing unnecessary design faults and hence, the final prototype developed is of better quality. B) Evolutionary Prototyping – In this method, the prototype developed initially is incrementally refined on the basis of customer feedback till it finally gets accepted. In comparison to Rapid Throwaway Prototyping, it offers a better approach which saves time as well as effort. This is because developing a prototype from scratch for every iteration of the process can sometimes be very frustrating for the developers. C) Incremental Prototyping – In this type of incremental Prototyping, the final expected product is 31 CU IDOL SELF LEARNING MATERIAL (SLM)

broken into different small pieces of prototypes and being developed individually. In the end, when all individual pieces are properly developed, then the different prototypes are collectively merged into a single final product in their predefined order. It’s a very efficient approach which reduces the complexity of the development process, where the goal is divided into sub-parts and each sub-part is developed individually. The time interval between the project begin and final delivery is substantially reduced because all parts of the system are prototyped and tested simultaneously. Of course, there might be the possibility that the pieces just not fit together due to some lack ness in the development phase – this can only be fixed by careful and complete plotting of the entire system before prototyping starts. D) Extreme Prototyping – This method is mainly used for web development. It consists of three sequential independent phases: In this phase a basic prototype with all the existing static pages are presented in the HTML format. In the 2nd phase, Functional screens are made with a simulate data process using a prototype services layer. This is the final step where all the services are implemented and associated with the final prototype. This Extreme Prototyping method makes the project cycling and delivery robust and fast, and keeps the entire developer team focus centralized on products deliveries rather than discovering all possible needs and specifications and adding unnecessitated features. Advantage of Prototype Model 1. Reduce the risk of incorrect user requirement 2. Good where requirements are changing/uncommitted 3. Regular visible process aids management 4. Support early product marketing 5. Reduce Maintenance cost. 6. Errors can be detected much earlier as the system is made side by side. Disadvantage of Prototype Model 1. An unstable/badly implemented prototype often becomes the final product. 32 CU IDOL SELF LEARNING MATERIAL (SLM)

2. Require extensive customer collaboration o Costs customer money o Needs committed customer o Difficult to finish if customer withdraw o May be too customer specific, no broad market 3. Difficult to know how long the project will last. 4. Easy to fall back into the code and fix without proper requirement analysis, design, customer evaluation, and feedback. 5. Prototyping tools are expensive. 6. Special tools & techniques are required to build a prototype. 7. It is a time-consuming process. FOURTH GENERATION TECHNIQUES The term fourth generation technique (4GT) encompasses a broad array of software tools that have one thing in common: each enables the software engineer to specify some characteristics of software at a high level. The tool then automatically generates the source code based on the developer’s specification. The 4GT paradigm for software engineer focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problems to be solved in terms that the customers can understand. Currently, a software designing environment that supports the 4GT paradigm include some or all the following tools: non procedural languages for database query, report generation, code generation, data manipulation, high level graphics capability, spreadsheet capability and automated generation of HTML and similar languages used for website creation using advanced software tools. Like other paradigms, 4GT begins with a requirements gathering step. Ideally, the customer would describe requirements and these would be directly translated into an operational prototype. But this is unworkable. The customer may be unsure of what is required, may be ambiguous in specifying facts that are known, and may be unable or unwilling to specify information in a manner that a 4GT tool may consume. For this reason, the 33 CU IDOL SELF LEARNING MATERIAL (SLM)

customer/developer dialog described for other process models remains an essential part of the 4GT approach. For some applications, it may be possible to move directly from the gathering step to the implementation phase using a non-procedural fourth generation language (4GL) or a model composed of a network of graphical icons. However, for larger efforts, it is necessary to develop a design strategy for the system, even if a 4GT is to be used. The use of 4GT without design will cause difficulties like poor quality, poor maintainability, poor customer acceptance etc. that have been encountered when designing a software project using conventional approaches. Implementation using a 4GL enables the software developer to represent the desired results in a manner that leads to automatic generation of code to create those results. Obviously, a data structure with relevant information must exist and be readily accessible by the 4GL.To transform a 4GT implementation into a product, the developer must conduct thorough testing, develop meaningful documentation, and perform all other solution integration activities that are required in other software engineering paradigms. In addition the 4GT designed software must be built in a manner that enables maintenance to be performed expeditiously. Like all other software designing paradigms, the 4GT model has advantages and disadvantages. Proponents claims dramatic reduction in software designing time and greatly improved productivity for people who built software. Opponents claim that current 4GT tools are not all that much easier to use than programming languages, that the resultant source code produced by such tools is “insufficient”, and that the maintainability of large software systems designed using 4GT is open to question. Fourth Generation Techniques The term “Fourth Generation Techniques” (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some characteristic of software at a high level, the tool then automatically generates source code based on the developer's specification. The 4GT paradigm for software engineering focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problem to be solved in terms that the customer can understand. Currently, a software development environment that supports the 4GT paradigm includes some or all of the following tools: nonprocedural languages for database query, report 34 CU IDOL SELF LEARNING MATERIAL (SLM)

generation, data manipulation, screen interaction and definition & code generation; high- level graphics capability; and spreadsheet capability. Like other paradigms, 4GT begins with a requirement gathering step, the customer would describe requirements and these would be directly translated into an operational prototype. But this is unworkable, the customer may be ensuring of what is required, may be ambiguous in specifying facts that are known, and may be unable or unwilling to specify information in a manner that a 4GT tool can consume. For small applications, it may possible to move directly from the requirements gathering step to implementation using a nonprocedural fourth generation language (4GL), for a larger effort, it is necessary to develop a design strategy for the system, even if a 4GL is to be used. SUMMARY • One of the major problems here is the way of dealing with the development of software. • The prototypes produced are being used in the next phase. Because many prototypes are produced that are redefined further and further, the whole software might become a patchwork of features. Hence the whole approach might only work for small projects. • The basic idea of prototyping is that instead of freezing the requirements before any design or coding can proceed, a throwaway prototype is built to help understand the requirements. • 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. • There are 4 types of prototyping models - Rapid Throwaway Prototyping, Evolutionary Prototyping, Incremental Prototyping, Extreme Prototyping. 35 CU IDOL SELF LEARNING MATERIAL (SLM)

• Extreme Prototyping has 3 sequentially independent phases. • In the spiral model, the angular component represents progress, and the radius of the spiral represents cost • In a practical software development project, the classical waterfall model is hard to use. So, Iterative waterfall model can be thought of as incorporating the necessary changes to the classical waterfall model to make it usable in practical software development projects. • It is almost same as the classical waterfall model except some changes are made to increase the efficiency of the software development. In a practical software development project, the classical waterfall model is hard to use. So, Iterative waterfall model can be thought of as incorporating the necessary changes to the classical waterfall model to make it usable in practical software development projects. It is almost same as the classical waterfall model except some changes are made to increase the efficiency of the software development. • Engineering products once developed cannot be changed. To modifications the product, redesigning and remanufacturing is required. In the case of software, ultimately changes are to be done in code for any changes to take effect. • The simplest software development life cycle model is the waterfall model, which states that the phases are organized in a linear order. • There are many variations of the waterfall model depending on the nature of activities and the flow of control between them. In a typical model, a project begins with feasibility analysis. On successfully demonstrating the feasibility of a project, the requirements analysis and project planning begins KEY WORDS/ABBREVIATIONS • Computer word: a sequence of bits or characters that is stored, addressed, transmitted, and operated on as a unit within a given computer. Typically, one to four bytes long, depending on the make of computer. 36 CU IDOL SELF LEARNING MATERIAL (SLM)

• Configuration: (1) the arrangement of a computer system or component as defined by the number, nature, and interconnections of its constituent parts. (2) in configuration management, the functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product. • Data exception: an exception that occurs when a program attempts to use or access data incorrectly. • Implementation phase: the period of time in the software life cycle during which a software product is created from design documentation and debugged. • Life cycle methodology: the use of any one of several structured methods to plan, design, implement, test and operate a system from its conception to the termination of its use. • EVO: Evolutionary Development • Model Prototype Model: The goal of a prototyping-based development process is to counter the first two limitations of the waterfall model. • Spiral Model: In the spiral model, the angular component represents progress, and the radius of the spiral represents cost. LEARNING ACTIVITY 1. Write the SDLC activities of ISO 12207 2. Write advantages and disadvantages of spiral model UNIT END QUESTIONS (MCQ AND DESCRIPTIVE) A. Descriptive Types Questions 37 CU IDOL SELF LEARNING MATERIAL (SLM)

1. Identify a process where all the activities are planned first, and the progress is measured against the plan? Explain this process with agile process. 2. Discuss which model is best suited is a process where all the activities are planned first, and the progress is measured against the plan is a process where all the activities are planned first, and the progress is measured against the plan? Illustrate with flow diagram. 3. Identify most important Software Development Life Cycle models, which provides support for Risk Handling? Explain with its diagrammatic representation. 4. Illustrate who allows the users to experiment with the system, and refine the requirements having new ideas for requirements and find areas of strength and weakness in the software? Explain it with phases. 5. Justify characteristics of module where requirements are broken down into multiple standalone with its activity. B. Multiple Choice Questions 1. Which one of the following models is not suitable for accommodating any change? (a) Build & Fix Model (b) Prototyping Model (c) RAD Model (d) Waterfall Model 2. Which is not one of the types of prototype of Prototyping Model? (a) Horizontal Prototype (b) Vertical Prototype (c) Diagonal Prototype (d) Domain Prototype 3. Which one of the following is not a phase of Prototyping Model? (a) Quick Design (b) Coding 38 CU IDOL SELF LEARNING MATERIAL (SLM)

(c) Prototype Refinement (d) Engineer Product 4. Identify a fourth-generation language(4GL) from the given below. a) FORTRAN b) COBOL c) Unix shell d) C++ 5. Which model can be selected if user is involved in all the phases of SDLC? (a) Waterfall Model (b) Prototyping Model (c) RAD Model (d) both Prototyping Model & RAD Model Answers 1. (d), 2. (c), 3. (b), 4. (c), 5. (c) REFERENCES • Pressman R.S. (2009). Software Engineering - A Practitioner’s Approach. New Delhi: MGH Publications. • Mall R. (2003). Fundamentals of Software Engineering. New Delhi: PHI • Jalote P. (2019). An Integrated Approach to Software Engineering. New Delhi: Narosa Publications. • Summerville I. (2013). Software Engineering. New Delhi: Pearson Education. • Software Engineering, Sixth Edition, 20~1, Ian Sommerville; Pearson Education. • Software Engineering Practitioner's Approach, Roger S. Pressman; McCaw-Hill • http://en.wikipedia.org/wiki/Rapid_application_development 39 CU IDOL SELF LEARNING MATERIAL (SLM)

• http://www.waterfall-model.com/ • http://www.ics.uci.edu/~wscacchi/Papers/SE-Encyc/Process-Models-SEEncyc.pdf • http://codebetter.com/raymondlewallen/2005/07/13/software-developmentlife-cycle- models/ • http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/spiral.pdf • Kirk St. Amant, Brian still (edited), \"Handbook of Research on Open source Software Technological, Economic and Social perspectives\", Pub Information Science References, USA (2007). • Tiwari Vinay, \"Some Observations on Open Source Software development on Software Engineering perspective\", International Journal of Computer Science and Information Technology vol. 2 No. 6 pp. 113-125 (2010). • Teaching Systems Development: A Compelling Case for Integrating the SDLC with the ITSM Lifecycle by Carol E. Pollard 40 CU IDOL SELF LEARNING MATERIAL (SLM)

UNIT 3 - SOFTWARE PROJECT CONCEPTS Structure Learning Objectives Introduction Concepts of Project Management Role of Metrics & Measurements Summary Key Words/Abbreviations Learning Activity Unit End Questions (MCQ and Descriptive) References LEARNING OBJECTIVES After studying this unit, you will be able to: ⚫ Discuss the concept of Software Project Management. ⚫ Outline role of metrics and measurements. INTRODUCTION Software project management includes the tools, techniques, and knowledge essential to deal with the growth of software products. In Software Project Management, the end users and developers require to know the cost of the project, duration and length. It is a process of managing, allocating and timing resources to develop computer software that meets necessities. It consists of eight tasks: • Problem Identification • Problem Definition 41 CU IDOL SELF LEARNING MATERIAL (SLM)

• Project Planning • Project Organization • Resource Allocation • Project Scheduling • Tracking, Reporting and Controlling • Project Termination Software is said to be an intangible product. Software development is a kind of all new streams in world business and there’s very little experience in building software products. Most software products are tailor made to fit client’s requirements. The most important is that the underlying technology changes and advances so frequently and rapidly that experience of one product may not be applied to the other one. All such business and environmental constraints bring risk in software development hence it is essential to manage software projects efficiently. Software Project Management (SPM) is a proper way of planning and leading software projects. It is a part of project management in which software projects are planned, implemented, monitored and controlled. In today's world, Software Project Management is an Art. It is \"the process of planning, organizing, staffing, monitoring, controlling and leading a software project\". Another definition for SPM (Software Project Management) is \"the application of knowledge, skills, tools, and techniques to project activities to meet project requirements\". Every software project must have a manager who leads the development team and is the interface with the initiators, suppliers and senior management. Software development is a complex process involving such activities as domain analysis, requirements specification, communication with the customers and end-users, designing and producing different artifacts, adopting new paradigms and technologies, evaluating and testing software products, installing and maintaining the application at the end-user's site, providing customer support, organizing end-user training, visualizing potential upgrades and negotiating about them with the customers, and many more. In order to keep everything under control, eliminate delays, 42 CU IDOL SELF LEARNING MATERIAL (SLM)

always stay within the budget, and prevent project runaways, that is, situations in which cost and time exceed what was planned, software project manager must exercise control and guidance over the development team throughout the project's lifecycle. CONCEPTS OF PROJECT MANAGEMENT Software Project Management (SPM) is a proper way of planning and leading software projects. It is a part of project management in which software projects are planned, implemented, monitored and controlled. Need of Software Project Management: Software is a non-physical product. Software development is a new stream in business and there is very little experience in building software products. Most of the software products are made to fit client’s requirements. The most important is that the basic technology changes and advances so frequently and rapidly that experience of one product may not be applied to the other one. Such type of business and environmental constraints increase risk in software development hence it is essential to manage software projects efficiently. It is necessary for an organization to deliver quality product, keeping the cost within client’s budget constrain and deliver the project as per scheduled. Hence in order, software project management is necessary to incorporate user requirements along with budget and time constraints. Software Project Management consists of several different type of managements: Conflict Management: Conflict management is the process to restrict the negative features of conflict while increasing the positive features of conflict. The goal of conflict management is to improve learning and group results including efficacy or performance in an organizational setting. Properly managed conflict can enhance group results. Risk Management: Risk management is the analysis and identification of risks that is followed by synchronized and economical implementation of resources to minimize, operate and control the possibility or effect of unfortunate events or to maximize the realization of opportunities. Requirement Management: It is the process of analyzing, prioritizing, tracing and 43 CU IDOL SELF LEARNING MATERIAL (SLM)

documenting on requirements and then supervising change and communicating to pertinent stakeholders. It is a continuous process during a project. Change Management: Change management is a systematic approach for dealing with the transition or transformation of an organization’s goals, processes or technologies. The purpose of change management is to execute strategies for effecting change, controlling change and helping people to adapt to change. Software Configuration Management: Software configuration management is the process of controlling and tracing changes in the software, part of the larger cross-disciplinary field of configuration management. Software configuration management include revision control and the inauguration of baselines. Release Management: Release Management is the task of planning, controlling and scheduling the build in deploying releases. Release management ensures that organization delivers new and enhanced services required by the customer, while protecting the integrity of existing services. Aspects of Software Project Management: Fig 3.1 Aspect of Software 44 CU IDOL SELF LEARNING MATERIAL (SLM)

Advantages of Software Project Management: • It helps in planning of software development. • Implementation of software development is made easy. • Monitoring and controlling are aspects of software project management. • It overall manages to save time and cost for software development. ROLE OF METRICS & MEASUREMENTS Software Measurement: A measurement is a manifestation of the size, quantity, amount or dimension of a particular attributes of a product or process. Software measurement is a titrate impute of a characteristic of a software product or the software process. It is an authority within software engineering. Software measurement process is defined and governed by ISO Standard. Need of Software Measurement: Software is measured to: • Create the quality of the current product or process. • Anticipate future qualities of the product or process. • Enhance the quality of a product or process. • Regulate the state of the project in relation to budget and schedule. Classification of Software Measurement: There are 2 types of software measurement: Direct Measurement: In direct measurement the product, process or thing is measured directly using standard scale. Indirect Measurement: In indirect measurement the quantity or quality to be measured is measured using related parameter i.e. by use of reference. Metrics: A metrics is a measurement of the level that any impute belongs to a system product or process. There are 4 functions related to software metrics: 45 CU IDOL SELF LEARNING MATERIAL (SLM)

• Planning • Organizing • Controlling • Improving Characteristics of software Metrics: Quantitative: Metrics must possess quantitative nature. It means metrics can be expressed in values. Understandable: Metric computation should be easily understood, the method of computing metric should be clearly defined. Applicability: Metrics should be applicable in the initial phases of development of the software. Repeatable: The metric values should be same when measured repeatedly and consistent in nature. Economical: Computation of metric should be economical. Language Independent: Metrics should not depend on any programming language. Classification of Software Metrics: There are 2 types of software metrics: • Product Metrics: Product metrics are used to evaluate the state of the product, tracing risks and under covering prospective problem areas. The ability of team to control quality is evaluated. Process Metrics Process metrics pay particular attention on enhancing the long term process of the team or organization • Project Metrics: Project matrix is describes the project characteristic and execution process. o Number of software developer 46 CU IDOL SELF LEARNING MATERIAL (SLM)


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook