Readings - Software Construction - Electrical Engineering and Computer Science - MIT OpenCourseWare
Readings - Software Construction - Electrical Engineering and Computer Science - MIT OpenCourseWare
menu
Software Construction
Readings
Example code for some readings can be found on the 6.005 Github page.
READING TOPICS
Types
Static Checking vs Dynamic Checking
Arrays and Collections
Iterating
1: Static Checking
Methods
Mutating Variables vs Reassigning Variables
Documenting Assumptions
Snapshot Diagrams
Java Collections
2: Basic Java
Java API Documentation
Validation
Test-first Programming
Choosing Test Cases by Partitioning
Blackbox and Whitebox Testing
3: Testing Documenting Testing Strategies
Coverage
Unit Testing and Stubs
Automated Testing and Regression Testing
Why Specifications?
Behavioral Equivalence
Specification Structure
Null References
Feedback
https://ocw.mit.edu/courses/6-005-software-construction-spring-2016/pages/readings/ 1/4
9/12/23, 8:41 PM Readings | Software Construction | Electrical Engineering and Computer Science | MIT OpenCourseWare
READING TOPICS
Mutability
Risks of Mutation
Aliasing is What Makes Mutation Risky
Specifications for Mutating Methods
9: Mutability and Immutability Iterating Over Arrays and Lists
Mutation Undermines an Iterator
Mutation and Contracts
Useful Implementation Types
Invariants
Rep Invariant and Abstraction Function
13: Abstraction Functions and Rep Invariants Documenting the AF, RI, and Safety from Rep Exposure
ADT Invariants Replace Preconditions
Interfaces
Subtypes
Example: MyString
Example: Set
14: Interfaces
Generic Interfaces
Why Interfaces?
Realizing ADT Concepts in Java, Part II
https://ocw.mit.edu/courses/6-005-software-construction-spring-2016/pages/readings/ 2/4
9/12/23, 8:41 PM Readings | Software Construction | Electrical Engineering and Computer Science | MIT OpenCourseWare
READING TOPICS
Recursive Functions
Immutable Lists
Recursive Datatype Definitions
Functions Over Recursive Datatypes
Tuning the Rep
Grammars
17: Regular Expressions and Grammars Regular Expressions
Parser Generators
An Antlr Grammar
Generating the Parser
Synchronization
Deadlock
Developing a ThreadSafe Abstract Data Type
Locking
Monitor Pattern
Thread Safety Argument with Synchronization
23: Locks and Synchronization
Atomic Operations
Designing a Data Type for Concurrency
Deadlock Rears its Ugly Head
Goals of Concurrent Program Design
Concurrency in Practice
https://ocw.mit.edu/courses/6-005-software-construction-spring-2016/pages/readings/ 3/4
9/12/23, 8:41 PM Readings | Software Construction | Electrical Engineering and Computer Science | MIT OpenCourseWare
READING TOPICS
View Tree
How the View Tree is Used
Input Handling
24: Graphical User Interfaces
Separating Frontend from Backend
Background Processing in Graphical User Interfaces
Git Workflow
Viewing Commit History
27: Team Version Control Graph of Commits
Using Version Control as a Team
Accessibility
https://ocw.mit.edu/courses/6-005-software-construction-spring-2016/pages/readings/ 4/4