110 likes | 229 Views
Formal Methods: for All or for Chosen?. Victor Kuliamin 1 Vitaliy Omelchenko 1 Olga Petrenko 2 1 Institute for System Programming 2 Institute of Open Education Moscow, Russia. Software Development Trends. Growth of software complexity Degradation of software quality Possible solutions ?
E N D
Formal Methods:for All or for Chosen? VictorKuliamin1VitaliyOmelchenko1OlgaPetrenko2 1Institute for System Programming2Institute of Open Education Moscow, Russia
Software Development Trends • Growth of software complexity • Degradation of software quality Possible solutions ? => Formal methods (FM) • Formal requirements analysis • Formal design modeling and analysis • Formal verification • Formal testing Bugs per KLOC before testing
Usual FM Courses • Propositional Calculus, Predicate Calculus, Set theory, λ-Calculus, Higher-order Calculi, Universal Algebra • Type theories, Process algebras, Temporal logics • Z, B, VDM, RSL, ASM
Personal skills Social skills • Self-management • Self-motivation • Initiative • Creativity • Communication • Information presentation • Team work Knowledge Cognitive skills • Information retrieval • Model construction • Model analysis • Integral vision • Math background • General IT • Software Engineering • Close domains Skills and Knowledge of Software Engineers
Common FM Course Structure • Basic formalisms • Formal languages (ASM, VDM, Z, B, …) • Software modeling techniques • Domain modeling • Iterative refinement of models • Formal analysis techniques • Theorem proving • Model checking • Model animation • Tools
Proposed Course Transformation • Contents • “Hide” math • Use “usual” domain concepts • Use extensions of programming languages (JML, Spec#, …) • Strengthen and emphasize tools • Presentation • Active learning
Active Learning Don’t say right things to students let them come to it themselves • Thought activation • Self-motivated decision making • Better involvement in learning
Active Learning Techniques Used • Role-play simulation • Debates, academic controversy • Brainstorming • Cluster • Anticipatory exercises • Portfolio
Debates • Students assigned to “pro” and “contra” groups • Each group seeks arguments in favor of its position • Discussion • Conclusion • Thought motivation • Information presentation skills • Team work skills
Practically useless Increase software reliability Hard to integrate into development process For correct software construction Formal specifications Interesting Complex Many people don’t understand Motivation for developer education Challenging Cluster • Connecting new knowledge with personal experience
Thank you! Questions? Contacts:kuliamin@ispras.ru o-l-petrenko@yandex.ru http://www.ispras.ru/~kuliamin