This book is intended to be a practical guide. Our goal is to be brief. We cover only the essential information to guide software architects in defining the software architecture, providing pointers to further reading in lieu of detailed descriptions of this literature. Ideally, we can help software development teams avoid the common practice of capturing the architecture after the software has been developed instead of utilizing the architecture as a tool to guide the software development.
The Unified Modeling Language (UML) is used throughout this book. We reduce the myriad of UML constructs to a precious few that we have found to be most useful. Leveraging the recent IEEE 1471 standard for software intensive systems, we describe several architectural viewpoints that are helpful in the development and documentation of software architectures. After reading this book, you will understand these viewpoints and techniques that will improve the modeling of your system’s software architecture.
The focus of this book will be the software architecture of large-scale systems. Typically, this means enterprise systems and large distributed systems. However, most of the viewpoints and techniques discussed here will apply to smaller projects and embedded systems. A typical large-scale software project will include:
Dealing with the complexity of large-scale systems can be a challenge for even the most experienced software designers and developers. Large software systems contain millions of elements, which interact to achieve the system functionality. The interaction of these elements is far from obvious, especially given the artifacts created for a typical software project. These artifacts are especially critical as new team members are added and at different phases of the project. These phases include development, integration, testing and maintenance of the system. Even more challenging, however, these elements must be understood and modified as the required functionality of the system evolves. To do this correctly requires an understanding of how the elements interact as well as the underlying principles of the design.
- Large quantities of source code (typically millions of lines)
- Large numbers of developers (potentially hundreds, often geographically distributed)
- High complexity of interaction between components
- Extensive use of off-the-shelf components
- Multiple programming languages
- Multiple persistence mechanisms (files, relational databases, object databases)
- Multiple hardware platforms
- Distribution of components over several hardware platforms
- High concurrency
This book does not purport to describe the best or only way to represent software architecture. Some systems may require additional representations from the ones shown in this book, and others may require only a subset of those shown here. However, most software development projects could benefit from at least some of the techniques and architecture representations described here.
Platform Interference in Wireless Systems: Models, Measurement, and Mitigation Intra-system EMC problems are becoming increasingly common in mobile devices, ranging from notebook PCs to cell phones, with RF/wireless capbilities. These issues range from minor annoyances to serious glitches which impede the functioning of the device. This book gives a thourough review of electromagnetic theory (including Maxwell's equations),... Fruit and Vegetable Phytochemicals: Chemistry, Nutritional Value and Stability
Fruit and Vegetable Phytochemicals: Chemistry, Nutritional Value and Stability provides scientists in the areas of food technology and nutrition with accessible and up-to-date information about the chemical nature, classification and analysis of the main phytochemicals present in fruits and vegetables – polyphenols and carotenoids....
Network+ Fast Pass The Perfect Preparation and Review Resource
Network+ Fast Pass is the streamlined tool you need to hone in on the Network+ exam. The enclosed CD lets you practice, practice, practice, and you’ll keep the book—packed with concise, objective-focused coverage and review...