Section 1: Introduction and Behavioral Modeling
- Introduction to software development processes
- Waterfall model
- Iterative (or incremental) model
- Agile model
- Requirements modeling
- Domain analysis
- UML Use case models
- Behavioral modeling
- UML activity diagrams (very useful to model concurrent behavior)
- UML state machines (model the behavior of a single object)
- Petri nets
- Specification and Description Language (SDL)
- Lexical analysis (convert a sequence of characters into a sequence of tokens)
- Formal languages
- Regular expressions (method to describe strings)
- Deterministic and Non-deterministic Finite Automata
- Syntax analysis
- Context-free grammar (describes the syntax of a programming language)
- Syntax trees
- Parsers
Section 3: Concurrency
- Logical and physical concurrency
- Mutual exclusion for access to shared resources
- Concurrency and Java programing
- Inter-process communication
- Process scheduling