وبلاگ بلیان

توسعه نرم‌افزار و عمل حرفه‌ای (صدای کارشناسان در توسعه نرم‌افزار)

Software Development and Professional Practice (Expert's Voice in Software Development)

جلد کتاب توسعه نرم‌افزار و عمل حرفه‌ای (صدای کارشناسان در توسعه نرم‌افزار)

معرفی کتاب «توسعه نرم‌افزار و عمل حرفه‌ای (صدای کارشناسان در توسعه نرم‌افزار)» (با عنوان لاتین Software Development and Professional Practice (Expert's Voice in Software Development)) نوشتهٔ John Dooley، منتشرشده توسط نشر Apress; Distributed to the trade worldwide by Springer در سال 1205. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Software Development and Professional Practice reveals how to design and code great software. What factors do you take into account? What makes a good design? What methods and processes are out there for designing software? Is designing small programs different than designing large ones? How can you tell a good design from a bad one? You'll learn the principles of good software design, and how to turn those principles back into great code. Software Development and Professional Practice is also about code construction—how to write great programs and make them work. What, you say? You've already written eight gazillion programs! Of course I know how to write code! Well, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs. You'll also talk about reading code. How do you read code? What makes a program readable? Can good, readable code replace documentation? How much documentation do you really need? This book introduces you to software engineering—the application of engineering principles to the development of software. What are these engineering principles? First, all engineering efforts follow a defined process. So, you'll be spending a bit of time talking about how you run a software development project and the different phases of a project. Secondly, all engineering work has a basis in the application of science and mathematics to real-world problems. And so does software development! You'll therefore take the time to examine how to design and implement programs that solve specific problems. Finally, this book is also about human-computer interaction and user interface design issues. A poor user interface can ruin any desire to actually use a program; in this book, you'll figure out why and how to avoid those errors. Software Development and Professional Practice covers many of the topics described for the ACM Computing Curricula 2001 course C292c Software Development and Professional Practice. It is designed to be both a textbook and a manual for the working professional. What you’ll learn How to design and code great software What methods and processes are available to help you design great software How to apply software engineering principles to your daily coding practice How to tell a good design from a bad one? Understand the characteristics of good programs How to construct professional standard code that you can be proud to show Understand all about coding standards, and apply them to real Java coding Explore debugging, unit testing and modularity All about object-oriented programming (OOP) design principles and great coding How to apply the principles you've learned to specific and real-world coding problems A companion to the ACM Computing Curricular 2001 source C202c Who this book is for Software Development and Professional Practice is designed to be both a textbook and a manual for the working professional programmer, and any student of programming who wants to learn the art of the trade. This book assumes you know some Java, enough to read its examples at least, and that you've already done some programming. Now you want to write great code! This book covers many of the topics described for the ACM Computing Curricula 2001 course C292c Software Development and Professional Practice, and will be a great companion to anyone studying this course. Table of Contents Introduction to Software Development Process Life Cycle Models Project Management Essentials Requirements Software Architecture Design Principles Structured Design Object-Oriented Analysis & Design—An Overview Object-Oriented Analysis & Design—A Play in Several Acts Object-Oriented Design Principles Design Patterns Code Construction Debugging Unit Testing Walkthroughs, Code Reviews and Inspections Wrapping it All Up Cover......Page 1 Contents at a Glance......Page 6 Contents......Page 7 About the Author......Page 16 About the Technical Reviewer......Page 17 Acknowledgments......Page 18 Preface......Page 19 Introduction to Software Development......Page 21 So, How to Develop Software?......Page 22 Conclusion......Page 24 References......Page 25 Process Life Cycle Models......Page 26 A Model That’s not a Model At All: Code and Fix......Page 27 Cruising over the Waterfall......Page 28 Backing Up the Waterfall......Page 30 Loops Are Your Friend......Page 31 Evolving the Incremental Model......Page 32 Agile Is as Agile Does......Page 33 XP Overview......Page 34 The Four Variables......Page 35 The 15 Principles......Page 36 The Four Basic Activities......Page 38 Implementing XP: The 12 Practices......Page 39 The XP Life Cycle......Page 41 Scrum, mate......Page 42 References......Page 44 Project Planning......Page 45 Risk Analysis......Page 46 Resource Requirements......Page 48 Project Schedule......Page 49 Status Reviews and Presentations......Page 52 The Post-Mortem......Page 53 References......Page 54 What Types of Requirements Are We Talking About Here?......Page 55 That Natural Language Thing......Page 56 Author’s Name......Page 57 Non-requirements......Page 58 Backlog......Page 59 Domain Requirements......Page 60 Requirements Digging......Page 61 Why Requirements Digging Is Hard......Page 62 Analyzing the Requirements......Page 63 References......Page 64 Software Architecture......Page 65 Pipe-and-filter Architecture......Page 66 An Object-Oriented Architectural Pattern......Page 67 The Problem......Page 69 View......Page 70 The Client-Server Architectural Pattern......Page 71 The Layered Approach......Page 72 The Main Program: Subroutine Architectural Pattern......Page 74 Conclusion......Page 75 References......Page 76 Design Principles......Page 77 The Design Process......Page 80 Desirable Design Characteristics (Things Your Design Should Favor)......Page 81 Design Heuristics......Page 82 Designers and Creativity......Page 84 Conclusion......Page 85 References......Page 86 Structured Programming......Page 88 Stepwise Refinement......Page 89 Modular Decomposition......Page 96 Top-Down Decomposition......Page 98 References......Page 100 Appendix: The Complete Non-Recursive Eight-Queens Program......Page 101 Object-Oriented Analysis and Design - An Overview......Page 104 An Object-Oriented Analysis and Design Process......Page 105 Doing the Process......Page 107 References......Page 114 Object-Oriented Analysis and Design......Page 116 ACT ONE, Scene 1: In Which We Enquire into Analysis......Page 117 ACT ONE, Scene 2: In Which We Deign to Design......Page 120 ACT TWO, Scene 1: Change in the Right Direction......Page 122 ACT TWO, Scene 2: In Which the Design Will also Change, for the Better......Page 124 ACT THREE, Scene 1: In Which We Do Design......Page 125 ACT FOUR, Scene 1: In Which We Philosophize on Abstraction......Page 127 Conclusion......Page 129 References......Page 130 Object-Oriented Design Principles......Page 131 Our List of Fundamental Object-Oriented Design Principles......Page 132 Encapsulate Things in Your Design That Are Likely to Change......Page 133 Code to an Interface Rather Than to an Implementation......Page 134 The Open-Closed Principle (OCP)......Page 136 Don’t Repeat Yourself Principle (DRY)......Page 137 The Single Responsibility Principle (SRP)......Page 139 Liskov Substitution Principle (LSP)......Page 140 The Dependency Inversion Principle (DIP)......Page 147 The Interface Segregation Principle (ISP)......Page 149 The Principle of Least Knowledge (PLK)......Page 150 Class Design Guidelines for Fun and Enjoyment......Page 151 References......Page 152 Design Patterns......Page 153 Design Patterns and the Gang of Four......Page 154 Patterns We Can Use......Page 156 References......Page 173 Code Construction......Page 174 A coding example......Page 176 Functions and Methods and Size, Oh My!......Page 177 General Layout Issues and Techniques......Page 178 White Space......Page 180 Block and Statement Style Guidelines......Page 181 Declaration Style Guidelines......Page 182 Commenting Style Guidelines......Page 183 Identifier Naming Conventions......Page 185 Defensive Programming......Page 187 Assertions Can Be Your Friend......Page 188 Exceptions and Error Handling......Page 189 The Last Word on Coding......Page 193 References......Page 194 Debugging......Page 195 What’s an Error, Anyway?......Page 196 What Not To Do......Page 197 An Approach to Debugging......Page 198 Source Code Control......Page 203 Conclusion......Page 205 References......Page 206 Unit Testing......Page 207 The Problem with Testing......Page 208 When to Test?......Page 209 What to Test?......Page 210 Characteristics of Tests......Page 212 How to Write a Test......Page 213 JUnit: A Testing Framework......Page 218 References......Page 222 Walkthroughs, Code Reviews, and Inspections......Page 223 Code Reviews......Page 225 Code Inspections......Page 226 Summary of Review Methodologies......Page 231 Defect Tracking Systems......Page 232 References......Page 233 Wrapping It all Up......Page 235 What Have You Learned?......Page 236 What to Do Next?......Page 237 References......Page 239 B......Page 240 C......Page 241 D......Page 243 E......Page 244 F......Page 245 I......Page 246 L......Page 247 O......Page 248 P, Q......Page 250 S......Page 251 T......Page 253 W......Page 254 X, Y, Z......Page 255
دانلود کتاب توسعه نرم‌افزار و عمل حرفه‌ای (صدای کارشناسان در توسعه نرم‌افزار)