책상에서 책꽂이로 이동시킬 두번째 녀석들이다. 달봉이가 IT쪽으로 와서, 7,8년전에 처음으로 이쪽 자격증 시험을 본적이 있다. 실패는 했지만, 이쪽의 비전공자로서 IT 분야의 전체적인 기술부분을 정리할 계기가 되었다. 이때 만나서 관심을 가지고서는 이후로 계속 구입해 온 녀석들인데, 아직 완독을 못하고 있다.
아키텍처를 공부하는 사람은 모두(?) 알고 있다고 할 수 있는 유명한 책들이다. 그러나 지금 근무하는 곳의 환경때문에 이 녀석들을 사랑할 시간을 좀 처럼 만들지 못하고 있다. 현재 일하고 있는 직장에서는 아키텍처라는 용어 자체를 사용하지 않는 곳이다. 아직도 "정보공학" 방법론에나 맞을것 같은 조직 구조와 명칭을 사용한다. 아키텍처라 하면 아주 아주 기술적인 주제로만 생각한다. 한마디로 "기술쟁이"들이나 사용하는 것으로 취급해 버린다. 물론 아키텍트라는 역할 정의도 없다. 환경이 이렇다 보니 이 녀석에게도 선뜻 시간을 할애하지 못하고 있다.
1)"소프트웨어 아키텍처 이론과 실제"
- 번역본으로서 2nd 에디션이다.
2) "소프트웨어 아키텍처 문서화"
- 아키텍처 설계를 문서화하는 방법을 설명한다.
3) "Software Architecture In Practice"
- 첫번째 책의 3rd 에디션이다.
목차는 최신 버전으로...! 목차를 그대로 옮기는 것도 시간이 꽤 든다. 그래도 빠른 시간에 전체적인 내용을 overview하는데 꽤 괜찮은 방법이다. 그냥 눈으로 읽고 끝낼 수도 있지만 이렇게 타이핑하는 것이 효과적인 것 같다.
PART ONE INTRODUCTION
CHAPTER 1 What Is Software Architecture?
1.1 What Software Architecture Is and What It Isn't
1.2 Architectural Structures and Views
1.3 Architectural Patterns
1.4 What Makes a "Good" Architecture?
1.5 Summary
1.6 For Further Reading
1.7 Discussion Questions
CHAPTER 2 Why Is Software Architecture Important?
2.1 Inhibiting or Enabling a System's Quality Attributes
2.2 Reasoning About and Managing Change
2.3 Predicting System Qualities
2.4 Enhancing Communication among Stakeholders
2.5 Carrying Early Design Decisions
2.6 Defining Constraints on an Implementation
2.7 Influencing the Organizational Structure
2.8 Enabling Evolutionary Prototyping
2.9 Improving Cost and Schedule Estimates
2.10 Supplying a Transferable, Reusable Model
2.11 Allowing Incorporation of Independently Developed Components
2.12 Restricting the Vocabulary of Design Alternatives
2.13 Providing a Basis for Training
2.14 Summary
2.15 For Further Reading
2.16 Discussion Questions
CHAPTER 3 The Many Contexts of Software Architecture
3.1 Architecture in a Technical Context
3.2 Architecture in a Project Life-Cycle Context
3.3 Architecture in a Business Context
3.4 Architecture in a Professional Context
3.5 Stakeholders
3.6 How Is Architecture Influenced?
3.7 What do Architecture Influence?
3.8 Summary
3.9 For Further Reading
3.10 Discussion Questions
PART TWO QUALITY ATTRIBUTES
CHAPTER 4 Understanding Quality Attributes
4.1 Architecture and Requirements
4.2 Functionality
4.3 Quality Attribute Considerations
4.4 Specifying Quality Attribute Requirements
4.5 Achieving Quality Attributes through Tactics
4.6 Guiding Quality Design Decisions
4.7 Summary
CHAPTER 5~11 Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability
n.1 General Scenario
n.2 Tactics
n.3 A Design Checklist
n.4 Summary
CHAPTER 12 Other Quality Attributes
12.1 Other important Quality Attributes
12.2 Other Categories of Quality Attributes
12.3 Software Quality Attributes and System Quality Attributes
12.4 Using Standard Lists of Quality Attributes or Not
12.5 Dealing with "X-ability":Bringing a New Quality Attribute into the Fold
CHAPTER 13 Architectural Tactics and Patterns
13.1 Architectural Patterns
13.2 Overview of the Patterns Catalog
13.3 Relationships between Tactics and Patterns
13.4 Using Tactics Together
13.5 Summary
CHAPTER 14 Quality Attribute Modeling and Analysis
14.1 Modeling Architectures to Enable Quality Attribute Analysis
14.2 Quality Attribute Checklists
14.3 Thought Experiments and Back-of-the-Envelope Analysis
14.4 Experiments, Simulations, and Prototypes
14.5 Analysis at Different Stages of the Life Cycle
14.6 Summary
PART THREE ARCHITECTURE IN THE LIFE CYCLE
CHAPTER 15 Architecture in Agile Projects
15.1 How Much Architecture?
15.2 Agility and Architecture Methods
15.3 A Brief Example of Agile Architecting
15.4 Guidelines for the Agile Architect
15.5 Summary
CHAPTER 16 Architecture and Requirements
16.1 Gathering ASRs from Requirements Documents
16.2 Gathering ASRs by Interviewing Stakeholders
16.3 Gathering ASRs by Understanding the Business Goals
16.4 Capturing ASRs in a Utility Tree
16.5 Tying the Methods Together
16.6 Summary
CHAPTER 17 Designing an Architecture
17.1 Design Strategy
17.2 The Attribute-Driven Design Method
17.3 The Steps of ADD
17.4 Summary
CHAPTER 18 Documenting Software Architectures
18.1 Uses and Audiences for Architecture Documentation
18.2 Notations for Architecture Documentation
18.3 Views
18.4 Choosing the Views
18.5 Combining Views
18.6 Building the Documentation Package
18.7 Documenting Behavior
18.8 Architecture Documentation and Quality Attributes
18.9 Documenting Architectures That Change Faster Than You Can Document Them
18.10 Documenting Architecture in an Agile Development Project
18.11 Summary
CHAPTER 19 Architecture, Implementation, and Testing
19.1 Architecture and Implementation
19.2 Architecture and Testing
19.3 Summary
CHAPTER 20 Architecture Reconstruction and Conformance
20.1 Architecture Reconstruction Process
20.2 Raw View Extraction
20.3 Database Construction
20.4 View Fusion
20.5 Architecture Analysis:Finding Violations
20.6 Guidelines
20.7 Summary
CHAPTER 21 Architecture Evaluation
21.1 Evaluation Factors
21.2 The Architecture Tradeoff Analysis Method
21.3 Lightweight Architecture Evaluation
21.4 Summary
CHAPTER 22 Management and Governance
22.1 Planning
22.2 Organizing
22.3 Implementing
22.4 Measuring
22.5 Governance
22.6 Summary
PART FOUR ARCHITECTURE AND BUSINESS
CHAPTER 23 Economic Analysis of Architectures
23.1 Decision-Making Context
23.2 The Basis for the Economic Analyses
23.3 Putting Theory into Practice: The CBAM
23.4 Case Study : The NASA ECS Project
23.5 Summary
CHAPTER 24 Architecture Competence
24.1 Competence of Individuals : Duties, Skills, and Knowledge of Architects
24.2 Competence of a Software Architecture Organization
24.3 Summary
CHAPTER 25 Architecture and Software Product Lines
25.1 An Example of Product Line Variability
25.2 What Makes a Software Product Line Work?
25.3 Product Line Scope
25.4 The Quality Attribute of Variability
25.5 The Role of a Product Line Architecture
25.6 Variation Mechanisms
25.7 Evaluation a Product Line Architecture
25.8 Key Software Product Line Issues
25.9 Summary
PART FIVE THE BRAVE NEW WORLD
CHAPTER 26 Architecture in the Cloud
26.1 Basic Cloud Definitions
26.2 Service Models and Deployment Options
26.3 Economic Justification
26.4 Base Mechanisms
26.5 Sample Technologies
26.6 Architecting in a Cloud Environment
26.7 Summary
CHAPTER 27 Architectures for the Edge
27.1 The Ecosystem of Edge-Dominant Systems
27.2 Changes to the Software Development Life Cycle
27.3 Implications for Architecture
27.4 Implications of the Metropolis Model
27.5 Summary
CHAPTER 28 Epilogue
'IT 살이 > 04. 기술 - 아키텍처' 카테고리의 다른 글
책상정리 #3 - 서비스 디자인 패턴 (0) | 2015.07.18 |
---|---|
Proxiable Types-모든 웹 서비스 호출을 가로챌 수 있다 (0) | 2009.04.23 |
커맨드 패턴 (0) | 2009.04.23 |