User Tools

Site Tools


courses:sdm2014:main

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

courses:sdm2014:main [2014/11/25 22:30]
tsay [Syllabus/Schedule (with links to slides/notes)]
courses:sdm2014:main [2016/02/15 01:48] (current)
tsay [Announcements]
Line 3: Line 3:
  
 ===== Announcements ===== ===== Announcements =====
 +  * 01/30: Grade Report available.
 +  * 01/08: only those topics marked with an * are in the scope of the final exam.
 +  * 12/31: slides for Hoare Logic available.
 +  * 12/24: slides for Logic, OCL, and Automata-Based Model Checking available.
 +  * 12/03: slides for Web Application Security available.
 +  * 11/27: slides for Design Document and an example available.
   * 11/19: {{courses:​sdm2014:​hw3.zip|HW#​3}} due on 12/03.   * 11/19: {{courses:​sdm2014:​hw3.zip|HW#​3}} due on 12/03.
   * 11/19: slides for Design Patterns and some code examples available.   * 11/19: slides for Design Patterns and some code examples available.
Line 48: Line 54:
  
 ===== Syllabus/​Schedule (with links to slides/​notes) ===== ===== Syllabus/​Schedule (with links to slides/​notes) =====
-After an overview of the typical software development process and relevant issues, we will study several software productivity tools, the UML, design patterns, and some fundamental elements of formal software modeling and verification. To practice applying these methods and tools, we will carry out a term project that involves the development of a Web application ​that permits a mobile client. The basics of Web and mobile application development will also be covered in the course+After an overview of the typical software development process and relevant issues, we will study several software productivity tools, the UML, design patterns, and some fundamental elements of formal software modeling and verification. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. 
-  * **Introduction** (.5 week: 09/17a) \\ Overview of software requirements,​ development process, design methods, and verification \\ [{{courses:​sdm2014:​introduction.pdf|slides}}]+  ​***Introduction** (.5 week: 09/17a) \\ Overview of software requirements,​ development process, design methods, and verification \\ [{{courses:​sdm2014:​introduction.pdf|slides}}]
   * **Productivity Tools: Version Control with Git** (.5 week: 09/​17b) ​ [{{courses:​sdm2014:​git.pdf|slides}}]   * **Productivity Tools: Version Control with Git** (.5 week: 09/​17b) ​ [{{courses:​sdm2014:​git.pdf|slides}}]
-  * **Software Modeling: An Overview of UML** (.5 week: 09/24a) \\ Introduction,​ basics of modeling, overview of the UML \\ [{{courses:​sdm2014:​UML_overview.pdf|slides}}]+  ​***Software Modeling: An Overview of UML** (.5 week: 09/24a) \\ Introduction,​ basics of modeling, overview of the UML \\ [{{courses:​sdm2014:​UML_overview.pdf|slides}}]
   * **Productivity Tools: Eclipse and EGit** ​ (.5 week: 09/​24b) ​    ​[{{courses:​sdm2014:​EclipseBasics.pdf|Tips for Using Eclipse}}, {{courses:​sdm2014:​EGitBasics.pdf|EGit:​ Git for Eclipse}}]   * **Productivity Tools: Eclipse and EGit** ​ (.5 week: 09/​24b) ​    ​[{{courses:​sdm2014:​EclipseBasics.pdf|Tips for Using Eclipse}}, {{courses:​sdm2014:​EGitBasics.pdf|EGit:​ Git for Eclipse}}]
   * **Web Application Development** (1 week: 10/01) [{{courses:​sdm2014:​WebProgramming.pptx|slides}}]   * **Web Application Development** (1 week: 10/01) [{{courses:​sdm2014:​WebProgramming.pptx|slides}}]
-  * **Data Modeling** (2 weeks: 10/08, 10/15) \\ Domain Model: What and How (Abstract Models, Notations and Constructs, Basic Business Logics, Crossing Domains, Layers of Abstraction),​ Common Patterns, with Group Exercises and Discussions \\ [slides: {{courses:​sdm2014:​EnterpriseDataModeling.pptx|Enterprise Data Modeling}}, {{courses:​sdm2014:​DomainModel.pptx|Domain Model}}, {{courses:​sdm2014:​DomainModelPatterns.ppt|Common Patterns}}] +  ​***Data Modeling** (2 weeks: 10/08, 10/15) \\ Domain Model: What and How (Abstract Models, Notations and Constructs, Basic Business Logics, Crossing Domains, Layers of Abstraction),​ Common Patterns, with Group Exercises and Discussions \\ [slides: {{courses:​sdm2014:​EnterpriseDataModeling.pptx|Enterprise Data Modeling}}, {{courses:​sdm2014:​DomainModel.pptx|Domain Model}}, {{courses:​sdm2014:​DomainModelPatterns.ppt|Common Patterns}}] 
-  * **Software Modeling: UML Diagrams** (1 week: 10/22a, 10/29a) \\ Structural modeling (//class diagrams, classifiers,​ interfaces, packages//​),​ behavioral modeling (//​interactions,​ use case diagrams, interaction diagrams, activity diagrams//​),​ architectural modeling (//​collaborations,​ deployment diagrams//) \\ advanced structural modeling (//object diagrams, components//​),​ advanced behavioral modeling (//events, state machines, processes and threads, timing constraints//​) \\ [{{courses:​sdm2014:​UML_diagrams.pdf|slides}}]+  ​***Software Modeling: UML Diagrams** (1 week: 10/22a, 10/29a) \\ Structural modeling (//class diagrams, classifiers,​ interfaces, packages//​),​ behavioral modeling (//​interactions,​ use case diagrams, interaction diagrams, activity diagrams//​),​ architectural modeling (//​collaborations,​ deployment diagrams//) \\ advanced structural modeling (//object diagrams, components//​),​ advanced behavioral modeling (//events, state machines, processes and threads, timing constraints//​) \\ [{{courses:​sdm2014:​UML_diagrams.pdf|slides}}]
   * **Term Project Discussions** (.5 week: 10/22b) \\   * **Term Project Discussions** (.5 week: 10/22b) \\
   * **Term Project Discussions** (.5 week: 10/29b) \\   * **Term Project Discussions** (.5 week: 10/29b) \\
   * **Software Development Practice: Team Collaboration** (.5 week: 11/05a) \\ Agile Development Process (Basic Ideas, Eclipse Way, OpenUp, Scrum), Team Collaboration (Version Control, Issues Tracking, Rational Team Concert), Continuous Integration (Basic Ideas, CruiseControl),​ IBM Experience \\ [{{courses:​sdm2014:​SoftwareEngineering.pdf|slides}}]   * **Software Development Practice: Team Collaboration** (.5 week: 11/05a) \\ Agile Development Process (Basic Ideas, Eclipse Way, OpenUp, Scrum), Team Collaboration (Version Control, Issues Tracking, Rational Team Concert), Continuous Integration (Basic Ideas, CruiseControl),​ IBM Experience \\ [{{courses:​sdm2014:​SoftwareEngineering.pdf|slides}}]
   * **Software Development Practice: Cloud Application Development with IBM Bluemix** (.5 week: 11/05b) \\ Overview of Open Source project CloudFoundry and IBM Bluemix, Rapid Cloud Application Development with Composable Cloud Services, Integration with JazzHub (A web-based IDE and Git-Based version control system), Demo -- building scalable cloud applications in minutes \\ [{{courses:​sdm2014:​bluemix.pdf|slides}};​ websites: [[http://​http://​bluemix.net/​|Bluemix]],​ [[http://​http://​https://​hub.jazz.net/​|JazzHub]],​ [[http://​theleanstartup.com/​|The Lean Startup]]; inspiring article: [[http://​www.economist.com/​news/​special-report/​21593580-cheap-and-ubiquitous-building-blocks-digital-products-and-services-have-caused|A Cambrian moment]]]   * **Software Development Practice: Cloud Application Development with IBM Bluemix** (.5 week: 11/05b) \\ Overview of Open Source project CloudFoundry and IBM Bluemix, Rapid Cloud Application Development with Composable Cloud Services, Integration with JazzHub (A web-based IDE and Git-Based version control system), Demo -- building scalable cloud applications in minutes \\ [{{courses:​sdm2014:​bluemix.pdf|slides}};​ websites: [[http://​http://​bluemix.net/​|Bluemix]],​ [[http://​http://​https://​hub.jazz.net/​|JazzHub]],​ [[http://​theleanstartup.com/​|The Lean Startup]]; inspiring article: [[http://​www.economist.com/​news/​special-report/​21593580-cheap-and-ubiquitous-building-blocks-digital-products-and-services-have-caused|A Cambrian moment]]]
-  * **Design Patterns** (2 weeks: 11/12, 11/19) \\ Why design patterns, introduction to creational, structural, and behavioral patterns, GoF patterns \\ [{{courses:​sdm2014:​DesignPatterns.pdf|slides}};​ {{courses:​sdm2014:​CodeExamples.zip|code examples}}] ​+  ​***Design Patterns** (2 weeks: 11/12, 11/19) \\ Why design patterns, introduction to creational, structural, and behavioral patterns, GoF patterns \\ [{{courses:​sdm2014:​DesignPatterns.pdf|slides}};​ {{courses:​sdm2014:​CodeExamples.zip|code examples}}] ​
   * **Term Project Discussions** (.5 week: 11/26a) \\   * **Term Project Discussions** (.5 week: 11/26a) \\
   * **Software Development Practice: Design Document** (.5 week: 11/26b) \\ High level design document, implementation level design document, user story (for Agile) \\ [{{courses:​sdm2014:​DesignDocIntroduction.pdf|slides}},​ notes: {{courses:​sdm2014:​DesignDocExample.doc|An Example Design Document}}]   * **Software Development Practice: Design Document** (.5 week: 11/26b) \\ High level design document, implementation level design document, user story (for Agile) \\ [{{courses:​sdm2014:​DesignDocIntroduction.pdf|slides}},​ notes: {{courses:​sdm2014:​DesignDocExample.doc|An Example Design Document}}]
-  * **Software Security: Web Application Security** (1 week: 12/03) \\ Dynamic Web pages, client-side scripts, security vulnerabilities,​ vulnerabilities detection and prevention \\ [{{courses:​sdm2014:​web_app_security.pdf|slides}}] +  ​***Software Security: Web Application Security** (1 week: 12/03) \\ Dynamic Web pages, client-side scripts, security vulnerabilities,​ vulnerabilities detection and prevention \\ [{{courses:​sdm2014:​web_app_security.pdf|slides}}] 
-  * **Software Modeling: Formal Logic and Correctness Requirements** (.5 week: 12/10a) \\ Propositions,​ proofs, theorems, predicates, models\\ [{{courses:​sdm2014:​logic.pdf|slides}}]+  ​***Software Modeling: Formal Logic and Correctness Requirements** (.5 week: 12/10a) \\ Propositions,​ proofs, theorems, predicates, models\\ [{{courses:​sdm2014:​logic.pdf|slides}}]
   * **Software Modeling: OCL or Alloy** (.5 week: 12/10b) \\ Object Constraint Language (//relation with UML models, values, types, expressions, ​ objects, properties, collection operations//​) \\ [{{courses:​sdm2014:​OCL.pdf|slides}};​ notes: {{courses:​sdm2014:​OCL_examples.pdf|OCL Examples}}]\\ Software modeling, simulation, and checking \\ [{{courses:​sdm2013:​Alloy.pdf|slides}}]   * **Software Modeling: OCL or Alloy** (.5 week: 12/10b) \\ Object Constraint Language (//relation with UML models, values, types, expressions, ​ objects, properties, collection operations//​) \\ [{{courses:​sdm2014:​OCL.pdf|slides}};​ notes: {{courses:​sdm2014:​OCL_examples.pdf|OCL Examples}}]\\ Software modeling, simulation, and checking \\ [{{courses:​sdm2013:​Alloy.pdf|slides}}]
   * **Term Project Discussions** (.5 week: 12/17a) \\   * **Term Project Discussions** (.5 week: 12/17a) \\
   * **Invited Talk** (.5 week: 12/17b) \\   * **Invited Talk** (.5 week: 12/17b) \\
-  * **Software Verification:​ Model Checking** (1 week: 12/24) \\ Automata-based model checking, linear temporal logic, Spin (//Promela, never-claims//​),​ Java PathFinder \\ [slides: {{courses:​sdm2014:​automata_based_model_checking.pdf|Automata-Based Model Checking}}, {{courses:​sdm2014:​temporal_logic_and_automata.pdf|Temporal Logic and Automata}}] +  ​***Software Verification:​ Model Checking** (1 week: 12/24) \\ Automata-based model checking, linear temporal logic, Spin (//Promela, never-claims//​),​ Java PathFinder \\ [slides: {{courses:​sdm2014:​automata_based_model_checking.pdf|Automata-Based Model Checking}}, {{courses:​sdm2014:​temporal_logic_and_automata.pdf|Temporal Logic and Automata}}] 
-  * **Software Verification:​ Hoare-Style Verification** (1 week: 12/31) \\ Axiomatic semantics of programs (//​assertions,​ pre/​post-conditions,​ invariants//​),​ partial and total correctness,​ Frama-C, VeriFast \\ [{{courses:​sdm2014:​hoare_logic.pdf|slides}};​ notes: {{courses:​sdm2014:​hoare_logic_rules.pdf|Rules of Hoare Logic}}, {{courses:​sdm2014:​hoare_logic_proofs.pdf|Proofs with Hoare Logic}}]+  ​***Software Verification:​ Hoare-Style Verification** (1 week: 12/31) \\ Axiomatic semantics of programs (//​assertions,​ pre/​post-conditions,​ invariants//​),​ partial and total correctness,​ Frama-C, VeriFast \\ [{{courses:​sdm2014:​hoare_logic.pdf|slides}};​ notes: {{courses:​sdm2014:​hoare_logic_rules.pdf|Rules of Hoare Logic}}, {{courses:​sdm2014:​hoare_logic_proofs.pdf|Proofs with Hoare Logic}}]
   * **Term Project Presentations (2015/​01/​07)**   * **Term Project Presentations (2015/​01/​07)**
   * **Final (2015/​01/​14)**   * **Final (2015/​01/​14)**
courses/sdm2014/main.1416925850.txt.gz · Last modified: 2014/11/25 22:30 by tsay