Software development, design and coding: with patterns, debugging, unit testing, and refactoring
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
New York
APRESS
2018
|
Ausgabe: | 2nd edition |
Schlagworte: | |
Online-Zugang: | Inhaltstext http://www.springer.com/ Inhaltsverzeichnis |
Beschreibung: | xxii, 320 Seiten Illustrationen 23.5 cm x 15.5 cm |
ISBN: | 9781484231524 148423152X |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV044997165 | ||
003 | DE-604 | ||
005 | 20210217 | ||
007 | t | ||
008 | 180607s2018 xxua||| |||| 00||| eng d | ||
016 | 7 | |a 1140009885 |2 DE-101 | |
020 | |a 9781484231524 |c Book : circa EUR 39.58 (DE) (freier Preis), circa EUR 40.69 (AT) (freier Preis), circa CHF 41.00 (freier Preis) |9 978-1-4842-3152-4 | ||
020 | |a 148423152X |9 1-4842-3152-X | ||
024 | 3 | |a 9781484231524 | |
028 | 5 | 2 | |a Bestellnummer: 978-1-4842-3152-4 |
028 | 5 | 2 | |a Bestellnummer: 86904988 |
035 | |a (OCoLC)1042914991 | ||
035 | |a (DE-599)DNB1140009885 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a xxu |c XD-US | ||
049 | |a DE-739 |a DE-1043 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Dooley, John F. |d 1952- |e Verfasser |0 (DE-588)109647946X |4 aut | |
245 | 1 | 0 | |a Software development, design and coding |b with patterns, debugging, unit testing, and refactoring |c John Dooley |
250 | |a 2nd edition | ||
264 | 1 | |a New York |b APRESS |c 2018 | |
300 | |a xxii, 320 Seiten |b Illustrationen |c 23.5 cm x 15.5 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
653 | |a Software engineering | ||
653 | |a Software development | ||
653 | |a Software design | ||
653 | |a Coding | ||
653 | |a Patterns | ||
653 | |a Parallel Programming | ||
653 | |a Debugging | ||
653 | |a Unit testing | ||
653 | |a Refactoring | ||
653 | |a Project management | ||
653 | |a Object-oriented design | ||
653 | |a requirements | ||
689 | 0 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | |5 DE-604 | |
710 | 2 | |a Apress L.P. |0 (DE-588)1065538766 |4 pbl | |
776 | 0 | 8 | |i Elektronische Reproduktion |z 9781484231531 |
780 | 0 | 0 | |i Vorangegangen ist |z 9781430238010 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=c073f6fcf0164fe2a225c27fab4b8010&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m X:MVB |u http://www.springer.com/ |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030389388&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-030389388 |
Datensatz im Suchindex
_version_ | 1810323694193475584 |
---|---|
adam_text |
Contents
About the Author. xv
About the Technical Reviewer. xvii
Acknowledgments. xix
Preface. xxi
■Chapter 1: Introduction to Software Development. 1
What We’re Doing.2
So, How to Develop Software?.2
Conclusion. 4
References.5
■Chapter 2: Software Process Models. 7
The Four Variables. 8
A Model That’s not a Model At All: Code and Fix.8
Cruising over the Waterfall. 9
Iterative Models.11
Evolving the Iterative Model.12
Risk: The Problem with Plan-Driven Models.13
Agile Methodologies. 13
Agile Values and Principles. 14
extreme Programming (XP). 15
XP Overview.15
The Four Basic Activities.16
Implementing XP: The 12 Practices.16
Scrum. 18
Scrum Roles.19
The Sprint. 19
Scrum Artifacts. 19
Sprint Flow.20
Lean Software Development.21
Principle 1: Eliminate Waste.22
Principle 2: Build Quality In.22
Principle 3: Create Knowledge. 22
Principle 4: Defer Commitment.23
Principle 5: Deliver Fast.23
Principle 6: Respect People.23
Principle 7: Optimize the Whole.24
Kanban. 24
The Kanban board, WIP, and Flow.24
Lead Time.26
Conclusion. 26
References.27
■Chapter 3: Project Management Essentials. 29
Project Planning. 30
Project Organization.30
Risk Analysis.31
Resource Requirements.33
Task Estimates. 33
Project Schedule. 34
Velocity. 35
Project Oversight.36
Status Reviews and Presentations.36
Defects. 37
The Retrospective.38
Conclusion.38
References. 38
■Chapter 4: Requirements. 39
What Types of Requirements Are We Talking About?.39
User Requirements.40
Domain Requirements.40
Non-Functional Requirements.40
Non-Requirements. 41
Requirements Gathering in a Plan-Driven Project.41
But I Don’t Like Writing!.41
Outline of a Functional Specification.42
Design and New Feature Ideas.43
One More Thing. 44
Requirements Gathering in an Agile Project. 44
The Three Cs.44
INVEST in Stories.45
Product Backlog.47
SMART Tasks.47
Sprint/lteration Backlog.48
Requirements Digging. 48
Why Requirements Digging Is Hard.49
Analyzing the Requirements.50
Conclusion.51
References.51
■Chapter 5: Software Architecture. 53
General Architectural Patterns.54
The Main Program—Subroutine Architectural Pattern. 54
Pipe-and-Filter Architecture. 55
An Object-Oriented Architectural Pattern.56
An MVC Example: Let’s Hunt!. 58
The Client-Server Architectural Pattern.60
The Layered Approach.61
Conclusion.,.62
References. 63
■Chapter 6: Design Principles. 65
The Design Process. 68
Desirable Design Characteristics (Things Your Design Should Favor).69
Design Heuristics. 70
Designers and Creativity. 72
Conclusion. 73
References. 74
■Chapter 7: Structured Design. 75
Structured Programming. 75
Stepwise Refinement. 76
Example of Stepwise Refinement: The Eight-Queens Problem.77
Modular Decomposition. 84
Example: Keyword in Context.86
Conclusion. 94
References. 94
■Chapter 8: Object-Oriented Overview. 95
An Object-Oriented Analysis and Design Process.96
Requirements Gathering and Analysis.98
Design. 98
Implementation and Testing.98
Release/Maintenance/Evolution.98
Doing the Process. 98
The Problem Statement.98
The Feature List. 99
Use Cases.99
Decompose the Problem.100
Class Diagrams.100
Code Anyone?.101
Conclusion. 105
References.106
■Chapter 9: Object-Oriented Analysis and Design. 107
Analysis.108
An Analytical Example.109
Design.111
Change in the Right Direction. 112
Recognizing Change.112
Songbirds Forever. 113
A New Requirement.113
Separating Analysis and Design.115
Shaping the Design. 116
Abstraction.117
Conclusion.119
References.120
■Chapter 10: Object-Oriented Design Principles. 121
List of Fundamental Object-Oriented Design Principles.122
Encapsulate Things in Your Design That Are Likely to Change. 122
Code to an Interface Rather Than to an Implementation.123
The Open-Closed Principle.126
The Don’t Repeat Yourself Principle.127
The Single Responsibility Principle.128
The Liskov Substitution Principle.129
The Dependency Inversion Principle. 136
The Interface Segregation Principle. 138
The Principle of Least Knowledge. 138
Class Design Guidelines.139
Conclusion. 140
References. 140
■Chapter 11: Design Patterns. 141
Design Patterns and the Gang of Four.142
The Classic Design Patterns. 143
Patterns We Can Use. 144
Creational Patterns.144
Structural Patterns.151
Behavioral Patterns.157
Conclusion. 166
References.166
■Chapter 12: Parallel Programming. 167
Concurrency vs. Parallelism. 168
Parallel Computers. 170
Flynn’s Taxonomy.170
Parallel Programming.171
Scalability.172
Performance. 172
Obstacles to Performance Improvement.173
How to Write a Parallel Program. 174
Parallel Programming Models.174
Designing Parallel Programs.175
Parallel Design Techniques. 175
Programming Languages and APIs (with examples). 177
Parallel Language Features. 177
Java Threads. 178
OpenMP. 184
The Last Word on Parallel Programming. 188
References. 189
■Chapter 13: Parallel Design Patterns. 191
Parallel Patterns Overview.191
Parallel Design Pattern Design Spaces.192
A List of Parallel Patterns.199
Embarrassingly Parallel.199
Master/Worker.200
Map and Reduce.200
MapReduce.202
Divide Conquer.204
Fork/Join.205
A Last Word on Parallel Design Patterns.209
References. 209
■Chapter 14: Code Construction. 211
A Coding Example. 213
Functions and Methods and Size.214
Formatting, Layout, and Style.214
General Layout Issues and Techniques.215
WhiteSpace.217
Block and Statement Style Guidelines.217
Declaration Style Guidelines.218
Commenting Style Guidelines. 220
Identifier Naming Conventions. 222
Refactoring.224
When to Refactor.224
Types of Refactoring. 226
Defensive Programming. 228
Assertions Are Helpful. 229
Exceptions.230
Error Handling. 230
Exceptions in Java. 232
The Last Word on Coding.234
References. 234
■Chapter 15: Debugging. 235
What Is an Error, Anyway?. 236
What Not To Do.237
An Approach to Debugging. 238
Reproduce the Problem Reliably.238
Find the Source of the Error. 239
Fix the Error (Just That One)!.245
Test the Fix.246
Look for More Errors. 246
Source Code Control.246
The Collision Problem. 247
Source Code Control Systems.248
One Last Thought on Coding and Debugging: Pair Programming.250
Conclusion.251
References.251
■Chapter 16: Unit Testing.—. 253
The Problem with Testing.254
That Testing Mindset.254
When to Test?.255
Testing in an Agile Development Environment.256
What to Test?. 256
Code Coverage: Test Every Statement.257
Data Coverage: Bad Data Is Your Friend?.258
Characteristics of Tests.259
How to Write a Test. 259
The Story.260
The Tasks. 260
The Tests.260
JUnit: A Testing Framework.264
Testing Is Good.268
Conclusion. 268
References.269
■Chapter 17: Code Reviews and Inspections. 271
Walkthroughs, Reviews, and Inspections.272
Walkthroughs.273
Code Reviews.273
Code Inspections.274
Inspection Roles.275
Inspection Phases and Procedures. 276
Reviews in Agile Projects.278
How to Do an Agile Peer Code Review.279
Summary of Review Methodologies.279
Defect Tracking Systems.280
Defect Tracking in Agile Projects. 281
Conclusion. 282
References.282
■Chapter 18: Ethics and Professional Practice. .283
Introduction to Ethics. 283
Ethical Theory. 284
Deontological Theories.284
Consequentialism (Teleological Theories).287
Ethical Drivers. 289
Legal Drivers.289
Professional Drivers.289
Ethical Discussion and Decision Making.291
Identifying and Describing the Problem.291
Analyzing the Problem.291
Case Studies. 292
#1 Copying Software.292
#2 Who’s Computer Is It?.292
#3 How Much Testing Is Enough?.292
#4 How Much Should You Tell?.293
The Last Word on Ethics?. 293
References. 294
The ACM Code of Ethics and Professional Conduct.294
Preamble.294
Contents Guidelines.295
The ACM/IEEE-CS Software Engineering Code of Ethics.300
PREAMBLE.300
PRINCIPLES.301
■Chapter 19: Wrapping It all Up. 305
What Have You Learned?. 305
What to Do Next?. 306
References. 308
Index. 311 |
any_adam_object | 1 |
author | Dooley, John F. 1952- |
author_GND | (DE-588)109647946X |
author_facet | Dooley, John F. 1952- |
author_role | aut |
author_sort | Dooley, John F. 1952- |
author_variant | j f d jf jfd |
building | Verbundindex |
bvnumber | BV044997165 |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)1042914991 (DE-599)DNB1140009885 |
discipline | Informatik |
edition | 2nd edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV044997165</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20210217</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">180607s2018 xxua||| |||| 00||| eng d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1140009885</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781484231524</subfield><subfield code="c">Book : circa EUR 39.58 (DE) (freier Preis), circa EUR 40.69 (AT) (freier Preis), circa CHF 41.00 (freier Preis)</subfield><subfield code="9">978-1-4842-3152-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">148423152X</subfield><subfield code="9">1-4842-3152-X</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9781484231524</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Bestellnummer: 978-1-4842-3152-4</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Bestellnummer: 86904988</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1042914991</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1140009885</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</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">XD-US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield><subfield code="a">DE-1043</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="100" ind1="1" ind2=" "><subfield code="a">Dooley, John F.</subfield><subfield code="d">1952-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)109647946X</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Software development, design and coding</subfield><subfield code="b">with patterns, debugging, unit testing, and refactoring</subfield><subfield code="c">John Dooley</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2nd edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">New York</subfield><subfield code="b">APRESS</subfield><subfield code="c">2018</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xxii, 320 Seiten</subfield><subfield code="b">Illustrationen</subfield><subfield code="c">23.5 cm x 15.5 cm</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="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software engineering</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software development</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software design</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Coding</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Patterns</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Parallel Programming</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Debugging</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Unit testing</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Refactoring</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Project management</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Object-oriented design</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">requirements</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Apress L.P.</subfield><subfield code="0">(DE-588)1065538766</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Elektronische Reproduktion</subfield><subfield code="z">9781484231531</subfield></datafield><datafield tag="780" ind1="0" ind2="0"><subfield code="i">Vorangegangen ist</subfield><subfield code="z">9781430238010</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=c073f6fcf0164fe2a225c27fab4b8010&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="u">http://www.springer.com/</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</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=030389388&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-030389388</subfield></datafield></record></collection> |
id | DE-604.BV044997165 |
illustrated | Illustrated |
indexdate | 2024-09-16T04:00:11Z |
institution | BVB |
institution_GND | (DE-588)1065538766 |
isbn | 9781484231524 148423152X |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-030389388 |
oclc_num | 1042914991 |
open_access_boolean | |
owner | DE-739 DE-1043 |
owner_facet | DE-739 DE-1043 |
physical | xxii, 320 Seiten Illustrationen 23.5 cm x 15.5 cm |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | APRESS |
record_format | marc |
spelling | Dooley, John F. 1952- Verfasser (DE-588)109647946X aut Software development, design and coding with patterns, debugging, unit testing, and refactoring John Dooley 2nd edition New York APRESS 2018 xxii, 320 Seiten Illustrationen 23.5 cm x 15.5 cm txt rdacontent n rdamedia nc rdacarrier Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Software engineering Software development Software design Coding Patterns Parallel Programming Debugging Unit testing Refactoring Project management Object-oriented design requirements Softwareentwicklung (DE-588)4116522-6 s DE-604 Apress L.P. (DE-588)1065538766 pbl Elektronische Reproduktion 9781484231531 Vorangegangen ist 9781430238010 X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=c073f6fcf0164fe2a225c27fab4b8010&prov=M&dok_var=1&dok_ext=htm Inhaltstext X:MVB http://www.springer.com/ Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030389388&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Dooley, John F. 1952- Software development, design and coding with patterns, debugging, unit testing, and refactoring Softwareentwicklung (DE-588)4116522-6 gnd |
subject_GND | (DE-588)4116522-6 |
title | Software development, design and coding with patterns, debugging, unit testing, and refactoring |
title_auth | Software development, design and coding with patterns, debugging, unit testing, and refactoring |
title_exact_search | Software development, design and coding with patterns, debugging, unit testing, and refactoring |
title_full | Software development, design and coding with patterns, debugging, unit testing, and refactoring John Dooley |
title_fullStr | Software development, design and coding with patterns, debugging, unit testing, and refactoring John Dooley |
title_full_unstemmed | Software development, design and coding with patterns, debugging, unit testing, and refactoring John Dooley |
title_short | Software development, design and coding |
title_sort | software development design and coding with patterns debugging unit testing and refactoring |
title_sub | with patterns, debugging, unit testing, and refactoring |
topic | Softwareentwicklung (DE-588)4116522-6 gnd |
topic_facet | Softwareentwicklung |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=c073f6fcf0164fe2a225c27fab4b8010&prov=M&dok_var=1&dok_ext=htm http://www.springer.com/ http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030389388&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT dooleyjohnf softwaredevelopmentdesignandcodingwithpatternsdebuggingunittestingandrefactoring AT apresslp softwaredevelopmentdesignandcodingwithpatternsdebuggingunittestingandrefactoring |