Vous êtes sur la page 1sur 2

# Software Development Process (SDLC)

Software Development Process = Software Development Life Cycle (`SDLC`).


In what order should SE activities (eg design, testing, impl) be caried out?

## Glossary
`CI` - practice of merging all developer working copies to a shared mainline
several times a day

## Main tasks
- understanding the problem
- choosing and designing a solution
- building the solution

## Abstract types
- linear
- iterative
- parallel

## What to choose factors:


1. project size
2. application domain (e.g. realtime, safety-critical, user-centred, highly
interactive, distributed or batch-mode)
3. existing specification , clear plan and vision of final product
4. customer involvement
5. are frequent changes expected

- Nature of the organization (e.g. aviation vs. education)


- Size and nature of the project (e.g. large/small, research vs. development
project)
- Funding (e.g. money)
- Resources (e.g. personnel)
- Type of application (e.g. online banking system vs. game)
- Requirements uncertainty

## Life Cycle Models

#### Prototyping
- is not a standalone, complete development methodology, may be used as a part of
the larger development lifecycle
- like creating POCs, evaluating them, then implementing full product
- may be iterative, constantly improving

1. Perform an in itia l analysis


1. Define prototype objectives
1. Specify prototype
1. Construct prototype
1. Evaluate prototype a n d recom m end changes

#### Incremental (iterative)


Each increment is mini waterfall and each step should have clear specs
Incremental - when reqs are not clear at start, when not enough stuff for full
development, when need quick response to business needs.
Iterative development may result in incremental delivery, though some approaches
produce the increments only for internal release to the development team and not
for
external release to the client.

#### Rapid (RAD)


- more iterative prototyping, much less planning (like my hobby projects)
- allows software to be written much faster, and makes it easier to change
requirements
- used in data-driven dev approach
- key emphasis is on fulfilling the business need

#### Agile
- less bureaucratic, less focused on documentation and more focused on user
interaction and the early delivery of working software
- iterative development
- requirements and solutions evolve via collaboration between self-organizing
cross-functional teams
- continuous feedback
- Kanban, Scrum, DSDM

#### Waterfall
When projects have clear requirements.
1. Requriements
1. Design
1. Impl
1. Verfification
1. Maintenance
Iterative Waterfall allows you to get back to prev modules (any level) at each
step, but then you have to fall down again

#### Spiral
- risk reduction oriented model
- breaking a project into smaller segments
- each cycle a sequence of steps:
= determine objectives, alternatives, and constraints of the iteration;
= valuate alternatives, identify and resolve risks;
= develop and verify deliverables from the iteration;
= plan the next iteration;

#### Offshore
- outsourcing

#### BDD
- is Agile
- encourages teams to use conversation and concrete examples to formalize a shared
understanding of how the application should behave
- emerged from test-driven development (TDD)

#### Unified process (UP or USDP)


is an iterative software development methodology framework, based on Unified
Modeling Language (UML). UP organizes the development of software into four
`phases`, each consisting of one or more executable iterations of the software at
that stage of development:
1. `Inception` is concerned with determining the scope and purpose of the project.
1. `Elaboration` focuses on requirements capture and determining the structure of
the system.
1. `Construction’s` main aim is to build the software system.
1. `Transition` deals with product installation and rollout.

Vous aimerez peut-être aussi