面向模式分析和设计:通过模式合成来进行软件系统的设计 英文版

面向模式分析和设计:通过模式合成来进行软件系统的设计 英文版
作 者: Sherif Yacoub Hany Ammar
出版社: 中国电力出版社
丛编项: 原版风暴系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件工程/开发项目管理 计算机/网络
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  SherifM.Yacoub:是惠普实验室研究员。目前他主要从事与大型软件系统开发相关技术的研究,涉及范围包括设计模式、软件体系结构、系统建模、元模型、框架和软件可靠性。迄今已在权威刊物上发表了40多篇专业论文。他还是《ReuseBasedSoftwareEngineering》的作者之一。HanyH.Ammar:是西弗吉尼亚大学计算机科学和电子工程系教授,迄今共发表了70多篇专业论文。他的研究兴趣包括软件工程、软件可靠性、生物统计学和计算机体系结构。

内容简介

使用优秀的设计模式来开发健壮的大型软件系统。 设计模式功能非常强大,但在开发一个健壮的大型软件系统时,你还需要知道更多东西。本书介绍了一种通过对优秀的设计模式进行合成来开发大型软件的方法——POAD(Pattern-Oriented Analysis and Design,面向模式的分析和设计)。通过使用POAD方法,并用UML类图来表示系统构造块,你可以快速开发出一个可靠的大型软件系统。而且,与普通的OO方法相比,通过使用POAD方法开发出来的软件系统具有更强的健壮性、可扩展性和可维护性。· POAD:什么是POAD方法,POAD方法的原理,POAD方法能够解决哪些问题。· 对设计模式进行合成的两种方法——结构合成和行为合成。· 用于模式合成的设计模型和UML技术。· POAD过程:全面讲述了分析、设计、设计精化三个阶段。· 四个范例:反馈控制系统、等待队列仿真系统、数字信息再处理系统和分布式医疗信息系统。· 基于POAD的开发:趋势和研究方向。 POAD将带你进入使用设计模式的新境界。不管你是软件架构师、软件设计人员、软件开发人员,还是项目经理,本书都会帮你快速和高质量地开发一个大型的软件系统。

图书目录

PART I INTRODUCTION

1 Pattern-Oriented Analysis and Design 3

The Role of Patterns in Software Development 3

Purpose of POAD 3

Pattern-Oriented Design Issues 4

POAD Is a Solution 5

What Is Covered in this Book? 6

2 Design Patterns and Software Engineering 7

Design Patterns in the Software Lifecycle 7

POAD and OO Technology 8

Design Patterns 10

What Is a Pattern? 10

History of Patterns 11

The Pattern Lifecycle 12

Design Frameworks 14

What Is a Framework? 14

Developing Robust Designs Using Frameworks 15

The Role of Patterns in Developing O0 Frameworks 16

Design Pattern Composition Approaches 17

Summary 17

3 Composition of Design Patterns 19

Behavioral Composition Techniques 20

Object-Oriented Role Analysis and Software Synthesis 21

Composing Design Patterns Using Roles 25

Architecture Fragments and Superimposition 27

Role/Type/Class Modeling 29

Structural Composition of Design Patterns 32

A Pattern-Oriented Composition Technique 33

Software Composition at the Design Level

using Design Components 34

Component-Based Frameworks Using Patterns 35

The Catalysis Approach 36

Composition Patterns, Subject- Oriented Programming,

and Aspect-Oriented Software Development 38

Further Reading 41

PART II TECHNOLOGICAL ASPECTS OF POAD

4 Constructional Design Patterns as Components

Which Patterns to Use in POAD 47

Software Components 49

A Design Component 50

Constructional Design Patterns 51'

Specifying a Pattern as a Component 52

A Recipe 52

Formal Specification 52

Interface Specification 53

Component Interfaces 53

Module Interconnection Languages 53

Interface Definition Language 54

Interfaces for Object-Oriented Components 55

Application/Platform Interfaces 55

Interface Properties 56

Type 56

Role 56

Nature 57

Dynamism 57

Description 57

Multiplicity 57

Pattern Interfaces 58

