SOFTWARE ENGINEERING EXTREME PROGRAMMING (XP) & V-MODEL PRESENTATION Extreme Programming (XP) Extreme programming (XP) is one of the most important software development frameworks of Agile models. It is used to improve software quality and responsiveness to customer requirements. The extreme programming model recommends taking the best practices that have worked well in the past in program development projects to extreme levels. Good practices need to be practiced in extreme programming Basic principles of Extreme programming: • Coding: The concept of coding which is used in the XP model is slightly different from traditional coding. Here, the coding activity includes • Code Review: Code review detects and corrects errors efficiently. It suggests pair programming as coding and reviewing of written code drawing diagrams (modeling) that will be transformed into code, scripting carried out by a pair of programmers who switch their works between every hour. and choosing among several alternative solutions. a web-basedthem system, • Testing: Testing code helps to remove errors and improves its reliability. XP suggests development to continually • Testing: XPtest-driven model gives(TDD) high importance to testing and considers it to be write and execute test cases. In the TDD approach test cases are written even before any code is written. the primary factor to develop fault-free software. • Incremental development: Incremental development is very good • because Listening: Theis developers need to carefully listen to the customers if they customer feedback gained and based on this development team comes up with new increments every few days after each have to develop good quality software. Sometimes programmers may not iteration. have the depth knowledge of the system to be developed. So, the programmers should understand properly the functionality of the system and they have to listen to the customers. Advantages & Disadvantages Close contact with the customer Additional work No review unnecessary • Code Review: Code detects and corrects errors efficiently. It Customer must participate in the process programming workand reviewing of written code suggests pair programming as coding carried out by a pair of programmers who switch their works between them every hour. Stable software through • Testing: Testing code helps to remove errors and improves its Relatively large time investment continuous testing reliability. XP suggests test-driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are Errorwritten avoidance through pair even before any code is written. Relatively high costs • Incremental development: Incremental development is very good programming because customer feedback is gained and based on this development team comes up with new increments every few days after each No overtime, teams work at iteration. Requires version management own pace contact with the customer Close contact withtheir the customerClose Changes can be made at short notice Code is clear and comprehensible at all times Requires self-discipline to practice Applications of Extreme Programming (XP): Some of the projects that are suitable to develop using the XP model are given below: • Small projects: XP model is very useful in small projects consisting of small teams as face-to-face meeting is easier to achieve. • Projects involving new technology or Research projects: This type of project face changing requirements rapidly and technical problems. So XP model is used to complete this type of project. V-Shape Model The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. It is based on the association of a testing phase for each corresponding development stage. Development of each step directly associated with the testing phase. The next phase starts only after completion of the previous phase i.e. for each development activity, there is a testing activity corresponding to it. V-Shape Working methdology Basic principles of V-Shap Model: • Large to Small: In V-Model, testing is done in a hierarchical perspective, For example, requirements identified by the project team, create High-Level Design, and Detailed Design phases of the project. As each of these phases • Code Review: Code review detects and corrects errors efficiently. It is completed requirements, they are defining become more and more suggests pair programmingthe as coding and reviewing of written code carried out by a pair of programmers who switch their works between refined and detailed. them every hour. • Testing: Testing code helps to remove errors and improves its • reliability. Data/Process Integrity: This principle states that the successful design of XP suggests test-driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are any project requires the incorporation and cohesion of both data and written even before any code is written. • Incremental development: Incremental development is very good processes. Process elements must be identified at each and every because customer feedback is gained and based on this development team comes up with new increments every few days after each requirements. iteration. • Scalability: This principle states that the V-Model concept has the flexibility to accommodate any IT project irrespective of its size, complexity or duration. • Cross Referencing: Direct correlation between requirements and corresponding testing activity is known as cross-referencing. Applications of V-Shape: It can be used for software projects of any size, whether in commerce, the military or the public sector. The model serves as a tool to facilitate the organization and execution of development, maintenance, and advancement of diverse IT systems. Advantage s • This is a highly disciplined model and Phases are completed one at a time. • V-Model is used for small projects where project requirements are clear. • Simple and easy to understand and use. • This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an errorfree and good quality product. • It enables project management to track progress accurately. • Clear and Structured Process: The V-Model provides a clear and structured process for software development, making it easier to understand and follow. Disadvantage • High risk and uncertainty. • It is not a good for complex and object-oriented projects. • It is not suitable for projects where requirements are not clear and contains high risk of changing. • This model does not support iteration of phases. • It does not easily handle concurrent events. • Inflexibility: The V-Model is a linear and sequential model, which can make it difficult to adapt to changing requirements or unexpected events. Refrences: https://www.geeksforgeeks.org/software-engineering-sdlc-v-model/ https://www.geeksforgeeks.org/software-engineering-extremeprogramming-xp/ “Software Engineering: A Practitioner’s Approach” by Roger S. Pressman, published by McGraw-Hill Education, 2017. Thank You Group Members Tariq Kamran M.Ahsan Muhammad Anas Hashmi Salik Khan Tareen