Más contenido relacionado


Extreme Programming (XP).pptx

  1. Extreme Programming (XP)
  2. • 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: Some of the good practices that have been recognized in the extreme programming model
  3. suggested to maximize their use are given below: • Code Review: Code review detects and corrects errors efficiently. It suggests pair programming as coding and reviewing of written code carried out by a pair of programmers who switch their works between them every hour. • Testing: Testing code helps to remove errors and improves its reliability. XP suggests test-driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are written even before any code is written. • Incremental development: Incremental development is very good because customer feedback is gained and based on this development team comes up with new increments every few days after each iteration. • Simplicity: Simplicity makes it easier to develop good quality code as well as to test and debug it. • Design: Good quality design is important to develop good quality software. So, everybody should design daily. • Integration testing: It helps to identify bugs at the interfaces of different functionalities. Extreme programming suggests that the developers should achieve continuous integration by building and performing integration testing several times a day.
  4. 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 drawing diagrams (modeling) that will be transformed into code, scripting a web-based system, and choosing among several alternative solutions. • Testing: XP model gives high importance to testing and considers it to be the primary factor to develop fault-free software. • Listening: The developers need to carefully listen to the customers if they have to develop good quality software. Sometimes programmers may not 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. • Designing: Without a proper design, a system implementation becomes too complex and very difficult to understand the solution, thus making maintenance expensive. A good design results elimination of complex dependencies within a system. So, effective use of suitable design is emphasized. • Feedback: One of the most important aspects of the XP model is to gain feedback to understand the exact customer needs. Frequent contact with the customer makes the development effective. • Simplicity: The main principle of the XP model is to develop a simple system that will work efficiently in the present time, rather than trying to build something that would take time and may never be used. It focuses on some specific features that are immediately needed, rather than engaging time and effort on speculations of future requirements.
  5. Applications of Extreme Programming (XP): • Small projects: XP model is very useful in small projects consisting of small teams as the 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.
  6. SDLC V-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.
  7. V Model
  8. Principles of V-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 is completed the requirements, they are defining become more and more refined and detailed. • Data/Process Integrity: This principle states that the successful design of any project requires the incorporation and cohesion of both data and processes. Process elements must be identified at each and every requirements. • 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. • Tangible Documentation: This principle states that every project needs to create a document. This documentation is required and applied by both the project development team and the support team. Documentation is used to maintaining the application once it is available in a production environment.
  9. • Why preferred? • It is easy to manage due to the rigidity of the model. Each phase of V-Model has specific deliverables and a review process. • Proactive defect tracking – that is defects are found at early stage. • When to use? • Where requirements are clearly defined and fixed. • The V-Model is used when ample technical resources are available with technical expertise.
  10. • Advantages: • 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 error-free and good quality product. • It enables project management to track progress accurately. • Disadvantages: • 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.