Summary 60

5 Visual Design Models 61

Pattern Composition Models 61

Pattern-Level Model 63

Schematic Diagram 63

Relationships 64

Design Decisions 65

UML Syntax Support 65

Example 65

Pattern-Level with Interfaces Model 66

Schematic Diagram 66

Relationships 67

Design Decisions 67

UML Syntax Support 67

Example 68

Detailed Pattern-Level Model 68

Schematic Diagram 69

Relationships 69

Design Decisions 70

UML Syntax Support 70

Example 70

Characteristics of the POAD Design Models 71

Hierarchy 71

Traceability 72

Composability 72

Summary 72

6 UML Support for Design Patterns 73

Patterns as Mechanisms 74

Architectural Patterns 78

Patterns as Packages 79

Patterns and Components 82

Modeling Pattern-Oriented Designs 82

A Comparison 83

Summary 84

PART III PROCESS ASPECTS OF POAD

7 POAD: The Process 87

Stringing Versus Overlapping 87

POAD Process Outline (The Nutshell) 92

Analysis Phase 95

Design Phase 96

Design Refinement Phase 97

POAD and Code Generation 97

POAD Characteristics 99

Pattern-Driven 99

Component-Based Development 99

Architectural Development 100

Library-Driven Development 100

Design Reuse 100

Hierarchical Development 101

Iterative Development 101

Pattern-Oriented Frameworks 102

Pattern-Level Instantiation 102

Class-Level Instantiation 102

Benefits and Limitations 103

Benefits 103

Limitations 104

Summary 104

8 Analysis Phase 105

Overview 105

Requirements Analysis 107

Purpose 107

Process 107

Product 110

Analysis Tips 110

Acquaintance 110

Purpose 110

Process IlO

Product 112

Analysis Tips 113

Retrieval 113

Purpose 113

Process 113

Product 116

Analysis Tips 116

Pattern Selection 117

Purpose 117

Process 117

Product 119

Analysis Tips 119

Summary 120

9 Design Phase 121

Overview 121

Constructing Pattern-Level Models 123

Purpose 123

Process 123

Product 126

Design Tips 126

Constructing Pattern-Level with Interfaces Models 126

Purpose 126

Process 127

Product 129

Design Tips 129

Constructing Detailed Pattern-Level Models 130

Purpose 130

Process 130

Product 132

Design Tips 132

Summary 132

10 Design-Refinement Phase 135

Overview 135

Instantiating Pattern Internals 137

Purpose 137

Process 137

Product 140

Design-RefinementTips 140

Developing the Initial Class Diagram 141

Purpose 141

Process 141

Product I44

Design-RefinementTips 144

Design Optimization 145

Purpose 145

Process 145

Product 150

Design-Refinement Tips 150

Using POAD for Developing Frameworks 150

Summary 151

PART IV CASE STUDIES

11 Feedback Control Systems 155

POAD Analysis for the Feedback Control Framework 156

Requirements Analysis 156

Pattern Selection 158

. POAD Design for the Feedback Control Framework 159

Constructing Pattern-Level Diagrams 159

Constructing the Pattern-Level with Interfaces Diagram 160

Constructing Detailed Pattern-Level Diagrams ' 161

POAD Design Refinement for the Feedback Control Framework 163

Instantiating Pattern Internals 163

Developing an Initial Class Diagram 166

Design Optimization 168

Example: Quality Control in Production Lines 173

System Description 173

Application-Specific Considerations 175

Instantiation of the Framework 175

Sample Implementation 178

Summary 187

12 Simulation of Waiting Queues 189

Background and Requirements 189

Domain Engineering 190

Application Engineering 191

POAD Analysis for the Waiting-Queues Simulation Architecture 192

Requirements Analysis 192

Acquaintance and Retrieval 193

Pattern Selection 194

POAD Design for the Waiting-Queues Simulation Architecture 195

Constructing Pattern-Level Diagrams 195

Constructing Pattern-Level with Interfaces Diagrams 196

Constructing Detailed Pattern-Level Diagrams 197

POAD Design Refinement for the Waiting-Queues Simulation

