1 / 8

Methods of Software Development

Methods of Software Development. Karl Lieberherr Spring 2007. 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

andrewsr
Download Presentation

Methods of Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 developmentbased 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 developmentbased 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

More Related