+ All Categories
Home > Documents > Software Engineering Project 3 By Richard. Major development cycles approach Agile Software...

Software Engineering Project 3 By Richard. Major development cycles approach Agile Software...

Date post: 23-Dec-2015
Category:
Upload: amanda-banks
View: 215 times
Download: 0 times
Share this document with a friend
38
Software Engineering Project 3 By Richard
Transcript
Page 1: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Software Engineering

Project 3

By Richard

Page 2: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

•Major development cycles approach

• Agile Software Development

• Extreme Programming

• BDD

• TDD

• RAD

• Find a few more

Page 3: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 4: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Extreme Programming

• Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.

Page 5: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 6: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 7: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 8: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 9: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 10: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 11: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 12: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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 stan

dards.

Page 13: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 14: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 15: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Test-driven development cycle

• 1. Add a test • In test-driven development, each new feature be

gins with writing a test. • 2. Run all tests and see if the new one fails • This validates that the test harness is working co

rrectly 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 cau

se the test to pass.

Page 16: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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 r

epeated to push forward the functionality.

Page 17: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 18: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

RAD

• Works with PHP

• Frameworks – CakePHP – Symfony – CodeIgniter – Zend Framework

Page 19: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Difference between Structured Analysis and

Object Oriented Analysis

• Structured Analysis and Object Oriented Analysis are different techniques of developing a computer system.

Page 20: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Difference between Structured Analysis and Object Oriented Analysis

• Structured 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

Page 21: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Difference between Structured Analysis and Object Oriented Analysis

• 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.

Page 22: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 23: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 24: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 25: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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]

• .

Page 26: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 27: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 28: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 30: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 31: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Software Life Cycle

Page 32: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 33: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

Software phototype

Page 34: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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.

Page 36: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 37: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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

Page 38: Software Engineering Project 3 By Richard. Major development cycles approach Agile Software Development Extreme Programming BDD TDD RAD Find a few more.

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


Recommended