Formal Methods in . Software Engineering[r]
(1)Formal Methods in
Software Engineering
(2)Adding Formal Methods to a Project
• Remember using formal methods is not an all or nothing process
• The level of rigor used should be tailored to fit the specific project with respect to
– system criticality level – budget
– schedule
(3)Best Use of Formal Methods
• New system components
– adaptive or corrective maintenance
• Poorly understood requirements
– perfective maintenance
• Highly critical system components
(4)Management Considerations part 1
• Project staff expertise
– Formal Methods Expert (seeks to match applications with appropriate methods, tools, and techniques)
– Project Domain Expert (evaluates candidate application and identifies the best to experiment with)
• Project scale
– best to only try applying formal methods on 1 or 2 components the first time out
(5)Management Considerations part 2
• Project training
– use existing staff with formal methods expertise – provide inhouse, handson training with formal
methods languages and support tools
– outside experts provide training and advice in early project stages
• Process integration strategy
– few changes needed if requirements analysis procedure are welldefined
(6)Management Considerations part 3
• Project guidelines and standards
– writing formal specifications requires guidelines similar to those found in existing
• configuration management procedures • coding style guidelines
• documentation standards
(7)Technical Considerations part 1
• Type of application
– applications with greater complexity will benefit more from formal methods use than simple applications
– logic and discrete math applications benefit more than numerical applications
• Size of application
– optimal code size is between 4K LOC and 25 KLOC
• Type of formal methods used