간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (56,100원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (41,340원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (47,240원)
(최대할인 4만원 / 2만원 이상 결제)
Close

Lean Architecture - For Agile Software Development [수정판]

소득공제

2013년 9월 9일 이후 누적수치입니다.

공유하기
정가

65,610원

  • 59,050 (10%할인)

    1,780P (3%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 3/27(월) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

목차

About the Authors
Preface
1 Introduction 1
1.1 The Touchstones: Lean and Agile 1
1.2 Lean Architecture and Agile Feature Development 4
1.3 Agile Production 7
1.3.1 Agile Builds on Lean 7
1.3.2 The Scope of Agile Systems 7
1.3.3 Agile and DCI 8
1.4 The Book in a Very Small Nutshell 10
1.5 Lean and Agile: Contrasting and Complementary 11
1.5.1 The Lean Secret 14
1.6 Lost Practices 14
1.6.1 Architecture 15
1.6.2 Handling Dependencies between Requirements 15
1.6.3 Foundations for Usability 16
1.6.4 Documentation 16
Code Does Not Stand Alone 17
Capturing the "Why" 19
1.6.5 Common Sense, Thinking, and Caring 19
1.7 What this Book is Not About 21
1.8 Agile, Lean - Oh, Yeah, and Scrum and Methodologies and Such 22
1.9 History and Such 24

2 Agile Production in a Nutshell 27
2.1 Engage the Stakeholders 27
2.2 Define the Problem 29
2.3 Focusing on What the System Is: The Foundations of Form 30
2.4 Focusing on What the System Does: The System Lifeblood 32
2.5 Design and Code 33
2.6 Countdown: 3, 2, 1 34

3 Stakeholder Engagement 35
3.1 The Value Stream 35
3.1.1 End Users and Other Stakeholders as Value Stream Anchors 36
3.1.2 Architecture in the Value Stream 37
3.1.3 The Lean Secret 38
3.2 The Key Stakeholders 41
3.2.1 End Users 43
Psyching Out the End Users 44
Don't Forget Behavior 46
The End User Landscape 47
3.2.2 The Business 47
A Special Note for Managers 48
3.2.3 Customers 50
...As Contrasted with End Users 50
"Customers" in the Value Stream 52
3.2.4 Domain Experts 52
No Ivory Tower Architects 53
Experts in Both Problem and Solution Domains 54
3.2.5 Developers and Testers 55
3.3 Process Elements of Stakeholder Engagement 57
3.3.1 Getting Started 58
3.3.2 Customer Engagement 60
3.4 The Network of Stakeholders: Trimming Wasted Time 61
3.4.1 Stovepipe Versus Swarm 61
3.4.2 The First Thing You Build 64
3.4.3 Keep the Team Together 65
3.5 No Quick Fixes, but Some Hope 66

4 Problem Definition 67
4.1 What's Agile about Problem Definitions? 68
4.2 What's Lean about Problem Definitions? 68
4.3 Good and Bad Problem Definitions 70
4.4 Problems and Solutions 72
4.5 The Process Around Problem Definitions 73
4.5.1 Value the Hunt Over the Prize 73
4.5.2 Problem Ownership 74
4.5.3 Creeping Featurism 75
4.6 Problem Definitions, Goals, Charters, Visions, and Objectives 76
4.7 Documentation? 77

5 What the System Is, Part 1: Lean Architecture 79
5.1 Some Surprises about Architecture 80
5.1.1 What's Lean about This? 82
Deliberation and "Pull" 83
Failure-Proof Constraints or Poka-Yoke 83
The Lean Mantras of Conservation, Consistency, and Focus 84
5.1.2 What's Agile about Architecture? 84
It's All About Individuals and Interactions 84
Past Excesses 85
Dispelling a Couple of Agile Myths 86
5.2 The First Design Step: Partitioning 88
5.2.1 The First Partition: Domain Form Versus Behavioral Form 89
5.2.2 The Second Partitioning: Conway's Law 90
5.2.3 The Real Complexity of Partitioning 93
5.2.4 Dimensions of Complexity 94
5.2.5 Domains: A Particularly Interesting Partitioning 94
5.2.6 Back to Dimensions of Complexity 96
5.2.7 Architecture and Culture 100
5.2.8 Wrap-Up on Conway's Law 100
5.3 The Second Design Step: Selecting a Design Style 100
5.3.1 Contrasting Structuring with Partitioning 102
5.3.2 The Fundamentals of Style: Commonality and Variation 104
5.3.3 Starting with Tacit Commonality and Variation 105
5.3.4 Commonality, Variation, and Scope 108
5.3.5 Making Commonalities and Variations Explicit 111
Commonality Categories 112
Next Steps 114
5.3.6 The Most Common Style: Object Orientation 114
Just What is Object Orientation? 115
5.3.7 Other Styles within the Von-Neumann World 117
5.3.8 Domain-Specific Languages and Application Generators 120
The State of the Art in DSLs 121
DSLs' Place in Architecture 121
5.3.9 Codified Forms: Pattern Languages 122
5.3.10 Third-Patry Software and Other Paradigms 124
5.4 Documentation? 127
5.4.1 The Domain Dictionary 128
5.4.2 Architecture Carryover 128
5.5 History and Such 129

6 What the System is, Part 2: Coding It Up 131
6.1 The Third Step: The Rough Framing of the Code 131
6.1.1 Abstract Base Classes 133
6.1.2 Pre-Conditions, Post-Conditions, and Assertions 137
Static Cling 142
6.1.3 Algorithmic Scaling: The Other Side of Static Assertions 144
6.1.4 Form Versus Accessible Services 146
6.1.5 Scaffolding 147
6.1.6 Testing the Architecture 149
Usability Testing 149
Architecture Testing 149
6.2 Relationships in Architecture 153
6.2.1 Kinds of Relationship 153
6.2.2 Testing the Relationships 155
6.3 Not Your Old Professor's OO 155
6.4 How much Architecture? 159
6.4.1 Balancing BUFD and YAGNI 159
6.4.2 One Size Does Not Fit All 160
6.4.3 When Are You Done? 160
6.5 Documentation? 162
6.6 History and Such 163

7 What the System Does: System Functionality 165
7.1 What the System Does 166
7.1.1 User Stories: A Beginning 166
7.1.2 Enabling Specifications and Use Cases 167
7.1.3 Helping Developers, Too 169
7.1.4 Your Mileage may Vary 170
7.2 Who is Going to Use Our Software? 171
7.2.1 User Profiles 171
7.2.2 Personas 171
7.2.3 User Profiles or Personas? 172
7.2.4 User Roles and Terminology 173
7.3 What do the Users Want to Use Our Software for? 173
7.3.1 Feature Lists 173
7.3.2 Dataflow Diagrams 174
7.3.3 Personas and Scenarios 174
7.3.4 Narratives 174
7.3.5 Behavior-Driven Development 175
7.3.6 Now that We're Warmed Up 175
Prototypes 176
Towards Foundations for Decisions 176
Known and Unknown Unknowns 176
Use Cases as a Decision Framework 177
7.4 Why Does the User Want to Use Our Software? 177
7.5 Consolidation of What the System Does 178
7.5.1 The Helicopter view 181
Habits: The Developer View and the User View 182
Trimming the Scope 185
7.5.2 Setting the Stage 186
7.5.3 Play the Sunny Day Scenario 187
Business Rules 191
7.5.4 Add the Interesting Stuff 193
7.5.5 Use Cases to Roles 200
Roles from the Use Case 201
Bridging the Gap between the Business and the Programmer 202
7.6 Recap 203
7.6.1 Support the User's Workflow 203
7.6.2 Support Testing Close to Development 203
7.6.3 Support Efficient Decision-Making about Functionality 204
7.6.4 Support Emerging Requirements 204
7.6.5 Support Release Planning 204
7.6.6 Support Sufficient Input to the Architecture 205
7.6.7 Support the Team's Understanding of What to Develop 205
7.7 "It Depends": When Use Cases are a Bad Fit 206
7.7.1 Classic OO: Atomic Event Architectures 206
7.8 Usability Testing 208
7.9 Documentation? 209
7.10 History and Such 211

8 Coding It Up: Basic Assembly 213
8.1 The Big Picture: Model-View-Controller-User 214
8.1.1 What is a Program? 214
8.1.2 What is an Agile Program? 215
8.1.3 MVC in More Detail 217
8.1.4 MVC-U: Not the End of the Story 217
A Short History of Computer Science 218
Atomic Event Architectures 219
DCI Architectures 220
8.2 The Form and Architecture of Atomic Event Systems 220
8.2.1 Domain Objects 221
8.2.2 Object Roles, Interfaces, and the Model 221
Example 223
8.2.3 Reflection: Use Cases, Atomic Event Architectures, and Algorithms 224
8.2.4 A Special Case: One-to-Many Mapping of Object Roles to Objects 225
8.3 Updating the Domain Logic: Method Elaboration, Factoring, and Re-factoring 226
8.3.1 Creating New Classes and Filling in Existing Function Placeholders 227
Example 228
8.3.2 Back to the Future: This is Just Good Old-Fashioned OO 229
8.3.3 Analysis and Design Tools 229
8.3.4 Factoring 231
8.3.5 A Caution about Re-Factoring 231
8.4 Documentation? 231
8.5 Why All These Artifacts? 232
8.6 History and Such 233

9 Coding it Up: The DCI Architecture 235
9.1 Sometimes, Smart Objects Just Aren't Enough 235
9.2 DCI in a Nutshell 236
9.3 Overview of DCI 238
9.3.1 Parts of the User Mental Model We've Forgotten 239
9.3.2 Enter Methodful Object Roles 240
9.3.3 Tricks With Traits 242
9.3.4 Context Classes: One Per Use Case 243
9.4 DCI by Example 246
9.4.1 The Inputs to the Design 246
9.4.2 Use Cases to Algorithms 247
9.4.3 Methodless Object Roles: The Framework for Identifiers 250
9.4.4 Partitioning the Algorithms Across Methodful Object Roles 253
Traits as a Building Block 253
In Smalltalk 253
In C++ 254
In Ruby 256
Coding it Up: C++ 257
Coding Up DCI in Ruby 259
9.4.5 The Context Framework 261
The Ruby Code 263
The C++ Code 265
Making Contexts Work 267
Habits: Nested Contexts in Methodful Object Roles 277
9.4.6 Variants and Tricks in DCI 283
Context Layering 283
Information Hiding 283
Selective Object Role Injection 284
9.5 Updating the Domain Logic 285
9.5.1 Contrasting DCI with the Atomic Event Style 286
9.5.2 Special Considerations for Domain Logic in DCI 287
9.6 Context Objects in the User Mental Model: Solution to an Age-Old Problem 290
9.7 Why All These Artifacts? 294
Why not Use Classes Instead of "Methodful Object Roles"? 295
Why not Put the Entire Algorithm Inside of the Class with which it is Most Closely Coupled? 295
Then Why not Localize the Algorithm to a Class and Tie it to Domain Objects as Needed? 296
Why not Put the Algorithm into a Procedure, and Combine the Procedural Paradigm with the Object Paradigm in a Single Program? 296
If I Collect Together the Algorithm Code for a Use Case in One Class, Including the Code for All of its Deviations, Doesn't the Context Become Very Large?' 296
So, What do DCI and Lean Architecture Give Me? 297
And Remember 297
9.8 Beyond C++: DCI in Other Languages 297
9.8.1 Scala 298
9.8.2 Python 299
9.8.3 C# 299
9.8.4 ...and Even Java 29
9.8.5 The Account Example in Smalltalk 300
9.9 Documentation? 300
9.10 History and Such 301
9.10.1 DCI and Aspect-Oriented Programming 302
9.10.2 Other Approaches 302

10 Epilog 305

Appendix A Scala Implementation of the DCI Account Example 307
Appendix B Account Example in Python 311
Appendix C Account Example in C# 315
Appendix D Account Example in Ruby 321
Appendix E Qi4j 327
Appendix F Account Example in Squeak 331

F.1 Testing Perspective 333
F.2 Data Perspective 333
F.2.1 BB5Bank 333
F.2.2 BB5Savings Account 334
F.2.3 BB5Checking Account 334

F.3 Context Perspective 335
F.3.1 BB5Money Transfer Context 335

F.4 Interaction (Role Trait) Perspective 336
F.4.1 BB5Money Transfer Context Transfer Money Source 336
F.4.2 BB5Money Transfer Context My Context 337
F.4.3 BB5Money Transfer Context Transfer Money Sink 337

F.5 Support Perspective (Infrastructure Classes) 337
F.5.1 BB1Context (common superclass for all Contexts) 337
F.5.2 BB1Role Trait (all Role Traits are instances of this class) 339

Bibliography 341
Index 351

책소개

More and more Agile projects are seeking architectural roots as they struggle with complexity and scale - and they're seeking lightweight ways to do it

-Still seeking? In this book the authors help you to find your own path
-Taking cues from Lean development, they can help steer your project toward practices with longstanding track records
-Up-front architecture? Sure. You can deliver an architecture as code that compiles and that concretely guides development without bogging it down in a mass of documents and guesses about the implementation
-Documentation? Even a whiteboard diagram, or a CRC card, is documentation: the goal isn't to avoid documentation, but to document just the right things in just the right amount
-Process? This all works within the frameworks of Scrum, XP, and other Agile approaches

저자소개

Coplien, James/Bj?rnvig, Gertrud/Bjornvig, Gertrud [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

컴퓨터 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크커머스 안전결제시스템 (에스크로) 안내

    (주)인터파크커머스의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용