A description of the seven key principles of the Praxis High Integrity Systems 'Correctness by Construction' approach to software engineering:End:
 

Praxis High Integrity Systems logo

Praxis High Integrity Systems Limited
arrowHome arrowSoftware Engineering arrowOur Approach arrowPrinciples of Correctness by Construction
Photo




Contact for Software Engineering
Email

We call our approach to software engineering, 'Correctness by Construction'. The seven key principles of this approach are:

1 Expect requirements to change. Indeed, we welcome change as they can give you, the customer, a competitive advantage in a continually changing and hotly contested marketplace. At Praxis High Integrity Systems, we deal with changing requirements by adopting an incremental approach and paying increased attention to design to accommodate change. We apply more rigour, rather than less, to avoid costly and unnecessary rework.

2 Know why you're testing. We recognise that there are two distinct forms of testing, namely to build correct software (debugging) and to show that the software built is correct (verification). These two forms of testing require two very different approaches.

3 Eliminate errors before testing. Better yet, deploy techniques that make it difficult to introduce errors in the first place. Testing is the second most expensive way of finding errors. The most expensive is to let your customers find them for you.

4 Write software that is easy to verify. If you don't, verification and validation (including testing) can take up to 60% of the total effort. Coding typically takes only 10%. Even doubling the effort on coding will be worthwhile, if it reduces the burden of verification by as little as 20%.

5 Develop incrementally. Make very small changes, incrementally. After each change, verify that the updated system behaves according to its updated specification. Making small changes makes the software much easier to verify.

6 Some aspects of software development are just plain hard. There is no silver bullet. Don't expect any tool or method to make everything easy. The best tools and methods take care of the easy problems, allowing you to focus on the difficult problems.

7 Software is not useful by itself. The executable software is only part of the picture. It is of no use without user manuals, business processes, design documentation, well-commented source code and test cases. These should be produced as an intrinsic part of the development, not added at the end. In particular, recognise that design documentation serves two distinct purposes:

a To allow the developers to get from a set of requirements to an implementation. Much of this type of documentation has outlived its usefulness once the implementation exists.

b To allow the maintainers to understand how the implementation satisfies the requirements.
A document aimed at maintainers is much shorter, cheaper to produce and more useful than a traditional design document.
 

© Website Content Praxis High Integrity Systems 2008

arrowNormal text arrowLarge text
 

corner Site index
cornerSitesearch
corner
Products and Services
line
Key Markets
line
Newsline
Exceptional Peopleline
Publications and Articlesline
About Us
line
Photo
Contact Us +44 01225 466991
bulletOffice contact details, maps
bulletRecruitment and vacancies