《Executabel UML 技术内幕》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Stephen J. Mellor,(美)Marc J. Balcer编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2003
  • ISBN:7030114019
  • 页数:368 页
图书介绍:Executable UML是软件开发领域的一项重大发明,这方面的著作尚不多见。本书对这一技术做了深入的介绍,比如,怎样用UML将需求物化成为直观的图表,如何用UML产生可执行、可测试的模型,如何将模型翻译成代码,以及如何用Executable UML模型编译器将分散的系统域编译在一起。为加深读者对有关概念和技巧的理解,书中还提供了一个开发成功的大型案例。另外,还提供了两个网址,以便于读者下载有关的模型以及翻译和运行这些模型的工具。

Chapter 1 Introduction 1

1.1 Raising the Level of Abstraction 2

1.2 Executable UML 5

1.3 Making UML Executable 7

1.4 Model Compilers 9

1.5 Model-Driven Architecture 11

1.6 References 12

Chapter 2 Using Executable UML 13

2.1 The System Model 14

2.1.1 Domain Identification 14

2.1.2 Use Cases 16

2.2 Modeling a Single Domain 17

2.1.3 Iterating the System Model 17

2.2.1 Classes 18

2.2.2 State Machines 19

2.2.3 Procedures 22

2.2.4 Iterating the Domain Models 22

Contents 23

Foreword 23

2.2.5 Iterating between System and Domain Modeling 24

2.3 Verification and Execution 25

2.3.1 Model Verification 25

2.3.2 Model Compilation 26

2.3.3 Iterating Verification and Execution 27

2.4 The Big Picture 27

Preface 27

2.5 References 28

Chapter 3 Domains and Bridges 29

3.1 Domains 30

3.1.1 Domain Missions 30

3.1.2 Domain Autonomy 31

3.1.3 Domain Replacement 32

Acknowledgments 33

3.2 Domains and Requirements 33

3.3 Bridges 35

3.4 Aspects and Join Points 38

3.5 Domains and Aspects 39

3.6 References 40

Chapter 4 Use Cases 41

4.1 Basics of Use Cases 42

4.1.1 Actors 42

4.1.2 Use Cases 43

4.1.3 External Signals 45

4.2 Working with Use Cases 47

4.2.1 Single-Domain Use Cases 47

4.2.2 Levels of Use Cases 48

4.2.3 Applying Use Cases 50

4.3 Activity Diagrams 51

4.4 Formalizing Use Cases 53

4.4.1 Preconditions 53

4.4.2 Postconditions 53

4.4.3 Linked Use Cases 54

4.5 Scenarios and Testing 54

4.6 System Modeling 56

4.7 References 56

Chapter 5 Classes and Attributes 57

5.1 Classes 57

5.1.1 Finding Classes 58

5.1.2 Naming Classes 61

5.2 Attributes 64

5.2.1 Finding Attributes 64

5.3.1 Core Data Types 65

5.3.2 Domain-Specific Data Types 65

5.3 Attribute Data Types 65

5.3.3 Using Types 67

5.4 Documenting Classes and Attributes 68

5.4.1 Diagramming Classes and Attributes 68

5.4.2 Class Descriptions 69

5.4.3 Attribute Descriptions 71

5.5 Checking Classes and Attributes 73

5.5.1 Subject-Matter Check 74

5.5.2 Abstraction Checks 74

5.5.3 Attribute Checks 75

5.6 Rules,Rules,Rules 78

5.7 References 79

Chapter 6 Relationships and Associations 81

6.1 Associations 81

6.1.2 Association Meanings 82

6.1.1 Association Names 82

6.1.3 Multiplicity 84

6.2 Association Descriptions 85

6.3 Checking Associations 87

6.3.1 Conditionality 87

6.3.2 Capturing the Correct Classes and Roles 88

6.3.3 Multiple Associations 90

6.4 Association Classes 93

6.5 Generalization and Specialization 95

6.5.1 The Concept of Generalization and Specialization 95

6.5.2 Mutual Exclusion and its Implications 98

6.5.3 Repeated Specialization 99

6.5.4 Multiple Generalization 100

6.5.5 Compound Generalization 103

6.6 Reflexive Associations 103

6.8 References 107

6.7 The Class Model 107

Chapter 7 Class Actions 109

7.1 Object and Attribute Actions 111

7.2 Selection Expressions 112

7.3 Link Actions 114

7.4 Link Object Actions 116

7.5 Generalization Hierarchies 117

7.6 Other Action Languages 119

7.6.1 SMALL 119

7.6.2 TALL 121

7.6.3 Actions and Syntax 122

7.7 References 123

Chapter 8 Constraints 125

8.1 Unique Instance Constraints 125

8.1.1 Single Attribute Identifiers 126

8.1.2 Multiple Attribute Identifiers 129

8.1.3 Multiple Identifiers 131

8.2 Derived Attributes 132

8.3 Referential Constraints 134

8.3.1 Referential Attributes 134

8.3.2 Derived Identifiers 136

8.4 Association Loops 138

8.4.1 Unconstrained Association Loops 139

8.4.2 Redundant Associations 140

8.4.3 Equal Set Constraints 141

8.4.4 Subset Constraints 143

8.5 Constraints Capture Semantics 146

8.6 References 146

Chapter 9 Lifecycles 147

9.1 Concept of a Lifecycle 147

9.2 State Machine 149

9.2.1 Example Class with a State Machine 149

