OOP Case Study: Use Program Design Criteria and Simple Models
SP Case Study: Use Program Design Criteria and Simple Models
Program Design and Performance
OOP Case Study: Considering Performance
SP Case Study: Considering Performance
Program Design and Security
OOP Case Study: Considering Security
SP Case Study: Considering Security
Part II: Introduction to Software Design
Characteristics of Good Software Design
OOD Case Study: Transition to Software Design
SD Case Study: Transition to Software Design
Introduction to Model-View-Controller
OOD Case Study: Model-View-Controller
SD Case Study: Model-View-Controller
Part III: Software Design Perspectives
Introduction to Human-Computer Interaction (HCI) Design
OOD Case Study: Text-based User Interface
SD Case Study: Text-based User Interface
Model-View-Controller: TUI versus GUI
OOD Case Study: Graphical-based User Interface
SD Case Study: Graphical-based User Interface
Is Your Design Clear, Concise, and Complete?
Software Design and Security
OOD Case Study: More Security Requirements
SD Case Study: More Security Requirements
Introduction to Design Patterns
OOD Case Study: Design Patterns
SD Case Study: Design Patterns
Modeling Persistent Data
Persistent Data Storage
OOD Case Study: Persistent Storage
SD Case Study: Persistent Storage
Part IV: Wrap-Up
Software Design Document
What's Next?
Dr. David P. Voorhees is Director of Computer Science, Cybersecurity, and Software Applications & Systems Development, and McDevitt Associate Chair of Computer Science in the Department of Mathematics & Computer Science at Le Moyne College, Syracuse, NY, USA.
This classroom-tested textbook presents an active-learning approach to the foundational concepts of software design. These concepts are then applied to a case study, and reinforced through practice exercises, with the option to follow either a structured design or object-oriented design paradigm. The text applies an incremental and iterative software development approach, emphasizing the use of design characteristics and modeling techniques as a way to represent higher levels of design abstraction, and promoting the model-view-controller (MVC) architecture.
Topics and features:
Provides a case study to illustrate the various concepts discussed throughout the book, offering an in-depth look at the pros and cons of different software designs
Includes discussion questions and hands-on exercises that extend the case study and apply the concepts to other problem domains
Presents a review of program design fundamentals to reinforce understanding of the basic concepts
Focuses on a bottom-up approach to describing software design concepts
Introduces the characteristics of a good software design, emphasizing the model-view-controller as an underlying architectural principle
Describes software design from both object-oriented and structured perspectives
Examines additional topics on human-computer interaction design, quality assurance, secure design, design patterns, and persistent data storage design
Discusses design concepts that may be applied to many types of software development projects
Suggests a template for a software design document, and offers ideas for further learning
Students of computer science and software engineering will find this textbook to be indispensable for advanced undergraduate courses on programming and software design. Prior background knowledge and experience of programming is required, but familiarity in software design is not assumed.
Dr. David P. Voorhees is Director of Computer Science, Cybersecurity, and Software Applications & Systems Development, and McDevitt Associate Chair of Computer Science in the Department of Mathematics & Computer Science at Le Moyne College, Syracuse, NY, USA.