The Auditor General of Canada, Sheila Fraser, released a report on Tuesday that in part examined the purchase of 15 Boeing Chinook helicopters.
all-in cost | delivery date | |
---|---|---|
2006 | $2.0 billion | 2008 |
yesterday | $4.9 billion | expected 2013 |
After the contract was awarded in 2006:
From that moment on, National Defense then spent three years actually defining the requirements, and three years later in 2009, came out with requirements and contract for a helicopter that was very different, totally different, a helicopter that had never flown before, as compared to the one that they had put out in the advance contract award notice.
—Shiela Fraser, CBC interview
Iterative and incremental development is a development process characterized by two features. The first is iteration, meaning the process goes through repeated cycles. The second is incremental, meaning more functionality is added as iterations occur.
The figure shows one complete cycle as a waterfall model, but it is common to skip steps in a cycle.
Iteration makes it possible to identify mistakes so that they can be corrected for the next iteration. Also, modifications can be added in the next iteration.
Gradually adding new features over iterations allows for incremental growth of the software system. Each incremental release can be given to the customer to evaluate.
Iterative incremental development is currently very popular. Many frameworks rely on these ideas:
The Unified Modelling Language (UML) is used to specify, visualize, and document object-oriented systems.
The UML class diagram describes the structure of a software system by showing the classes used in the system, details of the classes (their attributes and methods), and the relationships between the classes.
Very early in the development process it is likely known that a class is needed, but its functionality is largely unknown. In this case, we can use a class diagram containing just the name of the class.
Once more is known about how the class will be used, more details (such as the public attributes) can be added to the class diagram.
When the class needs to be implemented, more features of the class will emerge, such as what methods are required.
Written part will cover regular expressions of
simple to very modest complexity. A link will be given
to the Pattern
documentation.