Real Time UML Workshop for Embedded SystemsBy
- Bruce Douglass
This practical new book provides much-needed, practical, hands-on experience capturing analysis and design in UML. It holds the hands of engineers making the difficult leap from developing in C to the higher-level and more robust Unified Modeling Language, thereby supporting professional development for engineers looking to broaden their skill-sets in order to become more saleable in the job market. It provides a laboratory environment through a series of progressively more complex exercises that act as building blocks, illustrating the various aspects of UML and its application to real-time and embedded systems. With its focus on gaining proficiency, it goes a significant step beyond basic UML overviews, providing both comprehensive methodology and the best level of supporting exercises available on the market. Each exercise has a matching solution which is thoroughly explained step-by-step in the back of the book. The techniques used to solve these problems come from the authorâs decades of experience designing and constructing real-time systems. After the exercises have been successfully completed, the book will act as a desk reference for engineers, reminding them of how many of the problems they face in their designs can be solved.
PRIMARY MARKET: Embedded Design Engineers, Electrical Engineers, Computer Engineers, Software Engineers , System Engineers, System ArchitectsSECONDARY MARKET: Upper-level undergrad and post-graduate level electrical and computer engineering students
Paperback, 432 Pages
Published: September 2006
"As you might expect, there are plenty of UML diagrams. Real-time UML specifications are used throughout, consistent with the purpose of the book. Designers with UML expertise who want to understand how to address real-time applications will find this book useful, as will those in the real-time world who need to understand how to bring UML to bear on the design problem."- William Wong, Electronic Design
- Chapter 1: Basic UML introduction Use Cases and requirementsStructural modeling: classes and objectsBehavioral modeling Interactions Statemachines Activity diagramsChapter 2: The ROPES ProcessProject lifecycles Waterfall Spiral Semi-spiralWorkflowsArtifactsSpiral development in detail Analysis Design Translation TestingPart II: ExercisesChapter 3: Specifying the RequirementsOverview: What you will learnIdentifying kinds of requirementsGrouping RequirementsIdentifying Use CasesCapturing Quality of service requirements in Use CasesOperational architecture: Identifying ScenariosSpecification architecture: State machines for requirements CaptureSpecification architecture: Capturing complex requirementsSpecification architecture: Capturing algorithms with activity diagramsValidating requirements model: Testing the requirements with executionChapter 4: Systems ArchitectureOverview: What you will learnIdentifying system architecturePerforming tradeoff analysis for different architecturesSpecifying subsystem interfacesMapping requirements to subsystemsPerforming hardware-software decomposition: Deployment architectureOrganizing your modelsChapter 5: Object AnalysisOverview: What you will learnIdentifying Objects 1: Applying object identification strategiesIdentifying Objects 2: Applying object identification strategiesValidation your object analysis: Elaboration of scenariosAdding behavior: Reactive objects with state machinesAdding behavior: Algorithms with activity diagramsAdding behavior: Mixing state machines with activity diagramsValidating your behaviorChapter 6: Concurrency ArchitectureOverview: What you will learnIdentifying TasksAnalyzing the task setOptimizing the task setPreemptive multitaskingInterrupt HandlersCyclic executivesMapping analysis objects to the concurrency model Concurrent scenario analysisChapter 7: Distribution ArchitectureOverview: What you will learnIdentifying distribution architectureAsymmetric distribution: Master-SlaveAsymmetric distribution: Proxy PatternSymmetric distribution: Broker PatternChapter 8: Safety and Reliability ArchitectureOverview: What you will learnIdentifying channelsHomogeneous redundancyHeterogeneous redundancy with fail-safe stateHeterogeneous redundancy without fail-safe stateLightweight redundancyChapter 8: Optimizing CollaborationsOverview: what you will learnOptimizing reusabilityOptimizing data accessMinimizing complexityOptimizing robustnessOptimizing time-efficiencyOptimizing space-efficiencyUsing parametric classesChapter 9: Detailed DesignOverview: what you will learnManaging visibility and accessManaging data complexityEnsuring pre- and post-conditionsManaging state complexityManaging algorithm complexityMaximizing numeric accuracyPart III: Answers