Saturday, February 7, 2009

Some notes from the first two lecutres

Three "S":
  • Services - what industry is selling; are provided by
  • Systems - package of different interacting software
  • Software - by creating the software we create some system
Three "P":
  • People - we, with different background
  • Project
  • Process
Software can have various
  • function
  • application area (e.g. university or a private company)
  • operation mode (e.g. how many users at a time)
  • scale (e.g. how many lines)
  • data representation (e.g. database type, file types)
  • software criticality
  • software stability
  • software product availability
  • computer system and environment
  • computer resource requirement
  • security requirement
  • reliability requirement
Triangle for "product"
- size = functionality
- quality
- time
-> this is the reason why we still have problems like during the 'software crisis' ('60)
-> NATO Conference 1969 recommends standardization of the software development process

Triangle for "quality"
- process (as skeleton to help people with different backgrounds;p)
- tools
- people

Sofware processes are in the development phase of the software life-cycle. - ?!

Evolution of s. process models:
  • Code-and-fix model ('50)
  • Stagewise model (from stage to stage, '60)
  • Waterfall model ('70)
  • Evolutionary model, Transform model, IID (~'80)
  • Spiral model ('80/'90)
  • Agile development, XP (~2000)
Types of development
  1. Plan driven development - document-driven, code-driven, traditional; emphasis on defining the scope, schedule and costs upfront;
  2. Change-driven development - aim of enabling evolution of product requirements during process of software development; adoption of IID approach;
  • Iterative development - often resulting as a internal iteration release (IIR), a stable, integrated, tested partially, complete system; each iteration may considered as a mini-project, produces a subset of the final system;
  • Incremental development - adding functionality to the system over several releases to the market; one incremental delivery may be composed of several iterations;
  • IID - when the system is developed in several iterations; often called just iterative development;p
NOTICE: in IID increments consist of several iterations each, not the opposite!

* Iterative development - many waterfalls; XP - plenty of waterfalls ;p