000 02512nam a22001817a 4500
008 240327b ||||| |||| 00| 0 eng d
020 _a9783030285036
050 _aQA76.754
_b.V951 2020
100 _aVoorhees, David P.,
245 _aGuide to Efficient Software Design :
_ban MVC approach to concepts, structure, and models /
_cDavid P. Voorhees.
260 _aCham, Switzerland:
_bSpringer,
_c2020.
300 _a519 Pages;
_c23 cm.
440 _aTexts in Computer Science.
521 _aThis 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. -- Provided by publisher.
650 _2Data structures (Computer science).
650 _2Software architecture.
942 _2lcc
_cBK
999 _c6596
_d6596