Patterns of Software Development Process

This article presents a set of patterns that can be found to perform best practices in software processes that are directly related to the problem of implementing the activities of the process, the roles involved, the knowledge generated and the inputs and outputs belonging to the process. In this work, a definition of the architecture is encouraged by using different recurrent configurations that strengthen the process and yield efficient results for the development of a software project. The patterns presented constitute a catalog, which serves as a vocabulary for communication among project participants (1), (2), and also can be implemented through software tools, thus facilitating patterns implementation (3). Additionally, a tool that can be obtained under GPL (General Public license) is provided for this purpose.

[1]  Remco C. de Boer,et al.  Writing and Reading Software Documentation: How the development process may affect understanding , 2009, 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering.

[2]  Nayan B. Ruparelia,et al.  Software development lifecycle models , 2010, SOEN.

[3]  Forrest Shull,et al.  What Do We Know about Knowledge Management? Practical Implications for Software Engineering , 2009, IEEE Software.

[4]  Vasundhara Kulkarni A Conceptual Model for Capturing Stakeholders' Wish List , 2008, 2008 International Conference on Computer Science and Software Engineering.

[5]  Kate Ehrlich,et al.  Supporting enterprise stakeholders in software projects , 2010, CHASE '10.

[6]  Henrik Bærbak Christensen,et al.  Frameworks: putting design patterns into perspective , 2004, ITiCSE '04.

[7]  Y. Kermarrec,et al.  Towards the use of requirements as valuable inputs for complex system design , 2008, 2008 3rd International Conference on Information and Communication Technologies: From Theory to Applications.

[8]  Flavio Oquendo,et al.  Software Architecture , 2004, Lecture Notes in Computer Science.

[9]  Volker Gruhn,et al.  Process-centered software engineering environments: academic and industrial perspectives , 2001, ICSE.

[10]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[11]  Pekka Abrahamsson,et al.  The impact of agile practices on communication in software development , 2008, Empirical Software Engineering.

[12]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[13]  Katsuji Uosaki,et al.  A method of input-output conditions for automatic program generation using Petri nets , 2011, SICE Annual Conference 2011.

[14]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[15]  B. Biddle,et al.  Role Theory: Concepts and Research , 1966 .

[16]  Kevin Forsberg,et al.  The Relationship of Systems Engineering to the Project Cycle , 1992 .

[17]  Jean-Claude Derniame,et al.  Software Process: Principles, Methodology, and Technology , 1999, Lecture Notes in Computer Science.

[18]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[19]  François Bousquet,et al.  Modelling with stakeholders , 2010, Environ. Model. Softw..

[20]  M. Lindvall,et al.  Knowledge management in software engineering , 2002, IEEE Software.

[21]  Kevin Forsberg,et al.  The Relationship of System Engineering to the Project Cycle , 1991 .

[22]  Ken Power,et al.  Stakeholder Identification in Agile Software Product Development Organizations: A Model for Understanding Who and What Really Counts , 2010, 2010 Agile Conference.

[23]  L'ubor Sesera,et al.  Analysis Patterns , 2000, SOFSEM.

[24]  Bashar Nuseibeh,et al.  Communication patterns of agile requirements engineering , 2011 .

[25]  Hannes Schwarz Towards a Comprehensive Traceability Approach in the Context of Software Maintenance , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[26]  H. Roland Weistroffer,et al.  Documentation in Systems Development: A Significant Criterion for Project Success , 2009 .

[27]  I. Nonaka A Dynamic Theory of Organizational Knowledge Creation , 1994 .

[28]  Ahmed Seffah,et al.  The evolution of design patterns in HCI: from pattern languages to pattern-oriented design , 2010, PEICS '10.

[29]  Heinz Roland Weistroffer,et al.  Documentation in Systems Development: A Significant Criterion for Project Success , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[30]  Christine T. Cheng,et al.  Generating small combinatorial test suites to cover input-output relationships , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[31]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[32]  Lerina Aversano,et al.  Recovering Traceability Links between Business Process and Software System Components , 2010, 2010 IEEE 18th International Conference on Program Comprehension.

[33]  W. Leontief Input-output economics , 1967 .

[34]  N. Nikolova,et al.  Knowledge production in consulting teams , 2010 .

[35]  Austen Rainer,et al.  the neglected technical skill? , 2007, SIGMIS CPR '07.

[36]  MengChu Zhou,et al.  Supporting Software Development With Roles , 2006, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[37]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[38]  Wan M. N. Wan-Kadir,et al.  An Evaluation of Traceability Approaches to Support Software Evolution , 2007, International Conference on Software Engineering Advances (ICSEA 2007).

[39]  Ademar Aguiar,et al.  Patterns for consistent software documentation , 2009, PLoP '09.

[40]  Alan Jessop,et al.  Pattern language: A framework for learning , 2004, Eur. J. Oper. Res..

[41]  Colin J. Neill,et al.  The Demise of the Waterfall Model Is Imminent, and Other Urban Myths , 2004, ACM Queue.

[42]  Jane Huffman Hayes Do You Like Piña Coladas? How Improved Communication Can Improve Software Quality , 2003, IEEE Softw..

[43]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[44]  D. R. Graham Incremental development: review of nonmonolithic life-cycle development models , 1989 .

[45]  Othman Ibrahim,et al.  Software process engineering: Strengths, weaknesses, opportunities and threats , 2010, INC2010: 6th International Conference on Networked Computing.

[46]  Salem Ben Dhaou Dakhli,et al.  The knowledge-gap reduction in software engineering , 2008, 2009 Third International Conference on Research Challenges in Information Science.