Architecture 197

Instantiating Pattern Internals 197

Developing an Initial Class Diagram 201

Design Optimization 207

Sample Implementation 209

Summary 235

13 A Digital Content Remastering Application 237

Document Understanding 237

Applications and Systems 237

A DCRM System 239

DCRM Subsystems 241

Pattern-Oriented Analysis and Design for the Distribution Subsystem 242

POAD Analysis for the DCRM Distribution Subsystem 242

POAD Design for the DCRM Distribution Subsystem 244

Constructing the Pattern-Level with Interfaces Diagram 244

Constructing the Detailed Pattern-Level Diagrams 245

POAD Design Refinement for the DCRM Distribution Subsystem 24.'

Pattern-Oriented Analysis and Design for the Filtering

Subsystem 250

POAD Analysis for the DCRM Filtering Subsystem 250

POAD Design for the DCRM Filtering Subsystem 253

POAD Design Refinement for the DCRM Filtering Subsystem 256

Summary 263

14 A Medical Informatics System 265

Medical Informatics Standards 265

Digital Imaging and Communication in Medicine (DICOM) 266

Specification Versus Implementation 266

DICOM Scope 267

A Client/ServerArchitecture 269

Pattern-Oriented Analysis and Design of the DICOM UL 270

POAD Analysis for DICOM Upper-Layer Subsystem 271

POAD Design for DICOM Upper-Layer Subsystem 278

POAD Design Refinement for the DICOM Upper-Layer Subsystem 284

POAD is Simple Process for Designing Reactive Systems 286

Pattern-Oriented Analysis and Design for the Client Application Entity 286

POAD Analysis for the Client Application Entity 286

POAD Design for the Client Application Entity 290

POAD Design Refinerhent for the Client Application Entity 294

Summary 298

PARTV AUTOMATION AND SUMMARIES

15 Relation to UML Metamodel and Specification 303

Syntax is Not Enough 303

The Object Constraint Language 304

What Is OCL? 304

Using OCL 305

Adding POAD Constructs to the UML Metamodel 305

Abstract Syntax 307

Pattern 308

PatternDependency 312

PatternAssociation 312

Patternlnfo 312

Patternlnterface 313

PatternKind 313

PatternPresentation 313

InterfaceBinder 314

Well-Formedness Rules 314

Pattern 314

PatternDependency 315

PatternAssociation 316

Patternlnterface 317

InterfaceBinder 317

Semantics 318

Pattern 318

Relationships 319

Summary 319

16 Tool Support for Designing with Patterns 321

The Need for Tool Support 321

Pattern Tools 322

Framework Adaptive Composition Environment 322

Fragmentation Technique 324

PSiGene 326

Code Generation 327

The Pattern Lint 328

Hooks and Templates 329

TogetherSoft 330

Requirements and Features of a POAD Tool 331

Patterns as First-Class Design Elements 331

POAD Hierarchical Models 332

Traceability. 332

Pattern Repository 334

Models with Memory 334

Pattern Instantiation 335

Summary 335

17 Wrapping Up 337

Systematic Composition of Design Pattern 337

POAD Characteristics 338

POAD and Software Reuse 339

Applying POAD 340

Pattern Literature 341

Future Trends in Pattern Composition 342

Conclusion 344

A Interfaces for Constructional Design Patterns 345

Strategy Pattern 345

Observer Pattern 345

Composite Pattern 346

Reactor Pattern 346

TemplateMethod Pattern 347

Proxy Pattern 347

AbstractFactory Pattern 348

Builder Pattern 348

Mediator Pattern 349

Command Pattern 349

B State of the Art and Practice in Design Patterns 351

Pattern Mining 351

Pattern Description Formats (Templates) 351

Tool Support 352

Pattern Formalism 352

Pattern Languages 353

Pattern-Based Implementation 353

More Challenges 354

Formal Specification of Design Patterns 354

Pattern Instantiation and Implementation 354

Development Methodologies 355

Documentation of Design Patterns 355

Evaluating Existing Design Patterns 355

Glossary 357

Bibliography 361