Thursday, October 27, 2016

Evolutionary Process Models, stand-alone process model

Evolutionary Process Models, stand-alone process model

Evolutionary models are iterative.
They are characterized develop increasingly more complete versions of the software.

Two common evolutionary process models.
        The Spiral Model.


Customer defines a set of general objectives for software.

But does not identify detailed requirements for functions and features.

Developer may be unsure of the efficiency of an algorithm.

Prototyping paradigm may offer the best approach.

Can be used as a stand-alone process model.

Better understand what is to be built when requirements are fuzzy.

Start with communication, planned quickly, modeling, Construction, Deployment Delivery & Feedback.

Quick design focuses on GUI that visible to end users.

Quick design leads to the construction of a prototype.

Evaluated by stakeholders, who provide feedback that is used to further refine requirements.

Prototype serves as a mechanism for identifying software requirements.

Problems of prototyping

Stakeholders don’t know what appears to be a working version of the software, Unaware, Compromises in implementation working quickly.

Inappropriate operating system or programming language may be used.
Inefficient algorithm may be implemented.

Evolutionary Process Models, stand-alone process model

Incremental Process Models

Incremental Process Models

The incremental model combines of linear and parallel process flows.

the incremental model applies linear sequences deliverable “increments” of the software.

first increment is often a core product. That is, basic requirements

The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality.

process is repeated until the complete product is produced.

focuses on the delivery of an operational product with each increment.

useful when staffing is unavailable for a complete implementation

core product is well received, then additional staff (if required) can be added to implement the next increment.

increments can be planned to manage technical risks.
Incremental Process Models

Wednesday, October 26, 2016

The Waterfall Model, classic life cycle

The Waterfall Model, classic life cycle

When work flows from communication through deployment in a reasonably linear fashion.

It may also occur in a limited number of new development efforts, but only when
requirements are well defined and reasonably stable.

The waterfall model, sometimes called the classic life cycle, suggests a systematic,
sequential approach6 to software development that begins with customer specification
of requirements and progresses through planning, modeling, construction, and
deployment, culminating in ongoing support of the completed software.

The Waterfall Model, classic life cycle

Problems of Waterfall Model:

1. Real projects rarely follow the sequential flow that the model proposes.
2. difficult for the customer to state all requirements explicitly.
3. customer must have patience.
4. other members of the team to complete dependent tasks.
5. time spent waiting can exceed the time spent on productive work.

A generic process model, iterative process flow, linear process, evolutionary process,parallel process

A generic process model, iterative process flow, linear process, evolutionary process,parallel process

a process was defined as a collection of work activities, actions, and
tasks that are performed when some work product is to be created. Each of these
activities, actions, and tasks reside within a framework or model that defines their
relationship with the process and with one another.
Each software engineering action is defined by a task set that identifies the work
tasks that are to be completed, the work products that will be produced, the quality
assurance points that will be required, and the milestones that will be used to indicate
defines five framework activities—communication, planning, modeling,
construction, and deployment.

one important aspect of the software process
This aspect—called process flow—describes how the framework
activities and the actions and tasks that occur within each framework
activity are organized with respect to sequence and time.

  • A linear process flow executes each of the five framework activities in sequence, beginning with communication and culminating with deployment.

linear process flow

  • An iterative process flow repeats one or more of the activities before proceeding to the next.

iterative process flow

  • An evolutionary process flow executes the activities in a “circular” manner.

evolutionary process flow

  • A parallel process flow executes one or more activities in parallel with other activities.

parallel process flow

Software characteristics that different from hardware, Software Application Domains

Software characteristics that different from hardware, Software Application Domains

1. Software is developed or engineered; it is not manufactured in the classical sense
2. Software doesn’t "wear out."
3. Although the industry is moving toward component-based construction, most software continues to be custom built.

seven broad categories of computer software

1. System software
2. Application software
3. Engineering/scientific software
4. Embedded software
5. Product-line software
6. Web applications
7. Artificial intelligence software