An edition of Software Essentials (2014)

Software essentials

design and construction

My Reading Lists:

Create a new list


Buy this book

Last edited by ImportBot
July 23, 2023 | History
An edition of Software Essentials (2014)

Software essentials

design and construction

"Preface 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, etc. 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, etc. 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. "--

Publish Date
Language
English
Pages
413

Buy this book

Previews available in: English

Edition Availability
Cover of: Software Essentials
Software Essentials
2020, Taylor & Francis Group
in English
Cover of: Software Essentials
Software Essentials
2014, Taylor & Francis Group
in English
Cover of: Software Essentials
Software Essentials: Design and Construction
2014, Taylor & Francis Group
in English
Cover of: Software essentials
Software essentials: design and construction
2014, CRC Press, Taylor & Francis Group, CRC Press
in English
Cover of: Software Essentials
Software Essentials: Design and Construction
2014, Taylor & Francis Group
in English

Add another edition?

Book Details


Table of Contents

section I. Software construction
1. Software complexity and modeling
Modern software
Software design
Software utility
Software production
Software engineering
The software development life cycle (SDLC)
Software process methodologies
Models
Requirements analysis and specification
Software architecture
Model view controller
Code construction
Software integration
Documentation
2. Software development
Software execution
General purpose utility and support
Programming language evolution
Compilers
Software design
ADTs
Class construct
Object-oriented programming languages
UML
Libraries and frameworks
Software construction fundamentals
section II. Software fundamentals
3. Functionality
Control flow
Structured control flow
Controlled interruption to sequential execution
Readability
Boolean logic
Short-circuit evaluation
Recursion
Sequential execution
Optimization
Inlining
4. Memory
Abstraction of memory
Heap memory
C++ deallocation
C#/Java heap memory management
Memory overhead
Allocation
Memory reclamation
Garbage collection
Reference counting
Design : storage versus computation
5. Design and documentation
Object-oriented design
Class functionality
Constructors
Accessors and mutators
Utility functions
Destructors
Programming by contract
Defensive programming
Precondition and postcondition
Invariants
Design example
Contractual expectations
section III. Software design
6. Structural design
Relationships
Composition
Containment
Class design : has-a or holds-a?
Inheritance
Automate subtype checking
Inheritance design
Code reuse
Class design : has-a or is-a?
Contractual expectations
7. Behavioral design
Inheritance for functionality
Polymorphism
Overloading
Generics
Subtype polymorphism
Static binding versus dynamic binding
Heterogeneous collections
Virtual function table
Software design
Abstract classes
Real-world example : disassembler
Virtual function table
Language differences
Type introspection
C++ virtual destructors
Accessibility of C++ virtual functions
8. Design alternatives and perspectives
Comparative design
Class design types
Concrete class
Abstract class
Node class
Wrappers
Delegate
Handle : smart pointers
Design specifications for inheritance
Inheritance versus composition
Multiple inheritance
Imperfections
Single inheritance with composition
Simulated design without inheritance
Multiple inheritance design
Evaluating design options
Relevance of type
section IV. Software durability
9. Software correctness
Exceptions and software design
Testing design
Scale
Perspective
Coverage
Data values
Software qualities
10. Software longevity
Software maintenance
Software evolution
Nonfunctional properties
Refactoring
Reverse engineering
Glossary : definitions and conceptual details
Appendix A. Memory and the pointer construct
Appendix B. Heap memory and aliases
Appendix C. Function pointers
Appendix D. Operator overloading.

Edition Notes

"A Chapman & Hall book."

Includes bibliographical references (pages 329-330) and index.

Published in
Boca Raton
Series
Chapman & Hall/CRC innovations in software engineering and software development series
Copyright Date
2014

Classifications

Dewey Decimal Class
005.1/2
Library of Congress
QA76.76.D47 D545 2014, QA76.76.D47

The Physical Object

Pagination
xxii, 413 pages
Number of pages
413

Edition Identifiers

Open Library
OL31017960M
ISBN 10
1439841209
ISBN 13
9781439841204
LCCN
2014008078
OCLC/WorldCat
744303816

Work Identifiers

Work ID
OL21546108W

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON
July 23, 2023 Edited by ImportBot import existing book
December 15, 2022 Edited by MARC Bot import existing book
September 17, 2021 Edited by ImportBot import existing book
August 23, 2020 Created by ImportBot import new book