Define major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD UML Agile Software Development: Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. The Agile Manifesto introduced the term in 2001. In February 2001, 17 software developers met at a ski resort in Snowbird, Utah, to discuss lightweight development methods. They published the "Manifesto for Agile Software Development" to define the approach now known as agile software development. Some of the manifesto's authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto's principles. 1. Extreme Programming: Extreme Programming (XP) is a software development methodolo which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. 2. Software development in the 1990s was shaped by two major influences: internally, object-oriented programming replaced procedural programming as the programming paradigm favored by some in the industry; externally, the rise of the Internet and the dot-com boomemphasized speed-to-market and company-growth as competitive business factors. Rapidly-changing requirements demanded shorter product life-cycles, and were often incompatible with traditional methods of software development. BDD: An agile software development technology, it encourages software project developers, QA and non-technical staff or business collaboration between participants. BDD was originally developed by Dan North was named in 2003 , which includes acceptance testing and customer test driven practices such as Extreme Programming, Test Driven Development as a response. In the past few years it has been a great development . BDD's focus will be on discussions with stakeholders to obtain the expected behavior of a clear understanding of the software. It is written by non-programmers with a natural language readable test case extends the test-driven development approach. Behavior-driven developers to use a mixture of a unified field of mother tongue language to describe the purpose of their code. This allows developers to focus on the code should be how to write, rather than technical details, but also the greatest degree of reduction of the code writers of technical language and business clients, customers, stakeholders, project managers and other areas the cost of translation back and forth between languages. TDD: Modern methods of a computer software development. Using test to drive the software design and implementation. Popular in the 20th century, began to test drive 90. Extreme Programming test-driven development is advocated in the program development method, method is to first write the test program, and then re-encoding to pass the test. The purpose of the test-driven development is to obtain quick feedback and use the "illustrate the main line" approach to building programs. Test-driven development of analogy. Development can be viewed from two aspects: to achieve the functionality and quality. Test Driven Development Thinking more like two hats development mode, first put on the hat to achieve functional, assisted in the testing and rapid realization of the right of the function; and then put on the hat of reconstruction, under the protection of the test, by going to In addition to the code redundancy and duplication, improve code reuse, to achieve the quality improvements. Test-driven development can be seen in the test was indeed part of the core position has always been throughout the development. RAD: Rapid Application Development Rapid Application Development refers to a type of software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. Works with PHP Frameworks CakePHP Symfony CodeIgniter Zend Framework What is UML? An open method for the description, visualization, construction and preparation of an ongoing development, object-oriented software-intensive products, open systems approach. UML to show a series of best engineering practice, these best practices on a large scale, complex system modeling, especially in the software architecture level has been verified valid. Integrated Booch, OMT, and the concept of object-oriented software engineering, integration of these methods into a single, common, and can be widely used modeling language. UML intended to be concurrent and distributed systems can be a standard modeling language. UML is not limited to UML elements have to be a type of graph type. In general, the approximate each element appears in the UML diagram of all types. This flexibility is limited in parts of UML 2.0. What are case tools? Computer-aided software engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products. It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.