
基本信息出版社:科学出版社
页码:242 页
出版日期:2004年01月
ISBN:7030124979
条形码:9787030124975
版本:第1版
装帧:平装
开本:16
正文语种:英语
丛书名:软件工程与方法丛书
外文书名:Software Architecture: Perspectives on an Emerging Discipline
图书品牌:科瀚伟业
内容简介 《软件体系结构(影印版)》全面讨论了软件体系结构研究的由来和发展,介绍了有关体系结构概念的构成和关于体系结构的不同观点,并给出了描述体系结构的有关理论和方法的研究成果。在此基础上指出了体系结构的多层次概念,并就各个层次的构成通过举例进行了全面的说明。体系结构的举例都是来自现实常用和通用的软件技术和应用。通过《软件体系结构(影印版)》的阅读,读者将对体系结构概念和知识有一个全面而实际的认识。《软件体系结构(影印版)》面向软件专业的大学高年级学生、研究生、从事软件工作的工程技术人员,以及对软件体系结构研究和应用感兴趣的读者。
编辑推荐 《软件体系结构(影印版)》: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 Software Design Levels,
1.2 An Engineering Discipline for Software
1.2.1 What Is Engineering ,
1.2.2 The Current State of Software Technology,
1.3 The Status of Software Architecture
1.4 The Plan of This Book
CHAPTER 2 Architectural Styles
2.1 Architectural Styles
2.2 Pipes and Filters
2.3 Data Abstraction and Object-Oriented Organization
2.4 Event-Based, Implicit Invocation
2.5 Layered Systems
2.6 Repositories
2.7 Interpreters
2.8 Process Control
2.8.1 Process-Control Paradigms,
2.8.2 ASoftware Paradigm for Process Control,
2.9 Other Familiar Architectures
2.10 Heterogeneous Architectures
CHAPTER 3 Case Studies
3.1 Key Word in Context
3.1.1 Solution 1: Main Program/Subroutine with Shared Data,
3.1.2 Solution 2: Abstract Data Types,
3.1.3 Solution 3: Implicit Invocation,
3.1.4 Solution 4: Pipes and Filters,
3.1.5 Comparisons,
3.2 Instrumentation Software
3.2.1 An Object-Oriented Model,
3.2.2 A Layered Model,
3.2.3 A Pipe-and-Filter Model,
3.2.4 A Modified Pipe-and-Filter Model,
3.2.5 Further Specialization,
3.2.6 Summary,
3.3 Mobile Robotics
By Marco Schumacher
3.3.1 Design Considerations,
3.3.2 Solution 1: Control Loop,
3.3.3 Solution 2: Layered Architecture,
3.3.4 Solution 3: Implicit Invocation,
3.3.5 Solution 4: Blackboard Architecture,
3.3.6 Comparisons,
3.4 Cruise Control
3.4.1 Object View of Cruise Control,
3.4.2 Process-Control View of Cruise Control,
3.4.3 Analysis and Discussion,
3.4.4 Summary,
3.5 Three Vignettes in Mixed Style
3.5.1 A Layered Design with Different Styles for the Layers,
3.5.2 An Interpreter Using Different Idioms for the Components,
3.5.3 A Blackboard Globally Recast as an Interpreter,
CHAPTER 4 Shared Information Systems
4.1 Shared Information Systems
4.2 Database Integration
4.2.1 Batch Sequential,
4.2.2 Simple Repository,
4.2.3 Virtual Repository,
4.2.4 Hierarchical Layers,
4.2.5 Evolution of Shared Information Systems in Business Data Processing,
4.3 Integration in Software Development Environments
4.3.1 Batch Sequential,
4.3.2 Transition from Batch Sequential to Repository,
4.3.3 Repository,
4.3.4 Hierarchical Layers,
4.3.5 Evolution of Shared Information Systems in Software Development
Environments,
4.4 Integration in the Design of Buildings
4.4.1 Repository,
4.4.2 Intelligent Control,
4.4.3 Evolution of Shared Information Systems in Building Design,
4.5 Architectural Structures for Shared Information Systems
4.5.1 Variants on Datafiow Systems,
4.5.2 Variants on Repositories,
4.6 Some Conclusions
CHAPTER 5 Architectural Design Guidance
5.1 Guidance for User-Interface Architectures
by Thomas G. Lane
5.1.1 Design Spaces and Rules,
5.1.2 A Design Space for User-Interface Architectures,
5.1.3 Design Rules for User-Interface Architecture,
5.1.4 Applying the Design Space: An Example,
5.1.5 AValidation Experiment,
5.1.6 How the Design Space Was Prepared,
5.1.7 Summary,
5.2 The Quantified Design Space
by Toru Asada, Roy lq. Swonger, Nadine Bounds, and Paul Duerig
5.2.1 Overview,
5.2.2 Background,
5.2.3 Quantified Design Space,
5.2.4 Conclusion,
CHAPTER 6 Formal Models and Specifications
6.The Value of Architectural Formalism
6.2 Formalizing the Architecture of a Specific System
6.3 Formalizing an Architectural Style
6.3.1 Filters,
6.3.2 Pipes,
6.3.3 Pipe-and-Filter System,
6.4 Formalizing an Architectural Design Space
6.5 Toward a Theory of Software Architecture
6.6 What Next
6.7 Z Notation Used in This Chapter
CHAPTER 7 Linguistic Issues
7.1 Requirements for Architecture-Description Languages
7.1.1 The Linguistic Character of Architectural Description,
7.1.2 Desiderata for Architecture-Description Languages,
7.1.3 Problems with Existing Languages,
7.2 First-Class Connectors
7.2.1 Current Practice,
7.2.2 Problems with Current Practice,
7.2.3 A Fresh View of Software System Composition,
7.2.4 An Architectural Language with First-Class Connectors,
7.2.5 The Promise of Explicit Architectural Notations,
7.3 Adding Implicit Invocation to Traditional Programming Languages
7.3.1 Introduction,
7.3.2 Adding Implicit Invocation to Ada,
7.3.3 Evaluation,
CHAPTER 8 Tools for Architectural Design
8.1 UniCon: A Universal Connector Language
8.1.1 Components and Connectors,
8.1.2 Abstraction and Encapsulation,
8.1.3 Types and Type Checking,
8.1.4 Accommodating Analysis Tools,
8.2 Exploiting Style in Architectural Design Environments
8.2.1 What Is Architectural Style ,
8.2.2 Automated Support for Architectural Design,
8.2.3 Observations about Environments for Architectural Design,
8.3 Beyond Definition/Use:ArchitecturalInterconnection
8.3.1 Implementation versus Interaction,
8.3.2 Example,
8.3.3 The WRIGHT Model of Architectural Description,
8.3.4 Reasoning about Architectural Descriptions,
8.3.5 A Brief Explanation of Our Use of CSP,
CHAPTER 9 Education of Software Architects
9.1 Philosophy and Course Overview
9.1.1 Objectives,
9.1.2 Approach,
9.2 Course Description
9.3 Assignments
9.3.1 Purpose,
9.3.2 Readings,
9.3.3 Architectural Development Tasks,
9.3.4 Formal Modeling,
9.3.5 Analysis and Interpretation of a System,
9.4 Evaluation
9.4.1 Lessons from the Initial Offering,
9.4.2 Conclusions About Teaching Software Architecture,
Bibliography
Index
……
序言 “软件工程”是白20世纪60年代起针对所谓“软件危机”而发展起来的概念。它是指将工程化的方法应用到软件开发中,以求优质高效地生产软件产品。其中综合应用了计算机科学、数学、工程学和管理科学的原理和方法。自从这一概念提出以来,软件开发方法从60年代毫无工程性可言的手工作坊式开发,过渡到70年代的结构化分析设计方法、80年代初的实体关系方法,直到当今所流行的面向对象方法,经历了根本性的变革。随着时代的发展,软件项目管理人员越来越需要从系统和战略的角度来把握项目的方向,引导开发向更高层次发展。在这方面,国外的知名企业和研究机构已经总结了相对成熟的一套知识和方法体系,并在实践中获得了相当大的成功。这里我们就从著名的培生教育出版集团(Pearson Education Group)选取了一些软件工程与方法类的有代表l生的教材影印出版,以期让国内的读者尽快了解国外此领域的发展动态,分享国外专家的知识和经验。以下对每本书的内容作一些简要的介绍,以便读者选择。
文摘 插图:

