Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Project 3 By Richard.

Similar presentations

Presentation on theme: "Software Engineering Project 3 By Richard."— Presentation transcript:

1 Software Engineering Project 3 By Richard

2 Major development cycles approach
Agile Software Development Extreme Programming BDD TDD RAD Find 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 Programming Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.

5 Extreme Programming 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

6 BDD Behavior 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 BDD It was originally named in 2003 by Dan North[1] as a response to Test Driven Development, including Acceptance Test or Customer Test Driven Development practices as found in Extreme Programming.

8 BDD BDD 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 BDD Behavior-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 BDD Establishing the goals of different stakeholders required for a vision to be implemented Drawing out features which will achieve those goals using feature injection Involving stakeholders in the implementation process through outside-in software development Using examples to describe the behavior of the application, or of units of code Automating those examples to provide quick feedback and regression testing

11 The practices of BDD Using 'should' when describing the behavior of software to help clarify responsibility and allow the software's functionality to be questioned Using 'ensure' when describing responsibilities of software to differentiate outcomes in the scope of the code in question from side-effects of other elements of code Using mocks to stand-in for collaborating modules of code which have not yet been written

12 TDD Test-driven development is a software development process that relies on the repetition of a very short development cycle first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.

13 TDD Kent 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 Requirments Test-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 test In test-driven development, each new feature begins with writing a test. 2. Run all tests and see if the new one fails This 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 code The 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 succeed If all test cases now pass, the programmer can be confident that the code meets all the tested requirements. 5. Refactor code Now the code can be cleaned up as necessary. Repeat Starting with another new test, the cycle is then repeated to push forward the functionality.

17 RAD 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

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) [1] [2] was developed to describe variability in dispositional or situational goals preferences that an individual implicitly sets for him/herself in achievement situations.

24 UML Unified 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 UML UML offers a standard way to visualize a system's architectural blueprints, including elements such as: activities actors business processes database schemas (logical) components programming language statements reusable software components.[2] .

26 UML UML 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 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.

28 Waterfall Model The 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

29 Waterfall Model

30 Software Life Cycle A 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

31 Software Life Cycle

32 Software phototype Software 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.

33 Software phototype

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.

35 Software Spiral Model?

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 model A 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

Download ppt "Software Engineering Project 3 By Richard."

Similar presentations

Ads by Google