Book description
Winner of a 2015 Alpha Sigma Nu Book Award, Software Essentials: Design and Construction explicitly defines and illustrates the basic elements of software design and construction, providing a solid understanding of control flow, abstract data types (ADTs), memory, type relationships, and dynamic behavior. This text evaluates the benefits and overhead of object-oriented design (OOD) and analyzes software design options. With a structured but hands-on approach, the book:
- Delineates malleable and stable characteristics of software design
- Explains how to evaluate the short- and long-term costs and benefits of design decisions
- Compares and contrasts design solutions, such as composition versus inheritance
- Includes supportive appendices and a glossary of over 200 common terms
- Covers key topics such as polymorphism, overloading, and more
While extensive examples are given in C# and/or C++, often demonstrating alternative solutions, design—not syntax—remains the focal point of Software Essentials: Design and Construction.
About the Cover:
Although capacity may be a problem for a doghouse, other requirements are usually minimal. Unlike skyscrapers, doghouses are simple units. They do not require plumbing, electricity, fire alarms, elevators, or ventilation systems, and they do not need to be built to code or pass inspections.
The range of complexity in software design is similar. Given available software tools and libraries—many of which are free—hobbyists can build small or short-lived computer apps. Yet, design for software longevity, security, and efficiency can be intricate—as is the design of large-scale systems. How can a software developer prepare to manage such complexity? By understanding the essential building blocks of software design and construction.
Table of contents
- Front Cover (1/2)
- Front Cover (2/2)
- Contents (1/2)
- Contents (2/2)
- Preface
- Acknowledgments
- Detailed Book Outline (1/2)
- Detailed Book Outline (2/2)
- Chapter 1: Software Complexity and Modeling (1/6)
- Chapter 1: Software Complexity and Modeling (2/6)
- Chapter 1: Software Complexity and Modeling (3/6)
- Chapter 1: Software Complexity and Modeling (4/6)
- Chapter 1: Software Complexity and Modeling (5/6)
- Chapter 1: Software Complexity and Modeling (6/6)
- Chapter 2: Software Development (1/6)
- Chapter 2: Software Development (2/6)
- Chapter 2: Software Development (3/6)
- Chapter 2: Software Development (4/6)
- Chapter 2: Software Development (5/6)
- Chapter 2: Software Development (6/6)
- Chapter 3: Functionality (1/7)
- Chapter 3: Functionality (2/7)
- Chapter 3: Functionality (3/7)
- Chapter 3: Functionality (4/7)
- Chapter 3: Functionality (5/7)
- Chapter 3: Functionality (6/7)
- Chapter 3: Functionality (7/7)
- Chapter 4: Memory (1/6)
- Chapter 4: Memory (2/6)
- Chapter 4: Memory (3/6)
- Chapter 4: Memory (4/6)
- Chapter 4: Memory (5/6)
- Chapter 4: Memory (6/6)
- Chapter 5: Design and Documentation (1/7)
- Chapter 5: Design and Documentation (2/7)
- Chapter 5: Design and Documentation (3/7)
- Chapter 5: Design and Documentation (4/7)
- Chapter 5: Design and Documentation (5/7)
- Chapter 5: Design and Documentation (6/7)
- Chapter 5: Design and Documentation (7/7)
- Chapter 6: Structural Design (1/6)
- Chapter 6: Structural Design (2/6)
- Chapter 6: Structural Design (3/6)
- Chapter 6: Structural Design (4/6)
- Chapter 6: Structural Design (5/6)
- Chapter 6: Structural Design (6/6)
- Chapter 7: Behavioral Design (1/9)
- Chapter 7: Behavioral Design (2/9)
- Chapter 7: Behavioral Design (3/9)
- Chapter 7: Behavioral Design (4/9)
- Chapter 7: Behavioral Design (5/9)
- Chapter 7: Behavioral Design (6/9)
- Chapter 7: Behavioral Design (7/9)
- Chapter 7: Behavioral Design (8/9)
- Chapter 7: Behavioral Design (9/9)
- Chapter 8: Design Alternatives and Perspectives (1/10)
- Chapter 8: Design Alternatives and Perspectives (2/10)
- Chapter 8: Design Alternatives and Perspectives (3/10)
- Chapter 8: Design Alternatives and Perspectives (4/10)
- Chapter 8: Design Alternatives and Perspectives (5/10)
- Chapter 8: Design Alternatives and Perspectives (6/10)
- Chapter 8: Design Alternatives and Perspectives (7/10)
- Chapter 8: Design Alternatives and Perspectives (8/10)
- Chapter 8: Design Alternatives and Perspectives (9/10)
- Chapter 8: Design Alternatives and Perspectives (10/10)
- Chapter 9: Software Correctness (1/4)
- Chapter 9: Software Correctness (2/4)
- Chapter 9: Software Correctness (3/4)
- Chapter 9: Software Correctness (4/4)
- Chapter 10: Software Longevity (1/4)
- Chapter 10: Software Longevity (2/4)
- Chapter 10: Software Longevity (3/4)
- Chapter 10: Software Longevity (4/4)
- Glossary: Definitions and Conceptual Details (1/5)
- Glossary: Definitions and Conceptual Details (2/5)
- Glossary: Definitions and Conceptual Details (3/5)
- Glossary: Definitions and Conceptual Details (4/5)
- Glossary: Definitions and Conceptual Details (5/5)
- References
- Appendix A: Memory and the Pointer Construct (1/4)
- Appendix A: Memory and the Pointer Construct (2/4)
- Appendix A: Memory and the Pointer Construct (3/4)
- Appendix A: Memory and the Pointer Construct (4/4)
- Appendix B: Heap Memory and Aliases (1/5)
- Appendix B: Heap Memory and Aliases (2/5)
- Appendix B: Heap Memory and Aliases (3/5)
- Appendix B: Heap Memory and Aliases (4/5)
- Appendix B: Heap Memory and Aliases (5/5)
- Appendix C: Function Pointers (1/2)
- Appendix C: Function Pointers (2/2)
- Appendix D: Operator Overloading (1/6)
- Appendix D: Operator Overloading (2/6)
- Appendix D: Operator Overloading (3/6)
- Appendix D: Operator Overloading (4/6)
- Appendix D: Operator Overloading (5/6)
- Appendix D: Operator Overloading (6/6)
- Back Cover
Product information
- Title: Software Essentials
- Author(s):
- Release date: July 2014
- Publisher(s): Chapman and Hall/CRC
- ISBN: 9781439841211
You might also like
book
Software Architect Bootcamp, Second Edition
The completely updated "field manual" for becoming a better software architect! The crucial skills you need …
book
Software Architect Bootcamp
Become a great software architect—hands-on! Define architectures that leverage today's best design patterns Maximize scalability and …
book
Software Requirement Patterns
Learn proven, real-world techniques for specifying software requirements with this practical reference. It details 30 requirement …
book
Software Craftsmanship: The New Imperative
By recognizing that software development is not a mechanical task, you can create better applications. Today’s …