2 Major development cycles approach Agile Software DevelopmentExtreme ProgrammingBDDTDDRADFind a few more
3 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
4 Extreme ProgrammingExtreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.
5 Extreme ProgrammingAs 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
6 BDDBehavior driven development is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project.
7 BDDIt was originally named in 2003 by Dan North as a response to Test Driven Development, including Acceptance Test or Customer Test Driven Development practices as found in Extreme Programming.
8 BDDBDD focuses on obtaining a clear understanding of desired software behaviour through discussion with stakeholders. It extends TDD by writing test cases in a natural language that non-programmers can read
9 BDDBehavior-driven developers use their native language in combination with the ubiquitous language of domain driven design to describe the purpose and benefit of their code.This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management, etc.
10 The practices of BDDEstablishing the goals of different stakeholders required for a vision to be implementedDrawing out features which will achieve those goals using feature injectionInvolving stakeholders in the implementation process through outside-in software developmentUsing examples to describe the behavior of the application, or of units of codeAutomating those examples to provide quick feedback and regression testing
11 The practices of BDDUsing 'should' when describing the behavior of software to help clarify responsibility and allow the software's functionality to be questionedUsing 'ensure' when describing responsibilities of software to differentiate outcomes in the scope of the code in question from side-effects of other elements of codeUsing mocks to stand-in for collaborating modules of code which have not yet been written
12 TDDTest-driven development is a software development process that relies on the repetition of a very short development cyclefirst the developer writes a failing automated test case that defines a desired improvement or new function,then produces code to pass that test andfinally refactors the new code to acceptable standards.
13 TDDKent Beck, who is credited with having developed or 'rediscovered' the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.Test-driven development is related to the test-first programming concepts of extreme programming, begun in 1999, but more recently has created more general interest in its own right.
14 TDD RequirmentsTest-driven development requires developers to create automated unit tests that define code requirements (immediately) before writing the code itself. The tests contain assertions that are either true or false. Passing the tests confirms correct behavior as developers evolve and refactor the code. Developers often use testing frameworks, such as xUnit, to create and automatically run sets of test cases.
15 Test-driven development cycle 1. Add a testIn test-driven development, each new feature begins with writing a test.2. Run all tests and see if the new one failsThis validates that the test harness is working correctly and that the new test does not mistakenly pass without requiring any new code.3. Write some codeThe next step is to write some code that will cause the test to pass.
16 Test-driven development cycle 4. Run the automated tests and see them succeedIf all test cases now pass, the programmer can be confident that the code meets all the tested requirements.5. Refactor codeNow the code can be cleaned up as necessary.RepeatStarting with another new test, the cycle is then repeated to push forward the functionality.
17 RADRapid 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
18 RAD Works with PHP Frameworks CakePHP Symfony CodeIgniter Zend Framework
19 Difference between Structured Analysis and Object Oriented Analysis Structured Analysis and Object Oriented Analysis are different techniques of developing a computer system.
20 Difference between Structured Analysis and Object Oriented Analysis In Structured Analysis, the focus is only on process and procedures. Modeling techniques used in it are DFD(Data Flow Diagram), Flowcharts etc. This approach is old and is not preferred
21 Difference between Structured Analysis and Object Oriented Analysis Whereas in Object Oriented Analysis, the focus is more on capturing the real world objects in the current scenario that are of importance to the system. It stresses more on data structure and less on procedural structure. Without actually identifying objects, what are you going to interact with, and whose state will you change. In this approach, objects are identified, their relationships among each other, possible states that each object can be in, and finally how all objects collaborate with each other to achieve a broader system goal are identified.
22 Difference between Structured Analysis and Object Oriented Analysis Structured Analysis treats processes and data as separate components versus object-oriented analysis combines data and the process that act on the data into objects
23 Goal oriented analysis The concept of goal orientation (GO)   was developed to describe variability in dispositional or situational goals preferences that an individual implicitly sets for him/herself in achievement situations.
24 UMLUnified Modeling Language (UML) is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphic notation techniques to create visual models of software-intensive systems.The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system under development.
25 UMLUML offers a standard way to visualize a system's architectural blueprints, including elements such as:activitiesactorsbusiness processesdatabase schemas(logical) componentsprogramming language statementsreusable software components..
26 UMLUML combines techniques from data modeling (entity relationship diagrams), business modeling (work flows), object modeling, and component modeling.It can be used with all processes, throughout the software development life cycle, and across different implementation technologies.UML models may be automatically transformed to other representations (e.g. Java) by means of QVT-like transformation languages, supported by the OMG.UML is extensible, offering the following mechanisms for customization: profiles and stereotypes
27 CASE ToolsComputer-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.
28 Waterfall ModelThe waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance
30 Software Life CycleA life cycle is the sequence in which a project specifies, prototypes, designs, implements, tests, and maintains a piece of software. Explicit recognition of a life cycle encourages development teams to address development issues at the appropriate time; for example, to establish basic software requirements before design or coding begins. We recommend that developers roughly follow the staged delivery model (below) when designing significantly new versions of the full model and when developing large components and libraries
32 Software phototypeSoftware prototyping, refers to the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that occurs during certain software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing.
34 Software Spiral Model?The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.
36 Software Object-Oriented Model Object-Oriented Modeling, or OOM, (Object Oriented Programming - OOP)is a modeling paradigm mainly used in computer programming. Prior to the rise of OOM, the dominant paradigm was procedural programming, which emphasized the use of discreet reusable code blocks that could stand on their own, take variables, perform a function on them, and return values
37 Software assembly model Assembly Modeling is technology and methods used by Computer-aided design and Product visualization computer software systems to handle multiple files that represent components within a product. The components within an assembly are represented as solid or surface models
38 Software mixed modelA mixed model is a statistical model containing both fixed effects and random effects, that is mixed effects. These models are useful in a wide variety of disciplines in the physical, biological and social sciences. They are particularly useful in settings where repeated measurements are made on the same statistical units, or where measurements are made on clusters of related statistical units