Atjaunināt sīkdatņu piekrišanu

Software and Systems Architecture in Action [Hardback]

(Malvern, PA, USA)
  • Formāts: Hardback, 232 pages, height x width: 234x156 mm, weight: 590 g, 38 Tables, black and white; 70 Illustrations, black and white
  • Sērija : Applied Software Engineering Series
  • Izdošanas datums: 27-Oct-2014
  • Izdevniecība: Taylor & Francis Inc
  • ISBN-10: 1439849161
  • ISBN-13: 9781439849163
Citas grāmatas par šo tēmu:
  • Hardback
  • Cena: 105,42 €
  • Grāmatu piegādes laiks ir 3-4 nedēļas, ja grāmata ir uz vietas izdevniecības noliktavā. Ja izdevējam nepieciešams publicēt jaunu tirāžu, grāmatas piegāde var aizkavēties.
  • Daudzums:
  • Ielikt grozā
  • Piegādes laiks - 4-6 nedēļas
  • Pievienot vēlmju sarakstam
  • Formāts: Hardback, 232 pages, height x width: 234x156 mm, weight: 590 g, 38 Tables, black and white; 70 Illustrations, black and white
  • Sērija : Applied Software Engineering Series
  • Izdošanas datums: 27-Oct-2014
  • Izdevniecība: Taylor & Francis Inc
  • ISBN-10: 1439849161
  • ISBN-13: 9781439849163
Citas grāmatas par šo tēmu:
Sangwan finds synergies between the disciplines of software engineering and systems engineering and explores practices that can help engineers in them work together more effectively as a unified team. He introduces an approach to architecture design that is driven by systemic quality attributes determined by both the business and the technical goals of the system rather than just its functional requirements. This ensures that the architecture of the final system clearly and traceable reflects the most important goals for the system. Annotation ©2015 Ringgold, Inc., Portland, OR (protoview.com)

Modern-day projects require software and systems engineers to work together in realizing architectures of large and complex software-intensive systems. To date, the two have used their own tools and methods to deal with similar issues when it comes to the requirements, design, testing, maintenance, and evolution of these architectures.

Software and Systems Architecture in Action explores practices that can be helpful in the development of architectures of large-scale systems in which software is a major component. Examining the synergies that exist between the disciplines of software and systems engineering, it presents concepts, techniques, and methods for creating and documenting architectures.

The book describes an approach to architecture design that is driven from systemic quality attributes determined from both the business and technical goals of the system, rather than just its functional requirements. This architecture-centric design approach utilizes analytically derived patterns and tactics for quality attributes that inform the architect’s design choices and help shape the architecture of a given system.

The book includes coverage of techniques used to assess the impact of architecture-centric design on the structural complexity of a system. After reading the book, you will understand how to create architectures of systems and assess their ability to meet the business goals of your organization.

Ideal for anyone involved with large and complex software-intensive systems, the book details powerful methods for engaging the software and systems engineers on your team. The book is also suitable for use in undergraduate and graduate-level courses on software and systems architecture as it exposes students to the concepts and techniques used to create and manage architectures of software-intensive systems.

