Engineering Software

 (Click to Download PPT)

Lecture 1: Engineering Software?
Can we Engineer Software? Why is software different from bridges? Tools for managing complexity Java
Lecture 2: Java Semantics, Validation)
Java Semantics: Stack and Heap,Object equality and mutability
Validation: Testing and Analysis,Black-box, glass-box testing
Lecture 3: Abstraction by Specification
Validation,Modularity and Specification Characteristics of a Good Specification
Formal and Information Specifications,Requires, Modifies, Effects
Lecture 4: Data Abstraction
Specifying ADTs,Creators, Producers, Observers and Mutators
Representations
Lecture 5: Implementing Data Abstractions
Implementing Data Abstractions,Criteria for selecting a good representation
Lecture 6: Reasoning about Data Abstractions)
Rep Invariants and Abstraction Functions, Reasoning about program correctness
Lecture 7: Tale of Two Graphs
Criteria for selecting a good representation,Rep Invariants and Abstraction Functions,Rep exposure
Lecture 8: Design 
Why Design Matters,Modular Dependency Diagrams,Evaluating Designs
Lecture 9: Handling Mistakes 
Weakly Uses Dependencies,Tradeoffs between no checking, static checking and dynamic checking
Lecture 10: Exceptions
ExceptionsTry and Catch,Checked and Unchecked Exceptions
Lecture 11: Subtyping and Inheritance 
Lecture 12: Subtyping and Inheritance 2
Lecture 13: Behavioral Subtyping 
Lecture 14: Substitution Principle Substitution Principle Eiffel's Type Rules
Lecture 15: Concurrency Race Conditions Deadlocks
Lecture 16: Programming Concurrency 
Substitution Principle Example,Programming Threads in Java,Wait and notify
Lecture 17: Concurrency without Locks 
Why were stop and suspend deprecated?,Linda/JavaSpaces
Lecture 18: CAFEBABE (Java Byte Codes) 
Lecture 19: Java Security 
Java Security,Byte Code Verifier,Reference Monitors
Lecture 20: Hair Dryer Attacks 
Array Subtying Rules,Violating Type Safety,Using type violations to violated security policy
Lecture 21: Garbage Collection 
Stack and Heap Review,Garbage Collection Approaches: Mark and Sweep
   Stop and Copy,  Reference Counting
C Programming Language,Data Abstraction in C,Pointers,Garbage Collection
Lecture 23: Everything Else You Should Know

No comments: