UML与并行分布式实时应用程序设计(英文本)

UML与并行分布式实时应用程序设计(英文本)
作 者: Hassan Gomaa
出版社: 科学出版社
丛编项: UML与面向对象设计影印丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UML
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《UML与并行分布式实时应用程序设计(英文本)》作者简介

内容简介

本书对UML在并行分布式实时系统开发中的应用作了详细、全面的介绍,尤其对面向对象方法解决此类系统特有的问题作了有针对性的讲解。主要内容包括OO软件工程的生命周期、用案建模技术在嵌入式系统中的应用、静态和动态分析建模、对象和类的构建、有限状态机和状态表、分布式对象技术、并行系统的架构设计,等等。本书适用于并行分布式实时系统开发人员和自学者。

图书目录

Foreword by Peter Freeman xiii

Foreword by Bran Selic xv

Preface xvii

PART I UML NOTATION, DESIGN CONCEPTS,

TECHNOLOGY, LIFE CYCLES, AND METHODS

1 Introduction

1.1 Object-Oriented Methods

and the Unified Modeling Language

1.2 Method and Notation

1.3 Concurrent Applications

1.4 Real-Time Systems and Applications

1.5 Distributed Systems and Applications

1.6 Summary

2 Overview of UML Notation

2.1 UML Diagrams

2.2 Use Case Diagrams

2.3 UML Notation for Classes and Objects

2.4 Class Diagrams

2.5 Interaction Diagrams

2.6 Statechart Diagrams

2.7 Packages

2.8 Concurrent Collaboration Diagrams

2.9 Deployment Diagrams

2.10 UML Extension Mechanisms

2.11 The UMLas a Standard

2.12 Summary

3 Software Design and Architecture Concepts

3.1 Object-Oriented Concepts

3.2 Information Hiding

3.3 Inheritance

3.4 Active and Passive Objects

3.5 Concurrent Processing

3.6 Cooperation between Concurrent Tasks

3.7 Information Hiding Applied to Access Synchronization

3.8 Monitors

3.9 Design Patterns

3.10 Software Architecture and Component-Based Systems

3.11 Summary

4 Concurrent and Distributed System Technology

4.1 Environments for Concurrent Processing

4.2 Runtime Support for Multiprogramming

and Multiprocessing Environments

4.3 Task Scheduling

4.4 Operating System Input/Output Considerations

4.5 Client/Server and Distributed System Technology

4.6 World Wide Web Technology

4.7 Distributed Operating System Services

4.8 Middleware

4.9 Common Object Request Broker Architecture (CORBA)

4.10 Other Component Technologies

4.11 Transaction Processing Systems

4.12 Summary

Software Life Cycles and Methods

5.1 Software Life Cycle Approaches

5.2 Design Verification and Validation

5.3 Software Testing

5.4 Evolution of Software Design Methods

5.5 Evolution of Object-Oriented

Analysis and Design Methods

5.6 Survey of Concurrent and Real-Time Design Methods

5.7 Summary

PART II COMET: CONCURRENT OBJECT MODELING

AND ARCHITECTURAL DESIGN WITH UML

6 Overview of COMET

6.1 COMET Object-Oriented Software Life Cycle

6.2 Comparison of the COMET Life

Cycle with Other Software Processes

6.3 Requirements, Analysis, and Design Models

6.4 The COMET in a Nutshell

6.5 Summary

7 Use Case Modeling

7.1 Use Cases

7.2 Actors

7.3 Actors, Roles, and Users

7.4 Identifying Use Cases

7.5 Documenting Use Cases in the Use Case Model

7.6 Examples of Use Cases

7.7 Use Case Relationships

7.8 Use Case Packages

7.9 Summary

8 Static Modeling

8.1 Associations between Classes

8.2 Composition and Aggregation Hierarchies

8.3 Generalization/Specialization Hierarchy

8.4 Constraints

8.5 Static Modeling and the UML

8.6 Static Modeling of the System Context

8.7 Static Modeling of Entity Classes

8.8 Summary

Object and Class Structuring

9.1 Object Structuring Criteria

9.2 Categorization of Application Classes

9.3 Object Structuring Categories

9.4 External Classes and Interface Classes

9.5 Interface Objects

9.6 Entity Objects

9.7 Control Objects

9.8 Application Logic Objects

9.9 Subsystems

9.10 Summary

10 Finite State Machines and Statecharts

10.1 Finite State Machines

10.2 Events and States

10.3 Finite State Machines and Objects

10.4 Examples of Statecharts

10.5 Events and Conditions

10.6 Actions

10.7 Modeling Different Aspects of the System

10.8 Hierarchical Statecharts

10.9 Concurrent Statecharts

10.10 Guidelines for Developing Statecharts

10.11 Developing Statecharts from Use Cases

10.12 Example of Developing a Statechart from a Use Case

10.13 Summary

11 Dynamic Modeling

11.1 Object Interaction Modeling

11.2 Message Labels on Interaction Diagrams

11.3 Dynamic Analysis

11.4 Non-State-Dependent Dynamic Analysis

11.5 Example of Non-State-Dependent Dynamic Analysis

11.6 State-Dependent Dynamic Analysis

11.7 Example of State-Dependent

Dynamic Analysis: Banking System

11.8 Example of State-Dependent

Dynamic Analysis: Cruise Control System

