SOFTWARE DESIGN BOOK GOOD FOR REFERENCE, Essays (university) of Computer Science

SOFTWARE DESIGN BOOK GOOD FOR REFERENCE

Typology: Essays (university)

2016/2017

Uploaded on 09/26/2017

rizal-bakisah
rizal-bakisah 🇲🇾

1 document

1 / 578

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download SOFTWARE DESIGN BOOK GOOD FOR REFERENCE and more Essays (university) Computer Science in PDF only on Docsity!

This page intentionally left blank

SOFTWARE MODELING

AND DESIGN

UML, Use Cases, Patterns, and

Software Architectures

Hassan Gomaa

George Mason University, Fairfax, Virginia

To Gill, William and Neela, Alex,

Amanda and Neil, and Edward

viii Contents

Preface

OVERVIEW

This book describes a use case–driven UML-based method for the modeling and design of software architectures, including object-oriented software architectures, client/server software architectures, service-oriented architectures, component- based software architectures, concurrent and real-time software architectures, and software product line architectures. The book provides a unified approach to design- ing software architectures and describes the special considerations for each cate- gory of software architecture. In addition, there are four case studies, a client/server banking system, a service-oriented architecture for an online shopping system, a distributed component-based emergency monitoring system, and a real-time auto- mated guided vehicle system. This book describes a UML-based software modeling and design method called COMET (Collaborative Object Modeling and Architectural Design Method). COMET is a highly iterative object-oriented software development method that addresses the requirements, analysis, and design modeling phases of the object- oriented development life cycle. The book is intended to appeal to readers who wish to design software architec- tures using a systematic UML-based method that starts from requirements modeling with use cases, through static and dynamic modeling, to software design based on architectural design patterns.

WHAT THIS BOOK PROVIDES

Various textbooks on the market describe object-oriented analysis and design con- cepts and methods. This book addresses the specific needs of designing software architectures. It addresses UML-based design of software architectures, starting with use cases for requirements modeling, static modeling with class diagrams, and dynamic modeling with object interaction analysis and state machine model- ing, through software design with architectural design patterns. All examples are

xv

Preface xvii

WAYS TO READ THIS BOOK

This book may be read in various ways. It can be read in the order in which it is pre- sented, in which case Chapters 1 through 4 provide introductory concepts; Chapter 5 provides an overview of the COMET/UML software modeling and design method; Chapters 6 through 20 provide an in-depth treatment of software modeling and design; and Chapters 21 through 24 provide detailed case studies. Alternatively, some readers may wish to skip some chapters, depending on their level of familiarity with the topics discussed. Chapters 1 through 4 are introductory and may be skipped by experienced readers. Readers familiar with software design concepts may skip Chapter 4. Readers particularly interested in software modeling and design can proceed directly to the description of COMET/UML, starting in Chapter 5. Readers who are not familiar with UML, or who are interested in finding out about the changes introduced by UML 2, can read Chapter 2 in conjunction with Chapters 5 through 20. Experienced software designers may also use this book as a reference, referring to various chapters as their projects reach a particular stage of the requirements, analysis, or design process. Each chapter is relatively self-contained. For example, at different times one might refer to Chapter 6 for a description of use cases, to Chapter 7 for a discussion of static modeling, and to Chapter 9 for a description of dynamic interaction modeling. Chapter 10 can be referenced for designing state machines; Chapter 12 and Appendix A for software architectural patterns; Chapter 14 for object-oriented software architectures; and Chapter 15 for designing a relational database from a static model. Chapter 16 can be consulted for service-oriented architectures; Chapter 17 for distributed component-based software design; Chap- ter 18 for real-time design; and Chapter 19 for software product line design. One can also improve one’s understanding of how to use the COMET/UML method by reading the case studies, because each case study explains the decisions made at each step of the requirements, analysis, and design modeling processes in the design of a real-world application.

Hassan Gomaa George Mason University December 2010 Email: [email protected] Web: http://mason.gmu.edu/∼hgomaa