4.3.1 BATCH SEQUENTIAL
The earliest software development tools were stand-alone programs. Often their output appeared only on paper——perhaps in the form of object code on cards or paper tape. Eventually most of the tools produced results that were at least in some magnetic (universally readable) form, but the output of each tool was likely to be in the wrong format, the wrong units, or the wrong conceptual model for other tools to use. Even today, execution profiles are customarily provided in human-readable form but not propagated back to the compiler for optimization. Effective sharing of information was thus limited by lack of knowledge about how information was encoded in representations. As a result, manual translation of one tool's output to another tool's input format was common.
As time passed, new tools incorporated prior knowledge of related tools, and the usefulness of shared information became more evident. Scripts were developed to invoke tools in fixed orders. These scripts essentially defined batch sequential architectures, which still represent the most common style of integration for most environments. For example, in Unix both shell scripts and make follow this paradigm. ASCII text is the universal exchange representation, but the conventions for encoding internal structure in ASCII remain idiosyncratic.
4.3.2 TRANSITION FROM BATCH SEQUENTIAL TO REPOSITORY
Our view of the architecture of a system can change in response to improvements in technology. The way we think about compilers illustrates this. In the 1970s, compilation was regarded as a sequential process, and the organization of a compiler was typically drawn as shown in Figure 4.13. Text enters at the left end and is transformed in a variety of ways——to lexical token stream, parse tree, intermediate code before emerging as machine code on the right. We often refer to this compilation model as a pipeline, even
……