LEADER 04327oam 2200625I 450 001 9910787850003321 005 20170821194357.0 010 $a0-429-06344-X 010 $a1-4398-4120-9 024 7 $a10.1201/b17129 035 $a(CKB)2670000000557158 035 $a(EBL)1479798 035 $a(SSID)ssj0001225415 035 $a(PQKBManifestationID)11707180 035 $a(PQKBTitleCode)TC0001225415 035 $a(PQKBWorkID)11268366 035 $a(PQKB)10950055 035 $a(OCoLC)884585946 035 $a(MiAaPQ)EBC1479798 035 $a(OCoLC)881433210 035 $a(CaSebORM)9781439841204 035 $a(EXLCZ)992670000000557158 100 $a20180331h20142014 uy 0 101 0 $aeng 135 $aur|n|---||||| 181 $ctxt 182 $cc 183 $acr 200 10$aSoftware essentials $edesign and construction /$fAdair Dingle, Seattle University, Washington, USA 205 $a1st edition 210 1$aBoca Raton :$cTaylor & Francis,$d[2014] 210 4$dİ2014 215 $a1 online resource (432 p.) 225 1 $aChapman & Hall/CRC Innovations in Software Engineering and Software Development 300 $aA Chapman and Hall book. 311 $a1-322-62231-0 311 $a1-4398-4121-7 320 $aIncludes bibliographical references. 327 $aFront Cover; Contents; Preface; Acknowledgments; Detailed Book Outline; Chapter 1: Software Complexity and Modeling; Chapter 2: Software Development; Chapter 3: Functionality; Chapter 4: Memory; Chapter 5: Design and Documentation; Chapter 6: Structural Design; Chapter 7: Behavioral Design; Chapter 8: Design Alternatives and Perspectives; Chapter 9: Software Correctness; Chapter 10: Software Longevity; Glossary: Definitions and Conceptual Details; References; Appendix A: Memory and the Pointer Construct; Appendix B: Heap Memory and Aliases; Appendix C:Function Pointers 327 $aAppendix D: Operator OverloadingBack Cover 330 $aPreface Why this book? Why should you read this book? The short answer is to study software design from a structured but hands-on perspective and to understand different models of control flow, memory, dynamic behavior, extensibility, et cetera Software complexity and the growing impact of legacy systems motivate a renewed interest in software design and modeling. We emphasize design (and construction) in this text, using and contrasting C# and C++. Many CS texts are 'learn to' books that focus on one programming language or tool. When perspective is so limited to a specific tool or programming language, high-level concepts are often slighted. Students may gain exposure to an idea via a 'cookbook' implementation and thus fail to truly absorb essential concepts. Students and/or practitioners can understand and apply design principles more readily when such concepts are explicitly defined and illustrated. Design, not just syntax, must be stressed. The progression of programming languages, software process methodologies and development tools continues to support abstraction: software developers should exploit this abstraction and solve problems (design) without being tied to a particular syntax or tool. Software design and modeling are neither new nor trendy topics. Software development often focuses on immediate effect: implement, test (minimally) and deploy. Yet, the complexity, scale and longevity of modern software require an intricate understanding of a software system as a whole -- components and relationships, user interfaces, persistent data, et cetera To accommodate existing use while preserving longevity, a software developer must look forward for extensibility and backward for compatibility. Hence, software developers must understand software design. --$cProvided by publisher. 410 0$aChapman & Hall/CRC innovations in software engineering and software development. 606 $aSoftware architecture 606 $aComputer software$xDevelopment 615 0$aSoftware architecture. 615 0$aComputer software$xDevelopment. 676 $a005.1/2 686 $aCOM051230$aCOM051300$2bisacsh 700 $aDingle$b Adair$01582426 801 0$bFlBoTFG 801 1$bFlBoTFG 906 $aBOOK 912 $a9910787850003321 996 $aSoftware essentials$93864797 997 $aUNINA