Preface xi
About the Author xv
1 Architecture and Its Significance
1(18)
1.1 Introduction
1(1)
1.2 Rising Complexity
2(5)
1.3 Constant Change
7(2)
1.4 Distributed Development
9(3)
1.5 Practice for Architecture-Centric Engineering
12(4)
1.6 Summary
16(1)
1.7 Questions
17(2)
References
17(2)
2 Stakeholders and Their Business Goals
19(20)
2.1 Introduction
19(1)
2.2 Influence of Business Goals on the Architecture
20(3)
2.3 Representing Business Goals
23(3)
2.4 Refining Business Goals
26(1)
2.5 Translating Engineering Objectives into Architectural Requirements
27(6)
2.6 Prioritizing Architectural Requirements
33(1)
2.7 Summary
34(2)
2.8 Questions
36(3)
References
37(2)
3 Establishing Broad Functional Understanding
39(18)
3.1 Introduction
39(1)
3.2 System Context
40(1)
3.3 System Use Cases
41(4)
3.4 Domain Model
45(2)
3.5 An End-to-End Operational View
47(5)
3.6 Constraints
52(2)
3.7 Summary
54(1)
3.8 Questions
55(2)
References
55(2)
4 Getting Ready for Designing the Architecture
57(44)
4.1 Introduction
57(2)
4.2 Architectural Drivers
59(2)
4.3 Patterns
61(20)
4.3.1 Layered View
64(3)
4.3.2 Data Flow View
67(2)
4.3.3 Data-Centered View
69(2)
4.3.4 Adaptation View
71(1)
4.3.5 Language Extension View
72(3)
4.3.6 User Interaction View
75(2)
4.3.7 Component Interaction View
77(2)
4.3.8 Distribution View
79(2)
4.4 What Is a Tactic?
81(15)
4.4.1 Tactics for Availability
82(3)
4.4.2 Tactics for Interoperability
85(2)
4.4.3 Tactics for Modifiability
87(3)
4.4.4 Tactics for Performance
90(2)
4.4.5 Tactics for Security
92(2)
4.4.6 Tactics for Testability
94(1)
4.4.7 Tactics for Usability
95(1)
4.5 Summary
96(1)
4.6 Questions
97(4)
References
98(3)
5 Creating the Architecture
101(28)
5.1 Introduction
101(2)
5.2 Architecture of the Building Automation System
103(13)
5.2.1 Support for Adding New Field Devices
106(4)
5.2.2 Addressing Latency and Load Conditions
110(3)
5.2.3 Addressing International Language Support
113(3)
5.3 Architecture Trade-Offs
116(4)
5.3.1 Revisiting Modifiability Drivers
116(2)
5.3.2 Revisiting Performance Drivers
118(2)
5.4 The Final Architecture
120(1)
5.5 Summary
120(2)
5.6 Questions
122(7)
References
127(2)
6 Communicating the Architecture
129(34)
6.1 Introduction
129(1)
6.2 Views as a Basis for Documentation
130(1)
6.3 Documenting a View
131(1)
6.4 Building an Architecture Description Document
132(1)
6.5 Architecture Description for the Building Automation System
133(27)
6.5.1 Section 1: Document Road Map
133(1)
6.5.1.1 Section 1.1: Description of the Architecture Documentation
133(1)
6.5.1.2 Section 1.2: How Stakeholders Can Use the Documentation
134(2)
6.5.2 Section 2: System Overview
136(1)
6.5.2.1 Section 2.1: Business Goals
136(1)
6.5.2.2 Section 2.2: System Context
137(3)
6.5.2.3 Section 2.3: Functions
140(2)
6.5.2.4 Section 2.4: Quality Attribute Requirements
142(1)
6.5.2.5 Section 2.5: Constraints
143(1)
6.5.2.6 Section 2.6: Architectural Drivers
143(2)
6.5.3 Section 3: View Template
145(1)
6.5.4 Section 4: Views
145(1)
6.5.4.1 Section 4.1: Module View
145(1)
6.5.4.2 Section 4.2: Component-and-Connector View
146(9)
6.5.4.3 Section 4.3: Deployment View
155(2)
6.5.5 Section 5: Mapping between Views
157(3)
6.5.6 Section 6: Rationale
160(1)
6.6 Conclusions
160(2)
6.7 Questions
162(1)
References
162(1)
7 Architecture and Detailed Design
163(16)
7.1 Introduction
163(1)
7.2 Defining Interfaces
164(1)
7.3 Creating the Domain Object Model
164(3)
7.3 The Rule Manager
167(7)
7.3.1 Addressing Architectural Responsibilities
169(5)
7.3.2 Addressing Functional Responsibilities
174(1)
7.4 Summary
174(3)
7.5 Question
177(2)
References
177(2)
8 Role of Architecture in Managing Structural Complexity
179(22)
8.1 Introduction
179(1)
8.2 Analyzing System Complexity
180(9)
8.2.1 Partitioning a DSM
182(2)
8.2.2 Partitioning Algorithms
184(2)
8.2.3 Tearing a DSM
186(3)
8.3 Managing Structural Complexity
189(7)
8.3.1 Testing the Hypothesis
190(6)
8.4 Discussion and Conclusions
196(1)
8.5 Discussion Questions
197(4)
References
198(3)
Index 201
Raghvinder (Raghu) Sangwan is an associate professor of software engineering at Pennsylvania State University. His work involves design and development of software systems, their architecture, and automatic and semiautomatic approaches to assess their design and code quality. He has published several papers in these areas. Prior to joining the Pennsylvania State University, Raghu was a software architect at Siemens, where he worked on large-scale systems in the domains of health care, automation, transportation, and mining; many of these systems were developed by teams geographically distributed around the world. This experience resulted in his coauthoring the Global Software Development Handbook and co-organizing the first International Conference on Global Software Engineering (ICGSE 2006), sponsored by the Institute for Electrical and Electronics Engineers (IEEE). He also holds a visiting scientist appointment at the Software Engineering Institute at Carnegie Mellon University. He received his PhD in computer and information sciences from Temple University and is a senior member of IEEE and the Association for Computing Machinery (ACM).