0% found this document useful (0 votes)
387 views120 pages

Software Engineering - Techncial Publication

Uploaded by

sktaufik753
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
0% found this document useful (0 votes)
387 views120 pages

Software Engineering - Techncial Publication

Uploaded by

sktaufik753
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/ 120
SUMMER 2014. © WINTER 2014 * SUMMER 2015 © WINTER 2015, © SUMMER 2016 © WINTER 2016 * SUMMER 2017 * WINTER 2017 ‘* SUMMER 2018 * Sample Paper (I © WINTER 2019 (5: TECHNICAL’ SUBJECT CODE : 22413 As per Revised Syllabus of MSBTE - I SCHEME S.¥. Diploma Semester - IV Computer Engineering Group & Information Technology (CO/CM/IE/ OM) SOFTWARE ENGINEERING Anuradha A. Puntambekar ME. [Computer) Farmerly Assitant Professar in PE.S. Modein College of Engineering Pune Yogesh S. Gunjal M.Tech [Compute Science and Engineering Ue Principal ICE: Joihind Polytechnic Karon, Pune Narendra S. Joshi IME. (CSE|, Ph.D. (Pursuing) ing Departmen!) Sorsip Foundation’s, Sandip Instute of Polytechnic (SIP), Nashik Yogesh 8. Patil MTech 0), BE. (LT) HOD Computer Dapartmant, G.M. Chaudhari Polylechnic, Shohada, swe 19 o SOFTWARE ENGINEERING Subject Code : 22413 S.Y. Diploma Semester - IV Computer Engineering Group & Information Technology (CO / CM/ IF / CW) Fret Ecttion : January 2019 Second Revised Edition : January 2020 © Copyright with AA. Puntambekar All publishing rights (printed and ebook version) reserved with Technical Publications. No por of this book should be reproduced in ory form, Electronic, Mechanical, Photocopy or any information storage ond reriaval system without prior permission in wrting, from Technical Publications, Pune. Published by INEGAL | 472 Residency, Ofice No.1, 412, Shoniver Peth, Pune - 411030, M.S. INDIA HAL i nee toSusssigEoTe Toler. 'T9 o20 2448007 J Emel: [email protected] Website : www tackricalpubictions.org Printer Yasin Pinter 8 Bide S.No, 101A, Ghul nd Enate, Nonded Vile Road, Tal - Hav, Dit. «Pane 41108 ([ Price: 1007- J ISBN 978-93-332-0046-2 iM MSBTE! 9739333200462 [2] “ 8 + 70% PREFACE ‘The importance of Software Engineering is well known in various engineering fields. Overwhelming response to our books on various subjects inspired us 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 10 explain the important topics. Fach chapter is well supported with necessary illustrations, practical examples and solved problems, All chapters in this book are arranged in @ 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 this 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. We wish to express our 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 our whole family. We wish to thang 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, Auchoss A.A. Pantanbehar Gogesh S. Gunjat Narendia S. Qoshi Yogesh B. Pact Dedicated bo God SYLLABUS Software Engineering (22413) Teaching| Examination Scheme Scheme tpr]e] creat Theory Practical (ots) Paper | ESE PA, Total ESE PA Tota! He. Max [min] max | atin | wax [nin | max | nin | max | min | ax | atin af-fef 5 [2 [10 [| or | a | 100 | 40 v0 | a | | » | 2 Unit Unit Outcomes (UOs) Topics and Sub topics {an cognitive domain) Unit-1 ta, Suggest the attributes that | 11 Software, Software Engineering aa layered sonst match with standards for| approach and its characteristics, Types of plc aa the given software | soltware application 12 Software development framework Ib, Recommend the relevant . software solution for the |' Software given problem with justification, Process Framework, Process models: Perspective Process Models, Specialized Process Models, 14. Agile Software development ; Apile Process ‘and its importance, Extreme Programming, ‘Adaptive Software Development, Scrum, Dynamic Systems Development Method Je Select the relevant software process model for the given problem statement with justifieation, aout cea Td. Suggest the | felevant |1.5 Selection criteria for software process acivites in Agile [15 Select Development Process in the given situation with justification Unit-11—[23. Apply the principles of [21 Software Engineering Practices and its Satiweaig sofivare engineering for the | importance, Core principles. given problem 22 Communication Fractices, Planning ab. Choose the relevant | Practices, Modelling. practices, construction requirement engincering | practices, software. deployment (Statemer steps in the given problem, and meaning of ead principle for each 2e Represent the ‘requirement | _—_Pratice engineering’ model in the |23 Requirement Engineering: Requirement given problem Gathering and Analysis, Types of Piépare. tie the ven requirements (Punctional, duct, Prepare SRS. for the gi organizational, External Requirements), Problem Eliciting Requirements, Developing Use eases, Building requirement mode Requirement Negotiation, Validation. 24 Software Requirement Specification : Need Of SRS, Format, and its Characteristics a uait-t aa, Identify the elements of 3.1 Translating Requirement model into design sali analysie model for the given | model : Data Modelling Modelling and software requirements. 32 Analysis Modelling : Elements of Analysis Design 3b. Apply the specified design model. feature for fA | 2.9 Design modeling + Pandsmental Design requirements modelling, Concepts (Abstraction, Information hiding, Ge. Represent the specified} Structure, Modularity, Concurren problem in the given design Verification, Aesthetics). notion: 34 Design notations » Data Flow Diagram Sd. Explain the given | (DFD), Structured Floweharts, Decision characteristics of software | Tables testing 35° Testing - Meaning and purpose, testing fe, Prepare test cases for the} methods - Black Box and White ~ box given modale Level of testing ~ Unit testing 36 Test Documentation - Test Case Template, test plan, Introduction to defect report, test summary report unit-1V-[4a, Estimate the size of the| 41 The management spectrum - 4P's Sofware Project | software product using the | 4. yfetrcs for Size Bstimation : Line of Code Estimation ‘Sees (LoC), Function Points (FP). 4b, Estimate the cost of the] 4.5, project Cost Esimation _ Approaches ee ee eee Overview of Heuristic, Analytical, and. given empirical method Peet palmate He _— jie sire “s 4A COCOMO (Constructive Cost Model) CoCoMo model. SECOMO'. 45° Risk Management : Risk Identification, Risk in Identified risks for the} ASSES given software development = problem unit-v—]5a, Use the given scheduling | 5.1 Project Scheduling : Basle Principles, Work software Quality | technique for the identified | breakdown structure, Activity network and ‘hinrancs aad project. caitical path Methed, Scheduling tachnigues Sees 5b. Draw the activity network {CPM, PERT) for the given task 52. Project Tracking : Timeline charts, Earned se. Prepare te timline chart /| Value Analyse, Gantt Chars Gantt chart to track progress | 53. Software Quality Management vs, Software of the given project Quality Assurance 5d. Describe the given Software | Phases. of Software Quality Assurance Quality Assurance GQA)| Planing, Activities, audit, and review. activity 54 Quality Evaluation standards : Six Sigma, Se. Describe features of the| ISO for software, CMMI: Levels, Process given software evaluation standard Software Security, Introduction to DevOps, Secure software engineering. ri TABLE OF CONTENTS 2.2 Core Principles i 2-1 Chapter-1 Software Development Process 23 Communication Proctions 22 (1-1) 10 (1 - 16) 24 Planning Practices. 2 LAL Definition of Software and Software Engineering SE Niuiike mello: 3ed 3 i 26 Construction Practices 2-4 1.2. Software as Layered Approach 2.7 Software Deployment 1.3. Characteristics of Sonware Engineering Part Il : Requirement Engine 14 Types of Software 1-3 1.3 Sofiware Development Framework, “3 2 Requirement Gathering and Analysis: iA 28.1 Inception 2-6 1.6 Software Process Framework 1-4 2.8.2 Elicitation, 2-6 Ur Bite Mile! : 28.3. Elaboration 2-6 1.1 Perspective Process Model 1 284 Negotiation are 1.7.1.1 Waterfall Model 1s 28.5. Specification 2-6 17.12 RAD Model (Ineremental Medel)... 1-6 2.8.6. Validation, “6 17.1.3 Spiral Model 17 2.8.7 Requirement Management Specialized Process Model 1-9 29 Types of Requirements 28,1. Fumetion 1.72.1. Component Based Development.....1-@ Requirements 2-7 2 Formal Method Moe ae 2.9.1.1 Problems Associated with Requirements 18 Agile Software Development 1-10 . 8.1 Agile Process and its Importance 1-10 . . " 29.2 Non Functional Requirements 2-8 18.2. Extreme Programming ru 2.9.2.1 Types of Non Functional Requirements 8.3 Adaptive Software Development rea 184 SCRUM. yz 2.9.2.2 Domain Requirements 2-9 18,5 Dynamic System De lopment Method 2.9.3. Difference between Functional and Non (SPM, ee Functional Requirements 2-10 ale Casi 1-14 | 2.40. Elicting Requirements es 2-10 1.9 Solcetion Criteria for Software Process Model 1 - 15 2.10.1 Collaborative Requirenwnts Gathering -. 2-10 Livia te 2.10.2 Quality Function Deployment u 2.10.3 Usage Scenarios 2 Chapter-2 Software Requirement 2.104 Elicitation Work Product. Enginooring — (2-1)t0(2-18) 2.44 Developing Use Cases Part | : Software Engineering Practices 242. Building Requirement Models 2.12.1 Overall Objectives 2.1 Software Engineering Practices and its Importance. eee + 70% 2.13. Definition of Software Requirement 4.1. Management Spa . wens Avil Specification (SRS). 2-16 4.1.1 The People 4c 2.14 Need for SRS sive Be IB 4.1.2 The Product 41 2.18 Format 2-16 4.13 The Process 2.16 Characteristics coves D8 4.14 Project 4.2 Metrics for Size Estimation 4.2.1 LOC based Estimation Part lil : Software Requirement Specification a ‘ enero Chapter-3 Software Modelling and Design 43.1 Overview of Heuristic Technique 4-6 (3-1) to -24) 432. Analytical and Empirical Estimation 4-6 «patna sci cinatitn Design Model 3-1 44 COCOMO : eo —— ty | as exci a arorereeneens Se ts “s wa ea tis 2 2 Analysis Modeling 4.6.3 Risk Projection. 4.17 ee ° tae ee . 3.3.1 Fundamental Design Concepts: 4.6.5 Risk Containment. 4-18 3.4 Design Notations. 4.6.6 RMMM Stategy 4-18 Panta Pty] eta in 3.4.2. Structured Flow Chart. 3+ Chapter-5 Software Quality Assurance and 343° Decision Tables. 3-17 ‘Security (5-1) to (5 - 14) i | a oma tebesrogeennn gm | Danaea, see nn | a emi oes ya | 2 wan serra non | a auc sae eam | MA Se feat | ence oes eat | so een et Software Quality Management Vs. 3.543 Introduction to Defect Report... 3 Software Quality Assurance 5-7 3.54.4 Test Surmmary Report Sub) Phases ot Sanvans 5-8 Unit - IV 5.8 Software Quality Control 5-9 6 Quality Evaluation Standards 5-9 Chapter -4 Software Project Estimation 31 Sic Siena a8 (4-1) to (4 - 20) 7 = TECHNICAL PUBLEATIONS"- Anup tt ornate + 709 562.180 for Software 5-10 363 CMMI su 5.7 Software Security. 5-12 $8 Introduction to DEVOPs 5.9 Secure Software Engineering. 3 Solved Sample Test Papers (S- 1) to (S- 2) Solved Sample Question Paper (8-3) to (S-4) - TEGHCAL PUBLICATONS” Anu ti braced Paro UNIT- Software Development Process 1.1 | Definition of Software and Software 12 Engine ring [ ASBTE : Winter-15, Marks 4] Software : Software is nothing but a collection of computer programs and related documents that are intended to provide desired features, functionalities and betler performance, Software Engineering : “Software engineering is a Ciscipline in which theories, methods and tools are applied to develop professional software product.” Altributes of Good Software + There are some essential attributes of good software and those are (1) Maintainability : Sometimes there is a need to make modifications in the existing software. A good software is a software which some in can be easily modified in order to. meet the changing needs of the customer. @) Usability + It is the ability of the software being ‘woeful necessary that it should have proper GUI and documentation. For making the software useful it is (3) Dependability : The dependability is a property that includes reliability, security and safety of soltware. In other words the developed software product should be reliable and safe to use; it should not cause any damage or destruction, (@) Efficiency : The software should be efficent in ils performance and it should not waste the memory. Board Question 1, State any four attributes of a good soft + Software engineering is a layered technology Any software can be developed using these layered approaches. Various layers on which the technology is based are quality focus layer, process layer, methods layer, tools layer. +A disciplined quality management is a backbone of software engineering technology. foundation + Process layer is a of 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 designing, coding desired programming constructs and testing. requirement analysis, using, *Software tools are used to bring automation in software development process + Thus software engincering is a combination of process, methods, and tools fer development of quality software, Processes Quality management Fig. 1.2.4 Board Questions 1. Explain software engineering as a layered technology approach. piomeraar 2. Explain softceare engineering as a layered ¥ approach with neat diagram. CSUR technol Softwave Enginceting 13 Characteristics of Software Engineering + Software is engineered, not manufactured 1) Software development development are two different activities 2) A. good design is a backbone for both the activities, 3) Quality problems that hardware manufacturing phase cannot be removed easily On the other hand, during software development process such problems can be rectified and hardware occur in 4) In both the activities, developers are responsible for producing qualitative product. + Software does not ware out 1) 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 2) The failure rate remains constant for some period of time and again it starts increasing because of environmental maladies (extreme temperature, dusis, and vibrations) 3) On the other hand software does not get affected from such environmental maladies. Hence ideally 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 it should have an “idealized cury “actual curve" is as shown below Gcanuvenves) Fig. 1.3.4 4) During the life of software if any change is made, some defects may get introduced. ‘This causes failure rate to be high, 5) Before the curve can return to original steady slate another change is requested and again the failure rate becomes high. Softwace Development Process 6) Thus the failure curve looks like a spike. Thus Frequent changes in deteriorate. 7) Another iss 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. software cause it to with software is that there are ao 8) Therefore software maintenance is more difficult than the hardware maintenance, ‘+ Most software is custom built rather than being, assembled from components 1) 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. 2) Most of the software is custom built 3) However, now the software development approach is getting changed and we look for reusability of Software components, 4) It is practiced to reuse algorithms and data structures 5) Today software industry is trying to make library of reusable components, For example software, GUI is built using the reusable components such as message windows, pull down menus and many mare such components, In today’s. 6) ‘The approach is getting developed to use in-built components in the software, This stream of softwate is popularly known as component engineering, Board Questions 1. Describe the characteristics of softtoar. [REE 2. Define softoare. State three characteristics of softtoare CSRS 3. Explain changing nature of softwar. 4. What is sutoure ? Wht refs characteristics ? Coa Elaborate the software characteristic “Softvoare foes not rear cu CEES - TECHNICAL PUBLICATIONS”. Anu th rneeege Softwave Engineering 13 Software Development Process 1.4 | Types of Software Board Questions SCT 1, State and explain any four types of software Based on changing nature of software, various types COTE of software are defined as follows - Deseo iy or eleven of soto 4. System software - © It is collection of programs written to service 3. What is software ? What is embedded software ? © Typical progmmd in ths category are compiler, sakes one spre The’ purpoea' ofthe sytem eoftyar: 5: ts establish « communication with the hardware 4, Elaborate any six types of software considering the chan 2. Application software - 1.5 | Software Development Framework © It consists of standalone programs that are + The Software Development Life Cycle (SLC) is the developed for specific business need, logical process of developing any system. ° This software may be supported by database «Using SDLC one can develop a system which ystems: satisfies customer needs, can be developed within 3. Engineering / Scientific software - the predefined schedule and cost STH Ie Clemy Riel Wee TaERUEr «Normally the system analyst makes use of software programs from astronomy to voleanology, from development life cycle for developing the automatic stress analysis to space shuttle orbital information systems. dynamics and from molecular biology to + The SDLC is a linear oF sequential model in which mated manufacturing ‘output of previous phase Is given as input to next © This software is based on complex numecie subsequent stage computations + Various phases of software development life cycle 4, Embedded software - mer (Refer Fig: 152)) 1, Feasibility study = {It is initial phase of software OTe Saepoer Sree Gt reverent Sak icon development framework. In this phase, it is reside within a product or system. decided whether to built the system or not © Such software can be used to implement and control features and functions for the end-user 2 Regtirement .palhesing;and“analyeie x The basic and Rt the bali ieee. requirements of the software project are ° identified and analysed in this phase. 5. Web applications - © Web application software consists of various web pages that can be retrieved by a browser. ofa uy] Fee | ©The web pages can be developed using, programming languages like JAVA, PERL, CGI, IML, DHTML Deson a 6. Artificial Intelligence software - as 2 This Kind of software is based on knowledge ous based expert systems tig a si lence om Typically, this software is useful in robotics, expert systems, image and voice recognition, artificial neural networks, theorem proving and Fig. 1.5.1 Phases in SDLC game playing. 7 TECHRICAL PUBLICATIONS" An prs rents mee =F Software Bgineeing Software Development Proves Design : The model prepared in this phase of the software system is 4. Coding or implementation : design the coding is done in this phase, Thus the implementation model is prepared. Using the software 5. Testing and maintenance : The code is tested and modified if required, 1.6 | Software Process Framework + The process framework is required for representing the common process activities + As shown in Fig. 16.1, the software process is characterized by process framework activities, task sets and umbrella a ‘Sonware Process Process Framework [umbrena acivibes Activity 4 | Fests] Wark ae Miesione OA Points activity 8 Tasisei] Wor TSE lesione. SOA Poins Fig. 1.6.1 Software process framework Process framework activities + Communication = By communicating gathering is done. *Planning - Establishes engineering work plan, describes technical risks, lists resource requirements, work products produced schedule customer requirement and defines work + Modeling - The software model is prepared by = Analysis of requirements = Design + Construction ~ The software di a code by gn is mapped into = 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 act project team requirements using + ies and = 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 activitios are Software project tracking and control - This is an activity in which software team can assess: progress and take corrective action to maintain, schedule. The risks that may affect Risk management project outcomes or quality can be analyzed. 3. Software quality assurance - These are activities required to maintain software quality, Formal technical reviews - It is required to assess engineering work products to uncover and remove errors before they propagate to next activity, Software configuration management - Managing, of configuration process when any change in the software occurs, Work product preparation and production - The activities to create. models, documents, logs, forms and lists are carried out. Reusability 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. TECHNICAL PUBLICATIONS”. Anup at frtncuiedgs Softwore Enginceting Board Questions. 1 What do you mean by process framework ? Explain with suitable diagram. ro STEERS 2. Explain the basic process framework activities. CASTE 1.7 | Process Mode! Coen EY =o TT + Definition of process model : The process model can be defined as the abstract representation of process. The appropriate process model canbe chosen based on abstract representation of process. +The software process model is. also known as Software Development Life Cycle (SDLC) model or software paradigm, «+ Various types of process models are - aa == 7 ae = ttt et F cer nt rao mot roma metots mote sane Tig. 1.74 Type of process modes [7A] Perspective Process Model 1] Wate Med ~The waleall model abo called as linear-sequential model’ or ‘classic life cycle mode!’ schrgentenses |~ Design Software Developonent Process + The software development starts with requirements gathering phase. Then progresses through analysis, design, coding, testing and maintenance, + Fig. 1.72 illustrates waterfall model. + In requirement gathering and analysis phase the basic requirements of the system must be understood by software engineer. +The design is an intermediate requirements analysis and coding. Design focuses on program attributes such as ~i) Data structure step between 1i) Software architecture iil) Interface representation iv) Algorithmic details. + Coding is a step in which design is translated into machine-readable form. Programs are created in this phase. + Testing begins when coding is done. 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 prror may get introduced, correcting such errors and putting it in the major maintenance activity. Similarly, enhancing system's use is purpese of services as new requirements are discovered is again’ maintenance of the system, Advantages of waterfall model 1. The waterfall model is simple to implement, 2. For implementation of small systems waterfall model is useful, Coding Fig. 1.7.2 Waterfall model TECHNICAL PUBLICATIONS”- Anu rast fr nowt ee Software Engneesing Disadvantages of waterfall model 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. 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. The customer can see the working model o project only at the end. After reviewing, of the working model; if the customer gets dissatisfied then it causes serious problems. 4IA2 RAD Model (Incremental 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, Software Development Process ‘+ Multiple teams work on developing the software system using RAD model parallely. the requirements gathering phase developers communicate with the users of the system and understand the business process on the 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 working code is generated 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. (Refer Fig. 1.7.3) Advantages of RAD Model (1) Faster development eyde. 2) Visualization of related routines periodically. Analysis and = Planning, Design, Build or @)Encnurages user involvement. cou sn = oan an n 7 Tame: | Puls P = : and planning Dec | y i [+ ——— 60010 £0 ¢ays perioe ———~} Fig. 1.7.2 RAD model Ap nto rowece Saftwate Baginecring Disadvantages of RAD Model (1) It has reduced scalability Q) Not appropriate when technical risks are high. @) This model requires heavily committed developer and customers. If commitment is lacking then RAD projects will fail, Waterfall Model Difference _ betwoon and Incremental Model Sr Ge Incremental model Waterfall model 1 This mode! is used when requirements am clearly defined ‘This model is used when thore is possibility of change in requirements, After each increment the ‘customer can take a review of the product generated 30 far ‘There is no customer interaction until the last phase of the waterfall model ‘Less human resource is Depending upon the required, requirements of the project, the hnman resource is required. Risk of failure of project ‘slow. Risk of failure of project is high. ri Software Development Pracoss 4743 «This possess of prototyping model and controlled and systematic approaches of the linear sequential model + This model of incremental versions of software. In this moxiel, the Spiral Mode! model the iterative nature gives efficient development software is developed in series of increments. +The sprial_model is divided into a number of framework activities. These framework activities are denoted by task regions, + Usually there are six tasks regions. The spiral model is as shown in Fig. 174 «+ Spiral model is realistic approach to development of large-scale systems and software. Because customer developer problem statement at each evolutionary level. Also risks can and better understand the be identified or rectified at each such level. ‘In the initial pass, product specification is built and in subsequent passes around the the prototype gets developed and then more improved versions of software gets developed, spiral Fig. 1.7.4 Spiral model TECHNICAL PUBLICATIONS". Anup tract erkroulage Softwate Engineering L + During planning phase, the cost and schedule of software can be planned and adjusted based on feedback obtained from customer evaluation, + In spiral model, project entry point axis is defined This axis reprosents starting point for different types of projects. + For instance, concept development project will start at core of spiral and will continue along the spiral pati If the concept has to be developed into actual project then at entry point 2 the product development process starts, Hence entry point 2 is called product development project entry point. The development of the project can be carried out in iterations, + The task regions can be described as 1) Customer communication - In this region, it is suggested to establish customer communication. ii) Planning - All planning activities are carried out in order to define resources time line and other project related activities ii) Risk analysis - The tasks required to calculate technical and management risks are carried out iv) Engineering - In this task region, tasks required more representations of, applications are carried out to build one or ¥) Construct and release ~ All the necessary tasks required to construct, test, install the application’ ‘are conducted. Some tasks that are required to Provide user support are also carried out in this task region. vi) Customer evaluation - Customer's feedback is, ebtained and based on customer evaluation’ requited tasks are performed and implemented at installation stage. In each region, number of work tasks are carried ‘out depending upon the characteristics of project. For a small project relatively small number of work tasks are adopted but for a complex project large number of work tasks ean be carried out. In spiral model, the software engineering team moves around the spiral in a clockwise direction beginning at the core, Advantages of spiral model 1 This iterative requirements can be identified at new iteration. model has nature, Hence 2. Requirement changes can be made at every stage of new version 3. Risks can be identified and reduced before they get problematic 4. The working model is available to the customer tion. at certain stage of ite Disadvantages of spiral model 1. This model is based on customer communication If the communication is not proper then the product being developed is not up to the mark. It demands considerable risk assessment. If the risk assessment is done properly then only successful product can be obtained. Waterfall model Ie requires well understanding of requirements and familiar technology. Its developed in iterations. Hence the requirements can be identified at new iterations Didfleut to accommodate changes after the process has started The required changes can be made at every lage of new version. Can accommodate It is Herative model iteration but indirectly, Risks can he identified and reduced before they set problematic. Risks can be identified at the end which may ‘cause fallure to the oduct “The customer can soo the working product at certaln slages of iterations. The customer can soe the working model of the project only at the end, Alter reviewing of the working model; #f tho customer gets dissatisfied then it problems. Castomers prefer this ‘model. Developers prefer this model, ie ‘This model is good for small systems, This model is good for large systems, Ie has sequential nature | It has evolutionary ature * TEGHINGAL PUBLICATIONS”- Anup thst frtnowede Software Engneesing 2 Software Development Process 7.2 4724 Specialized Process Model 19.22 T Component Based Development + The commercial off-the-shelves components that are developed by the vendors are used during the software built + These components have specislized targeted functionalities and well defined interfaces. Hence it is easy to integrate these components into the existing software, + The component based development model makes use of various characteristics of spiral model. This model is evolutionary in nature, That means the necessary changes can be made in the software during the each iteration of software development cycle. + Before beginning the modeling and construction ectivity of software development the candidate component must be searched and analyzed. The components can be simple functions or can be object oriented classes or methods. + Following steps are applied for component based development - + Identify the component based products and analyze them for fitting in the existing applic domain. + Analyze the component integration issues + Design the software architecture to accommodate the components + Integrate the components into the software architecture + Conduct comprehensive testing for the developed software. += Software reusability is the major advantage of component based development. * The reusability reduces the development cycle time and overall cost Formal Methods Model + This model consicts of the set of activities in which the formal mathematical specification is used. + The software engineers specify, develop and test the computer based systems using the mathematical notations, The notations are specified within the formal methods. + Cleanroom software engineering makes use of the formal method approach. + The advantage of using formal methods model is that it overcomes many problems that we encounter in traditional software process models. Ambiguity, incompleteness and inconsistency are those problems that can be overcome if we use formal methods model wrcntectural Formal design specication Fig, 1.7.5 Formal methods model requirements definition + The formal methods model offers defect-free software. However there are some drawbacks of this ‘model which zesists it from getting used widely. These drawbacks are + The formal methods model is time consuming and expensive. TEGHIMCAL PUBLICATIONS”. An up tor rowege 110 Software Bngering Software Development Process ‘For using this model, the developers need the strong mathematical background or come extensive uaining. ‘If this model is chosen for development then the communication with customer becomes very lifficult Board Questions, 1. Differentiate between waterfall model ond incremental model COTTE 2. Write four drawback of RAD model CE situation RAD model antages and disadvantages 3 In Give its ad is applicable ? CEREALS 4, Explain spiral model with neat diagram. 5. With neat diagram, explain RAD model with its advantages and disadvantages. (2 cach) 6. Explain the waterfall model 7. Dravo the neat labeled diagram of spiral model ond list two disadcantages of spiral model 1.8 | Agile Software Development CERCA ACTA «The agile processes are the light-weight methods are people-based rather than plan-based methods. + The agile process forces the development team to focus on software itself rather than design and documentation. «+ The agile process make use of iterative method +The aim of agile process is to deliver the working model of software quickly to the customer. Agile Principles + There are famous 12 principles used as agility principles - 1. Satisfy the customer by early and continuous delivery of valuable software. 2. The changes in the requirements must be accommodated. Even though the changes occur late in the software development process, the agile process should help to accommodate them. 3. Deliver working software quite often. Within the shorter time span deliver the working unit 4. Business people and developers must work together throughput the project. Motivate the people who are bullding the projects. Provide the environment and support to the development team and trust them for the job to be done. 6. The working software is the primary measure of the progress of the software development 7 The agile development approach Promote the constant project development. The software constant speed for the development of the product must be maintained 8 To enhance the agility there should be continuous technical excellence. 9, Proper attention to be given to technical excellence and good design. 10. Simplicity must be maintained while developing, tho project using this approach 11, The teams must be the selforganiaing team for getting best requirements and design, architecture, 12, At regular intervals the team thinks over the issue of becoming effective. After the careful review the team members adjusts their behavior accordingly. 4.8.1 | Agile Procoss and its Importance Agile process is based on following assumptions about software projects 1. Itis difficult to predict the software requirements in advance. Similarly the customer priority often’ get changed, 2. It is difficult to predict how much design is necessary before the implementation. All the software development activiti analysis, design, construction and testing are just difficult to predict TECOMICAL PUELICATIONS™- Ae ptr or now 5 2) ‘The project can easily get off the track if customer 1, Agile processes must be adaptable to technical is not clear about his requirements and environmental changes. That means if any technological changes occur, then the agile Difference between Prescriptive Process Model process must accommodate it nd Aglie Procest Medel 2. ‘The development of agile processes must be Prescriptive process 54 s1.No. ‘Agile process model incremental. That means, in each development model oe the increment should contain some functionality Toa Ee that can be tested and verified by customer. approcch of soitware approach of software 3. The customer feedback must be used to create ce oeaeoe escent the next increment af the process. Ie is product oriented Its people oriented process del roots model 4. ‘The software’ increméent must be delivered in | shont span of tine Sometimes its Its easy to adapt tho hort span of ti difficult to adapt changes during 3. It must be iterative, so that each increment can Gung dung Ge ee be evaluated regulary aoe development Features of agile process Soma mocais cliow | eameeam ioc involvement of | iwalvement i The features of agile process models ase Hike The key summarised a3 follow eatures of an agile process model can be Tareity cvces of [eae ater cee software development product. may cause delayed delivery of the + The software itself is the important measure of the team’s progress, rather than documentation product, +The development team has autonomy to Emphasis is on Loss emphasis of » é documentation documentation determine how to structure and handle the ee cree development work, development. + Changes can be easily adapted Examples ~ Waterfall Examples ~ Extreme model, spiral model. programming, Serum. + Customers can more easily examine the software and provide feedback. Process Models Merits : ‘There are various agile process models 1) Customer satisfaction can be attained by and continuous delivery of useful software raph 1, Extreme Programming 2, Adaptive Software Development 2) Customer, developer and tester interact with each other during software development process 3. Dynamic System Development Method(0SDM) 3) Continuous attention can be given for excellent | Scum technical design and software qual 5. Crystal 4) Even late changes in requirements can be sccommodated 1.82 | Extreme Programming Extreme Programming (XP) is one of the best known Demerits : agile methods. The extreme programming. approach was suggested by Kent Beck in 2000, The extreme 1) Ther is Ink of emphasis on necessary designing, | roe Lae i explained ac follows and documentation during software development process. - TECIAICAL PUBLICATIONS" An ve tet Ines At Software Bagincering Software Development Pecess + Customer the system fone of the specifies and priorities roquitements, Customer becomes important members of development team. The developer and together prepare a story-card in which customer needs are mentioned. customer * The developer team then aims to implement the scenarios in the story-card. + Alter developing the story-card the development team breaks down the total work in small tasks. ‘The efforts and the estimated resources required for those tasks are estimated +The customer priorities the stories for implementation, If the requirement changes. then sometimes unimplemented stories have to be discarded. Then release the complete software in sinall and frequent releases. +Tor accommodating new changes, new story-card be developed. + Evaluate the system along with the customer. This process is demonstrated by the following Fig. 181. Paras, cesesnal Pantr syau so ‘se ee eee ee “sea Fig. 1.8.1 Extreme programming release cycle 8.3 | Adaptive Software Development +The adaptive software development approach was proposed by Jim Highsmith. This approach is useful in building the complex software systems using iterative apporach +The focus of this method is on working in collaboration and team self organization. ==] = Reese Lesa Fig. 1.8.2 Adaptive software development life cycle Tt ‘The life cycle of ASD consists of three phases of software development and those are - 1. Speculation 2 Collaboration 3. Leaming. 1. Speculation: ‘This is an initial phase of the adaptive software development process. In this phase the adaptive cycle planning is condu In this cycle planning mainly three types of information is used stich as - Customer's mission statement, project constraints (delivery date, user description, budgets and so. on) requirements of the project. and. basic 2 Collaboration: The motivated people work in collaboration to develop the desired software product. In this phase collaboration among the members of development team is a key factor. For successful collaboration and coordination it is necessary to have following qualities in every individual © Assist each other without resentment © Work hard. © Posses the required skill set. © Communicate problems and help each other to accomplish the given task. © Criticize without any hate. 3. Leaming : As the go on developing the components, the emphasize is on learning new skills and techniques, There are three ways by which the team members leam - fear members © Focus groups : The feedback from the end. is obtained about the software component being developed. Thus direct feedback about the developed component can de obtained © Formal technical review : This review for software components is conducted for better quality. © Postmortems : performance analyses. its own appropriate team makes improvements. 1.8.4 | SCRUM + SCRUM is an agile process model which is used for developing the complex software systems. TECHUGAL PUBLICATIONS”. An up utter roweege Saftwnte Engineering Software Dovelopmnent Pracess «lt is a lightweight process framework that can be used to manage and control the software development using ilerative and incremental approach. Here the term lightweight means the overhead of the process is kept as small as possible in order to maximize productive time. + This model is developed by Jeff Sutherland and Ken Schwaber in 1995, Principles + Various principles using which the SCRUM works are as given below ~ 1. There are small working teams on the software development projects. Due to this there is maximum communication and minimum overhead. The tasks of people must be partitioned into small and clean packets or partitions. 3. ‘The process must accommodate the technical or business changes if they occur. 4. The process should produce software increments. These increments must be inspected, tested, documented and built on. During the product building the constant testing and documentation must be conducted The SCRUM process must produce the working model of the product whenever demanded of required. + Various development activities (requirements analysis, design, evolution and delivery) are guided by SCRUM principles. Sprntbsalog Product oeking Development Activities In SCRUM emphasize is on software process pattern. The software process pattern defines a set of development activities. Refer Fig. L83. Various development activities in SCRUM are - 1. Backlog : It is basically a list of project requirements or features that must be provided to the customer. The items can be included in the backlog list at any time. The product manager analyses this list and updates the priorities as per the requirements. Sprint : These are the work units that are necced to achieve the requirements mentioned in the backlogs. Typically the sprints have fixed duration or time-box (Iypically of 2 to 4 weeks) Thus sprints allow the team stable and short-term environment wembers to work in Meetings : These are 15 minutes daily meetings to report the completed activities, obstacles and plan for next activities. Following are three questions that are mainly discussed during the meetings i) What are the tasks done since last meeting ? ii) What are the issues (obstacles) that team is facing ? iii) What are the next activities that are planned ? Demo : During this phase, the software increment is delivered to the customer. ‘The implemented functionality which is demonstrated to the customer. Note that deme focuses on only implemented functionalities and not alll the planned functionalities (and yet to get implemented) of the software product As age 4 Nene Fig. 18.3 SCRUM workflow activitios TTECHCAL PUBLICATIONS". Anup trust fr inowledye Solewate Engine Roles : 1. Serum Master = ‘The Scrum master 14s the meeting and analyses the response of each team member. The potential problems are discussed ‘and solved in the meeting with the help of master, 2 Team Members - These are the persons working ina team to develop the software solutions. Advantages and Disadvantages : Advantages : 1. SCRUM model brings transpareney in project, development status, It provides flexibility towards the changes. There is improved communication, minimum overhead in development process, 4. The productivity can be improved Disadvantage: 1. Some decisions are hard to track in fixed time span. 2. There are problems to deal with non-functional requirements of the system. 1.8.5 | Dynamic System Development Method DSDM) In this agile method, the project deadline is met using the incremental prototyping approach. This is an iterative development process. ‘The Dynamic System Development Method (OSDM) consortium has defined an agile process model called DSDM life eycle. Various phases in this life cycle model are as follows - 1. Feasibility study requirements and constraints the viability application is determined in this phase. study The informational requirements are identified and then the business value of the application is determined. The basic application architecture is decided in this phase, By analyzing the business thee 2. Business functional and Cy TECHNICAL PUELICATIONS Software Devetopenent Process 3. Functional model iteration + The incremental approach is adopted for development. The basic functionalities are demonstrated to the customer by building the suitable increments. The intention to gather requirements by eliciting the requirements from the customer as each prototype is being developed. of iterative cycle is additional 4. Design and build iteration : Each protetype is revisited during the functional model iteration to ensure that the busi requirements are satisfied by each software component. Sometimes if possible, the design and build activities can be carried out in parallel 5. Implementation + In this phase, the software increment is placed in the working environment, If changes are suggested or if the end-user feels nerement is placed in iteration for further improvement. it incomplete then the The DSDM can be combined with XP method or ASD concepts to create a combination model 6 | Crystal + Cockburn and Highsmith suggested the crystal family of agile methods. + The primary goal of this method is to deliver useful and working software. + In this model, a set of methodologies are defined which contains the core elements that are common to all, These methodologies also contain roles, Process patiems, work products and practice that are unique to each. + Thus the crystal family is actually a set of agile processes that are useful for different types of Projects. The agile team has to select the memebers of the crustal family that is most approapriate for their ongoing project and environment. Board Questions. 1, Describe Agile process models in detail 2. Explain the features of Agile software development ‘approach CSR An up ths frkaoneoe + Software Engineering in Scftware Development Process 3, Differentiate between Prescriptive Process Motel and Agile Process Model (any four points) ‘ciple th Fae sere Wha 1.9 | Selection Criteria for Software Process Foll particular process model can be used ‘Type of the Suggested model Ifa small project is t0 be Waterfall model implemented, 1 the reguizements of the project are well understood. Existing manual system has to be automated If there is no need for customer involvement in the project development cycle. When project requirements are not RAD) model dear. “The system will be operated by ‘The GUI of the project is very important Delivery of the project Is expected within a short period of time. The risk of long, project is not Spiral model affordable. Requirements are not known and will be known only with time Project is of lange size When the requirements are not | Agile model properly known, For the sysiems in which customer involvement is must. ‘The GUI of project is important. Quick delivery of the product is expected, Model lowing table shows the situations in which Board Question 1, What i Waterfall Medel 2 State situations is which it can be used. TECHRICAL PUBLICATIONS". As up ta frlnoulege are Engineering 16 Scftware Development Praxess - TECHNICAL PUBLICATIONS” Anup thst or mows Ped + ry Software Requirement Engineering 2.1 | Software Engineering Practices and its Importance Definition : Software engincering practices includes concepts, prindples, methods and tools that must be considered for planning and development of software system, Importance 1) By every concerned entity gets involved in software following software engineering practices, development process. The software engineering practices - provide detailed process, insight for software development 3) It acknowledges the software engineer about the Principles that must be used during the software development Essence of Software Engineering Practice +The problem solving activity is normally based on following four steps - 1 Understanding of the problem (Communi and requirement analysis). Planning for possible solution (Modelling and design) 3. Execute the plan (Code generation). 4 Check the accuracy of the solution (Testing and quality assurance). 2.2 | Coro + David Hooker proposed seven core principles for software engineering practice, These are as follows Principio 1. Reason it all Exists > The software system that you are going to develop must give value to its users. If your development is not going to add any value to its users then don't develop such system. Principle 2. Keep it Simple, Stupid (KISS) : The software design must be simple, easy for understanding and easy to maintain, Principle 3. Maintain the Vision : There should be lear vision for the software system to be built. The clear vision about the system helps to develop it without any ambiguity Principle 4. What you will Produce, others will Consume : The software system that you develop be used by software programmers, testers and so on. So whenever you will users, designers, develop the system, develop in such a way that your job will be easier for them to handle. Principle 5. Be Open to the Future : Develop a system in uch 2 way that it will have longer life lime, Develop the system in such a manner that it will adapt any changes comfortably. Never design the system for specific problems only, rather create it for general purposes. Principle 6. Plan ahead for Reuse has The reusability can be achieved using the approaches like Reusability got vital importance in software industry object oriented programming, The software must be developed and documented in such a way that reusability can be easier one. Principle 7. Think : Think about the system that you are going to develop and acquire the required Softwate Engineering knowledge. Thoughtfully, apply above six principles during the software development process, Board Questions 1. State and describe various core principles of software engineering, 2. List core principle of Software Engineering 2.3 | Communication Practices USER TA ‘Communication is carried out in order to understand the customer requirements, Following are the principles that are used to make the communication effective Principle 1 - Listen: It is important to listen the customer carefully. Ask for the clarifications appropriately. Never interrupt him/her annoyingly during the narration. Principle 2 - Prepare for communication : Do some research to understand the business domain. If you are conducting the meeting, then prepare the agenda before the meeting, Principle 3 - Have facilitator for communication : ‘The facilitator or a leader is required for the communication for three reasons. Firstly to move the conversation in productive direction, secondly to resolve any conflicts and thirdly to ensure that the designated principles and standards are being followed, Principle 4 - Have face-to-face communication : The face to face communication is important to have cffective communication, Principle 5 - Take notes and document the decisions ; It is imporiant to rote down the important points and decisions made during the communication Principle 6 - Strive for collaborations : The collective Knowledge of the members of the team is combined fo understand the system, This makes a small collaboration which help the team members in BL deciding the goals of the software system being developed. Principle 7 - Stay focused : During the communication and discussion, it is possible to switch frequently from one topic to another. The leader or facilitator of the communication must keep the communication focused and must make every topic modular, The modular discussion means leave ‘one topic only after resolving the issues within in it and then only switch to another topic. Principle 8 - Make pictorial representation : If something is unclear, then make a drawing or sketch of it for understanding. Principle 9 - Move on: During the communication just_move on by resolving the issues and by understanding the things. Principle 10 - Negotiate : There are times when the developers and customer need to negotiate on some of the issues such as some functionalities, deliver date, features priorities and so on, Board Questions 1. Briefly describe the principles of communication. 3. What are communication principles ? Explain practices their meaning. CERT Planning Practices =n TET *Planning Is an activity that includes the set of management and technical practices that software has to follow in definite direction principles of planning are Various Principle 1 - Understand the scope of the project ‘The scope of the project help the software team what is the goal of development. * TEGHIUCAL PUBLICATIONS”. An wp tir once

You might also like