SOFTWARE ENGINEERING-UNIT-1SOFTWARE ENGINEERING

PrabhuB33 430 views 90 slides Jul 20, 2024
Slide 1
Slide 1 of 90
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90

About This Presentation

SOFTWARE ENGINEERING-UNIT-1SOFTWARE ENGINEERING


Slide Content

SOFTWARE ENGINEERING AND PROJECT MANAGEMENT

Course Outcomes CO1 :Explain various process models software project development CO2 :Develop Software Requirement Specification for a given application CO3 : Prepare Software design for an application. CO4 : Discuss various software testing methods CO5 :Describe various aspects of software project management 2

Syllabus UNIT I- The Software Process Introduction to Software Engineering - Ethics in Software Engineering - Software Process– Software Engineering Practice – Software Process Models: Waterfall Models – Incremental – Evolutionary and Unified Process model – Comparison Study of Software Process Models – Agile Process and Models UNIT II- Requirements Analysis And Specification Requirement Gathering and Analysis, Software Requirement Specification: Users of SRS, Characteristics of Good & Bad SRS, Important Categories of Customer Requirements, Documenting Functional Requirements, Traceability, Organization of SRS, Techniques for Representing Complex Logics, Feasibility Study, Case Study: Software Requirements Specification (SRS) for Application Project . UNIT III- Software Design Overview of the Design Process, Characteristics of Good Software Design, Cohesion and Coupling, Layered Arrangements of Modules, Approaches to Software Design, Function Oriented Software Design: Data Flow Diagram, Transformation of DFD model into structure chart, Object Modelling Using UML: UML Diagrams, Use Case Model, Class diagrams, Interaction Diagrams, Activities Diagrams, State Chart Diagram UNIT IV – Software Coding and Testing Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-box testing, White-box testing, Debugging, Program Analysis Tools, Integration Testing, Testing Object-Oriented Programs, System Testing UNIT V – Project Management Software project management complexities- Responsibilities of a Software Project Manager, Project Planning, Metrics for Project Size Estimation, Project Estimation Techniques, Empirical Estimation Techniques, COCOMO Estimation Technique, Staffing Estimation, Scheduling, Organization and Team Structures, Staffing, Risk Management, Configuration Management 3

Text Books and References Text Books: Roger Pressman , Bruce Maxim, “Software Engineering – A Practitioner‟s Approach”, Nineth Edition, McGraw Hill International Edition, 2019. Ian Sommerville , “Software Engineering”, Tenth Edition, Pearson Education Asia, 2016. Reference Books: Rajib Mall, “Fundamentals of Software Engineering”, Fifth Edition, PHI Learning Private Limited ,2018. PankajJalote , “Software Engineering, A Precise Approach”, Wiley India, 2010. Watts S. Humphrey., “Managing the Software Process”, Pearson Education, 2008. Websites: http://www.nptelvideos.in/2012/11/software-engineering.html https://www.projectengineer.net/the-earned-value-formulas/ https://www.smartdraw.com/downloads/ https://www.visualparadigm.com/support/documents/vpuserguide.js 4

UNIT I Introduction to Software Engineering - Ethics in Software Engineering - Software Process– Software Engineering Practice – Software Process Models: Waterfall Models – Incremental – Evolutionary and Unified Process model – Comparison Study of Software Process Models – Agile Process and Models 5

Software Engineering Software: Executable code which serves some computational purpose. Software= Program + associated libraries + documentation . Engineering: Well-defined, scientific principles and methods for developing products . Software Product: Reliable and efficient software outcome from software engineering for a specific requirements . Software Process: A   software process  (also knows as  software  methodology) is a set of related activities that leads to the production of the  software . Software Project: A   Software Project  is the complete procedure of  software development  from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended  software  product. 6

Software Engineering- Definition Software engineering   is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product . IEEE defines software engineering as: (1) The application of a systematic, disciplined, quantifiable approach to the development , operation and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in the above statement. 7

Software engineering is made up of two terms that is software and engineering . Software refers to the set of instructions that tells a computer what to do and how to perform any tasks. Engineering is the work to build and design something in an effective manner. Software engineering is an engineering branch to develop a software product using some scientific principles and procedures. The result will be an reliable and good quality product. Software engineer is a person who develop and maintain the software product. The study of developing and maintaining software is called software engineering. 8

