Escher Technologies Escher Technologies
Home Tools Services Support News Company Contact Publications Articles
Escher Technologies
arrowEscher Verification Studio
arrowEscher C Verifier
arrowPerfect Developer
arrowEvaluating the tools
arrowWhat others say
arrowCritical embedded software
arrowYour development process
arrowPD and SPARK Ada
arrowSummary of benefits

Perfect Developer - Making software bugs extinct!

products - Perfect Developer

Step-by-step guide to software development using Perfect Developer

Here is our recommended approach for developing a system or a component. You may wish to adapt it to suit your particular development needs and preferences (for example, your Quality Plan may require additional deliverables); or you may wish to use an agile method such as Extreme Specification instead..

Step summary Detail Deliverables
1 Establish and record the requirements However you wish (Perfect Developer does not address this step). Informal description of requirements.
2 Design an architecture for the system, including the simplest possible abstract model of the data Either construct a UML model (you will need a UML modelling tool) and import the class diagrams into Perfect Developer, or express them directly in Perfect as class skeletons. Perfect class skeletons with method prototypes.
3 Express the requirements in Perfect Express the requirements precisely in Perfect, adding them to the class skeletons. Perfect class skeletons with precise requirements.
4 Specify the class methods For each method prototype, specify what the method achieves (but not how). Perfect class skeletons with precise requirements and method specifications.
5 Prove that the specifications are consistent and meet the requirements Run the Verify function of Perfect Developer. Correct the specifications where Perfect Developer indicates that the requirements may not be met. Proof that the specifications are consistent and meet the requirements.

Having reached this stage, if you are only using Perfect Developer to produce verified specifications, you can stop here and continue developing the system using your preferred means. However, most users will want to produce verified designs as well, continuing as follows. [Note: steps 6 and 7 may not be appropriate and may be omitted, e.g. when developing real-time applications].

Step summary Detail Deliverables
6 Build a prototype Run the Build function of Perfect Developer and compile the generated code. In some cases  you may need to do a limited amount of method refinement first (see step 9). Fully-functional prototype, possibly good enough for production use.
7 Evaluate the prototype Deliver the prototype to target users to try out. Solicit feedback to verify that the user requirements were correctly captured and to establish what performance improvements are needed. Confirmation that user requirements were correctly captured. Report on which aspects of the prototype (if any) provide inadequate performance.
8 Refine the abstract data model to an implementation model, if and where needed Where the prototype provides inadequate performance, determine whether a change in the representation of data is needed in order to achieve the required performance. For example, a set of records might be replaced by a hash table, or supplemented by adding an index. Add the new data as internal data in the Perfect classes. Specify how the internal data is related to the original abstract data model. Internal data added to Perfect classes where needed.
9 Add efficient implementations of methods, where needed Where internal data has been added or performance is insufficient, attach implementation code to the method specifications. You do not always need to provide full implementation code; sometimes it is sufficient merely to specify the major steps required. Implementation code added to Perfect method specifications where needed.
10 Prove that the implementations are correct Run the Verify function of Perfect Developer. Correct the implementations where Perfect Developer indicates that the specifications may not be satisfied. Proof that the implementations and internal data correctly implement the specifications.

If you wish to complete the project using hand-written code, you can now do so, using the verified design as a model. However, for most applications, Perfect Developer can perform this chore for you:

Step summary Detail Deliverables
11 Build the system Run the Build function of Perfect Developer and compile the generated code. System ready for testing
12 Test the system Test the system to ensure that your compiler, linker etc. have not introduced errors and to make sure the required performance has been achieved. If improved performance is still needed in some areas, repeat from step 8. System ready for delivery

The result: a more reliable system produced with less effort than by traditional means!



Home    TOPTOP
Copyright © 1997-2014 Escher Technologies Limited. All rights reserved. Information is subject to change without notice.      Link to  Privacy/Cookie Policy (new window)