110 likes | 194 Views
Seminar 236800: Tools for Software Analysis. Prof. Shmuel Katz Taub 635 Office hour: Monday 11-12 katz@cs.technion.ac.il Phone: 829-4322. Technical Parts. For those not registered: Grad Students, please do so; Others: contact me…
E N D
Seminar 236800: Tools for Software Analysis Prof. Shmuel Katz Taub 635 Office hour: Monday 11-12 katz@cs.technion.ac.il Phone: 829-4322
Technical Parts • For those not registered: Grad Students, please do so; Others: contact me… • Browse topics, and choose 3 (in order of preference) and email them to me, soon: katz@cs.technion.ac.il • Gather material, prepare Powerpoint and “user experience”, show to me in week before presentation, present [time—to be determined] • Attendance is mandatory.
User Experience • For each tool, seminar participants should have some experience of using it. • For Open source tools: • Install in SSDL • For 20-30 minutes, do a directed example • If possible, gather feedback • For (unavailable) industrial tools: • Design a quiz or paper experiment • Analyze results, and show feedback in following week
Overview of tools • Will give general idea---but you need to investigate on your own • I am only partially familiar with many of the tools, and we should learn together…(can suggest more) • YOU will be the expert on your tool… • Want information and evaluation—NOT an advertisement…include underlying algorithms • Minimize motivation, build on previous presentations, include comparisons
Model Analyzers • For early detection of problems • Alloy analyzer: Analyzes declarative models of data and operations, and checks if desired properties hold for them • Esterel Scade: Modelling and analysis for synchronous concurrent safety-critical systems…a commercial product
Testing and Dataflow • Indus: a program slicer for Java, with static analysis capabilities, uses dataflow…from Kansas, has “interesting” users (CIA) • LDRA Tool suite: Has integrated tool collection for Requirements tracing, Design analysis, Test generation and Test Coverage analysis…commercial product
Java-based spec., analysis, and model checking • JML: Java Modelling Language, with Common analysis tools…widely used • ESC/Java2: advanced static analysis extending JML, considered “practical” • Java Pathfinder: reachability and invariant checker, over Java bytecode, from NASA, now Open Source
C-based model checking • SLAM/SDV/RDK: model checking along with static analysis for Microsoft software drivers…used in real development • Blast: C model checking for hardware and software, from Berkeley and Lusanne • CMBC: Bounded model checking for C and C++, from CMU, widely used
General model checking • Spin: LTL model checking for the Promela language (like C with restrictions)..Open source, after Bell Labs and NASA • Terminator: from Microsoft, to prove termination and liveness properties
Inductive proofs • Spec#: Inductive assertion checking for C# programs, interactive annotation and checking during system development, experimental system from Microsoft…puts inductive methods back on the map
Reminder: To do • Grad students: register • Others not registered: wait for me to mail you if there is place • Go over possibilities by looking at Websites • Select 3 candidates, and mail to me • I will send a message with allocations…time and whether in pairs is still not fully decided • Starting next Monday, meet 12:30-14:30 (including part in SSDL) • Attendance is mandatory