Using Risk Analysis and Patterns to Tailor Software Processes
Resumo
This paper discusses an approach to tailor software development processes and methodologies based on organizational patterns and risk criteria. The purpose of the approach is to adapt an organizational pattern language to the context of a given project. The most suitable organizational patterns to the requirements of the project should be chosen analyzing the risks and the criticality context of the project. Organizational patterns which describe preventive techniques for the identified risks can be selected by a systematic retrieval system. The process designer evaluates the selected patterns and takes the adaptation decisions. PMT-Tool, a tool that supports the approach, is briefly described.
Referências
Beck, Kent. Embracing Change with Extreme Programming. IEEE Computer, 32:70--77, Oct. 1999.
Beedle, M. et al. SCRUM: an extension pattern language for hyper-productive software development. In: Pattern Languages of Program Design 4. Addison-Wesley, 1999.
Boehm, B. Software Risk Management: Principles and Practices. IEEE Software, v.8, n.1, p. 32-41, January 1991.
Boehm, Barry. Get Ready for Agile Methods, with Care. IEEE Computer, v.35, n.1, p. 64-69, January 2002.
Boehm, Barry; Turner, Richard. Using Risk to Balance Agile and Plan-Driven Methods. IEEE Computer, June 2003.
Cockburn, Alistair. Selecting a Project's Methodology. IEEE Software, July/August 2000.
Cockburn, Alistair. Agile Software Development. Addison-Wesley, 2001.
Coplien, J. A Development Process Generative Pattern Language. In: James Coplien, Douglas Schmidt, eds. Pattern Languages of Program Design. Addison-Wesley, 1995.
Coplien, James. Sofware Patterns. Originally published by SIGS Books and Multimedia. http://www1.bell-labs.com/user/cope/Patterns/WhitePaper/. 1996.
Coplien, James. Organizational Patterns web site, as viewed in August 7th, 2004. http://www1.bell-labs.com/user/cope/Patterns/Process/OrgPatternsMap.html
Coppendale, J. Managing Risk in Product and Process Development and Avoid Unpleasant Surprises. Engineering Management Journal, v.5, n.1, p. 35-38, February, 1995.
DeLano, David E., Rising, Linda. System Test Pattern Language. Last visited in August 7th, 2004. [link]
Devedzic, Vladan. Software Patterns. in: Chang, S.K. (ed.), "Handbook of Software Engineering and Knowledge Engineering Vol.2 - Emerging Technologies", World Scientific Publishing Co., Singapore, 2002, pp. 645-671.
Fontoura, Lisandra M., Price, Roberto T. Usando GQM para Gerenciar Riscos em Projetos de Software. XVIII Brazilian Simposium on Software Engineering, 2004.
Hall, E. Managing Risk: Methods for Software Systems Development. New York:Addison-Wesley, 1998.
Harrison, Neil. Organizational Patterns for Teams, In John Vlissides, James Coplien and Norm Kerth, eds., Pattern Languages of Program Design 2. Addison-Wesley, 1996.
Henderson-Sellers, B. and Mellor, S. Tailoring process-focussed OO methods. JOOP/ROAD, 12(4), 1999.
The Hibernate project web site. Last visited on August 15th, 2004. http://www.hibernate.org
Jacobson, Ivar; Booch, Grady; Rumbaugh, James. The Unified Software Development Process. Addyson Wesley Professional, 1999.
Keil, M. et al. A Framework for Identifying Software Project Risks. Communications of the ACM, v. 41, n.11, p. 76-83, November 1998.
Manzoni, Lisandra V.; Price, Roberto T. Identifying Extensions Required by RUP (Rational Unified Process) to Comply with CMM (Capability Maturity Model) Levels 2 and 3. IEEE Transactions on Software Engineering, February, 2003.
Martin, James. Recommended Diagramming Standards for Analysts and Programmers. Prentice-Hall, 1987.
Palmer, Steven, and Felsing, John. A Practical Guide to Feature-Driven Development. The Coad Series. 2002.
Software Engineering Institute. The Capability Maturity Model: Guidelines for Improving the Software Process. Addison-Wesley, 1995.
Rational Software Corporation. Rational Unified Process, v. 2001. Cupertino, 2001.
Software Engineering Institute. Capability Maturity Model Integration (CMMI), Version 1.1, 2002.
Schwaber, K., Beedle, M. Agile Software Development with Scrum. Upper Saddle River: Prentice Hall, 2001.
Stevens, P., Pooley, R.. Systems Reengineering Patterns. Proceedings ACMSIGSOFT, 6th International Symposium on the Foundations of Software Engineering, pp.17-23, 1998.
Vasconcelos, F.M de; Werner, C.M.L.; Organizing the Software Development Process Knowledge: An Approach Based on Patterns; Int. Journal of Software Eng. & Knowledge Eng., World Scientific Publishing Company (Vol. 8, n°. 4, 1998)