9.2.2 States 151

9.2.3 Events 152

9.2.4 Transitions 153

9.2.5 Procedures 154

9.3 State Transition Table 155

9.3.1 Basics of the State Transition Table 155

9.3.2 Discovering New Transitions 155

9.3.3 Discovering New States and Events 156

9.3.4 Event Ignored and Can't Happen 160

9.4 Creating and Deleting Objects 162

9.4.1 Initial Pseudostates 162

9.4.2 Final Pseudostates 162

9.5 Forming Lifecycles 164

9.6 Lifecycles for Classes 165

9.7 References 167

Chapter 10 Communicating Objects 169

10.1.2 Event Parameters 170

10.1.1 Sending Signals 170

10.1 Signals 170

10.1.3 Signals with Parameters 173

10.1.4 Signals to Self 173

10.1.5 Signals to External Entities 174

10.2 Creating and Deleting Objects 175

10.2.1 Asynchronous Creation and Deletion 175

10.2.2 Synchronous Creation and Deletion 177

10.3 Visualizing Domain Dynamics 178

10.3.1 Collaboration Diagrams 178

10.3.2 Concept of a Execution Trace 180

10.3.3 Sequencing Signals on a Collaboration Diagram 181

10.3.4 Sequence Diagram 182

10.3.5 Applicability 185

10.4 Domain Dynamic 185

Chapter 11 Synchronizing Objects 187

11.1 How to Think about Time 188

11.2 Rules about Signals 189

11.3 Rules about Procedures 191

11.4 Rules about Data Access 192

11.5 Delayed Signals and Time Events 194

11.6 Rules,Rules,Rules 195

11.7 References 195

Chapter 12 Using Lifecycles 197

12.1 Statechart Diagram Construction Techniques 197

12.1.1 Modeling Intention 197

12.1.2 Modeling Progression 200

12.1.3 Simultaneous Signals 202

12.1.4 Distinct Signals 204

12.2 Reworking the Class Diagram 206

12.2.1 Refactoring Behavior 206

12.2.2 Saving Signals in Data 207

12.3 References 212

Chapter 13 Relationship Dynamics 213

13.1 Dynamically Simple Associations 214

13.1.1 Associations without Explicit Lifecycles 214

13.1.2 Dynamic Associations with Association Classes 215

13.2 Associations Involving Competition 217

13.2.1 Competition in the Domain 217

13.2.2 Competition in the Models 219

13.2.3 An Example 220

13.2.4 Multi-Instance Contention 222

13.2.5 Object Selection and Selection Policies 224

13.3 Dynamics in Generalization Hierarchies 225

13.3.1 Superclass State Machines 225

13.3.2 Subclass State Machines 225

13.4 Polymorphic Events and Polymorphic Signals 227

13.5 Reclassification 230

13.6 References 233

13.5.1 Superclass State Machine 233

13.5.2 Subclass State Machines with Reclassification 233

Chapter 14 Domain Dynamics 235

14.1 Partitioning Control 236

14.2 Control Strategies 239

14.2.1 Push and Pull Control 239

14.2.2 The Pivot Point 241

14.2.3 Finding the Pivot 242

14.3 Delegation of Control 244

14.3.1 Hierarchical Delegation 244

14.3.2 Networked Delegation 244

14.3.3 Distributing Control in Associations 246

14.4 Input Conditioning 247

14.4.1 Input Sequencing 248

14.4.2 Distributing the Inputs 250

14.5 Distributed Dynamics 250

14.6 References 251

Chapter 15 Domain Verification 253

15.1 Finding Unit Tests for a Single Use Case 254

15.2 Test Execution 260

15.3 System Tests 263

15.4 Finding Test Cases from the Models 267

15.5 The Verification Gap 268

15.6 References 268

Chapter 16 Model Management 269

16.1 Dividing Large Domains 269

16.2 Subsystems and the Class Diagram 270

16.3 Collaborations between Subsystems 272

16.4 Adjusting Subsystem Partitioning 272

16.5 Model Management 274

Chapter 17 Joining Multiple Domains 275

17.1.2 Generic Service Domains 277

17.1.1 Application User Interface 277

17.1 Kinds of Domains 277

17.1.3 Realized Domains 280

17.2 Anonymous Explicit Bridges 280

17.2.1 External Entities 280

17.2.2 Signals from External Entities 281

17.2.3 Signals to External Entities 283

17.2.4 Bridge Operations 283

17.2.5 Synchronous or Asynchronous Bridging? 284

17.3 Implicit Bridging with Join Points 285

17.3.1 Rationale for Join Points 285

17.3.2 Class-Class Joins 287

17.3.3 Class-Instance Joins 287

17.4 Bridging to the Model Compiler 289

Chapter 18 Model Compilers 291

18.1 Compiling the Models:The Bookstore 292

18.1.1 Mechanisms 293

18.1.2 Archetypes 294

18.1.3 Archetype Language 295

18.2 Model Compilers and the Software Platform 298

18.3 Fit 299

18.4 Buying,Modifying,and Building a Model Compiler 301

18.5 Modeling the Model Compiler as a Domain 302

18.6 References 303

Appendix A Glossary 305

Appendix B Case Study 313

B.1 Subsystem ProductSpecification 314

B.2 Subsystem Ordering 332

B.3 Subsystem Shipping 344

B.4 Domain Data Types 356

B.5 Object Collaboration Diagram 361

Index 363