- Series: Applied Software Engineering Series
- Hardcover: 368 pages
- Publisher: Auerbach Publications; 1 edition (June 11, 2012)
- Language: English
- ISBN-10: 1439851689
- ISBN-13: 978-1439851685
- Product Dimensions: 7 x 0.9 x 10 inches
- Shipping Weight: 1.8 pounds (View shipping rates and policies)
- Average Customer Review: 7 customer reviews
- Amazon Best Sellers Rank: #1,556,448 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Software Engineering Design: Theory and Practice (Applied Software Engineering Series) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
What other items do customers buy after viewing this item?
… intended for use as a textbook for an advanced course in software design. Each chapter ends with review questions and references. … provides an overview of the software development process, something that would not be out of line in a course on software engineering including such topics as software process, software management, balancing conflicting values of stakeholders, testing, quality, and ethics. The author has principally focused on software design though, extracting the design phase from the surrounding software development lifecycle. … Software design strategies are addressed, including structured, functional, and object oriented design. There’s also a chapter on UML (Unified Modeling Language). UML is a set of design paradigms (and tools) used for design modeling, and examples are provided throughout. … The author also provides coded examples of UML diagrams in C++ and Java. … To sum up, the intent of this book is educational on the topic of software design with emphasis on UML, software patterns and object oriented programming. There is also enough software engineering material that makes this text also appropriate for use in a software engineering, object oriented or software patterns lab course.
―Robert Schaefer, Research Engineer, MIT Haystack Observatory, writing in the New York Journal of Books
About the Author
Carlos E. Otero, PhD, is assistant professor in the College of Technology and Innovation at the University of South Florida (USF). Prior to joining USF, Dr. Otero worked as assistant professor of software engineering in the Department of Mathematics and Computer Science at the University of Virginia, College at Wise, where he created the software engineering design course for Virginia’s first and (at the time of writing) only EAC/ABET-accredited BS in software engineering.
Prior to his academic career, Dr. Otero spent 11 years in the private industry, where he worked as design and development engineer in a wide variety of military computer systems, including satellite communications systems, command and control systems, wireless security systems, and unmanned aerial vehicle systems. Currently, he continues to consult with industry in the areas of requirements engineering, software systems analysis, design and development, quality assurance, and systems engineering.
Dr. Otero received his BS in computer science, MS in software engineering, MS in systems engineering, and PhD in computer engineering from Florida Institute of Technology in Melbourne. He has published over 35 technical publications in scientific peer-reviewed journals and conferences proceedings. He is a senior member of the Institute of Electrical and Electronics Engineers (IEEE), an active professional member of the Association for Computing Machinery (ACM), and a member of several journal editorial boards in technology and engineering.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
A chart on page 15 of the book 'explains' phases. You can see this through the free preview of the book through this site.
Requirements [phase] Initial stage in the software development life cycle where requirements are elicited, analyzed, specified, and validated
Design [phase] The requirement's specification is used to create the software design, which include its architecture and detailed design
Construction [phase] Relies on the requirements' specification, the software architecture, and detailed design to implement the solution using a programming language; a great deal of design can also occur at this phase
Test [phase] Ensures that the software behaves correctly and that it meets the specified requirements
Maintenance [phase] Modifies software after delivery to correct faults, improve performance, or adapt it for a different environment.
The writing style of this book badly obfuscates the topic unless you already know the material. Many of the author's term definitions use the term as part of the definition. In other cases, explanations of concepts are hand-waved away with out-of-context jargon. For instance:
"Whereas generalization allows classes to inherit a parent's class interface and behavior, realization allows classes to inherit the interface."
This is a sentence in which I understand the meaning of each individual word quite well. However it's strung together in a way that doesn't explain any functional distinction between the term "generalization" and "realization". Unfortunately, no further explanation follows this sentence. It's very frustrating to have to read this book with a Google tab open, searching for the actual definitions or examples of these non-intuitive concepts. I've read more IBM InfoCenter Software Architecture online documentation than I ever thought I would as a result of trying to work through the Otero book. The review questions are not fully answerable without significant outside research. I don't believe this was the author's intention or a clever ploy to encourage the reader to seek supplementary material; it seems more a symptom of lazy writing.
An expert veteran of software design will probably not notice these problems with the writing style, but to those trying to learn the material from the ground up in absence of help or perhaps an explanation by the author himself will find that this book hides a lot of information in its attempt to explain.
It feels like lazy academic writing aimed at other academics who will casually skim its contents it in order to congratulate the author on getting a book published and used in universities.
We used this book in my Software Design course and this was one of my favorite classes. Lots of hands on experience and learned more because I was able to get my hands dirty and apply the patters in real situations. It is an excellent book for anyone who wants to lean about software design and I recommend it to anyone who needs or wants to further their knowledge about software design as well as portability, maintainability, and reusability.