Monday, November 2, 2009

Additional Resources










 < Free Open Study > 







Additional Resources



cc2e.com/0344



Following are more resources on requirements:





Requirements



cc2e.com/0351



Here are a few books that give much more detail on requirements development:



Wiegers, Karl. Software Requirements, 2d ed. Redmond, WA: Microsoft Press, 2003. This is a practical, practitioner-focused book that describes the nuts and bolts of requirements activities, including requirements elicitation, requirements analysis, requirements specification, requirements validation, and requirements management.



Robertson, Suzanne and James Robertson. Mastering the Requirements Process. Reading, MA: Addison-Wesley, 1999. This is a good alternative to Wiegers' book for the more advanced requirements practitioner.



Gilb, Tom. Competitive Engineering. Reading, MA: Addison-Wesley, 2004. This book describes Gilb's requirements language, known as "Planguage." The book covers Gilb's specific approach to requirements engineering, design and design evaluation, and evolutionary project management. This book can be downloaded from Gilb's website at http://www.gilb.com.



cc2e.com/0358



IEEE Std 830-1998. IEEE Recommended Practice for Software Requirements Specifications. Los Alamitos, CA: IEEE Computer Society Press. This document is the IEEE-ANSI guide for writing software-requirements specifications. It describes what should be included in the specification document and shows several alternative outlines for one.



Abran, Alain, et al. Swebok: Guide to the Software Engineering Body of Knowledge. Los Alamitos, CA: IEEE Computer Society Press, 2001. This contains a detailed description of the body of software-requirements knowledge. It can also be downloaded from http://www.swebok.org.



cc2e.com/0365



Other good alternatives include the following:



Lauesen, Soren. Software Requirements: Styles and Techniques. Boston, MA: Addison-Wesley, 2002.



Kovitz, Benjamin L. Practical Software Requirements: A Manual of Content and Style. Manning Publications Company, 1998.



Cockburn, Alistair. Writing Effective Use Cases. Boston, MA: Addison-Wesley, 2000.





Software Architecture



cc2e.com/0372



Numerous books on software architecture have been published in the past few years. Here are some of the best:



Bass, Len, Paul Clements, and Rick Kazman. Software Architecture in Practice, 2d ed. Boston, MA: Addison-Wesley, 2003.



Buschman, Frank, et al. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. New York, NY: John Wiley & Sons, 1996.



Clements, Paul, ed. Documenting Software Architectures: Views and Beyond. Boston, MA: Addison-Wesley, 2003.



Clements, Paul, Rick Kazman, and Mark Klein. Evaluating Software Architectures: Methods and Case Studies. Boston, MA: Addison-Wesley, 2002.



Fowler, Martin. Patterns of Enterprise Application Architecture. Boston, MA: Addison-Wesley, 2002.



Jacobson, Ivar, Grady Booch, and James Rumbaugh. The Unified Software Development Process. Reading, MA: Addison-Wesley, 1999.



IEEE Std 1471-2000. Recommended Practice for Architectural Description of Software-Intensive Systems. Los Alamitos, CA: IEEE Computer Society Press. This document is the IEEE-ANSI guide for creating software-architecture specifications.





General Software-Development Approaches



cc2e.com/0379



Many books are available that map out different approaches to conducting a software project. Some are more sequential, and some are more iterative.



McConnell, Steve. Software Project Survival Guide. Redmond, WA: Microsoft Press, 1998. This book presents one particular way to conduct a project. The approach presented emphasizes deliberate up-front planning, requirements development, and architecture work followed by careful project execution. It provides long-range predictability of costs and schedules, high quality, and a moderate amount of flexibility.



Kruchten, Philippe. The Rational Unified Process: An Introduction, 2d ed. Reading, MA: Addison-Wesley, 2000. This book presents a project approach that is "architecturecentric and use-case driven." Like Software Project Survival Guide, it focuses on up-front work that provides good long-range predictability of costs and schedules, high quality, and moderate flexibility. This book's approach requires somewhat more sophisticated use than the approaches described in Software Project Survival Guide and Extreme Programming Explained: Embrace Change.



Jacobson, Ivar, Grady Booch, and James Rumbaugh. The Unified Software Development Process. Reading, MA: Addison-Wesley, 1999. This book is a more in-depth treatment of the topics covered in The Rational Unified Process: An Introduction, 2d ed.



Beck, Kent. Extreme Programming Explained: Embrace Change. Reading, MA: Addison-Wesley, 2000. Beck describes a highly iterative approach that focuses on developing requirements and designs iteratively, in conjunction with construction. The Extreme Programming approach offers little long-range predictability but provides a high degree of flexibility.



Gilb, Tom. Principles of Software Engineering Management. Wokingham, England: Addison-Wesley, 1988. Gilb's approach explores critical planning, requirements, and architecture issues early in a project and then continuously adapts the project plans as the project progresses. This approach provides a combination of long-range predictability, high quality, and a high degree of flexibility. It requires more sophistication than the approaches described in Software Project Survival Guide and Extreme Programming Explained: Embrace Change.



McConnell, Steve. Rapid Development. Redmond, WA: Microsoft Press, 1996. This book presents a toolbox approach to project planning. An experienced project planner can use the tools presented in this book to create a project plan that is highly adapted to a project's unique needs.



Boehm, Barry and Richard Turner. Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley, 2003. This book explores the contrast between agile development and plan-driven development styles. Chapter 3 has four especially revealing sections: "A Typical Day using PSP/TSP," "A Typical Day using Extreme Programming," "A Crisis Day using PSP/TSP," and "A Crisis Day using Extreme Programming." Chapter 5 is on using risk to balance agility, which provides incisive guidance for selecting between agile and plan-driven methods. Chapter 6, "Conclusions," is also well balanced and gives great perspective. Appendix E is a gold mine of empirical data on agile practices.



Larman, Craig. Agile and Iterative Development: A Manager's Guide. Boston, MA: Addison Wesley, 2004. This is a well-researched introduction to flexible, evolutionary development styles. It overviews Scrum, Extreme Programming, the Unified Process, and Evo.





Checklist: Upstream Prerequisites



cc2e.com/0386



  • Have you identified the kind of software project you're working on and tailored your approach appropriately?

  • Are the requirements sufficiently well defined and stable enough to begin construction? (See the requirements checklist for details.)

  • Is the architecture sufficiently well defined to begin construction? (See the architecture checklist for details.)

  • Have other risks unique to your particular project been addressed, such that construction is not exposed to more risk than necessary?













     < Free Open Study > 



    No comments: