Book contents
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- 1 Introduction
- 2 Overview of the UML Notation
- 3 Software Life Cycle Models and Processes
- 4 Software Design and Architecture Concepts
- 5 Overview of Software Modeling and Design Method
- PART II Software Modeling
- PART III Architectural Design
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
1 - Introduction
from PART I - Overview
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- 1 Introduction
- 2 Overview of the UML Notation
- 3 Software Life Cycle Models and Processes
- 4 Software Design and Architecture Concepts
- 5 Overview of Software Modeling and Design Method
- PART II Software Modeling
- PART III Architectural Design
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
Summary
SOFTWARE MODELING
Modeling is used in many walks of life, going back to early civilizations such as Ancient Egypt, Rome, and Greece, where modeling was used to provide small-scale plans in art and architecture (Figure 1.1). Modeling is widely used in science and engineering to provide abstractions of a system at some level of precision and detail. The model is then analyzed in order to obtain a better understanding of the system being developed. According to the Object Modeling Group (OMG), “modeling is the designing of software applications before coding.”
In model-based software design and development, software modeling is used as an essential part of the software development process. Models are built and analyzed prior to the implementation of the system, and are used to direct the subsequent implementation.
A better understanding of a system can be obtained by considering it from different perspectives (also referred to as multiple views) (Gomaa 2006; Gomaa and Shin 2004), such as requirements models, static models, and dynamic models of the software system. A graphical modeling language such as UML helps in developing, understanding, and communicating the different views.
This chapter introduces object-oriented methods and notations, an overview of software modeling and architectural design, and an introduction to model-driven architecture and UML. The chapter then briefly describes the evolution of software design methods, object-oriented analysis and design methods, and concurrent, distributed, and real-time design methods.
- Type
- Chapter
- Information
- Software Modeling and DesignUML, Use Cases, Patterns, and Software Architectures, pp. 3 - 13Publisher: Cambridge University PressPrint publication year: 2011