Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, and Software Engineering Using PlanguageJune 2005
Publisher:
  • Butterworth-Heinemann
  • 313 Washington Street Newton, MA
  • United States
ISBN:978-0-7506-6507-0
Published:01 June 2005
Reflects downloads up to 05 Mar 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Itzik D and Roy G (2023). Does agile methodology fit all characteristics of software projects? Review and analysis, Empirical Software Engineering, 28:4, Online publication date: 1-Jul-2023.
  2. ACM
    Zhang Y, Harman M, Ochoa G, Ruhe G and Brinkkemper S (2018). An Empirical Study of Meta- and Hyper-Heuristic Search for Multi-Objective Release Planning, ACM Transactions on Software Engineering and Methodology, 27:1, (1-32), Online publication date: 5-Jun-2018.
  3. Gregory S (2018). “It Depends”: Heuristics for Common-Enough Requirements Practice, IEEE Software, 35:4, (12-15), Online publication date: 1-Jul-2018.
  4. Ryan M and Wheatcraft L (2017). On a Cohesive Set of Requirements Engineering Terms, Systems Engineering, 20:2, (118-130), Online publication date: 1-Mar-2017.
  5. Gregory S and Terzakis J (2017). Viewpoint, Requirements Engineering, 22:3, (413-417), Online publication date: 1-Sep-2017.
  6. Gregory S (2017). The Unplanned Journey of a Requirements Engineer in Industry: An Introduction, IEEE Software, 34:5, (16-19), Online publication date: 1-Jan-2017.
  7. Maiden N, Lockerbie J, Zachos K, Bertolino A, Angelis G and Lonetti F A Requirements-Led Approach for Specifying QoS-Aware Service Choreographies Proceedings of the 20th International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 8396, (239-253)
  8. Mistrik I, Bahsoon R, Eeles P, Roshandel R and Stal M (2014). Relating System Quality and Software Architecture, 10.5555/2692450, Online publication date: 8-Aug-2014.
  9. Yoder J and Wirfs-Brock R QA to AQ part two Proceedings of the 21st Conference on Pattern Languages of Programs, (1-20)
  10. ACM
    Letier E, Stefan D and Barr E Uncertainty, risk, and information value in software requirements and architecture Proceedings of the 36th International Conference on Software Engineering, (883-894)
  11. Daneva M, Buglione L and Herrmann A Software architects' experiences of quality requirements Proceedings of the 19th international conference on Requirements Engineering: Foundation for Software Quality, (1-17)
  12. ACM
    Falessi D, Cantone G, Kazman R and Kruchten P (2011). Decision-making techniques for software architecture design, ACM Computing Surveys, 43:4, (1-28), Online publication date: 1-Oct-2011.
  13. Dybå T and Dingsøyr T (2008). Empirical studies of agile software development, Information and Software Technology, 50:9-10, (833-859), Online publication date: 1-Aug-2008.
  14. Hanssen G and Fígri T (2008). Process fusion, Journal of Systems and Software, 81:6, (843-854), Online publication date: 1-Jun-2008.
  15. Cheng B and Atlee J Research Directions in Requirements Engineering 2007 Future of Software Engineering, (285-303)
  16. Faegri T and Hanssen G (2007). Collaboration, Process Control, and Fragility in Evolutionary Product Development, IEEE Software, 24:3, (96-104), Online publication date: 1-May-2007.
  17. Maiden N (2006). Improve Your Requirements, IEEE Software, 23:6, (68-69), Online publication date: 1-Nov-2006.
  18. ACM
    Hanssen G and Fægri T Agile customer engagement Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, (164-173)
  19. Gilb T Design evaluation Proceedings of the 24th international conference on Computer Safety, Reliability, and Security, (344-356)
Contributors

Reviews

Fernando Berzal

Competitive engineering is mostly an extended and updated description of the key techniques the author already advocated in a previous book more than 15 years ago [1]. Many competitive engineering ideas, now dressed as powerful system engineering tools, were presented in that book, as sound software development advice. In fact, Gilb’s classic book has been acknowledged as “the first book with substantial chapters dedicated to [iterative and incremental development] discussion and promotion” [2], many years before the current hype over agile methodologies. Competitive engineering is also intended to serve as a handy reference for Planguage, a semi-formal structured natural language notation for communicating management objectives and system engineering requirements. Planguage, whose name derives from the union of “plan” and “language,” tries to promote communication in a clear and precise textual notation because many projects fail when communication fails. As a specification language, Planguage is designed to support all aspects of system engineering, with a strong emphasis on specification (both of requirements and design ideas) and project management. As a matter of fact, Planguage is more than a specification language. It comprises five core processes (some people might say best practices) that help projects to deliver timely results. The first process, requirements specification, covered in chapters 2 through 6, places a strong emphasis on the quantitative specification of quality attributes. As in his earlier work, Gilb focuses on measurable requirements. In his own words, “‘Bad numbers beat good words’: poor quantification is more useful than no quantification; at least it can be improved systematically.” Among many other things, Gilb also places emphasis on the importance of tracking the source of requirements and on the fact that requirements change and we must cope with this change. The second process, design engineering, covered in chapter 7, finds designs that match the requirements. At this stage, it is essential to distinguish between design ideas and design constraints (that is, requirements) in order to avoid the trap of letting designs masquerade as requirements. The third process, specification quality control, covered in chapter 8, is for defect detection and prevention. It revolves around a technique usually known as inspection in the software engineering field [3]. The term “inspection” was discarded by the author because of its connotations in other engineering fields. The fourth process, impact estimation, covered in chapter 9, is a reliable way of quantifying how effective design ideas are and, therefore, a practical method to numerically evaluate and choose design ideas. During the impact estimation process, evidence is required to support estimates and the inherent uncertainty in estimates is properly taken into account. The fifth process, evolutionary project management, also known as evo, is covered in chapter 10. It is a method based on the early and frequent delivery of results to project stakeholders. Each project is decomposed into a series of small delivery cycles and, within each cycle, design ideas are prioritized according to their current value for the project. This process is based on the fact that “your customers will be happier with an early long-term stream of their priority improvements than years of promises, culminating in late disaster.” Heavily influenced by the work of Walter Shewhart and W. Edwards Deming on statistical process control, its motto is “never perfect, continuously better” (page 219). The chapters devoted to these core processes all follow a standard format. They include examples, practical rules, process descriptions, key principles, discussions, case studies, and templates. They are full of interesting ideas, witty observations, and sound rules to be tailored to your specific situation. These chapters are not an easy read because of their condensed, highly structured, and somewhat redundant format; however, they are clear, precise, and, most of all, practical. A lengthy glossary, comprising more than 100 pages, completes this book. The glossary provides precise definitions and detailed explanations of most of the key concepts used in Planguage (the full glossary is online at http://www.gilb.com). Despite its many peculiarities and quirks, the author’s insistence on the consistent use of terms in Planguage is praiseworthy. However, even though the author considers the glossary to be “a central contribution” of his book, I found the methodological suggestions much more interesting and important from a practical point of view. Beyond the Planguage vocabulary and syntax details, which could easily be ignored, the author’s methodological insight makes this book very useful for organizations lacking a formal development process, for those individuals involved in process improvement efforts, and for software engineers in general. I only regret that the book had not been made more readable, giving it the potential to reach a wider audience; it could have been were it not intentionally written in a very condensed style to make for a handy reference to the author’s Planguage. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations

Skip Bibliometrics Section