Agile software development: principles, patterns, and practices
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, N.J.
Pearson Education
2003
|
Schriftenreihe: | Alan Apt series
|
Schlagworte: | |
Online-Zugang: | Table of contents Inhaltsverzeichnis |
Beschreibung: | Includes bibliographical references and index |
Beschreibung: | XXII, 529 S. Ill., graph. Darst. |
ISBN: | 0135974445 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV014479345 | ||
003 | DE-604 | ||
005 | 20080527 | ||
007 | t | ||
008 | 020603s2003 xxuad|| |||| 00||| eng d | ||
010 | |a 2002070056 | ||
020 | |a 0135974445 |9 0-13-597444-5 | ||
035 | |a (OCoLC)224957893 | ||
035 | |a (DE-599)BVBBV014479345 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-703 |a DE-91G |a DE-859 |a DE-522 |a DE-526 |a DE-11 |a DE-739 |a DE-29T |a DE-B768 | ||
050 | 0 | |a QA76.76.D47 | |
082 | 0 | |a 005.1 |2 21 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ZA 76000 |0 (DE-625)154306: |2 rvk | ||
084 | |a DAT 310f |2 stub | ||
100 | 1 | |a Martin, Robert C. |d 1952- |e Verfasser |0 (DE-588)114440964 |4 aut | |
245 | 1 | 0 | |a Agile software development |b principles, patterns, and practices |c Robert Cecil Martin |
264 | 1 | |a Upper Saddle River, N.J. |b Pearson Education |c 2003 | |
300 | |a XXII, 529 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Alan Apt series | |
500 | |a Includes bibliographical references and index | ||
650 | 4 | |a Computer software |x Development | |
650 | 4 | |a eXtreme programming | |
650 | 0 | 7 | |a Agile Softwareentwicklung |0 (DE-588)4806620-5 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Agile Softwareentwicklung |0 (DE-588)4806620-5 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | |u http://www.loc.gov/catdir/toc/fy035/2002070056.html |3 Table of contents | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009879155&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-009879155 |
Datensatz im Suchindex
_version_ | 1804129304565514240 |
---|---|
adam_text | Contents
Foreword
Preface
About the Authors
List of Design Patterns
Section
1
Agile Development
Chapter
1
Agile Practices
The Agile Alliance
The Manifesto of the Agile Alliance
Principles
Conclusion
Bibliography
Chapter
2
Overview of Extreme Programming
The Practices of Extreme Programming
Customer Team Member
User Stories
Short Cycles
Acceptance Tests
Pair Programming
Test-Driven Development
Collective Ownership
Continuous Integration
Sustainable Pace
Open Workspace
The Planning Game
Simple Design
Refactoring
Metaphor
Conclusion
Bibliography
Chapter
3
Planning
Initial Exploration
Spiking, Splitting, and Velocity
Release Planning
Iteration Planning
Task Planning
The Halfway Point
Iterating
Conclusion
Bibliography
Chapter
4
Testing
Test Driven Development
An Example of Test-First Design
Test Isolation
Serendipitous Decoupling
Acceptance Tests
Example of Acceptance Testing
Serendipitous Architecture
Conclusion
Bibliography
Chapter
5
Refactoring
Generating Primes: A Simple Example of Refactoring
The Final Reread
Conclusion
Bibliography
Chapter
6
A Programming Episode
The Bowling Game
Conclusion
19
20
20
20
21
21
22
22
22
22
23
23
24
25
26
27
27
29
29
29
31
32
38
42
42
43
44
82
Section
2
Agile Design
85
Symptoms of Poor Design
Principles
Smells and Principles
Bibliography
Chapter
7
What Is Agile Design?
What Goes Wrong with Software?
Design Smells
—
The Odors of Rotting Software
What Stimulates the Software to Rot?
Agile Teams Don t Allow the Software to Rot
The Copy Program
Agile Design of the Copy Example
How Did the Agile Developers Know What to Do?
Keeping the Design As Good As It Can Be
Conclusion
Bibliography
85
86
86
86
87
87
88
89
90
90
93
94
94
94
94
Chapter
8
SRP:
The Single-Responsibility Principle
A CLASS SHOULD HAVE ONLY ONE REASON TO CHANGE.
SRP:
The Single-Responsibility Principle
What Is a Responsibility?
Separating Coupled Responsibilities
Persistence
Conclusion
Bibliography
Chapter
9
OCP: The Open-Closed Principle
Software entities (classes, modules, functions, etc.) should be open
for extension, but closed for modification.
OCP: The Open-Closed Principle
Description
Abstraction Is the Key
The Shape Application
Violating the OCP
Conforming to the OCP
OK, I Lied
Anticipation and Natural Structure
Putting the Hooks In
Using Abstraction to Gain Explicit Closure
Using a Data-Driven Approach to Achieve Closure
Conclusion
Bibliography
Chapter
10
LSP: The Liskov Substitution Principle
Subtypes must be substitutable for their base types.
LSP: The Liskov Substitution Principle
A Simple Example of a Violation of the LSP
Square and Rectangle, a More Subtle Violation
The Real Problem
Validity Is Not Intrinsic
ISA Is about Behavior
Design by Contract
Specifying Contracts in Unit Tests
A Real Example
Motivation
Problem
A Solution That Does Not Conform to the LSP
An LSP-Compliant Solution
Factoring Instead of Deriving
Heuristics and Conventions
Degenerate Functions in Derivatives
Throwing Exceptions from Derivatives
Conclusion
Bibliography
Contents
Chapter
11
DIP: The Dependency-Inversion Principle
a. High-level modules should not depend upon low-level modules.
Both should depend on abstractions.
b. Abstractions should not depend on details. Details should
depend on abstractions.
DIP: The Dependency-Inversion Principle
Layering
An Inversion of Ownership
Depend on Abstractions
A Simple Example
Finding the Underlying Abstraction
The Furnace Example
Dynamic v. Static Polymorphism
Conclusion
Bibliography
Chapter
12
ISP: The Interface-Segregation Principle
Interface Pollution
Separate Clients Mean Separate Interfaces
The Backwards Force Applied by Clients Upon Interfaces
Clients should not be forced to depend on methods that they do
NOT USE.
ISP: The Interface-Segregation Principle
Class Interfaces v. Object Interfaces
Separation through Delegation
Separation through Multiple Inheritance
The ATM User Interface Example
The Polyad v. the Monad
Conclusion
Bibliography
127
127
128
128
129
130
131
132
133
134
134
135
135
137
137
137
138
138
139
139
144
145
145
Section
3
The Payroll Case Study
147
Rudimentary Specification of the Payroll System
Exercise
Use Case
1 :
Add New Employee
Use Case
2:
Deleting an Employee
Use Case
3:
Post a Time Card
Use Case
4:
Postinga
Sales Receipt
Use Case
5:
Posting a Union Service Charge
Use Case
6:
Changing Employee Details
Use Case
7:
Run the Payroll for Today
Chapter
13
Command and Active Object
Simple Commands
Transactions
Physical and Temporal Decoupling
Temporal Decoupling
UNDO
148
148
148
149
149
149
150
150
150
151
152
153
154
154
154
xviii
Breaking the Cycle
The Jitters
Top-Down Design
The Stable-Dependencies Principle
(SDP)
Depend in the direction of stability.
Stability
Stability Metrics
Not All Packages Should Be Stable
Where Do We Put the High-level Design?
The Stable-Abstractions Principle (SAP)
A PACKAGE SHOULD BE AS
ABSTRACTAS
IT IS STABLE.
Measuring Abstraction
The Main Sequence
Distance from the Main Sequence
Conclusion
Chapter
21
FACTORY
A Dependency Cycle
Substitutable Factories
Using Factories for Test Fixtures
How Important Is It to Use Factories?
Conclusion
Bibliography
Chapter
22
The Payroll Case Study (Part
2)
Package Structure and Notation
Applying the Common Closure Principle
(ССР)
Applying the Reuse-Release Equivalency Principle (REP)
Coupling and Encapsulation
Metrics
Applying the Metrics to the Payroll Application
Object Factories
The Object Factory for Transactionlmplementation
Initializing the Factories
Rethinking the Cohesion Boundaries
The Final Package Structure
Conclusion
Bibliography
259
259
260
261
261
262
263
264
264
265
265
266
268
269
271
272
273
274
274
274
275
276
277
278
279
281
282
285
286
286
287
287
290
290
Section
5
The Weather Station Case Study
291
Chapter
23
Composite
Example: Composite Commands
Multiplicity or Not Multiplicity
Chapter
24
OBSERVER
—
Backing into a Pattern
The Digital Clock
293
294
295
297
297
Contents
Conclusion
The Use of Diagrams in this Chapter
The Observer Pattern
How Observer Manages the Principles of OOD
Bibliography
Chapter
25
Abstract Server, Adapter, and Bridge
Abstract Server
Who Owns the Interface?
Adapter
The Class Form of ADAPTER
The Modem Problem, ADAPTERS and LSP
Bridge
Conclusion
Bibliography
Chapter
26
Proxy and Stairway to Heaven: Managing Third Party APIs
Proxy
Proxifying the Shopping Cart
Summary of Proxy
Dealing with Databases, Middleware, and Other Third Party Interfaces
Stairway to Heaven
Example of Stairway
то
Heaven
Other Patterns That Can Be Used with Databases
Conclusion
Bibliography
Chapter
27
Case Study: Weather Station
The Cloud Company
The WMS-LC Software
Language Selection
Nimbus-LC Software Design
24-Hour History and Persistence
Implementing the HiLo Algorithms
Conclusion
Bibliography
Nimbus-LC Requirements Overview
Usage Requirements
24-Hour History
User Setup
Administrative Requirements
Nimbus-LC Use Cases
Actors
Use Cases
Measurement History
Setup
Administration
Nimbus-LC Release Plan
Introduction
Release I
355
355
356
357
357
368
371
379
379
379
379
379
379
380
380
380
380
380
381
381
381
381
381
Risks
Deliverable^)
Release II
Use Cases Implemented
Risks
Deliverable^)
Release III
Use Cases Implemented
Risks
Deliverable^)
382
382
382
382
383
383
383
383
383
383
Section
6
The
ETS
Case Study
385
Chapter
28
Visitor
The Visitor Family of Design Patterns
Visitor
Visitor is Like a Matrix
Acyclic Visitor
Acyclic Visitor Is Like a Sparse Matrix
Using Visitor in Report Generators
Other Uses of Visitor
Decorator
Multiple Decorators
Extension Object
Conclusion
Reminder
Bibliography
Chapter
29
State
Overview of Finite State Automata
Implementation Techniques
Nested Switch/Case Statements
Interpreting Transition Tables
The State Pattern
SMC
—
The State-Machine Compiler
Where Should State Machines be Used?
High-Level Application Policies for GUIs
GUI Interaction Controllers
Distributed Processing
Conclusion
Listings
Turnstile
.
j
ava
Using Table Interpretation
Turnstile
.
j
ava
Generated by SMC, and Other Support Files
Bibliography
Chapter
30
The
ETS
Framework
Introduction
Project Overview
387
388
388
391
391
396
396
402
403
406
408
j
418 ;
418 ;
418
419
419
421
421
424
426
429
432
432
433
433
434
434
434
437
441
443
443
443
Contents xx
Early History
1993-1994 445
Framework? 445
Framework! 446
The 1994 Team 446
The Deadline
446
The Strategy
446
Results
447
Framework Design 448
The Common Requirements of the Scoring Applications
448
The Design of the Scoring Framework
450
A Case for Template Method
453
Write a Loop Once
454
The Common Requirements of the Delivery Applications
456
The Design of the Delivery Framework
457
The Taskmaster Architecture
462
Conclusion
465
Bibliography
466
Appendix A UML Notation I: The CGI Example
467
Course Enrollment System: Problem Description
468
Actors
469
Use Cases
469
The Domain Model
472
The Architecture
476
Abstract Classes and Interfaces in Sequence Diagrams
485
Summary
486
Bibliography
487
Appendix
В
UML Notation II: The STATMUX
489
The Statistical Multiplexor Definition
489
The Software Environment
490
The Real-time Constraints
490
The Input Interrupt Service Routine
491
The Output Service Interrupt Routine
495
The Communications Protocol
496
Conclusion
506
Bibliography
506
Appendix
С
A Satire of Two Companies
507
Rufus, Inc.
Project Kickoff
507
Rupert Industries
Project: -Alpha-
507
Appendix
D
The Source Code Is the Design
517
What Is Software Design?
517
Afterword
523
Index
525
|
any_adam_object | 1 |
author | Martin, Robert C. 1952- |
author_GND | (DE-588)114440964 |
author_facet | Martin, Robert C. 1952- |
author_role | aut |
author_sort | Martin, Robert C. 1952- |
author_variant | r c m rc rcm |
building | Verbundindex |
bvnumber | BV014479345 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.D47 |
callnumber-search | QA76.76.D47 |
callnumber-sort | QA 276.76 D47 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 ZA 76000 |
classification_tum | DAT 310f |
ctrlnum | (OCoLC)224957893 (DE-599)BVBBV014479345 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik Agrar-/Forst-/Ernährungs-/Haushaltswissenschaft / Gartenbau |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01764nam a2200445zc 4500</leader><controlfield tag="001">BV014479345</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20080527 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">020603s2003 xxuad|| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2002070056</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0135974445</subfield><subfield code="9">0-13-597444-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)224957893</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV014479345</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-B768</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.D47</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">21</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ZA 76000</subfield><subfield code="0">(DE-625)154306:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Martin, Robert C.</subfield><subfield code="d">1952-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)114440964</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Agile software development</subfield><subfield code="b">principles, patterns, and practices</subfield><subfield code="c">Robert Cecil Martin</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, N.J.</subfield><subfield code="b">Pearson Education</subfield><subfield code="c">2003</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXII, 529 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Alan Apt series</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references and index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Development</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">eXtreme programming</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Agile Softwareentwicklung</subfield><subfield code="0">(DE-588)4806620-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Agile Softwareentwicklung</subfield><subfield code="0">(DE-588)4806620-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/toc/fy035/2002070056.html</subfield><subfield code="3">Table of contents</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009879155&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-009879155</subfield></datafield></record></collection> |
id | DE-604.BV014479345 |
illustrated | Illustrated |
indexdate | 2024-07-09T19:03:01Z |
institution | BVB |
isbn | 0135974445 |
language | English |
lccn | 2002070056 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-009879155 |
oclc_num | 224957893 |
open_access_boolean | |
owner | DE-703 DE-91G DE-BY-TUM DE-859 DE-522 DE-526 DE-11 DE-739 DE-29T DE-B768 |
owner_facet | DE-703 DE-91G DE-BY-TUM DE-859 DE-522 DE-526 DE-11 DE-739 DE-29T DE-B768 |
physical | XXII, 529 S. Ill., graph. Darst. |
publishDate | 2003 |
publishDateSearch | 2003 |
publishDateSort | 2003 |
publisher | Pearson Education |
record_format | marc |
series2 | Alan Apt series |
spelling | Martin, Robert C. 1952- Verfasser (DE-588)114440964 aut Agile software development principles, patterns, and practices Robert Cecil Martin Upper Saddle River, N.J. Pearson Education 2003 XXII, 529 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Alan Apt series Includes bibliographical references and index Computer software Development eXtreme programming Agile Softwareentwicklung (DE-588)4806620-5 gnd rswk-swf Agile Softwareentwicklung (DE-588)4806620-5 s DE-604 http://www.loc.gov/catdir/toc/fy035/2002070056.html Table of contents Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009879155&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Martin, Robert C. 1952- Agile software development principles, patterns, and practices Computer software Development eXtreme programming Agile Softwareentwicklung (DE-588)4806620-5 gnd |
subject_GND | (DE-588)4806620-5 |
title | Agile software development principles, patterns, and practices |
title_auth | Agile software development principles, patterns, and practices |
title_exact_search | Agile software development principles, patterns, and practices |
title_full | Agile software development principles, patterns, and practices Robert Cecil Martin |
title_fullStr | Agile software development principles, patterns, and practices Robert Cecil Martin |
title_full_unstemmed | Agile software development principles, patterns, and practices Robert Cecil Martin |
title_short | Agile software development |
title_sort | agile software development principles patterns and practices |
title_sub | principles, patterns, and practices |
topic | Computer software Development eXtreme programming Agile Softwareentwicklung (DE-588)4806620-5 gnd |
topic_facet | Computer software Development eXtreme programming Agile Softwareentwicklung |
url | http://www.loc.gov/catdir/toc/fy035/2002070056.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009879155&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT martinrobertc agilesoftwaredevelopmentprinciplespatternsandpractices |