Modern software engineering : (Record no. 21836)

MARC details
000 -LEADER
fixed length control field 06635nam a2200229Ia 4500
003 - CONTROL NUMBER IDENTIFIER
control field NULRC
005 - DATE AND TIME OF LATEST TRANSACTION
control field 20250520103030.0
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION
fixed length control field 250520s9999 xx 000 0 und d
020 ## - INTERNATIONAL STANDARD BOOK NUMBER
International Standard Book Number 9780137314911
040 ## - CATALOGING SOURCE
Transcribing agency NULRC
050 ## - LIBRARY OF CONGRESS CALL NUMBER
Classification number QA 76.585 .F37 2022
100 ## - MAIN ENTRY--PERSONAL NAME
Personal name Farley, David
Relator term author
245 #0 - TITLE STATEMENT
Title Modern software engineering :
Remainder of title doing what works to build better software faster /
Statement of responsibility, etc. David Farley
260 ## - PUBLICATION, DISTRIBUTION, ETC.
Place of publication, distribution, etc. Boston, Massachusetts :
Name of publisher, distributor, etc. Addision-Wesley Publishing Company,
Date of publication, distribution, etc. c2022
300 ## - PHYSICAL DESCRIPTION
Extent xxvii, 224 pages :
Other physical details illustrations ;
Dimensions 24 cm
365 ## - TRADE PRICE
Price amount USD36
504 ## - BIBLIOGRAPHY, ETC. NOTE
Bibliography, etc. note Includes index.
505 ## - FORMATTED CONTENTS NOTE
Formatted contents note Foreword xvii -- Preface xxi -- Acknowledgments xxv -- About the Author xxvii -- Part I: What Is Software Engineering? 1 Chapter 1: Introduction -- Engineering --The Practical Application of Science -- What Is Software Engineering? -- Reclaiming "Software Engineering" -- The Birth of Software Engineering -- Shifting the Paradigm -- Summary -- Chapter 2: What Is Engineering? -- Production Is Not Our Problem -- Design Engineering, Not Production Engineering -- A Working Definition of Engineering -- Engineering != Code -- Why Does Engineering Matter? -- The Limits of "Craft" -- Precision and Scalability -- Managing Complexity -- Repeatability and Accuracy of Measurement -- Engineering, Creativity, and Craft -- Why What We Do Is Not Software Engineering -- Trade-Offs -- The Illusion of Progress -- The Journey from Craft to Engineering -- Craft Is Not Enough -- Time for a Rethink? -- Summary -- Chapter 3: Fundamentals of an Engineering Approach -- An Industry of Change? -- The Importance of Measurement -- Applying Stability and Throughput -- The Foundations of a Software Engineering Discipline -- Experts at Learning -- Experts at Managing Complexity -- Summary -- Part II: Optimize for Learning -- Chapter 4: Working Iteratively -- Practical Advantages of Working Iteratively -- Iteration as a Defensive Design Strategy -- The Lure of the Plan -- Practicalities of Working Iteratively -- Summary -- Chapter 5: Feedback -- A Practical Example of the Importance of Feedback -- Feedback in Coding -- Feedback in Integration -- Feedback in Design -- Feedback in Architecture -- Prefer Early Feedback -- Feedback in Product -- Feedback in Organization and Culture Summary -- Chapter 6: Incrementalism -- Importance of Modularity -- Organizational Incrementalism -- Tools of Incrementalism -- Limiting the Impact of Change -- Incremental Design -- Summary -- Chapter 7: Empiricism -- Grounded in Reality -- Separating Empirical from Experimental -- "I Know That Bug!" -- Avoiding Self-Deception -- inventing a Reality to Suit Our Argument -- Guided by Reality -- Summary 89 Chapter 8: Being Experimental -- What Does "Being Experimental" Mean? -- Feedback -- Hypothesis -- Measurement -- Controlling the Variables -- Automated Testing as Experiments -- Putting the Experimental Results of Testing into Context -- Scope of an Experiment 1 -- Summary -- Part III: Optimize for Managing Complexity -- Chapter 9: Modularity -- Hallmarks of Modularity -- Undervaluing the Importance of Good Design -- The Importance of Testability -- Designing for Testability Improves Modularity -- Services and Modularity -- Deploy ability and Modularity -- Modularity at Different Scales 118 Modularity in Human Systems -- Summary -- Chapter 10: Cohesion -- Modularity and Cohesion: Fundamentals of Design -- A Basic Reduction in Cohesion -- Context Matters -- High-Performance Software -- Link to Coupling -- Driving High Cohesion with TDD -- How to Achieve Cohesive Software -- Costs of Poor Cohesion -- Cohesion in Human Systems -- Summary -- Chapter 11: Separation of Concerns -- Dependency Injection -- Separating Essential and Accidental Complexity -- Importance of DDD -- Testability -- Ports & Adapters -- When to Adopt Ports & Adapters -- What Is an API? -- Using TDD to Drive Separation of Concerns -- Summary -- Chapter 12: Information Hiding and Abstraction -- Abstraction or Information Hiding -- What Causes "Big Balls of Mud"? -- Organizational and Cultural Problems -- technical Problems and Problems of Design -- Fear of Over-Engineering -- Improving Abstraction Through Testing -- Power of Abstraction -- Leaky Abstractions -- Picking Appropriate Abstractions -- Abstractions from the Problem Domain -- Abstract Accidental Complexity -- Isolate Third-Party Systems and Code -- Always Prefer to Hide Information -- Summary -- Chapter 13: Managing Coupling -- Cost of Coupling -- Scaling Up -- Microservices -- Decoupling May Mean More Code -- Loose Coupling Isn't the Only Kind That Matters -- Prefer Loose Coupling -- How Does This Differ from Separation of Concerns? -- DRY Is Too Simplistic -- Async as a Tool for Loose Coupling -- Designing for Loose Coupling -- Loose Coupling in Human Systems 1 -- Summary -- Part IV: Tools to Support Engineering in Software -- Chapter 14: The Tools of an Engineering Discipline -- What Is Software Development? -- Testability as a Tool -- Measurement Points -- Problems with Achieving Testability -- How to Improve Testability -- Deployability -- Speed -- Controlling the Variables -- Continuous Delivery -- General Tools to Support Engineering -- Summary -- Chapter 15: The Modern Software Engineer -- Engineering as a Human Process -- Digitally Disruptive Organizations 207 Outcomes vs. Mechanisms -- Durable and Generally Applicable -- Foundations of an Engineering Discipline -- Summary -- Index
520 ## - SUMMARY, ETC.
Summary, etc. In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success.
650 ## - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name entry element COMPUTER PROGRAMMERS
942 ## - ADDED ENTRY ELEMENTS (KOHA)
Source of classification or shelving scheme Library of Congress Classification
Koha item type Books
Holdings
Withdrawn status Lost status Source of classification or shelving scheme Damaged status Not for loan Collection Home library Current library Shelving location Date acquired Source of acquisition Cost, normal purchase price Total checkouts Full call number Barcode Date last seen Copy number Price effective from Koha item type
    Library of Congress Classification     Digital Forensic LRC - Main National University - Manila General Circulation 05/13/2024 Purchased - Amazon 36.00   GC QA 76.585 .F37 2022 NULIB000019595 05/20/2025 c.1 05/20/2025 Books