Presentation is loading. Please wait.

Presentation is loading. Please wait.

Methods of Software Development Karl Lieberherr Spring 2007.

Similar presentations


Presentation on theme: "Methods of Software Development Karl Lieberherr Spring 2007."— Presentation transcript:

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


Download ppt "Methods of Software Development Karl Lieberherr Spring 2007."

Similar presentations


Ads by Google