Formal Methods in . Software Engineering[r]
Trang 1in Software Engineering
Adding Formal Methods to a Project
Lecture 32
Trang 2• 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
– technical environments
Trang 3• New system components
– adaptive or corrective maintenance
• Poorly understood requirements
– perfective maintenance
• Highly critical system components
– preventative maintenance
Trang 4• 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
– can be viewed as a training exercise
– demonstrate value of formal methods with low risk
Trang 5• 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
– formal methods can complement existing process steps
Trang 6• Project guidelines and standards
– writing formal specifications requires guidelines
similar to those found in existing
• configuration management procedures
• coding style guidelines
• documentation standards
• Guidelines will have the greatest impact on the
project if they are in place before the project or
training begins
Trang 7• 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
– project objectives (better documentation or early defect detection)