• No results found

Software Requirements and Specification

N/A
N/A
Protected

Academic year: 2021

Share "Software Requirements and Specification"

Copied!
21
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Requirements and

Specification

Agile Methods

SE3821 - Jay Urbain

• Credits: Beck, K. (1999). Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley.

Beck, Kent; et al. (2001). Manifesto for Agile Software Development. Agile Alliance. Retrieved 2010-06-14.

Larman, Craig; Basili, Victor R. (June 2003). Iterative and

Incremental Development: A Brief History. Computer 36 (6): 47–56.

Agile Methods

(2)

Agile Methods

(3)

Agile Development Methods

Iterative and incremental software development methodology.

Requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

• Promotes: • Promotes:

– adaptive planning

– evolutionary development and delivery, and – a time-boxed iterative approach

• Encourages rapid and flexible response to change.

Note: Agile management methods can (and are) be applied to development projects other than software development.

(4)

Background

• IBM's Service Bureau Corporation documented adaptive development techniques in 1957.

• Paper by E. A. Edmonds (1974) introduced an adaptive software development process.

Beck, K. (1999). Extreme Programming Explained: Embrace Beck, K. (1999). Extreme Programming Explained: Embrace

Change. Boston, MA: Addison-Wesley.

• Beck, Kent; et al. (2001). Manifesto for Agile Software

Development. Agile Alliance. Retrieved 2010-06-14.

• Larman, Craig; Basili, Victor R. (June 2003). Iterative and

Incremental Development: A Brief History. Computer 36 (6):

47–56.

(5)

Why Agile Development?

• Lightweight software development methods evolved in the mid-1990s as a reaction against heavyweight methods

characterized as: – heavily regulated – regimented

– regimented

– micromanaged

– waterfall model of development

(6)

Agile Method Implementations

Early implementations of lightweight (Agile) methods include: • Scrum (1995)

• Crystal Clear (1996)

• Extreme Programming (1996)

• Adaptive Software Development (1995) • Adaptive Software Development (1995) • Feature Driven Development (1995)

• Dynamic Systems Development Method (DSDM) (1995)

• Now typically referred to as agile methodologies, after the Agile Manifesto published in 2001.

(7)

Agile Manifesto

Beck, Kent; et al. (2001). "Manifesto for Agile Software Development". Agile Alliance. Retrieved 2010-06-14.

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

• Note: While there is value in the items on the right, we

value the items on the left more.

(8)

Agile Manifesto Principles

1. Customer satisfaction by rapid delivery of useful software 2. Welcome changing requirements, even late in development 3. Working software is delivered frequently (weeks rather than

months)

4. Working software is the principal measure of progress

5. Sustainable development, able to maintain a constant pace 5. Sustainable development, able to maintain a constant pace

6. Close, daily co-operation between business people and developers 7. Face-to-face conversation is the best form of communication

(co-location)

8. Projects are built around motivated individuals, who should be trusted

9. Continuous attention to technical excellence and good design 10. Simplicity

11. Self-organizing teams

(9)

Agile Methods

• Promote development, teamwork, collaboration, and

process adaptability throughout the life-cycle of the project.

• Break tasks into small increments with minimal planning. • Iterations are short time frames (timeboxes) that typically

last from one to four weeks.

• Each iteration involves a team working through a full software development cycle:

– planning,

– requirements analysis,

– design,

– coding,

– unit testing, and

– acceptance testing

– working product demonstrated to stakeholders.

(10)

Agile Methods

• Minimizes overall risk and allows the project to adapt to changes quickly.

• Stakeholders produce documentation as required.

• Multiple iterations may be required to release a product or new features.

new features.

• Team composition in an agile project is usually cross-functional and self-organizing.

• Agile team will always contain a customer representative. • Most agile implementations use a routine and formal daily

face-to-face communication among team members

(11)

Agile Process

(12)

Extreme Programming

(13)

Extreme Programming

• Goal: Improve software quality and responsiveness to changing customer requirements.

• Advocates frequent "releases" in short development cycles (timeboxing)

– intended to improve productivity and introduce checkpoints where new – intended to improve productivity and introduce checkpoints where new

customer requirements can be adopted.

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

(14)

Extreme Process

(15)

Extreme Programming

• Other elements of extreme programming include:

– programming in pairs – extensive code review – unit testing of all code

– avoiding programming of features until they are actually needed – flat management structure

– simplicity and clarity in code

– expecting changes in the customer's requirements as time passes and the problem is better understood

– frequent communication with the customer and among programmers

(16)

Extreme Origins

• Created by Kent Beck while working on the Chrysler Comprehensive Compensation System (C3) payroll project (1996).

• Beck wrote Extreme Programming Explained (1999). • Rise of the Internet and the dot-com boom emphasized • Rise of the Internet and the dot-com boom emphasized

speed-to-market as competitive business factors.

• Rapidly-changing requirements demanded short product life-cycles (incompatible with traditional methods).

(17)

Scrummage

Scrum (abbreviated form of scrummage), a way of

restarting a game, either after an accidental

infringement or (in rugby) when the ball has gone out of play.

(18)

Scrum Background

Iterative, incremental framework for project management

(1986, Hirotaka Takeuchi and Ikujiro Nonaka).

DeGrace and Stahl (1991) coined the scrum approach referring to the manner of restarting a rugby game after a minor infraction.

minor infraction.

• Often seen in agile software development (introduced by 1995, Sutherland and Schwaber).

(19)

Scrum Characteristics

Scrum

• Process skeleton that contains sets of practices and predefined roles. The main roles in Scrum are:

Scrum Master

– Maintains the processes (project manager) – Maintains the processes (project manager)

Product Owner

– Represents the stakeholders and the business

Team

– Cross-functional group who do the actual analysis, design, implementation, testing, etc.

Sprint

– Basic unit of development (iteration).

(20)

Scrum Characteristics

Daily Scrum

– During the sprint, a project status meeting occurs.

Burn down

– During the sprint burn down chart is a publicly displayed chart showing remaining work in the sprint backlog.

showing remaining work in the sprint backlog.

• Many additional processes, artifacts, and terms!

(21)

Bottom Line

• A development process is a means to an end, and has to work for your application and organization.

• Critical for team members to understand application needs (requirements) and not get off track – agile helps us with this.

• The less certain the requirements – the more agile we need to be.

• In all cased, understanding customer needs is critical and we often can • In all cased, understanding customer needs is critical and we often can

not adequately elicit customer requirements without providing them something to evaluate.

• Successfully delivered projects are all about reducing risk,

understanding the needs of the customer, and be able to adapt to change.

• Once you start using something, your needs evolve…. And this is life ;-).

References

Related documents

The compan y uses vari able costing for int ernal management report s and absorption cos ting for external reports to shareholders, creditors, and th e government..

For example, similarity of a community in a small reserve with high- quality habitat but surrounded by low- quality ma- trix with the reference scenario was equal to that of a

BLOCK DIAGRAM (PER PORT) MAC RMII Data Interface MDC/MDIO PHYAD[4:0] PCS Framer Carrier Detect 4B/5B TP_PMD MLT-3 BLW Stream Cipher 25 MHz 25 MHz 10TX 10RX 20 MHz 100TX 100RX TX+

Reflection By pre-populating discussion forums with threads according to the types of discussions anticipated in the course, educators were able to create more

Food based dietary guidelines Nutrition Centre Guidelines Healthy Diet Health Council Reference intakes Health Council Nutritional composition NEVO Wo5 or not-Wo5. Amounts

Seismic'Pushover'Analysis:'Using' AASHTO'Guide&Specifica,ons&for&

Recently the fineness of POFA has been studied by some researchers on the pore size distribution and microstructure of cement paste (Ranjbar, Mehrali, Alengaram, Metselaar,

Instrumentations are Radiochromic EBT2 film, MOSFET, flatbed scanner, ImageJ software program, Mobile MOSFET dose verification system, phantoms (solid water phantom,