Software Modeling and Design
- 9h 36m
- Hassan Gomaa
- Cambridge University Press
- 2011
This book covers all you need to know to model and design software applications from use cases to software architectures in UML and shows how to apply the COMET UML-based modeling and design method to real-world problems. The author describes architectural patterns for various architectures, such as broker, discovery, and transaction patterns for service-oriented architectures, and addresses software quality attributes including maintainability, modifiability, testability, traceability, scalability, reusability, performance, availability, and security. Complete case studies illustrate design issues for different software architectures: a banking system for client/server architecture, an online shopping system for service-oriented architecture, an emergency monitoring system for component-based software architecture, and an automated guided vehicle for real-time software architecture. Organized as an introduction followed by several short, self-contained chapters, the book is perfect for senior undergraduate or graduate courses in software engineering and design, and for experienced software engineers wanting a quick reference at each stage of the analysis, design, and development of large-scale software systems.
About the Author
Hassan Gomaa is Professor and Chair of the Department of Computer Science at George Mason University. Gomaa has more than thirty years experience in software engineering, both in industry and academia. He has published more than 150 technical papers and is the author of three previous books: Designing Software Product Lines with UML; Designing Concurrent, Distributed, and Real-Time Applications with UML; and Software Design Methods for Concurrent and Real-Time Systems.
In this Book
-
Introduction
-
Overview of the UML Notation
-
Software Life Cycle Models and Processes
-
Software Design and Architecture Concepts
-
Overview of Software Modeling and Design Method
-
Use Case Modeling
-
Static Modeling
-
Object and Class Structuring
-
Dynamic Interaction Modeling
-
Finite State Machines
-
State-Dependent Dynamic Interaction Modeling
-
Overview of Software Architecture
-
Software Subsystem Architectural Design
-
Designing Object-Oriented Software Architectures
-
Designing Client/Server Software Architectures
-
Designing Service-Oriented Architectures
-
Designing Component-Based Software Architectures
-
Designing Concurrent and Real-Time Software Architectures
-
Designing Software Product Line Architectures
-
Software Quality Attributes
-
Client/Server Software Architecture Case Study
-
Service-Oriented Architecture Case Study
-
Component-Based Software Architecture Case Study
-
Real-Time Software Architecture Case Study