11.9 Summary

12 Software Architecture Design

12.1 Software Architectural Styles

12.2 System Decomposition Issues

12.3 Guidelines for Determining Subsystems

12.4 Consolidated Collaboration Diagrams

12.5 Subsystem Software Architecture

12.6 Separation of Concerns in Subsystem Design

12.7 Subsystem Structuring Criteria

12.8 Examples of Subsystem Decomposition

12.9 Static Modeling at the Design Level

12.10 Summary

13 Architectural Design of Distributed Applications

13.1 Configurable Architectures

and Software Components

13.2 Steps in Designing Distributed Applications

13.3 System Decomposition

13.4 Designing Subsystem Interfaces

13.5 Transaction Management

13.6 Design of Server Subsystems

13.7 Distribution of Data

13.8 System Configuration

13.9 Summary

14 Task Structuring

14.1 Concurrent Task Structuring Issues

14.2 Task Structuring Categories

14.3 I/O Task Structuring Criteria

14.4 Internal Task Structuring Criteria

14.5 Task Priority Criteria

14.6 Task Clustering Criteria

14.7 Design Restructuring by Using Task Inversion

14.8 Developing the Task Architecture

14.9 Task Communication and Synchronization

14.10 Task Behavior Specifications

14.11 Summary

15 Class Design

15.1 Designing Information Hiding Classes

15.2 Designing Class Operations

15.3 Data Abstraction Classes

15.4 Device Interface Classes

15.5 State-Dependent Classes

15.6 Algorithm Hiding Classes

15.7 User Interface Classes

15.8 Business Logic Classes

15.9 Database Wrapper Classes

15.10 Software Decision Classes

15.11 Inheritance in Design

15.12 Examples of Inheritance

15.13 Class Interface Specifications

15.14 Summary

16 Detailed Software Design

16.1 Design of Composite Tasks

16.2 Synchronization of Access to Classes

16.3 Designing Connectors for Inter-Task Communication

16.4 Task Event Sequencing Logic

16.5 Summary

17 Performance Analysis of Concurrent

Real-Time Software Designs

17.1 Real-Time Scheduling Theory

17.2 Advanced Real-Time Scheduling Theory

17.3 Performance Analysis Using

Event Sequence Analysis

17.4 Performance Analysis Using Real-Time

Scheduling Theory and Event Sequence Analysis

17.5 Example of Performance Analysis

Using Event Sequence Analysis

17.6 Example of Performance Analysis

Using Real-Time Scheduling Theory

17.7 Example of Performance Analysis Using Real-Time

Scheduling Theory and Event Sequence Analysis

17.8 Design Restructuring

17.9 Estimation and Measurement

of Performance Parameters

17.10 Summary

PART III CASE STUDIES IN CONCURRENT, DISTRIBUTED,

AND REAL-TIME APPLICATION DESIGN

18 Elevator Control System Case Study

18.1 Problem Description

18.2 Use Case Model

18.3 Static Model of the Problem Domain

18.4 Object Structuring

18.5 Dynamic Model

18.6 Statechart Model

18.7 Consolidation of Collaboration Diagrams

18.8 Subsystem Structuring

18.9 Structuring System into Tasks

18.10 Design of Distributed Elevator Control System

18.11 Design of Information Hiding Classes

18.12 Developing Detailed Software Design

18.13 Target System Configuration

18.14 Performance Analysis of Non-Distributed

Elevator Control System

18.15 Performance Analysis of Distributed

Elevator Control System

19 Banking System Case Study

19.1 Problem Description

19.2 Use Case Model

19.3 Static Modeling

19.4 Object Structuring

19.5 Dynamic Modeling

19.6 ATM Statechart

19.7 Design of Banking System

19.8 Consolidating the Collaboration Model

19.9 Structuring the System into Subsystems

19.10 Design of ATM Client Subsystem

19.11 Design of Bank Server Subsystem

19.12 Configuration of Banking System

19.13 Alternative Design Considerations

19.14 Task Behavior Specifications

20 Cruise Control and Monitoring System Case Study

20.1 Problem Description

20.2 Use Case Model

20.3 Use Case Descriptions

20.4 Problem Domain Static Modeling

20.5 Dynamic Modeling

20.6 Subsystem Structuring

20.7 Refined Static Modeling

20.8 Structuring the System into Tasks

20.9 Information Hiding Class Design

20.10 Developing Detailed Software Design

20.11 Software Architecture of Distributed

Automobile System

21 Distributed Factory Automation System Case Study

21.1 Problem Description

21.2 Use Case Model

21.3 Conceptual Static Model of the Problem Domain

21.4 Object Structuring

21.5 Dynamic Model

21.6 Subsystem Structuring

21.7 Distributed Software Architecture

21.8 System Configuration

22 Electronic Commerce System Case Study

22.1 Electronic Commerce Problem

22.2 Use Case Model

22.3 Agent Support for Electronic Commerce System

22.4 Object Broker Support for Electronic

Commerce System

22.5 Static Modeling of the Problem Domain

22.6 Collaboration Model

22.7 Distributed Software Architecture

Appendix A Conventions and Alternative Notations

A.1 Conventions Used in This Book

A.2 Alternative Notation for Stereotypes

A.3 Alternative Notation for Active Objects

Glossary

Bibliography

Index