Software Engineering and CS Resources !

Provide useful guidelines, tips, and references for Computer Science and Software Engineering students, professional, and normal computer users that we have found from our research so that you don't have to spend 100's of hours researching or searching those information again.

Name:
Location: WI

Sunday, October 15, 2006

Software Lifeccle

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.

Four fundamental process activities

Software specification (requirements - functionality & constraints)
Software development (design, implementation)
Software validation (ensure that the software meets the customer needs)
Software evolution (evolve to meet changing customer needs)

Ordering of software processes and activities.
Waterfall model: a linear sequence of activities; after each stage is defined it is 'signed-off' and development goes on to the next stage

requirements definition
system and software design
implementation & unit testing
integration & system testing
operation & maintenance (including installation & checkout)
retirement.

Evolutionary development: planned development of multiple releases of a product (as it evolves). Initial system is developed from very abstract specifications and the systems is refined with customer input. Specification, development and validation are interleaved.

Formal transformation: A formal mathematical specification is transformed, using mathematical methods, to a program.
System assembly from reusable components: The development process focuses on integrating parts.

Other
Incremental model: concept, requirements, (design, implementation, test, installation & checkout, operation & maintenance, replacement)*.
Boehm's spiral model: a sequence of cycles each of which is the sequence
Elaboration of entity objectives, constraints, and alternatives
Evaluate alternatives relative to objectives and constraints, and identify major sources of risk.
Elaborate the definition of software entities for a project.
Plan the next cycle. Terminate for a project if it is too risky. Secure managment commitment.
Embedded system model (DoD-Std-2167 (1988))
V-Model
Sawtooth Model
Shark Tooth Model
Unified Software Development Process
Issue-Based Life Cycle Model
Synchronize and stabilize model (Microsoft): what team members are doing is continuously synchronized.
Planning phase
vision statement
specification document
schedule and feature team formation
Design phase
1. first 1/3 of features (critical features, shared components)
2. second 1/3 of features
3. final 1/3 of features (less critical features)
Stabilization phase
internal testing
external testing
release preparation
Cleanroom process model
Extreme Programming
Exploration
Planning
Iterations to First Release
Productionizing
Maintenance - the normal state of an XP project which consists of repeated cycles of the previous steps.
Death