Crs 215 Object Oriented Analysis and Design of Real Time Systems
The course explores the use of UML in the design and analysis of real time applications.
A large part of the course is devoted to coverage of the use of statecharts and
SDL in the design of reactive systems and communications oriented systems
The emphasis is on problem solving. As such, difficult topics such as
allocating of groups of co-operating objects to tasks and the handling of
inter-task communication issues are included.
Since object oriented approaches are often targeted at large and complex systems
the issue of designing frameworks, and of capturing operating system services
and resources via the use of objects are also discussed.
The relationship of UML to other object oriented analysis and design techniques
such as ROOM and HOOD is reviewed, as well as the relationship of UML to
classical structured analysis and design techniques |
Course Outline
Difficulties with Developing Real Time and Embedded Applications
- Getting the Requirements
- System Complexity
- Many different ways to tackle the problem
- Constraints involved in developing products in a market driven environment
Introduction to Object, Object Oriented thinking and UML
- Advantages of the object oriented approach
- Objects as entities having attributes, behaviour, messaging capabilities,
responsibility, and concurrency
- Objects viewed as autonomous machines
- Class diagrams
- Use casses
- Sequence diagrams
- Adding to and organising UML diagrams with notes, packages, constraints
and stereotypes
Real Time Issues
- Timeliness
- Responsiveness
- Concurrency
- Predictability
- Correctness and robustness
- Fault tolerance
- Resource limitations of target environment
- Safety critical systems
Life Cycle Issues
- Requirements analysis and design
- Life cycle models -- waterfall, spiral, iterative
- Integration, verification and validation
- Rapid Application Development (RAD)
- Maintenance
- Reusability
Use case analysis
- Textual descriptions and scenarios
- Use case diagrams
- Sequence diagrams
- Statecharts
- Patterns
Object Identification Strategies
- Nouns
- Causal agents
- Real world items
- Physical devices
- Visual elements
- Control elements
- Collections
Structural Object Analysis
- Object associations
- Generalisation relationships
- Aggregation and composition
- Object attributes
Behavioural Object Analysis
- Simple, State, and Continuous behaviour
- UML Statecharts
- Timing diagrams
- Sequence diagrams
Architectural Design
- Tasking model
- Component model
- Deployment model
Mechanistic and Detailed design
- Mechanistic design patterns
- Data structures and associations
- Algorithmic design
- Exceptions
Human-computer interface modelling
- Requirements analysis
- Involving users
- Rapid prototyping
- Functional decomposition
- Event partitioning
- Menu structuring
- Design and selection of GUI controls
- Using Statecharts for GUI design and validation
Advanced Topics
Tasks and threads
Scheduling and synchronising threads
Resource sharing
Dynamic modeling and Behavioural Patterns
Debugging and testing at the object model level
SDL and formal methods
Real time frameworks
|
Intended Audience
The course is intended for analysts and programmers developing or
maintaining code in working environments geared towards using object oriented
analysis and design approaches based around UML
Attendees are expected to have well developed analytical skills, and some
appreciation of the problems facing real time and embedded systems development.
No detailed knowledge of object oriented programming or of UML is required.
|
Practical Work
The ideas presented are reinforced by syndicate sessions in which groups of
students tackle various analysis and design problems associated with the case
studies that underlie the course.
Each group is required to present and defend their analysis and design work.
Syndicate sessions and presentations take up fifty percent of the time allocated
to the course.
- Developing Class, Sequence and Use Case diagrams to describe scenarios
- Devise statecharts to represent user interface functionality
- Devise statecharts to represent state driven communications protocols
- Devise statecharts to represent a process control system
- Use SDL to specify communications protocols (using TCP/IP as the case study)
- Devise and analyse tasking models corresponding to a given set of requirements
and an object oriented design corresponding to those requirements
- Evaluate the applicability of different thread scheduling and thread synchronisation
strategies to a number of common scenarios
- Be aware of common behavioural patterns - such as the Polling State Pattern,
the Watchdog pattern, the Retriggerable Counter State Pattern, the Component
Synchronisation State Pattern and the Transaction State Pattern.
|