Embed
Email

alex

Document Sample

Shared by: ajizai
Categories
Tags
Stats
views:
2
posted:
12/18/2011
language:
pages:
3
Define major development cycles approach

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.

Agile methods in other than its uniqueness, he and other methods also have much in common,

such as iterative development, interactive communication concerns and reduce the unnecessary

consumption of resources intermediation process. Usually measured in terms of the applicability

of agile methods: from the product perspective, agile methods for germinating and fast-changing

needs of the situation, such as the relatively high critical systems, reliability, safety requirements,

it may not entirely suitable; from the perspective of the organizational structure, organizational

structure, culture, personnel, communication and determines the applicability of agile methods.

The most important factor is probably the size of the project. Increase in size, more difficult to

communicate face to face, so agile methods more suitable for smaller teams, 20,40 people or less.

Large-scale Agile software development is still in the area of active research.

Another problem is that early in the project or to quickly collect a large number of assumptions

may lead to project into the needs of errors, especially the needs of our customers have no idea of

their own circumstances. Similarly, the nature of people is very easy to cause a person to become

the leading design and project objectives and the situation into the wrong direction. Developers

often can not appropriate program grants to Customer, and until the last before the problem can be

found in your business. Although theoretically can limit speed the process of interaction of these

errors occur, but only if negative feedback is valid, otherwise an error will rapidly expand.

Specific tools and techniques such as continuous integration, automated or xUnit test, pair

programming, test driven development, design patterns, domain-driven design, code refactoring

and other techniques are often used to improve quality and enhance project agility.



Extreme Programming

Extreme Programming (XP) is a software development methodology which is intended to

improve software quality and responsiveness to changing customer requirements. As a type of

agile software development,[1][2][3] 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.

Other elements of extreme programming include: programming in pairs or doing extensive code

review, unit testing of all code, avoiding programming of features until they are actually needed, a

flat management structure, simplicity and clarity in code, expecting changes in the customer's

requirements as time passes and the problem is better understood, and frequent communication

with the customer and among programmers.[2][3][4] The methodology takes its name from the

idea that the beneficial elements of traditional software engineering practices are taken to

"extreme" levels, on the theory that if some is good, more is better. It is unrelated to "cowboy

coding", which is more free-form and unplanned. It does not advocate "death march" work

schedules, but instead working at a sustainable pace.[5]

Critics have noted several potential drawbacks,[6] including problems with unstable requirements,

no documented compromises of user conflicts, and lack of an overall design specification or

document.

BDD

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

BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale,

high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs,

resulting in the delivery of working, tested software that matters.

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.

BDD is driven by business value; that is, the benefit to the business which accrues once the

application is in production. The only way in which this benefit can be realized is through the user

interface(s) to the application, usually (but not always) a GUI.



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.

It can effectively avoid the waste caused by over-design. But some others stressing the need to

develop a complete design before re-implementation of the reconstruction can lead to avoid

waste.It also allows the developer to develop a more comprehensive view, to avoid waste caused

by over-achieving.

Developers may only be completed to meet the test code, while ignoring the real needs of

implementation. With practitioners think that using pair programming approach can effectively

avoid this problem.The actual code will slow down the speed of development, in particular,

requires the development speed for the prototype development adversely. It should consider the

development speed and quality need to include both functional and simple code speed may not be

fully representative of development speed.For the GUI, database and Web applications. Tectonic

unit testing more difficult, if forced to construct unit tests, but to maintain the additional workload.

Have developers that this is due to design, rather than the difficulties caused by the development

method.Makes the development of more use cases and test case concerns, not the design itself.

Currently, there is more to this point controversial.Test-driven development will lead to inadequate

coverage of unit tests, such as the possible lack of boundary testing. In the actual operation, and

non-test driven development, like, when the code is completed or need to add unit tests to improve

test coverage.



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







Difference between Structured Analysis and Object Oriented Analysis?

Structured analysis (Structured Method, a structured approach) emphasizes the rationality of

development methods and the rationality of the software that used in development. Structure refers

to the system between the various elements, interaction framework.. Structured development

method is proposed to improve the software structure of a set of reasonable criteria, such as

decomposition and abstraction, module independence, information hiding and so on. Software life

has the various different stages, it has structured analysis (SA), structured design (SD) and

structured programming (SP) and other methods.

Object-oriented analysis methods (Object-Oriented Analysis, OOA), is in the process of

developing a system of business surveys conducted after the system, in accordance with

object-oriented thinking to analyze problems. OOA and the structural analysis have a greater

difference. OOA is emphasized in the system, based on survey data, required for the OO approach

to the classification of materials and finishing, rather than the status quo of management

operations and methods of analysis.









What is 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.







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.



Related docs
Other docs by ajizai
Resume 1.docx _20K_ - Student of Fortune
Views: 0  |  Downloads: 0
msg00000
Views: 0  |  Downloads: 0
Pre-Tax Return Calculator 2010-2011
Views: 0  |  Downloads: 0
Excel file - The GEO-3 Data Compendium
Views: 0  |  Downloads: 0
Cooperators Tests - ARS
Views: 0  |  Downloads: 0
2010101473142104
Views: 0  |  Downloads: 0
AJHL - Shawn Stewart Sales
Views: 0  |  Downloads: 0
OBLATES_ BROTHER CADFAEL AND ROME
Views: 1  |  Downloads: 0
DuaneChipKeeler_CV-Resume
Views: 0  |  Downloads: 0
AIT-2009-291-SC
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!