Download presentation
Presentation is loading. Please wait.
Published byByron Chandler Modified over 9 years ago
1
Methods of Software Development Karl Lieberherr Spring 2007
2
A list of possibilities (from the web) method: a way of doing something, especially in a systematic way. –Statistical methods in Software Engineering (reliability and risk) by Singpurwalla and Wilson –Software development processes: each process as a method –Formal methods: using mathematical approaches to solving software problems (from requirement to implementation level)
3
A list of possibilities (cont.) (from the web) method: a way of doing something, especially in a systematic way. –object-oriented methods of software development generic programming programming by contracts programming with meta classes design patterns –aspect-oriented methods of software development joinpoints, pointcuts, advice
4
What is the goal of methods for software development? modular designs, good separation of concerns easy to understand and modify efficient implementation etc.
5
Methods of software development based on relations and constraints Examples: –design analysis: state machine S over structured states, violating the expected property P. S and !P –code analysis: check a procedure against its declarative spec. –test case generation from data invariants –component assembly and installation Use relational constraint solving engine –successful approach: use SAT solver
6
Methods of software development based on relations and constraints A relational engine is also useful for other domains than software development Other Examples: –course scheduling –network configuration –biology: haplotype inference
7
Build our knowledge from the ground up SAT and CSP solvers How to express relations and constraints in a way most suitable for the software developer and other users? Possibilities: Alloy, Kodkod language, etc. How to translate relations and constraints to SAT and CSP
8
SAT and CSP solvers Use methods of software development to develop SAT and CSP solvers. Methods we want to use: –implementation modeling using transition systems –based on Pragmatic Programmer Tips: Write code that writes code Design with contracts Configure, Don’t integrate Minimize coupling etc
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.