Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Designing the requirements : building applications that the user wants and needs
Britton C., Addison-Wesley Professional, Upper Saddle River, NJ, 2015. 400 pp. Type: Book (978-0-134021-21-8)
Date Reviewed: Jun 20 2016

Effectively designing large-scale business information technology (IT) applications calls for several talents--functional understanding of what needs to be accomplished, ability to split large development efforts into more manageable projects, and ensuring that the developed solution will integrate effectively with the existing IT architecture--all within several performance, security, availability, implementation, and cost constraints. Having to balance these often contradicting requirements is not an easy task and it is no wonder that the design of IT solutions has been classified as a “wicked problem.”

Designing the requirements is a book about how to design IT applications in a systematic way. It is written by and for application developers. As such, it is packed with practical advice aiming to provide a design roadmap (what the author calls context-driven design) to mitigate the problems arising from poorly conceived requirements.

This book does not claim to be an academic essay. Wikipedia articles and comments posted on personal webpages are mostly cited rather than scholarly literature. It is a practitioner’s guide written in personal first person, inviting the reader to the individual experiences of the author, the problems that he has encountered during his over 40 years of wide-ranging IT experience, and the techniques he has found to address these problems.

Organized in a subject-matter outline, the book can be read front to back. But it could also work as a reference guide so that readers can brush up on specific subjects such as IT application security, or user interface design.

Aiming to cover all aspects of the IT systems development life cycle, it encompasses a great number of issues, from objectives analysis and user interface design, to the definition of application services and database tables, and from multithreading and parallelism issues, to compilers and programming structures. This is a lot of information to put in a single book, and the level of detail provided in different chapters is somewhat uneven. In particular, while initial chapters dealing with context and integration design tend to focus on abstract concepts like business processes and user tasks, toward the end it gets rather technical and dry covering elementary computer concepts such as cache and random-access memory (RAM) access time.

The author’s rationale is to help nontechnical designers understand the technical complexities of software application development. However, I would expect that most software development professionals today would hold at least a bachelor’s degree in computer science so they shouldn’t be unaware of such computer fundamentals. I like the author’s persistence on implementation issues, as they are often neglected in several systems analysis and design books.

Perhaps the weakest chapter is chapter 3, “Reusing Existing Methods and Practices,” especially the existing methods part. This chapter is supposed to position context-driven design in relation to other existing approaches. I am puzzled by the fact that the author chose to ignore the fact that adopting an engineering approach to software development and requirements elicitation as an engineering discipline is not new. Software engineering and requirements engineering are two well-established disciplines, so I cannot see why today there is a need for yet another book to “make application design more like an engineering discipline” or to recognize that “you don’t gather IT requirements, you design them.”

Although the author proclaims his belief in using the best practices, he chooses not to make explicit that the approach put forward in this book is in essence a structured analysis and design approach (this is evident in the logical separation between tasks and data tables, the hierarchy of designs, and the implied linear progression from high-level design to detailed design to implementation) with a bit of a service orientation.

I can agree with the claim that this is his experience of application development, but I cannot agree with the statement put forward in the last chapter that context-driven design changes application development. In fact, context-driven design targets “traditional” large applications (mostly the development of integrated enterprise systems) and as such it does not address current trends in contemporary software-intensive systems like component-based development, cloud-based architectures, big data, mobile apps and the challenges these bring in high-level IT governance, and low-level implementation.

Concluding, this book does not bring forward a novel perspective in software development as the book’s preface implies. However, it is a useful overview of common problems related to the development of traditional information systems and associated practical solutions, addressed mainly to computer systems analysts without a formal computer or information science education.

Reviewer:  Evangelia Kavakli Review #: CR144509 (1609-0627)
Bookmark and Share
  Reviewer Selected
 
 
Requirements/ Specifications (D.2.1 )
 
 
Design Tools and Techniques (D.2.2 )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Requirements/Specifications": Date

Moriconi M. (ed), Lansky A.Type: Article
Dec 1 1985
A unifying framework for structured analysis and design models
Tse T., Cambridge University Press, New York, NY, 1991. Type: Book (9780521391962)
Jun 1 1992
A skeleton interpreter for specialized languages
Steensgaard-Madsen J.  Programming Languages and System Design (, Dresden, East Germany,1861983. Type: Proceedings
Mar 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy