Partner in major projects for more than 10 years Airbus Eurocopter - - PowerPoint PPT Presentation
Partner in major projects for more than 10 years Airbus Eurocopter - - PowerPoint PPT Presentation
Partner in major projects for more than 10 years Airbus Eurocopter Tiger Jason TNIs line of products Real Time Sildex Stood Object Procedural Oriented OpenTool/UML Orchis/SADT OpenTool/Meta Smalltalk Not Time Constrained Stood
TNI’s line of products
Object Oriented Real Time
Procedural Not Time Constrained
Stood
Sildex OpenTool/UML OpenTool/Meta Smalltalk Orchis/SADT
Stood
A software design tool
Software Analysis
Users Requirements
Unit Testing
Operational Constraints
Architectural Design Detailed Design & Coding
Software Requirements
Software Design
with STOOD
Goal : to find and justify A Solution (and preferably, the best possible) that complies with:
- The given Problem (defined by the Software Analysis)
- and various operational constraints…
STOOD
documentation code
check reports
requirements
Don’t confuse the Problem with your Solution
Software Design
with STOOD
The step you can’t afford to overlook Operational contraints:
1- Choice of a design strategy:
- Object Oriented
- Function Oriented
- Real-Time Oriented
2- Development constraints
- Team work
- Subcontractors
- Reuse, Configuration Management, ...
3- Implementation constraints:
- Target language
- Hardware
- Real-Time constraints
- Distributed applications
all these strategies are covered by the modular design approach easily managed thanks to the hierarchical structure and visibility rules well supported by underlying concepts and customizable code generators
Architectural Design
with Stood Goals:
- Focus on architecture
- Hide low-level complexity
- Master inter-dependencies
- Provide a step by step
elaborated process
Means:
- Modules
- Hierarchy
- Provided & Required Interfaces
- formalized design process & rules
Solution: The HOOD method
- Easy to use and simple graphical notation
- Real-Time patterns
- Support for Distributed Systems
- Direct mapping with Ada95
HOOD Diagram
interactive view
HOOD Diagram
structural view
Goals:
- Complete the application within
the architectural design framework
- Perform design checking
- Produce documentation
- Generate code and round-trip
engineering
Means:
- Object Description Skeleton
- Cross-References, Rules Checkers,
Schedulability Analysis, Metrics, ...
- Standard documentation set
- Ada, C and C++ code generators &
reversors.
- Comprehensive structured textual notation
- Customizable generators
- Users Requirements traceability
- Batch mode, Interchange format, ...
Detailed Design
with Stood Solution: The HOOD method
HOOD Textual Description
The HOOD Real-Time model
Operation constraints:
- internal state (state-transition diagram)
- protocol (wait-reply, acknowledge, asynchronous)
- concurrency (read-write, read only, …)
Three Principles:
- invariance of call to remote services
- client-server assymetry
- separation between behavioral and procedural code
Hard Real-Time HOOD:
- cyclic objects
- sporadic objects
- protected objects
Verification tools (1)
- Cross References Tables
- Call Trees
- Data Access Charts
Verification tools (2)
- HOOD Design Rules
- Metrics
- Schedulability Analysis
- Requirement Coverage
Documentation Tool
To automatically generate a completely structured design documentation:
- PostScript™
- HTML
- Word™
- FrameMaker™
- Interleaf™
Ada code generation
with STOOD
a HOOD passive object a HOOD passive class a HOOD active object a HOOD active class a HOOD passive class with concurrency constraints
And also: Generics, Exceptions, Partitions, ... an Ada package an Ada package with a tagged type an Ada package with a task an Ada package with a task type an Ada package with a protected type
Conclusions
STOOD is not yet another UML-like modeling tool for Ada or C Real-Time developments:
- it focuses on the Software Design phase
- it offers a well guided step by step Process
- it supports a completely integrated Real-Time model
- it produces consistent Code and Documentation
- it was developed with Ada in mind
- it is easy to integrate into an existing environment
- it has been improved with feedback