Goals of  software engineering : Accuracy –   The software product should be accurate as specified in the srs document. Reliable  – Software product should have the quality of being trustworthy it means the software product performs exact task under the specified time slot. Testability  – To test or evaluate the  functionality of software product, the software should have this property. Reusability  – The code or program have the capability to used in different applications with some changes so that new products can be created. Adjustable  – The ability to be modified or make some changes in software product for another purposes. Cost-effectiveness  – To producing a good quality software product without costing a lot of money. Efficiency  – Making a software product without wasting time. 9

Advantages of Software Engineering : The software product provides user satisfaction and fulfil the requirements of the user. Software engineer creates more flexible product. Software requirement specification provides better documentation. Cost saving product is made by using cost-effective techniques. By using some scientific rules and methods ,we can save enough time. Software engineering provides comfortable working environment. 10

Disadvantages of Software Engineering: Changing nature of technology everyday so you have to update your knowledge. You need to take training for the new technology and skills. Increased the level of physical and mental stress. Global competition  Increased job keeping skills due to lack of job security. Software engineer have to work long hours sitting in front of computer. 11

Software Evolution 12

Software evolution is the process of developing and updating a software for different reasons. In software development lifecycle, there are many phases/stages where new requirements are emerged and implemented so organizations prefers changing and evolving in the software rather than making a new software product. Software Evolution refers to : changing in software maintaining the software  13

What are the factors where changes are needed in the software ? For changing the business environment. New requirements are proposed during SDLC. For debugging. To change the procedures. In adding new resources and computer systems. To increase the performance of the software product.   14

How to maintain a software ?   The software maintenance is done for increasing the system performance.   To detect and correct the bugs present in the software product.   Update and change in the software      15

Types of software maintenance: Corrective Maintenance :: To correct any type of error present in the software product, the corrective maintenance is used. Adaptive Maintenance :: As new technology emerges, the software is updated by taking up the adaptive maintenance. Perfective Maintenance :: The object of perfective maintenance is to improve software reliability and performance and adding some new things in software product. Preventive Maintenance ::  There is need of updation to prevention or correction of future errors of the software.       16

Software Engineer vs Software Developer A  software engineer  is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software . A software developer is the one who codes and works on other different tasks related to the development of the software. 17 Software Engineer vs Software Developer

Programs versus Software Products Program Software Products Usually small in size Large Author himself is sole user Large number of users Single developer Team of developers Lacks proper user interface Well-designed interface Lacks proper documentation Well documented & user-manual prepared Ad hoc development. Systematic development

Software Development Life Cycle ( SDLC) SDLC Cycle represents the process of developing software. SDLC framework includes the following steps: 19

The stages of SDLC are as follows: Stage1: Planning and requirement analysis Requirement Analysis is the most important and necessary stage in SDLC. The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry. Planning for the quality assurance requirements and identifications of the risks associated with the projects is also done at this stage. Business analyst and Project organizer set up a meeting with the client to gather all the data like what the customer wants to build, who will be the end user, what is the objective of the product. Before creating a product, a core understanding or knowledge of the product is very necessary. 20

For Example , A client wants to have an application which concerns money transactions. In this method, the requirement has to be precise like what kind of operations will be done, how it will be done, in which currency it will be done, etc. Once the required function is done, an analysis is complete with auditing the feasibility of the growth of a product. In case of any ambiguity, a signal is set up for further discussion. Once the requirement is understood, the SRS (Software Requirement Specification) document is created. The developers should thoroughly follow this document and also should be reviewed by the customer for future reference. 21

Stage2: Defining Requirements Once the requirement analysis is done, the next stage is to certainly represent and document the software requirements and get them accepted from the project stakeholders. This is accomplished through "SRS"- Software Requirement Specification document which contains all the product requirements to be constructed and developed during the project life cycle. 22

Stage3: Designing the Software The next phase is about to bring down all the knowledge of requirements, analysis, and design of the software project. This phase is the product of the last two, like inputs from the customer and requirement gathering. 23

Stage4: Developing the project In this phase of SDLC, the actual development begins, and the programming is built. The implementation of design begins concerning writing code. Developers have to follow the coding guidelines described by their management and programming tools like compilers, interpreters, debuggers, etc. are used to develop and implement the code. 24

Stage5: Testing After the code is generated, it is tested against the requirements to make sure that the products are solving the needs addressed and gathered during the requirements stage. During this stage, unit testing, integration testing, system testing, acceptance testing are done. 25

Stage6: Deployment Once the software is certified, and no bugs or errors are stated, then it is deployed. Then based on the assessment, the software may be released as it is or with suggested enhancement in the object segment. After the software is deployed, then its maintenance begins. 26

Stage7: Maintenance Once when the client starts using the developed systems, then the real issues come up and requirements to be solved from time to time. This procedure where the care is taken for the developed product is known as maintenance. 27

SOFTWARE PROCESS MODEL There are various software development models which is used in software development life cycle to represent the process of building a software. SDLC models defines all the phases of software development. SDLC models can have a different methodology but the phases remains the same. The development team chooses the best SDLC model to develop a software product so that the efficient and reliable software product is developed. 28

By using SDLC models, you can develop a software product in a systematic and nice way. Here are some important SDLC models given below- Waterfall Model Iterative Waterfall Model Agile Model Spiral Model Prototype Model V model RAD model 29

1. Waterfall Model :-  In software engineering, the first software development model is Waterfall model. In the 1970, Winston Royce proposed the model for software development , the model is called the waterfall model. Waterfall model is also called Linear-sequential life cycle model because this model specifies the software development process in a linear sequence manner. In the waterfall model, the output of the previous phase will be the input to the next phase in the software development life cycle. 30

Each phase has contains various different tasks and different activity to complete the process.  In this model, we cannot go back to the previous phase to alter any thing if we come to the next phase. Overlapping is not done with the phases/stages of software development life cycle. 31

Advantages of waterfall model : It is easy to use and understand. No overlapping between the phases. This model is suitable for small projects. It is a linear sequence model. It works in a flow step by step High visibility because output of each phase is generated for the next phase It provides more flexibility. This model provides better documentation for the employees . Low cost. It is easy to maintain. 32

Disadvantages of waterfall model : This model does not work well for large projects. We cannot go back at previous phase to change anything or any requirement. No changes can be made in the project. It can take a long time to complete the project. If customer does not satisfied with the project then it is hard to change the requirements. High risk to make a project 33

Iterative Waterfall Model Iterative Waterfall Model is the extension of the Waterfall model. This model is almost same as the waterfall model except some modifications are made to improve the performance of the software development. The iterative waterfall model provides customer’s feedback paths from each phase to its previous phases. There is no feedback path provided for feasibility study phase, so if any change is required in that phase  then iterative model doesn’t have scope for modification or making corrections. 34

Iterative waterfall allows to go back on the previous phase and change the requirements and some modification can done if necessary. This model reduces the developer’s effort and time required to detect and correct the errors. In iterative waterfall model, next phase can only begins when the previous phase is completed as waterfall model. 35

Advantages of Iterative Waterfall Model :- Iterative waterfall model is very easy to understand and use.  Every phase contains feedback path to its previous phase. This is an simple to make changes or any modifications at any phase. By using this model, developer can completer project earlier.  Customer involvement is not required during the software development. This model is suitable for large and complex projects. 36

Disadvantages of Iterative Waterfall Model :- There is no feedback path for feasibility study phase. This model is not suitable if requirements are not clear. It can be more costly. There is no process for risk handling. Customer can view the final project. there is no prototype for taking customer reviews. This model does not work well for short projects. If modifications are required repeatedly then it can be more complex projects. 37

Evolutionary Process Model Evolutionary process model resembles the iterative enhancement model. The same phases are defined for the waterfall model occurs here in a cyclical fashion. This model differs from the iterative enhancement model in the sense that this does not require a useful product at the end of each cycle. In evolutionary development, requirements are implemented by category rather than by priority. Following are the evolutionary process models. 1. The prototyping model 2. The spiral model 38

Spiral Model In 1986, the spiral model was proposed by Barry Boehm. Spiral model is based on the evolutionary model which is the combination of linear sequential model and iterative software development model. This model is suitable for large and complex projects. Spiral model is based on spirals (iterations) to develop a project. A phase in the software development life cycle is a loop of the spiral. This model works very well for large projects because it involves constant improvements until a final product is not build. 39

The whole development process is completed in the 4 phases . The spiral model has four phases in a spiral : Planning Risk analysis Development and testing Evaluation 40

Phases of spiral model : Planning : The requirements are collected from the clients . Feasibility study is done in this phase. It includes cost estimation, schedule, objectives are  defined and other resources for the iteration to develop a software project . Risk analysis :  In the second phase of development, risks are identified and find different solutions to remove risks. If any risk is find out during the phase then alternate solutions are designed and implemented the best way among them. 41

Development and testing : After risk analysis phase is completed, the software product is developed and tested at the end of each iteration so there is development and testing applied at same phase . Evaluation :  In the last phase, the feedback is taken from the customer and evaluate the developed project after completion of each iteration. To carry on next iteration, evaluation phase is completed. 42

Advantages of Spiral Model : This model is good for large and complex projects. Updates are received to the customer at each iteration. Spiral model is suitable to change the requirements at any time, any phase. Risks are analyzed after each iteration. Documentation is clearly defined and understandable. 43

Disadvantages of Spiral Model : Spiral model is not good for small projects. This model is more complex and difficult to understand if a new employee is entered in the project development. It can be much expensive. Fast development and software is built at the SDLC . Not defined end points of the project , so it can take a long time to develop or iterations can be go infinitely. 44

Prototype Model Software Prototyping : Software Prototyping is the process of creating a prototype of the software product. the prototype is an incomplete form of software program to evaluate customer satisfaction. Prototype model is the extension of iterative waterfall model. Prototype model is one of the most popular used software development model in which prototype is built and tested to evaluate the customer satisfaction . 45

Prototype model proposes the system in which a prototype is developed before developed the whole software product. This model is used when all the requirements and resources are not clearly defined at the beginning of the phases. 46

47

Steps followed by the Prototyping Model :- Requirement Recognition and Gathering :   This step requires primary requirements so that a prototype is created. Prototype Development :  Prototype is built on the basis of the requirement of the customer and this is developed to take the customer’s reviews. Customer Reviews :  Prototype is send to the customer and take reviews of the customer. After taking the customer reviews, developer starts to make the whole software product. If customer is not satisfied then it can be discarded and again create the prototype. 48

Advantages of Prototype Model :- It provides higher customer satisfaction and get reviews from customers. Requirements can change easily according to the customer. It means this model has high adaptability. Errors can be removed so fast and early hence it saves a lot of cost. It gives high flexibility. Prototype model increases the involvement of customers. Developers can identify the missing functionality very easily. This model helps to reduce the risks related to the software. 49

Disadvantages of prototype model :-  This model can be more costly. Prototype model can be more complex if a prototype is reviewed by the customers again and again. It does not provide clear documents. This model can take more time to develop a software product. If a customer refuses to accept the prototype ,then there may be wastage of a lot of cost and developer’s efforts. 50

RAD Model Rapid application development model firstly introduced by IBM in 1980’s. RAD Model is generally based on the prototype model and iterative approach. This model is used to completing the process of software product developing in a very short time. The entire project is divided into various small modules and each module is allocated to different party to finish the working of the small modules. After that, all small modules are combined together to obtain the final project. 51

If your project can be divided into many parts or modules then the Rapid application development model is used. Each module is developed like the waterfall model.  The process of RAD model is building the Rapid prototype and deliver it to the clients and taking the reviews from them . If customer is satisfied then SRS document is created and designing phase is start. 52

53

Process of RAD Model :- There are four phases in this model :- 1-Requirement Analysis:- There are various approaches which is used in requirement planning like brainstorming , task analysis ,form analysis ,user scenario etc. This phase consists plan or designing of each module which contains data, methods and other resources. 2- Customer Evaluation:- In this phase, developer evaluates the customer satisfaction by delivering the prototype and taking the reviews from them. If the customer is satisfied then developer starts implementation.  54

3- Construction :- Prototype is refining and all the modification ,correction and improvements is done in this phase. This phase helps us to convert the process and modules into the final working product. 4- Cut Over :- This is the last stage of the RAD model. In this phase, all the independent modules are evaluated separately .The tools and sub-parts of product makes the testing of the product very easy. 55

Advantages of RAD Model :- RAD model completes the project in a short period of time.  The progress and development of project can be check on various stages .  This model uses the powerful techniques and tools.  reduce cost because very less developers are needed.  Prototype is delivered to the customer so the customer is satisfied.  It has more flexibility and adaptability to acquire the new requirements.  Reusability of the components is increased. 56

Disadvantages of RAD Model :- Team leader must to do work with developers to complete the work on time. Customer involvement are needed This model works only when the requirements are clearly specified. This model can be more complex if prototype is refined again and again. RAD model is not suitable for the short projects. 57

V Model V-model is also a part of SDLC MODEL . V- model is also called Verification and Validation model . This model is the extension of the Waterfall Model. The V form of the V model shows the various phases of the verification and validation phases. In this model one phase for verification and other for validation and the coding phase joins the both phases verification and Validation .so that makes the V shape so this model is called V-model. 58

This process starts from the top left i.e. verification phase towards the top right phases i.e. validation phases and follows a linear improvement like waterfall model. This model mainly use for testing phase . The next phase of development start after completing first phase. In the waterfall model testers involves in the last phase of the model but this model overcomes the drawbacks of the waterfall model. In V model ,testers involves in the early phases of the development process. 59

60

Process of V Model: This model consists two main phases :               1- Verification phase               2- Validation phase Verification : Verification is the process to verify that the software product development phase to determine that specified requirements meet or not ? In this  phase , there is no need to execute the code for testing. Validation : Validation is the process to verify that the software product fulfills the customer requirements and expectations or not. In this phase, there is need of execution of the code. 61

Phases of Verification Stage: Requirement Analysis :  In this phase, developers collects information from customers about the software.  System Design :  When the requirements are defined clearly then implement and design the complete hardware and communication setup for developing product and choose the programming language and databases. System Architecture :  Architectural specifications are designed in this phase.  The system design is splits further into modules taking up different working. This is also called High Level Design (HLD). In this stage, communication and transformation of data between the internal modules and the outer world is clearly specified. 62

Module Design :  In this phase the system breaks down into small modules. The detailed design of modules is specified, it is also called the Low-Level Design (LLD). Implementation/ Coding Phase :  This is the last phase of the V-Shape model. Module design is transformed into the code. The coding is done based on the coding principles and standards in a particular selected programming language. 63

phases of Validation Stage :  Unit Testing :  Unit testing is a type of white box testing .These Unit Test Plans are executed to remove bugs at code level. Unit Test Plans are created during the module design phase. Integration Phase :  In the integration testing, the integration test cases are executed which were developed in the High level design phase.  Integration testing is a testing process in which unit tested modules are integrated and evaluated. It verifies that the modules work together as expected or not . 64

System Testing :  System testing is done corresponds with the system design phase. It tests the functional and non-functional requirements and evaluate the whole system functionality and the communication of the system with external systems. Acceptance Testing :   This testing is done to check that the delivered system meets user’s requirement or not? Nonfunctional testing such as Load, Stress etc. are also done in this phase. 65

Advantages of V Model :-  1- It works very well for small project according to their requirement . 2- This model is very simple, easy and useful. 3- This is a high quality model and all the phases are completed at once. 4- This model is use to track the process of project management . 5- This model saves a lot of time and efforts. 6- Testing is starting at the initial phase so there is no issue of bugs. 7- Client’s requirements are not clearly specified. 66

Disadvantages of V Model :- 1- This model can not be use for large project. 2- This model is not good if customer’s requirements are not clear. 3- There are lots of risk. 4- This model is not easy for complex projects . 5- Client have no prototype and involvement during the software development. 6- This model contains less flexibility. 7- It is hard to go back and alter the working of the system if new requirements are met. 67

AGILE MODEL AGILE methodology is a practice that promotes  continuous iteration  of development and testing throughout the software development lifecycle of the project. Both development and testing activities are concurrent unlike the Waterfall model 68

The agile software development emphasizes on four core values. Individual and team interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan 69

What is Agile Methodology? Agile Vs Waterfall Method Scrum Product Backlog Scrum Practices Process flow of Scrum Methodologies eXtreme Programming (XP) Phases of eXtreme programming: Crystal Methodologies Dynamic Software Development Method (DSDM) Feature Driven Development (FDD) Lean Software Development Kanban Agile metrics 70

Agile Vs Waterfall Method Agile and Waterfall model are two different methods for software development process. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project. 71

Agile Model Waterfall Model Agile method proposes incremental and iterative approach to software design Development of the software flows sequentially from start point to end point. The  agile process  is broken into individual models that designers work on The design process is not broken into an individual models The customer has early and frequent opportunities to look at the product and make decision and changes to the project The customer can only see the product at the end of the project Agile model is considered unstructured compared to the waterfall model Waterfall model are more secure because they are so plan oriented 72

Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time. All sorts of project can be estimated and completed. Error can be fixed in the middle of the project. Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less. The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase. Documentation attends less priority than software development Documentation is a top priority and can even use for training staff and upgrade the software with another team 73

Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released. Only after the development phase, the testing phase is executed because separate parts are not fully functional. In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers. All features developed are delivered at once after the long implementation phase. Testers and developers work together Testers work separately from developers At the end of every sprint, user acceptance is performed User acceptance is  performed  at the end of the project. It requires close communication with developers and together analyze requirements and planning Developer does not involve in requirement and planning process. Usually, time delays between tests and coding 74

Agile Methodology 75

Scrum SCRUM is an agile development method which concentrates specifically on how to manage tasks within a team-based development environment. Basically, Scrum is derived from activity that occurs during a rugby match. Scrum believes in empowering the development team and advocates working in small teams (say- 7 to 9 members). 76

It consists of three roles, and their responsibilities are explained as follows: 77

Scrum Master Master is responsible for setting up the team, sprint meeting and removes obstacles to progress Product owner The Product Owner creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration Scrum Team Team manages its own work and organizes the work to complete the sprint or cycle 78

Product Backlog This is a repository where requirements are tracked with details on the no of requirements(user stories) to be completed for each release. It should be maintained and prioritized by Product Owner, and it should be distributed to the scrum team. Team can also request for a new requirement addition or modification or deletion 79

Scrum Practices Practices are described in detailed: 80

Process flow of Scrum Methodologies: Process flow of scrum testing is as follows: Each iteration of a scrum is known as Sprint Product backlog is a list where all details are entered to get the end-product During each Sprint, top user stories of Product backlog are selected and turned into Sprint backlog Team works on the defined sprint backlog Team checks for the daily work At the end of the sprint, team delivers product functionality 81

eXtreme Programming (XP) Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. It advocates frequent "releases" of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. The XP develops software keeping customer in the target. 82

83

Business requirements are gathered in terms of stories. All those stories are stored in a place called the parking lot. In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14 days time period. Each iteration includes phases like coding, unit testing and system testing where at each phase some minor or major functionality will be built in the application. 84

Phases of eXtreme programming: There are 6 phases available in Agile XP method, and those are explained as follows: Planning Analysis Design Execution Wrapping Closure 85

Planning Identification of stakeholders and sponsors Infrastructure Requirements Security related information and gathering Service Level Agreements and its conditions Analysis Capturing of Stories in Parking lot Prioritize stories in Parking lot Scrubbing of stories for estimation Define Iteration SPAN(Time) Resource planning for both Development and QA teams 86

Design Break down of tasks Test Scenario preparation for each task Regression Automation Framework Execution Coding Unit Testing Execution of Manual test scenarios Defect Report generation Conversion of Manual to Automation regression test cases Mid Iteration review End of Iteration review 87

Wrapping Small Releases Regression Testing Demos and reviews Develop new stories based on the need Process Improvements based on end of iteration review comments Closure Pilot Launch Training Production Launch SLA Guarantee assurance Review SOA strategy Production Support 88

There are two storyboards available to track the work on a daily basis, and those are listed below for reference. Story Cardboard This is a traditional way of collecting all the stories in a board in the form of stick notes to track daily XP activities. As this manual activity involves more effort and time, it is better to switch to an online form. Online Storyboard Online tool Storyboard can be used to store the stories.  Several teams can use it  for different purposes. 89

END OF UNIT I 90
Tags