100% found this document useful (10 votes)
9K views366 pages

Software Engineering by Anuradha A. Puntambekar

The importance of Software Engineering is well known in various engineering fields. Overwhelming response to my books on various subjects inspired me to write this book. The book is structured to cover the key aspects of the subject Software Engineering. The book uses plain, lucid language to explain fundamentals of this subject. The book provides logical method of explaining various complicated concepts and stepwise methods to explain the important topics.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
100% found this document useful (10 votes)
9K views366 pages

Software Engineering by Anuradha A. Puntambekar

The importance of Software Engineering is well known in various engineering fields. Overwhelming response to my books on various subjects inspired me to write this book. The book is structured to cover the key aspects of the subject Software Engineering. The book uses plain, lucid language to explain fundamentals of this subject. The book provides logical method of explaining various complicated concepts and stepwise methods to explain the important topics.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 366
Software Engineering 1) Bea aa g PAULUS CST ANSWERS om aaa ae kai AU QUESTIONS MAY 2003 to MAY 2018 Sub Code : CS8494 ya ath te le ere ud A. A. Puntambekar Oo Still 0s per Revised Syllabus of ANNA UNIVERSITY Choice Based Credit System (CBCS) Semester - [V (CSE) Semester - V (IT) SOFTWARE ENGINEERING Mrs. Anuradha A. Puntambekar ME, (Computer) Formerly Assistont Professor in PE.S. Moder College of Engineering, Pune 298 Sosssiee PUBLICATIONS An Up-Thrust for Knowledge ==> TECHNICAL il SOFTWARE ENGINEERING Semester - IV (CSE) Semester - V (IT) First Edition : January 2019 © Copyright with Author All publishing rights (printed and ebook version} reserved with Technical Publications. No part ofthis book should be reproduced in any form, Electronic, Mechonical, Photocopy or any information storage and retrieval system without prior permission in writing, from Technical Publications, Pune. Published by - TECHNICAL Pre 7 820 ee oe o re Ey tN Te eS PUBLICATIONS £7! s=l=Otecrncslpublesions org Webs*e * wan teemleapulenons ory Printer : Yous) Pinter & Binders SeNo. 10\1A, Ghule Indu Estte, Nanded Vilose Roe, Tot Havel, Dit Pane 411041 Price : €298/- ISBN 978-93-332-2108-4 Ml Pose 9789333221054 (1) «iy PREFACE The importance of Software Engineering is well known in various engineering fields. Overwhelming response to my books on various subjects inspired me to write this book. The book is structured to cover the key aspects of the subject Software Engineering. The book uses plain, lucid language to explain fundamentals of this subject. The book provides logical method of explaining various complicated concepts and stepwise methods to explain the important topics. Each chapter is well supported with necessary illustrations, practical examples and solved problems. All the chapters in the book are arranged in a proper sequence that permits each topic to build upon earlier studies. All care has been taken to make students comfortable in understanding the basic concepts of the subject. Representative questions have been added at the end of each section to help the students in picking important points from that section The book not only covers the entire scope of the subject but explains the philosophy of the subject. This makes the understanding of this subject more clear and makes it more interesting. The book will be very useful not only to the students but also to the subject teachers. The students have to omit nothing and possibly have to cover nothing more I wish to express my profound thanks to all those who helped in making this book a reality. Much needed moral support and encouragement is provided on numerous occasions by my whole family. 1 wish to thank the Publisher and the entire team of Technical Publications who have taken immense pain to get this book in time with quality printing Any suggestion for the improvement of the book will be acknowledged and well appreciated Author A.A. Pantambekar Dedicated to Ged. cy SYLLABUS Software Engineering - CS8494 UNIT-I Software Process and Agile Development Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models - Introduction to Agility-Agile process-Extreme programming-XP Process. (Chapter - 1) UNIT-II Requirements Analysis and Specification Software Requirements: Functional and Non-Functional, User requirements, System requirements, Software Requirements Document - Requirement Engineering Process: Feasibility Studies, Requirements elicitation and analysis. requirements validation requirements management-Classical analysis: Structured system analysis, Petri Nets - Data Dictionary. (Chapter - 2) UNIT -IIL Software Design Design process - Design concepts - Design model - Design heuristic - Architectural design - Architectural styles, Architectural design, Architectural mapping using data flow - User interface design ; Interface analysis, Interface design - Component level design : Designing class based components, Traditional components. (Chapter - 3) UNIT-IV Testing and Maintenance Software testing fundamentals - Internal and external views of Testing - White box testing - Basis path testing - control structure testing-black box testing- Regression Testing -Unit Testing - Integration Testing - Validation Testing - System Testing And Debugging - Software Implementation Techniques: Coding practices-Refactoring-Maintenance and Reengineering-BPR model-Reengineering process model-Reverse and Forward Engineering. (Chapter - 4) UNIT-V Project Management Software Project Management : Estimation - LOC, FP Based Estimation, Make/Buy Decision COCOMO | & II Model - Project Scheduling - Scheduling, Earned Value Analysis Planning - Project Plan, Planning Process, RFP Risk Management - Identification, Projection - Risk Management - Risk Identification - RMMM Plan - CASE TOOLS (Chapter - 5) w TABLE OF CONTENTS Chapter-1 Software Process and Agile Development (1-1) to (1 - 44) 1.1 Introduction to Software Engineering 1-2 1.1.1 Defining Software................ 7 Frese ercreisstvaas 27k 1.1.2 Software Characteristics. .......... 1-2 1.1.3 Categories of Software . . sees 7 7 . . 1-4 1.2 Goals and Objectives of Software 1.3 Difference between Software Product and Program 1.4 Layered Technology... 1.5 Software Process ....... 1-7 1.5.1 Common Process Framework ...... : cess cece 17 1.5.2 Capability Maturity Model (CMM) 1-8 1.6 Prescriptive Process Models... 1.6.1 Need for Process Model . 1.6.2 Waterfall Model 1.6.3 Incremental Process Model ce : cee -1-13 1.6.3.1 Incremental Model 1-13 1.6.3.2 RAD Model sone sone : 1-14 1.6.4 Evolutionary Process Model 1-16 1.6.4.1 Prototyping 1-16 1.6.4.2 Spiral Model sae 1-18 1.6.4.3 Concurrent Development Model 1-21 1.7 Specialized Model... 1.7.1 Component Based Development .... vee eitsecsvesenses 1°28 1.7.2 Formal Methods Model.........0.0...0000eceee cee eeeeeeeeeeee 1-29 1.7.3 Aspect Oriented Software Development 1-29 1.8 Introduction to Agility. 1.9 Agile Process ......sssessesseeeessees 1.9.1 Agile Principles......... 1.10 Extreme Programming... 1.10.1 XP Values 2.0 0.ce ee 1.10.2 Process . 1.10.3 Industrial XP Two Marks Questions with Answers Chapter-2 Requirements Analysis and Specification (2 - 1) to (2 - 86) 2.1 Software Requirements. 2.2 Functional and Non Functional Requirements 2.2.1 Functional Requirements ......... 2.2.1.1 Problems Associated with Requirements 2.2.2 Non Functional Requirements . 2.2.2.1 Types of Non Functional Requirements sae wae 2-4 2.2.2.2 Domain Requirements 2-6 2.2.3 Difference between Functional and Non Functional Requirements .. . .. 2-6 2.3. User Requirements jvsstsnsniesennnsnaneeiasiensnanenstinitinenennanen 2710 2.3.1 Guidelines for Writing User Requirements ...... - cee Ded 2.4 System Requirements 2-11 2.4.1 Structured Language Specification ve - coves 2-12 2.5 Software Requirements Document see 2-14 2.5.1 Characteristics of SRS .. vee 2-17 2.5.2 Example Of SRS «1.6... ese c eee eee eect eee nena eee seneee 22 2.6 Requirement Engineering Process. vee 2-23 2.7 Feasibility Studies . 2-27 w 2.8 Requirements Elicitation and Analysis 2.8.1 Stakeholders 2.8.2 Requirement Elicitation and Analysis Process ...........e.eeeeceeeee04 2°29 2.8.3 Requirement Discovery . a : cece =. 2-30 2.9 Requirement Validation. 2.10 Requirement Management ... 2.10.1 Enduring and Volatile Requirements 2-42 2.10.2 Requirements Management Planning .......... cee ceeee eee eeee 2288 2.10.3 Requirement Change Management 2-44 2.11 Structured System Analysis .. 2-45 2.11.1 Designing Data Flow Diagrams .............0000eee cee 2246 2.11.2 Rules for Designing DFD 2-47 2.113 Difference between Structured Analysis and Object Oriented Analysis... 2-75 2.12 Petri Nets sso 2.13 Data Dictionary....... ‘Two Marks Questions Answers .. 2-80 Unit - Il Chapter - 3 Software Design (3 - 1) to (3 - 74) 3-2 3.1 Introduction 3.1.1 Designing within the Context of Software Engineering ............. 3-2 3.2 Design Process.. 3.3 Design Concepts 3.3.1 Abstraction........ 3.3.2 Modularity 3.3.3 Architecture .... sees ce eeseeeeee eee vente 3-8 3.3.4 Refinement... 000. .0ece cece eeeeee veces nese eete este eetees 138 3.3.5 Pattern on ie : Gees: oa 3-8 3.3.6 Information Hiding. ...... 7 eee . 3-9 3.3.7 Functional Independence ..... wee Seeseseeeeereare 3-9 wit 33.7.1 Cohesion. 2... bee BD 3.3.7.2 Coupling. . soe See so 3-10 3.3.8 Refactoring . 3-11 3.3.9 Design Classes ...... 000s cee eeee ee veeeteeeseeeeeeeeeeeteeeeeeeeeee Sed 3.4 Design Model... 3.4.1 Data Design Element 3-14 3.4.2 Architectural Design Element.......000..2.0000cceeeeeecceeeeeeeeeeee 321d 3.4.3 Interface Design Elements ..............6- cee Bed 3.4.4 Component Level Design Elements .........00000cceeeescceeeeeeeeeeee 3215 3.4.5 Deployment Level Design Elements 3-15 3.5 Design Heuristic. 3.6 Introduction to Architectural Design... 3.7 Software AFChiteCtUre vevsssssssssssssssssssssssssssnsssnsssnnssannseanseansvsasseassssssssssssssssessend = LP 3.7.1 Structural Partitioning .........6. 0s eeeee cere ee eee ee ee ee rene rerer es 3918 3.8 Data Design. 3.9 Architectural Style .. 3.9.1 Architectural Styles . 3.9.1.1 Data Centered Architectures . . bee cee BRD 3.9.1.2 Data Flow Architectures... eb oe ee oa eu eH Boed 3.9.1.3 Call and Return Architecture . oe oo 323 3.9.1.4 Object Oriented Architecture. . wee oo B28 3.9.1.5 Layered Architecture . 3.9.2 Architectural Patterns . 3.10 Architectural Design ..... 3.10.1 Representing System in Context 3.10.2 Defining Archetypes .......... 3.10.3 Refining Architecture into Components ............00000ceeeeeeeeeeee 3229 3.10.4 Defining Instantiations of the System ............. 3.11 Architectural Mapping using Data Flow ... 3.11.1 Transform Mapping. ...........000ceeeeeeveeees ili) 3.11.2 Transaction Mapping ........... 3-37 3.12 Concept of User Interface Design 3-41 3.12.1 Golden Rules ......... 0.000000 3-42 3.12.1.4 Place the User in Control... . . eee oe tas B82 3.12.1.2 Reduce the User's Memory Load : : 3-43 3.12.13 Make the Interface Consistent : 3-44 3.12.2 User Interface Analysis and Design .......... 7 ween B45 3.12.2. Interface Analysis and Design Model 3-45 3.12.2.2 The Process. nares Seen - 3-46 3.12.3 Interface Analysis. 3-48 3.12.3.1 User Analysis 3-48 3.12.3.2 Task Analysis and Modelling 3-49 3,12.3.3 Analysis of Display Content 3-51 3.12.3.4 Analysis of Work Environment 3-52 3.12.4 Interface Design. 3-53 3.12.4.1 Application of Interface Design Steps 3-53 3.12.4.2 User Interface Design Pattern : 3-56 3.12.4.3 Design Issues 3-56 3.13 Component Level Design. 3-59 3.13.1 Designing Class based Components. . 3-59 3.13.1. Basic Design Principle 3-59 3,13.1.2 Component Level Design Guideline. Fee ss 3-60 3.13.1.3 Cohesion 3-60 3.13.1.4 Coupling 3.13.2 Traditional Components 3.13.2.1 Structured Programming Two Marks Questions with Answers .. Chapter -4 Testing and Maintenance (4-1) to (4-70) 4.1 Definition of Testin, 4-2 wo 4.1.1 Testing Objectives ..... 4.1.2 Testing Principles ..........0000 4.1.3 Why Testing is Important ? 4,2 Internal and External Views of Testing 4.3 White Box Testing. 4.3.1 Condition Testing ...... cece e ete eeee een eeeeee ee a5 4.3.2 Loop Testing 4-6 4.3.3 Basis Path Testing ..... 4-8 4.4 Black BOX TeSting sssssssssersrsesssssereeseessen esseencanesnnonsanncen svessvaneee 4 = 23, 4.4.1 Equivalence Partitioning 4.4.2 Boundary Value Analysis (BVA) ...... 0000 ce eee ee vc ceee eee cceee eens 228 4.5 Comparison between Black Box Testing and White Box Testing... 4.6 Testing Strategy 4.7 Unit Testing 48 Integration Testing. 4.8.1 Top Down Integration Testing..... ae cece eteeeeeees 4234 4.8.2 Bottom Up Integration Testing .... cette eee e eres 4235 4.8.3 Regression Testing ..... 4-36 4.8.4 Smoke Testing........+ es cee os 4-36 4.9 Validation Testing .. cette eceeeeees 4238 4.9.1 Acceptance Testing. ...... 6... 006ce0eeeeeeeeee 4.10 System Testing. 410A Recovery Testing. ....... 0. 0cccccccceete eee eset eee e eee ees 420 4.10.2 Security Testing ....... es cecee cette seen cove 4-40 4.10.3 Stress Testing 4-40 4.10.4 Performance Testing .. fo wees a 1. 4-40 4.11 Debugging. 4.11.1 Testing Vs. Debugging ... 4.12 Software Implementation Techniques 4.12.1 Coding Practices ... 0) 4.12.2 Coding Standards ....... 0... .0ecc0eeeeeeeee es ceveseeete sense ee 4-46 4.12.3 Refactoring 4-47 4.13 Maintenance and Reengineering... 4-48 4.13.1 Need for Maintenance............ ees e cece eee eee eeee eee sere 4-49 4.13.2 Types of Software Maintenance ............0eccscceeeeeveesseeeeees 4249 4.13.3 Software Maintenance Process..............+-+ 4-50 4.13.4 Issues in Software Maintenance... sees feeeeecereeeees 4°52 4.14 Business Process Reengineering. 4-52 4.14.1 BPR Model 4-53 4.15 Reengineering Process Model 4-54 4.16 Reverse and Forward Engineering 4-55 ‘Two Marks Questions with Answers ... ae) Chapter-5 Project Management (6 - 1) to (5 - 78) 5.1 Software Project Management.......sssssssssesssseessssessssnseessseessseessssescsniessseessseeeneD = 2 5.2 Estimation......... 5-2 5.2.1 Software Sizing. 5-2 5.2.2 Problem based Estimation . a . 5-3 5.2.3 LOC based Estimation ...........eeeeeeeeeee 5-4 5.2.4 Example of LOC based Estimation sere eoeber eases susan 5-5 5.2.5 Function Oriented Metrics : eee wee 5-8 5.2.6 Example of FP based Estimation. oe cee ceeeee 5-10 5.3 Make Buy Decision eed = 17 5.3.1 Outsourcing ....... hee ew +¥6 rereery visest 5-19 5.4 COCOMO | Model ....sssesssseessssessssneessnnessnnesssaneessnneseunseessueessuneesanneecsnueessaneeasseed ~ 20 5.5 COCOMO I! Model .. 5.6 Project Scheduling.......... 5.6.1 Relationship between People and Effort. ...... 6.2 06eee cece eeeee eee ee 593M 5.6.2 Task Sets... feet eedeeadaeeueeeeesensees cence 5235, ei) 5.6.3 Task Network... 00... cece eeeseveeeeeete esse etee este esseeese ss 5-38 5.6.4 Time Line Chart ..... 0... 00200 covet veer eeeeee veveee ees 5-39 5.6.5 Tracking Schedule... 0... 0ee 0 cece eect cess eeee eet eeee eens e 5240 5.6.6 Earned Value Analysis 5-41 5.7 Project Plan. 5.8 Planning Process. 5.9 Risk Management ....sssssesssssnsssesesssssetnnsseesnastinnssstiusssseussesissstisessnsaeeee 5 = 51 5.9.1 Software Risks... 002.0 ccc cvece eevee sees eesee sees 5.9.2 Risk Identification... . 5.9.2.1 Risk Components and Drivers... . . . cee 5-55 5.9.2.2 How to Asses Overall Project Risk? ©... ee ee es 556 5.9.3 Risk Projection. 5.9.3.1 Building Risk Table . vee 5-57 5.9.3.2 Assessing RiskImpact. 2. eee bee 5-58 5.9.4 RMMM 5.9.5 RMMM Plan 5-60 5.10 CASE Tools ... 5.10.1 Building Blocks of CASE 5.10.1.1 Taxonomy 5.10.2 Workbenches 5.10.3 Environments 5.10.4 Components of CASE ... Two Marks Questions with Answers ... (xi UNIT - Software Process and Agile Development Syllabus Introduction to software engineering, Software process, Perspective and specialized process models, Introduction to Agility, Agile Process, Extreme programming, XP process Contents 1.1. Introduction to Software Engineering . Dec.-13, 17, 1.2 Goals and Objectives of Software 1.3. Difference between Software Product and Program 1.4 Layered Technology 1.5 Software Process Dec.-10,17, 1.6 Prescriptive Process Models ....... . May-05,06,09,15,16,17,18, - Dec.-06,09,11,16,17, » +» Marks 16 1.7. Specialized Model Dec.-13,14,15,17, May-16,- Marks 16 1.8 Introduction to Agility 1.9 Agile Process : = Dec.-16, 22-2 Marks 4 1.10 Extreme Programming Two Marks Questions with Answers Long Answered Questions a-1 Software Engineering 1-2 Software Process and Agile Development Introduction to Software Engineering “Software engineering is a discipline in which theories, methods and tools are applied to develop professional software product.” In software engineering the systematic and organized approach is adopted. Based on the nature of the problem and development constraints various tools and techniques are applied in order to develop quality software. The definition of software engineering is based on two terms : * Discipline : For finding the solution to the problem an Engineer applies appropriate theories, methods and tools. While finding the solutions, Engineers must think of the organizational and financial constraints. Within these constraints only, he/she has to find the solution * Product : The software product gets developed after following systematic theories, methods and tools along with the appropriate management activities. ERED Defining Software Software is nothing but a collection of computer programs and related documents that are intended to provide desired features, functionalities and better performance. Software products may be 1. Generic - That means developed to be sold to a range of different customers 2. Custom - That means developed for a single customer according to their specification. ERE software Characteristics Software development is a logical activity and therefore it is important to understand basic characteristics of software. Some important characteristics of software are * Software is engineered, not manufactured 2 Software development and hardware development are two different activities. © A good design is a backbone for both the activities. ° Quality problems that occur in hardware manufacturing phase can not be removed easily. On the other hand, during software development process such problems can be rectified. ° In both the activities, developers are responsible for producing. qualitative product, TECHNICAL PUBLICATIONS” An up thrust for knowledge Software Engineering 1-3 Software Process and Agile Development * Software does not ware out © In early stage of hardware development process the failure rate is very high because of manufacturing defects. But after correcting such defects the failure rate gets reduced. © The failure rate remains constant for some period of time and again it starts increasing because of environmental maladies (extreme temperature, dusts, and vibrations). © On the other hand software does not get affected from such environmental maladies. Hence ideally it should have an “idealized curve’. But due to some undiscovered errors the failure rate is high and drops down as soon as the errors get corrected. © Hence in failure rating of software the “actual curve” is as shown below : Failure curves, (Bath tub curves) Hardware curve ‘Side effect Manufacturing Acta curve. idealized curve © During the life of software if any change is made, some defects may get introduced © This causes failure rate to be high. Before the curve can return to original steady state another change is requested and again the failure rate becomes high. © Thus the failure curve looks like a spike. Thi cause it to deteriorate. Fig. 1.1.1 Fai s frequent changes in software © Another issue with software is that there are no spare parts for software. © If hardware component wears out it can be replaced by another component but it is not possible in case of software. © Therefore software maintenance is more difficult than the hardware maintenance. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-4 Software Process and Agile Development «Most software is custom built rather than being assembled from components © While developing any hardware product firstly the circuit design with desired functioning properties is created. © Then required hardware components such as ICs, capacitors and registers are assembled according to the design, but this is not done while developing software product. © Most of the software is custom built. © However, now the software development approach is getting changed and we look for reusability of software components. © Ibis practiced to reuse algorithms and data structures. © Today software indusiry is trying to make library of reusable components. © For example : In today’s software, GUI is built using the reusable components such as message windows, pull down menus and many more such components. The approach is getting developed to use in-built components in the software. This stream of software is popularly known as component engineering. Categories of Software Software can be applied in a situation for which a predefined set of procedural steps (algorithm) exists. Based on a complex growth of software it can be classified into following categories. * System software - It is collection of programs written to service other programs. Typical programs in this category are compiler, editors, and assemblers. The purpose of the system software is to establish a communication with the hardware. * Application software - It consists of standalone programs that are developed for specific business need. This software may be supported by database systems. * Engineering/Scientific software - This software category has a wide range of programs from astronomy to volcanology, from automative stress analysis to space shuttle orbital dynamics and from molecular biology to automated manufacturing. This software is based on complex numeric computations. Embedded software - This category consists of program that can reside within a product or system. Such software can be used to implement and control features and functions for the end-user and for the system itself. * Web applications - Web application software consists of various web pages that can be retrieved by a browser. The web pages can be developed using programming languages like JAVA, PERL, CGI, HTML, DHTML. TECHNICAL PUBLICATIONS”. An up thst for knowledge Software Engineering 1-5 Software Process and Agile Development * Artificial Intelligence software - This kind of software is based on knowledge based expert systems. Typically, this software is useful in robotics, expert systems, image and voice recognition, artificial neural networks, theorem proving and game playing. ocean 1. What is the impact of reusability in softcomre development process? OSD ESS UAUTETENE 2. Write a note on the unique characters of a software. AU: Dec.-17, Marks 3 EEA Goals and Objectives of Software While developing software following are common objectives. 1. Satisfy users requirements - Many programmers simply don’t do what the end user wants because they do not understand user requirements. Hence it becomes necessary to understand the demand of end user and accordingly software should be developed. 2. High reliability - Mistakes or bugs in a program can be expensive in terms of human lives, money, and customer relation. For instance, Microsoft has faced many problems because earlier release of windows has many problems. Thus software should be delivered only if high reliability is achieved 3. Low maintenance costs - Maintenance of software is an activity that can be done only after delivering the software to the customer. Any small change in software should not cause restructuring, of whole software. This indicates that the design of software has poor quality. 4. Delivery on time - It is very difficult to predict the exact time on which the software can be completed. But a systematic development of software can lead to meet the given deadline. 5. Low production costs - The software product should be cost effective. 6. High performance - The high performance software are expected to achieve optimization in speed and memory usage 7. Ease of reuse - Use same software in different systems and software. Environments reduce development costs and also improve the reliability. Hence reusability of developed software is an important property. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-6 Software Process and Agile Development Difference between Software Product and Program Sr. No. Program Programs are developed by individual user and it is used for personal use. Software product Software product is developed _ by multiple users and it is used by large number of people or customers. For example : Program of sorting n elements. 2. Programs are small in size and Software product consists of multiple possessing limited functionality. program codes, related documents such as SRS, design documents user manuals, test cases and so on. 3. Generally only one person uses the Good graphical user interface is most program, hence there is a lack of user required by any software product. interface. Program is generally developed by Software product is developed _ by programmer. software engineers who are large in number and work in a team. Therefore systematic approach of developing, software product must be applied. For example : A word processing software. ER3 Layered Technology * Software engineering is a layered technology. Any software can be developed using these layered layers on which the technology is based are quality focus layer, process layer, approaches. Various methods layer, tools layer: * A disciplined quality management is a backbone of software engineering technology. * Process layer is a foundation of Fig. 1.4.1 Layered technology software engineering, Basically, process defines the framework for timely delivery of software. * In method layer the actual method of implementation is carried out with the help of requirement analysis, designing, coding using desired programming, constructs and testing. * Software tools are used to bring automation in software development process. * Thus software engineering is a combination of process, methods, and tools for development of quality software. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-7 Software Process and Agile Development 1.5 ey AU. Ae Software process can be defined as the the software system. structured set of activities that are required to develop The fundamental activities are : © Specification * Design and implementation * Validation * Evolution A software process model is an abstract representation of a proce: description of a process from some particular perspective. . Tt presents a EEX common Process Framework The process framework is required for representing the common process activities. [Software process Process framework Umbrella activities Teskset Framework SQA points Activity #1 Milestone. Taskset Framework ‘SQA points Activity ##n Fig. 1.5.1 Software process framework As shown in Fig. 1.5.1, the software process is activities, task sets and umbrella activi framework characterized by proces ies, Process framework acti * Communication es = By communicating customer requirement gathering is done. * Planning - Establishes engineering work plan, describes technical risks, lists resource requirements, work products produced and defines work schedule. * Modeling - The software model is prepared by : = Analysis of requirements = Design TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-8 Software Process and Agile Development * Construction - The software design is mapped into a code by = Code generation = Testing * Deployment - The software delivered for customer evaluation and feedback is obtained, Task sets - The task set defines the actual work done in order to achieve the software objective. The task set is used to adopt the framework activities and project team requirements using : = Collection of software engineering work tasks = Project milestones = Software quality assurance points Umbrella activities - The umbrella activities occur throughout the process. They focus on project management, tracking and control. The umbrella activities are 1. Software project tracking and control - This is an activity in which software team can assess progress and take corrective action to maintain schedule. 2. Risk management - The risks that may affect project outcomes or quality can be analyzed. 3. Software quality assurance - These are activities required to maintain software quality. 4, Formal technical reviews - It is required to assess engineering work products to uncover and remove errors before they propagate to next activity, 5. Software configuration management - Managing of configuration process when any change in the software occurs. 6. Work product preparation and production - The activities to create models, documents, logs, forms and lists are carried out. 7. Reusabi ity management - It defines criteria for work product reuse 8. Measurement - In this activity, the process can be defined and collected. Also project and product measures are used to assist the software team in delivering the required software, E21 Capability Maturity Model (CMM) * The Software Engineering Institute (SEI) has developed a comprehensive process meta-model emphasizing process maturity. It is predicated on a set of system and software capabilities that should be present when organizations reach different levels of process capability and maturity. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-9 Software Process and Agile Development « The Capability Maturity Model (CMM) is used in assessing how well an organization’s processes allow to complete and manage new software projects. * Various process maturity levels are Level 1 : Initial - Few processes are defined and individual efforts are taken. Level 2:Repeatable - To track cost schedule and functionality basic project management processes are established. Depending on earlier successes of projects with similar applications necessary process discipline can be repeated. Level 3 : Defined - The process is standardized, documented and followed. All the projects use documented and approved version of software process which is useful in developing and supporting software. Level 4: Managed - Both the software process and product are quantitatively understood and controlled using detailed measures Level 5: Optimizing - Establish mechanisms to plan and implement change. Innovative ideas and technologies can be tested. Thus CMM is used for improving the software project. | 1. Explain the CMMI model to access the organization level. EEG Prescriptive Process Models * Definition of Process Model : The process model can be defined as the abstract representation of process. The appropriate process model can be chosen based on abstract representation of proc * The software process model is also known as Software Development Life Cycle (SDLC) Model or software paradigm * These models are called prescriptive process models because they are following some rules for correct usage. * In this model various activities are carried out in some specific sequence to make the desired software product. * Various prescriptive process models are - TECHNICAL PUBLICATIONS”. An up thst for knowledge Software Engineering 1-10 Software Process and Agile Development Prescriptive Process models. Waterfall Tneremental Evolutionary model Process model| [Process model |— incremental | — Prototyping model | — spiral model — RAD model p L— concurrent Development model Fig. 1.6.1 Prescriptive process model Need for Process Model The software development team must decide the process model that is to be used for software product development and then the entire team must adhere to it. This is necessary because the software product development can then be done systematically. Each team member will understand - what is the next activity and how to do it. Thus process model will bring the definiteness and discipline in overall development process. Every process model consists of definite entry and exit criteria for each phase. Hence the transition of the product through various phases is definite. If the process model is not followed for software development then any team member can perform any software development activity, this will ultimately cause a chaos and software project will definitely fail without using process model, it is difficult to monitor the progress of software product. Let us discuss various process models one by one EEX] waterfall Model * The waterfall model is also called as ‘linear-sequential model’ or ‘classic life cycle model’. It is the oldest software paradigm. This model suggests a systematic, sequential approach to software development. * The software development starts with requirements gathering phase. Then progresses through analysis, design, coding, testing and maintenance. Following, figure illustrates waterfall model. * In requirement gathering and analysis phase the basic requirements of the system must be understood by software engineer, who is also called Analyst. The information domain, function, behavioural requirements of the system are TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-11 Software Process and Agile Development Requirement gathering and analysis Fig. 1.6.2 Waterfall model understood. All these requirements are then well documented and discussed further with the customer, for reviewing. © The design is an intermediate step between requirements analysis and coding. Design focuses on program attributes such as - = Data structure = Software architecture = Interface representation = Algorithmic details. The requirements are translated in some easy to represent form using which coding can be done effectively and efficiently. The design needs to be documented for further use. * Coding is a step in which design is translated into machine-readable form. If design is done in sufficient detail then coding can be done effectively. Programs are created in this phase. * Testing begins when coding is done. While performing testing the major focus is on logical internals of the software. The testing ensures execution of all the paths, functional behaviours. The purpose of testing is to uncover errors, fix the bugs and meet the customer requirements. * Maintenance is the longest life cycle phase. When the system is installed and put in practical use then error may get introduced, correcting such errors and putting it in use is the major purpose of maintenance activity. Similarly, enhancing system's services as new requirements are discovered is again maintenance of the system. This model is widely used model, although it has many drawbacks. Let us discuss benefits and drawbacks. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-12 Software Process and Agile Development Benefits of waterfall model 1. The waterfall model is simple to implement. 2. For implementation of small systems waterfall model is useful. Drawbacks of waterfall model ‘There are some problems that are encountered if we apply the waterfall model and those are 1. It is difficult to follow the sequential flow in software development process. If some changes are made at some phases then it may cause some confusion. 2. The requirement analysis is done initially and sometimes it is not possible to state all the requirements explicitly in the beginning. This causes difficulty in the project. 3. The customer can see the working model of the project only at the end. After reviewing of the working model; if the customer gets dissatisfied then it causes serious problems. 4. Linear nature of waterfall model induces blocking states, because certain tasks may be dependant on some previous tasks. Hence it is necessary to accomplish all the dependant tasks first. It may cause long waiting time. Explain how water-fall model is applicable for the development of the following systems a) University accounting system b) Interactive system that allows railway passengers to find time and other information from the terminals installed in the station. Solution : a) University accounting system : If the software developers who have the experience in developing the account systems then building university account system based on existing design could be easily managed with water-fall model b) Interactive system that allows railway passengers to find time and other information from the terminals installed in the station. For developing such interactive system, all the requirements must be correctly identified and analyzed before the designing of the project. The requirements of end-users must be correctly and un-ambiguously understood by the developers prior to design phase. Once the requirements are well defined then using disciplined design, coding and testing phases the required system can be built using water-fall model. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-13 Software Process and Agile Development EEGEI Incremental Process Model In this model, the initial model with limited functionality is created for user's understanding about the software product and then this model is refined and expanded in later releases. Incremental Model * The incremental model has same phases that are in waterfall model. But it is iterative in nature. The incremental model has following phases. 1. Analysis 2. Design 3. Code 4. Test * The incremental model delivers are called increments. More and more functionality is associated with each series of releases to the customer. These releases increment. [Analysis}—[ Design ‘Code Test Increment with Tncremant #n > OetreO-O g 3 3 —— Increment with very limited functionality Time Fig. 1.6.3 The incremental model * The first increment is called core product. In this release the basic requirements are implemented and then in subsequent increments new requirements are added * The word processing software package can be considered as an example of incremental model. In the first increment only the document processing facilities are available. In the second increment, more sophisticated document producing and processing facilities, file management functionalities are given. In the next increment spelling and grammar checking facilities can be given. Thus in incremental model progressive functionalities are obtained with each release. TECHNICAL PUBLICATIONS". An up thust for knowledge Software Engineering 1-14 Software Process and Agile Development When to choose it ? 1. When requirements are reasonably well-defined. 2. When overall scope of the development effort suggests a purely linear effort. 3. When limited set of software functionality needed quickly. Merits of incremental model 1. The incremental model can be adopted when there are less number of people involved in the project. 2. Technical risks can be managed with each increment. 3. For a very small time span, atleast core product can be delivered to the customer. RAD Model * The RAD Model is a type of incremental process model in which there is extremely short development cycle. * When the requirements are fully understood and the component based construction approach is adopted then the RAD model is used. * Using the RAD model the fully functional system can be developed within 60 to 90 days. * Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or Construction and finally Deployment. * Multiple teams work on developing the software system using RAD model parallely. * In the requirements gathering phase the developers communicate with the users of the system and understand the business process and requirements of the software system. * During analysis and planning phase, the analysis on the gathered requirements is made and a planning for various software development activities is done. * During the design phase various models are created. Those models are Business model, data model and process model, * The build is an activity in which using the existing software components and automatic code generation tool the implementation code is created for the software system. This code is well tested by its team. The functionalities developed by all the teams are integrated to form a whole. * Finally the deployment of all the software components (created by various teams working on the project) is carried out. TECHNICAL PUBLICATIONS" - An up thrus for nowlodge Software Engineering 1-15 Software Process and Agile Development Development process Team#2 Requirements gathering Design Team Analysis ‘and planning Design

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy