This shows you the differences between two versions of the page.
courses:sdm2009:main [2009/11/17 15:28] tsay |
courses:sdm2009:main [2022/12/09 11:14] (current) tsay2 [Announcements] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Announcements ===== | ===== Announcements ===== | ||
+ | * Feb. 03: Grade Report available. | ||
+ | * Jan. 15: slides for Linear Temporal Logic available. | ||
+ | * Dec. 24: slides for Automata-Based Model Checking available. | ||
+ | * Dec. 18: slides for Alloy available. | ||
+ | * Dec. 08: old exams and solutions available. | ||
+ | * Dec. 03: slides for UML Part II: Advanced Modeling available. | ||
+ | * Dec. 03: slides for UML Part I and for UML Part II: OCL updated. | ||
+ | * Nov. 26: A note with Example OCL Specifications available. | ||
+ | * Nov. 25: slides for Web Programming and Software Security and for OCL available. | ||
+ | * Nov. 22: slides for Prof. Orna Grumberg's lecture on Model Checking available. | ||
* Nov. 17: slides for Design Patterns available. | * Nov. 17: slides for Design Patterns available. | ||
* Oct. 22: {{courses:sdm2009:hw3.pdf|HW#3}} due on Oct. 29. | * Oct. 22: {{courses:sdm2009:hw3.pdf|HW#3}} due on Oct. 29. | ||
Line 43: | Line 53: | ||
* **Formal Logic** (1.5 weeks: 09/17b, 09/24) \\ propositional logic (//satisfiability, tautologies, deduction/proofs//), first-order logic (//validity, deduction/proofs, soundness, completeness//) \\ [slides:{{courses:sdm2009:logic_propositional.pdf|Propositional Logic}}, {{courses:sdm2009:logic_first_order.pdf|First-Order Logic}}; notes: {{courses:sdm2009:sequent_LK.pdf|System LK}}, {{courses:sdm2009:sequent_proofs.pdf|Example Proofs}}, {{courses:sdm2009:natural_deduction.pdf|Natural Deduction}}] | * **Formal Logic** (1.5 weeks: 09/17b, 09/24) \\ propositional logic (//satisfiability, tautologies, deduction/proofs//), first-order logic (//validity, deduction/proofs, soundness, completeness//) \\ [slides:{{courses:sdm2009:logic_propositional.pdf|Propositional Logic}}, {{courses:sdm2009:logic_first_order.pdf|First-Order Logic}}; notes: {{courses:sdm2009:sequent_LK.pdf|System LK}}, {{courses:sdm2009:sequent_proofs.pdf|Example Proofs}}, {{courses:sdm2009:natural_deduction.pdf|Natural Deduction}}] | ||
* **Program Correctness** (1 week: 10/01) \\ axiomatic semantics of programs (//assertions, pre/post-conditions, invariants//), partial and total correctness \\ [slides: {{courses:sdm2009:hoare_logic.pdf|Hoare Logic}}; notes: {{courses:sdm2009:hoare_logic_rules.pdf|Rules of Hoare Logic}}, {{courses:sdm2009:hoare_logic_proofs.pdf|Proofs with Hoare Logic}}] | * **Program Correctness** (1 week: 10/01) \\ axiomatic semantics of programs (//assertions, pre/post-conditions, invariants//), partial and total correctness \\ [slides: {{courses:sdm2009:hoare_logic.pdf|Hoare Logic}}; notes: {{courses:sdm2009:hoare_logic_rules.pdf|Rules of Hoare Logic}}, {{courses:sdm2009:hoare_logic_proofs.pdf|Proofs with Hoare Logic}}] | ||
- | * **Model Checking** (1 week: 10/08) \\ Guest Lecturer: [[http://www.cs.technion.ac.il/~orna/|Orna Grumberg]], Technion, Israel | + | * **Model Checking** (1 week: 10/08) \\ Guest Lecturer: [[http://www.cs.technion.ac.il/~orna/|Orna Grumberg]], Technion, Israel \\ [{{http://www.cs.technion.ac.il/users/orna/final-8-10-Taiwan-MC.ppt|slides}}] |
- | * **UML - Part I** (1 week: 10/15) \\ introduction, basics of modeling, overview of the UML, structural modeling (//class diagrams, classifiers, interfaces, packages, object diagrams//), behavioral modeling (//interactions, use case diagrams, interaction diagrams, activity diagrams//), architectural modeling (//components, collaborations, patterns, frameworks, component diagrams, deployment diagrams//) \\ [{{courses:sdm2009:UML_PartOne.pdf|slides}}] | + | * **UML - Part I** (1 week: 10/15) \\ introduction, basics of modeling, overview of the UML, structural modeling (//class diagrams, classifiers, interfaces, packages//), behavioral modeling (//interactions, use case diagrams, interaction diagrams, activity diagrams//), architectural modeling (//collaborations, deployment diagrams//) \\ [{{courses:sdm2009:UML_PartOne.pdf|slides}}] |
* **Design Patterns** (4 weeks: 10/22, 10/29, 11/05, 11/12) \\ Guest Lecturers: Jeffrey CH Liu, Clement CW Su, and Jim CL Yu, IBM | * **Design Patterns** (4 weeks: 10/22, 10/29, 11/05, 11/12) \\ Guest Lecturers: Jeffrey CH Liu, Clement CW Su, and Jim CL Yu, IBM | ||
- introduction (//design document, use case, development tool//) \\ [slides: {{courses:sdm2009:version_control.pdf|Version Control}}; notes: {{courses:sdm2009:design_document_example.doc|Design Document Example}}] | - introduction (//design document, use case, development tool//) \\ [slides: {{courses:sdm2009:version_control.pdf|Version Control}}; notes: {{courses:sdm2009:design_document_example.doc|Design Document Example}}] | ||
Line 50: | Line 60: | ||
- structural patterns (//adapter, bridge, composite, flyweight, proxy, decorator, facade//) \\ [slides:{{courses:sdm2009:design_patterns_structural.pdf|Structural Patterns}}] | - structural patterns (//adapter, bridge, composite, flyweight, proxy, decorator, facade//) \\ [slides:{{courses:sdm2009:design_patterns_structural.pdf|Structural Patterns}}] | ||
- behavioral patterns (//chain of responsibility, iterator, observer, mediator, command, memento, state, strategy, template method, interpreter, visitor//) \\ [slides:{{courses:sdm2009:design_patterns_behavioral.pdf|Behavioral Patterns}}] | - behavioral patterns (//chain of responsibility, iterator, observer, mediator, command, memento, state, strategy, template method, interpreter, visitor//) \\ [slides:{{courses:sdm2009:design_patterns_behavioral.pdf|Behavioral Patterns}}] | ||
- | * **Web Programming and Software Security** (1 week: 11/19)\\ dynamic Web pages, client-side scripts, patterns, frameworks, security vulnerabilities, vulnerabilities detection and prevention \\ [slides:{{courses:sdm2009:web_patterns.pdf|Patterns for Web Programming}}] | + | * **Web Programming and Software Security** (1 week: 11/19)\\ dynamic Web pages, client-side scripts, patterns, frameworks, security vulnerabilities, vulnerabilities detection and prevention \\ [slides:{{courses:sdm2009:web_patterns.pdf|Patterns for Web Programming}}, {{courses:sdm2009:web_app_security.pdf|Web Application Security}}] |
- | * **UML - Part II** (2 weeks: 11/26, 12/03) \\ advanced behavioral modeling (//events, state machines, processes and threads, statechart diagrams//), Object Constraint Language (OCL) \\ [slides:{{courses:sdm2009:UML_PartTwo_OCL.pdf|OCL}}; notes: {{courses:sdm2009:UML_OCL_examples.pdf|OCL Examples}}] | + | * **UML - Part II** (2 weeks: 11/26, 12/03) \\ advanced structural modeling (//object diagrams, components//), advanced behavioral modeling (//events, state machines, processes and threads, timing constraints//), Object Constraint Language (OCL) \\ [slides: {{courses:sdm2009:UML_PartTwo_advanced.pdf|Advanced Modeling}},{{courses:sdm2009:UML_PartTwo_OCL.pdf|OCL}}; notes: {{courses:sdm2009:UML_OCL_examples.pdf|OCL Examples}}] |
- | * **Software Modeling Tools** (1 week: 12/10)\\ Alloy (software modeling, simulation, and checking) | + | * **Software Modeling Tools** (1 week: 12/10)\\ Alloy (software modeling, simulation, and checking) \\ [{{courses:sdm2009:Alloy.pdf|slides}}] |
* **Midterm (2009/12/17)** | * **Midterm (2009/12/17)** | ||
- | * **Software Model Checking** (2 weeks: 12/24, 12/31) \\ linear-time model checking (//Kripke structure, linear temporal logic, Büchi automata, automata-theoretic algorithms//), Spin (//Promela, never-claims//), JPF (Java Pathfinder) | + | * **Software Model Checking** (2 weeks: 12/24, 12/31) \\ linear-time model checking (//Kripke structure, linear temporal logic, Büchi automata, automata-theoretic algorithms//), Spin (//Promela, never-claims//), JPF (Java Pathfinder) \\ [slides: {{courses:sdm2009:automata_based.pdf|Automata-Based Model Checking}}, {{courses:sdm2009:linear_temporal_logic.pdf|Linear Temporal Logic}}] |
* **Term Project Presentations (2010/01/07)** | * **Term Project Presentations (2010/01/07)** | ||
* **Program Verification Tools** (1 week: 01/14) \\ Spec#, JML tools (//Common JML Tools, ESC/Java2//) | * **Program Verification Tools** (1 week: 01/14) \\ Spec#, JML tools (//Common JML Tools, ESC/Java2//) | ||
Line 76: | Line 86: | ||
- //Temporal Verification of Reactive Systems: Safety//, Z. Manna and A. Pnueli, Springer-Verlag, 1995. | - //Temporal Verification of Reactive Systems: Safety//, Z. Manna and A. Pnueli, Springer-Verlag, 1995. | ||
- //The Formal Methods Page: //http://formalmethods.wikia.com/wiki/Formal_methods, J. Bowen. (Note: this Web portal provides links to numerous formal methods and tools.) | - //The Formal Methods Page: //http://formalmethods.wikia.com/wiki/Formal_methods, J. Bowen. (Note: this Web portal provides links to numerous formal methods and tools.) | ||
+ | |||
+ | ===== Old Exams and Solutions ===== | ||
+ | |||
+ | [{{courses:sdm:mid2004.pdf|Midterm 2004}}, {{courses:sdm:mid2004_s.pdf|Solutions}}] \\ | ||
+ | [{{courses:sdm:final2004.pdf|Final 2004}}] \\ | ||
+ | [{{courses:sdm:mid2006.pdf|Midterm 2006}}, {{courses:sdm:mid2006_s.pdf|Solutions}}] \\ | ||
+ | [{{courses:sdm:final2006.pdf|Final 2006}}] \\ | ||
+ | [{{courses:sdm:mid2008.pdf|Midterm 2008}}] |