Design Rule Hierarchies and Parallelism in Software Development Tasks

As software projects continue to grow in scale, being able to maximize the work that developers can carry out in parallel as a set of concurrent development tasks, without incurring excessive coordination overhead, becomes increasingly important. Prevailing design models, however, are not explicitly conceived to suggest how development tasks on the software modules they describe can be effectively parallelized. In this paper, we present a design rule hierarchy based on the assumption relations among design decisions. Software modules located within the same layer of the hierarchy suggest independent, hence parallelizable, tasks. Dependencies between layers or within a module suggest the need for coordination during concurrent work. We evaluate our approach by investigating the source code and mailing list of Apache Ant. We observe that technical communication between developers working on different modules within the same hierarchy layer, as predicted, is significantly less than communication between developers working across layers.

[1]  Yuanfang Cai,et al.  Modularity Analysis of Logical Design Models , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[2]  Yuanfang Cai,et al.  Simon: modeling and analysis of design space structures , 2005, ASE '05.

[3]  Kun Wang,et al.  Maintaining Life Perspectives During the Refinement of UML Class Structures , 2005, FASE.

[4]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[5]  Yuanfang Cai,et al.  Predicting change impact from logical models , 2009, 2009 IEEE International Conference on Software Maintenance.

[6]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[7]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[8]  青島 矢一,et al.  書評 カーリス Y. ボールドウィン/キム B. クラーク著 安藤晴彦訳『デザイン・ルール:モジュール化パワー』 Carliss Y. Baldwin & Kim B. Clark/Design Rules, Vol. 1: The Power of Modularity , 2005 .

[9]  David F. Redmiles,et al.  Supporting collaborative software development through the visualization of socio-technical dependencies , 2007, GROUP.

[10]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[11]  Cláudio Sant'Anna,et al.  From retrospect to prospect: Assessing modularity and stability from software architecture , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[12]  Kim B. Clark,et al.  The power of modularity , 2000 .

[13]  Li-Te Cheng,et al.  How a good software practice thwarts collaboration: the multiple roles of APIs in software development , 2004, SIGSOFT '04/FSE-12.

[14]  Audris Mockus,et al.  Formulation and preliminary test of an empirical theory of coordination in software engineering , 2003, ESEC/FSE-11.

[15]  James D. Herbsleb,et al.  Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity , 2008, ESEM '08.

[16]  Lionel C. Briand,et al.  An Investigation of Graph-Based Class Integration Test Order Strategies , 2003, IEEE Trans. Software Eng..

[17]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[18]  Yuanfang Cai,et al.  Modularity in design: formal modeling and automated analysis , 2006 .

[19]  Pankaj Jalote,et al.  Assigning tasks in a 24-hour software development model , 2004, 11th Asia-Pacific Software Engineering Conference.

[20]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Jos van Hillegersberg,et al.  Detecting Coordination Problems in Collaborative Software Development Environments , 2008, Inf. Syst. Manag..

[23]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[24]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[25]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .