Agile/XP Tools

Software Engineering

Software Engineering is a relatively new term which was first used as a title for the World’s first conference on software engineering, sponsored and facilitated by NATO in 1968. It was designated to solve the troublesome problems in building softwares. The concept is to apply engineering disciplines to software design and construction. It aims to make software product predictable in terms of cost, quality and time. Brooks mentioned “No silver bullet” in his article The Mythical Man-Month in 1986, which is to say that there’s no specific solutions for the uncertainties, inconsistencies and complexities. But are there any ways to improve this process? Of course.

The following contents draw heavily from Armando Fox’s slides.

P & D

Plan & Document is one of the methods in the early stage of SE. It emphasizes the importance of plan and document in advance. Here are some key points:

Waterfall Model, 1970

  1. Requirements Analysis and Specification
  2. Architecture design.
  3. Implementation and Integration
  4. Verification.
  5. Maintenance. It believes that “Earlier catch bug, cheaper it is”. But it requires extensive documentations, which may be too heavy and even too “clumsy” sometimes.

Spiral Model, 1986

As far as I am concerned, spiral model is the former prototype of Agile. It emphasizes the whole process of building a healthy software consists of multiple iterations, in which every iteration contains almost every phase that waterfall model requires. Here is the illustration:

- Spiral Model

Rational Unified Process, 2003

It is called Rational for it is first developed by a company called Rational Software.

- From JOSE MANUEL SAMPAYO

The RUP framework is two dimensional, with axes indicating time and content. The time dimension is organized by phases, iterations, and milestones. The content dimension consists of software disciplines containing the workflows, roles, activities, and artifacts as they apply to that discipline. -IBM

Agile Manifesto, 2001

“We are uncovering better ways of developing SW by doing it and helping others do it. Through this work we have come to value:

Extreme Programming, 1999 - 2003

If one thing is good, then do it whenever you can and make best use of it:

- Agile Process

Tools for Agile/XP in Ruby on Rails

· 软件工程