Software Development Life Cycle Models Software life cycle models describe phases of the software cycle and the order in which those phases are executed. There are many different types of models, and many companies adopt their own, but all have very similar patterns.
Diagram of Formal Transformation Requirements Definition Formal Specification Formal Transformation Integration and system Testing Maintenance
Diagram of Formal Transformation Requirements Definition Formal Specification Formal Transformation Integration and system Testing Maintenance Formal Specification The software requirements and specifications are combined in this phase and are expressed mathematically involves
Diagram of Formal Transformation Requirements Definition Formal Specification Formal Transformation Integration and system Testing Maintenance involves Formal Transformation The design implementation and unit testing are done in this phase, using mathematical notations.
What is Formal Transformation? Formal transformation is a particular kind of mathematically-based technique for the specification, development and verification of hardware and software systems. It is similar to the waterfall model but it’s specification is converted to a mathematical module and based on functions which are defined using mathematical notations.
Formal Transformation It is a mathematical method used to: – Specify a hardware and/or a software system. – Verify whether a specification is realizable. – Prove properties of a system without necessarily running the system.
Formal Transformation It is similar to the waterfall model as each phase has to be finished before moving on to the next. It is used especially when developing systems that require safety, reliability and security.
Examples of Formal Approach
Formal Methods B-Method Petri Nets ATP (Automated Theorem Proving) RAISE (Rigorous Approach to Industrial Software Engineering) VDM (Vienna Development Method)
Examples B-Method - B is a tool-supported method based around AMN (Abstract Machine Notation), used in the development of computer software. It supports development of programming language code from specifications. It also has robust, commercially available tool support for specification, design, proof and code generation. Petri Nets (Place/Transition Net or P/T Net) – Petri nets have an exact mathematical definition of their execution semantics, with a well-developed mathematical theory for process analysis.
Examples continued Automated Theorem Proving or Automated Deduction - is the proving of mathematical theorems by a computer programs. RAISE - consists of a set of tools based around a specification language (RSL) for software development. VDM (Vienna Development Method) –is one of the first established formal methods.
Advantages of formal transformation It is precise and free of errors. – Formal transformation is said to be error-free due to the tedious mathematical specifications which allows no room for errors. It is said to be suitable for safety critical system. – This is based on its error free nature. Formal transformation ensures that the program or software runs as it is supposed to without any glitches that will affect the running of any vulnerable systems.
Advantages of formal transformation continued It has the correctness proofs. – Formal transformation has been proven that a program will operate properly.
Disadvantages of formal transformation It is very costly. It introduces extra complexity. It requires specialized expertise. – This is so because of it’s tedious nature.
This method stems from the Waterfall Model and therefore is sequential. It is error free due to the mathematical specifications and because of its error free nature it is suitable for safety critical systems. It however is costly and requires special experts to develop.