Software architecture : perspectives on an emerging discipline = 软件体系结构 /
副标题:无
作 者:Mary Shaw, David Garlan编著.
分类号:
ISBN:9787030124975
微信扫一扫,移动浏览光盘
简介
《软件体系结构(影印版)》:Software developers have often adopted specific architectural patterns for system organization——but, for the most part, informally. In this book, authors Mary Shaw and David Garlan discuss the formalization of what, until now, has been "a substantial folklore of system design, with little consistency or precision." With their unique perspective on the current state of software architecture and its impact on design, the authors provide useful information for several types of readers:
*Professional software developers will find new ideas in the discussion and evaluation of familiar patterns.
* Students will find useful techniques for approaching system organization from an architectural point of view, rather than following current fads or outmoded methodology.
* Educators will find the book helpful as a text for a software architecture course or as a supplemental text for courses in software engineering or software design. This book also includes:
* Hints for choosing a suitable architecture.
* The use of well-understood paradigms for designing new systems.
* How formal notation and models can characterize system design.
* The study of actual system architectures as models for new designs.
Mary Shaw is the Alan J. Perils Professor of Computer Science and Associate Dean for Professional Programs at Carnegie Mellon University, where she is also a member of the Human Computer Interaction Institute. From 1984 to 1987 she served as Chief Scientist of CMU's Software Engineering Institute. Dr. Shaw is a Fellow of the IEEE, ACM, and of the American Association for the Advancement of Science. In 1993 she received the Wanner prize for contributions to software engineering.
David Garlan is an assistant professor in the Department of Computer Science at Carnegie Mellon University. Before joining Carnegie Mellon's faculty in 1990, he worked in the Computer Research Laboratory of Tektronix, Inc., Oregon. He completed his Ph.D. at Carnegie Mellon University. Dr. Garlan is a Fellow of the ACM.
目录
chapter 1 introduction
1.1 what is software architecture? 1
1.1.1 software design levels, 4
1.2 an engineering discipline for software 5
1.2.1 what is engineering?, 6
1.2.2 the current state of software technology, 10
1.3 the status of software architecture 15
1.4 the plan of this book 17
chapter 2 architectural styles
2.1 architectural styles 19
2.2 pipes and filters 21
2.3 data abstraction and object-oriented organization
2.4 event-based, implicit invocation 23
2.5 layered systems 25
2.6 repositories 20
2.7 interpreters 27
2.8 process control 27
2.8.1 process-control paradigms, 28
2.8.2 asoftware paradigm for process control, 30
2.9 other familiar architectures 31
.2.10 heterogeneous architectures 32
chapter 3 case studies 33
3.1 key word in context 33
3.1.1 solution 1: main program/subroutine with shared data, 34
3.1.2 solution 2: abstract data types, 35
3.1.3 solution 3: implicit invocation, 36
3.1.4 solution 4: pipes and filters, 37
3.1.5 comparisons, 38
3.2 instrumentation software 39
3.2.1 an object-oriented model, 39
3.2.2 a layered model, 40
3.2.3 a pipe-and-filter model, 41
3.2.4 a modified pipe-and-filter model, 41
3.2.5 further specialization, 42
3.2.6 summary, 42
3.3 mobile robotics 43
by marco schumacher
3.3.1 design considerations, 43
3.3.2 solution 1: control loop, 44
3.3.3 solution 2: layered architecture, 45
3.3.4 solution 3: implicit invocation, 47
3.3.5 solution 4: blackboard architecture, 49
3.3.6 comparisons, 51
3.4 cruise control 51
3.4.1 object view of cruise control, 53
3.4.2 process-control view of cruise control, 53
3.4.3 analysis and discussion, 58
3.4.4 summary, 60
3.5 three vignettes in mixed style 60
3.5.1 a layered design with different styles for the layers, 60
3.5.2 an interpreter using different idioms for the components, 63
3.5.3 a blackboard globally recast as an interpreter, 66
chapter 4 shared information systems 69
4.1 shared information systems 69
4.2 database integration 70
4.2.1 batch sequential, 70
4.2.2 simple repository, 71
4.2.3 virtual repository, 75
4.2.4 hierarchical layers, 79
4.2.5 evolution of shared information systems in business data processing, 80
4.3 integration in software development environments 82
4.3.1 batch sequential, 83
4.3.2 transition from batch sequential to repository, 83
4.3.3 repository, 85
4.3.4 hierarchical layers, 86
4.3.5 evolution of shared information systems in software development
environments, 88
4.4 integration in the design of buildings 88
4.4.1 repository, 89
4.4.2 intelligent control, 90
4.4.3 evolution of shared information systems in building design, 91
4.5 architectural structures for shared information systems 93
4.5.1 variants on datafiow systems, 93
4.5.2 variants on repositories, 94
4.6 some conclusions 95
chapter 5 architectural design guidance 97
5.1 guidance for user-interface architectures 97
by thomas g. lane
5.1.1 design spaces and rules, 97
5.1.2 a design space for user-interface architectures, 100
5.1.3 design rules for user-interface architecture, 110
5.1.4 applying the design space: an example, 111
5.1.5 avalidation experiment, 113
5.1.6 how the design space was prepared, 114
5.1.7 summary, 115
5.2 the quantified design space 116
by toru asada, roy lq. swonger, nadine bounds, and paul duerig
5.2.1 overview, 116
5.2.2 background, 116
5.2.3 quantified design space, 120
5.2.4 conclusion, 127
chapter 6 formal models and specifications 129
6.1 the value of architectural formalism 129
6.2 formalizing the architecture of a specific system 130
6.3 formalizing an architectural style 133
6.3.1 filters, 134
6.3.2 pipes, 135
6.3.3 pipe-and-filter system, 136
6.4 formalizing an architectural design space 139
6.5 toward a theory of software architecture 142
6.6 what next? 142
6.7 z notation used in this chapter 143
chapter 7 linguistic issues 147
7.1 requirements for architecture-description languages 147
7.1.1 the linguistic character of architectural description, 148
7.1.2 desiderata for architecture-description languages, 151
7.1.3 problems with existing languages, 155
7.2 first-class connectors 160
7.2.1 current practice, 160
7.2.2 problems with current practice, 161
7.2.3 a fresh view of software system composition, 165
7.2.4 an architectural language with first-class connectors, 166
7.2.5 the promise of explicit architectural notations, 171
7.3 adding implicit invocation to traditional programming languages 172
7.3.1 introduction, 172
7.3.2 adding implicit invocation to ada, 174
7.3.3 evaluation, 181
chapter8 tools for architectural design 183
8.1 unicon: a universal connector language 183
8.1.1 components and connectors, 185
8.1.2 abstraction and encapsulation, 186
8.1.3 types and type checking, 187
8.1.4 accommodating analysis tools, 188
8.2 exploiting style in architectural design environments 190
8.2.1 what is architectural style?, 190
8.2.2 automated support for architectural design, 192
8.2.3 observations about environments for architectural design, 202
8.3 beyond definition/use:architecturalinterconnection 204
8.3.1 implementation versus interaction, 205
8.3.2 example, 206
8.3.3 the wright model of architectural description, 208
8.3.4 reasoning about architectural descriptions, 210
8.3.5 a brief explanation of our use of csp, 211
chapter 9 education of software architects 213
9.1 philosophy and course overview 213
9.1.1 objectives, 213
9.1.2 approach, 214
9.2 course description 215
9.3 assignments 218
9.3.1 purpose, 218
9.3.2 readings, 219
9.3.3 architectural development tasks, 220
9.3.4 formal modeling, 222
9.3.5 analysis and interpretation of a system, 222
9.4 evaluation 223
9.4.1 lessons from the initial offering, 223
9.4.2 conclusions about teaching software architecture, 225
bibliography
index
1.1 what is software architecture? 1
1.1.1 software design levels, 4
1.2 an engineering discipline for software 5
1.2.1 what is engineering?, 6
1.2.2 the current state of software technology, 10
1.3 the status of software architecture 15
1.4 the plan of this book 17
chapter 2 architectural styles
2.1 architectural styles 19
2.2 pipes and filters 21
2.3 data abstraction and object-oriented organization
2.4 event-based, implicit invocation 23
2.5 layered systems 25
2.6 repositories 20
2.7 interpreters 27
2.8 process control 27
2.8.1 process-control paradigms, 28
2.8.2 asoftware paradigm for process control, 30
2.9 other familiar architectures 31
.2.10 heterogeneous architectures 32
chapter 3 case studies 33
3.1 key word in context 33
3.1.1 solution 1: main program/subroutine with shared data, 34
3.1.2 solution 2: abstract data types, 35
3.1.3 solution 3: implicit invocation, 36
3.1.4 solution 4: pipes and filters, 37
3.1.5 comparisons, 38
3.2 instrumentation software 39
3.2.1 an object-oriented model, 39
3.2.2 a layered model, 40
3.2.3 a pipe-and-filter model, 41
3.2.4 a modified pipe-and-filter model, 41
3.2.5 further specialization, 42
3.2.6 summary, 42
3.3 mobile robotics 43
by marco schumacher
3.3.1 design considerations, 43
3.3.2 solution 1: control loop, 44
3.3.3 solution 2: layered architecture, 45
3.3.4 solution 3: implicit invocation, 47
3.3.5 solution 4: blackboard architecture, 49
3.3.6 comparisons, 51
3.4 cruise control 51
3.4.1 object view of cruise control, 53
3.4.2 process-control view of cruise control, 53
3.4.3 analysis and discussion, 58
3.4.4 summary, 60
3.5 three vignettes in mixed style 60
3.5.1 a layered design with different styles for the layers, 60
3.5.2 an interpreter using different idioms for the components, 63
3.5.3 a blackboard globally recast as an interpreter, 66
chapter 4 shared information systems 69
4.1 shared information systems 69
4.2 database integration 70
4.2.1 batch sequential, 70
4.2.2 simple repository, 71
4.2.3 virtual repository, 75
4.2.4 hierarchical layers, 79
4.2.5 evolution of shared information systems in business data processing, 80
4.3 integration in software development environments 82
4.3.1 batch sequential, 83
4.3.2 transition from batch sequential to repository, 83
4.3.3 repository, 85
4.3.4 hierarchical layers, 86
4.3.5 evolution of shared information systems in software development
environments, 88
4.4 integration in the design of buildings 88
4.4.1 repository, 89
4.4.2 intelligent control, 90
4.4.3 evolution of shared information systems in building design, 91
4.5 architectural structures for shared information systems 93
4.5.1 variants on datafiow systems, 93
4.5.2 variants on repositories, 94
4.6 some conclusions 95
chapter 5 architectural design guidance 97
5.1 guidance for user-interface architectures 97
by thomas g. lane
5.1.1 design spaces and rules, 97
5.1.2 a design space for user-interface architectures, 100
5.1.3 design rules for user-interface architecture, 110
5.1.4 applying the design space: an example, 111
5.1.5 avalidation experiment, 113
5.1.6 how the design space was prepared, 114
5.1.7 summary, 115
5.2 the quantified design space 116
by toru asada, roy lq. swonger, nadine bounds, and paul duerig
5.2.1 overview, 116
5.2.2 background, 116
5.2.3 quantified design space, 120
5.2.4 conclusion, 127
chapter 6 formal models and specifications 129
6.1 the value of architectural formalism 129
6.2 formalizing the architecture of a specific system 130
6.3 formalizing an architectural style 133
6.3.1 filters, 134
6.3.2 pipes, 135
6.3.3 pipe-and-filter system, 136
6.4 formalizing an architectural design space 139
6.5 toward a theory of software architecture 142
6.6 what next? 142
6.7 z notation used in this chapter 143
chapter 7 linguistic issues 147
7.1 requirements for architecture-description languages 147
7.1.1 the linguistic character of architectural description, 148
7.1.2 desiderata for architecture-description languages, 151
7.1.3 problems with existing languages, 155
7.2 first-class connectors 160
7.2.1 current practice, 160
7.2.2 problems with current practice, 161
7.2.3 a fresh view of software system composition, 165
7.2.4 an architectural language with first-class connectors, 166
7.2.5 the promise of explicit architectural notations, 171
7.3 adding implicit invocation to traditional programming languages 172
7.3.1 introduction, 172
7.3.2 adding implicit invocation to ada, 174
7.3.3 evaluation, 181
chapter8 tools for architectural design 183
8.1 unicon: a universal connector language 183
8.1.1 components and connectors, 185
8.1.2 abstraction and encapsulation, 186
8.1.3 types and type checking, 187
8.1.4 accommodating analysis tools, 188
8.2 exploiting style in architectural design environments 190
8.2.1 what is architectural style?, 190
8.2.2 automated support for architectural design, 192
8.2.3 observations about environments for architectural design, 202
8.3 beyond definition/use:architecturalinterconnection 204
8.3.1 implementation versus interaction, 205
8.3.2 example, 206
8.3.3 the wright model of architectural description, 208
8.3.4 reasoning about architectural descriptions, 210
8.3.5 a brief explanation of our use of csp, 211
chapter 9 education of software architects 213
9.1 philosophy and course overview 213
9.1.1 objectives, 213
9.1.2 approach, 214
9.2 course description 215
9.3 assignments 218
9.3.1 purpose, 218
9.3.2 readings, 219
9.3.3 architectural development tasks, 220
9.3.4 formal modeling, 222
9.3.5 analysis and interpretation of a system, 222
9.4 evaluation 223
9.4.1 lessons from the initial offering, 223
9.4.2 conclusions about teaching software architecture, 225
bibliography
index
Software architecture : perspectives on an emerging discipline = 软件体系结构 /
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×