Abstract
We study optimal policies for design reuse in a software project using a control theoretic approach. A project needs to be developed in minimum time by optimally choosing the proportion of effort allocated towards design activities. We first consider a local case, where the benefits of design activities are restricted within the project. Here the optimal policy follows a bang-bang structure: invest fully in design followed by investing fully in implementation. Next we consider two sequentially linked projects where design capital built in the first project can be reused by the downstream project. For the two project case, the design investment in the upstream project first increases and then decreases with the ability to utilize design capital accumulated in the first project for the second project. We also propose a coordination scheme that rewards the upstream project team so that design investment in this project is chosen in a globally optimal manner.
Similar content being viewed by others
References
Banker, R. D., & Kauffman, R. J. (1991). Reuse and productivity in integrated computer-aided software engineering: an empirical study. MIS Quarterly, 15(3), 375–401.
Barnes, B., & Bollinger, T. (1991). Making software reuse cost effective. IEEE Software, 1, 13–24.
Barros, F. (2010). Increasing software quality through design reuse. Quality of Information and Communications Technology (QUATIC), 2010 Seventh International Conference on the, pp.236-241, Sept. 29 2010-Oct. 2 2010.
Bell, J., Bellegarde, F., Hook, J., Kieburthz, R.B., Kotov, A., Lewis, J., et al. (1994) Software design for reliability and reuse: A proof-of-concept demonstration. Proceedings of the conference on TRI-Ada ’94, (pp. 396–404). November 06–11, 1994, Baltimore, Maryland, United States
Boehm, B. (1998). A spiral model of software development and enhancement. Computer, 21(5), 61–72.
Cheng, Z., & Budgen, D. (2012). What do we know about the effectiveness of software design patterns? Software Engineering, IEEE Transactions on, 38(5), 1213–1231.
Davis, A. M., Bersoff, E. H., & Comer, E. R. (1988). A strategy for comparing alternative software development life cycle models. IEEE Transactions on Software Engineering, 14(10), 1453–1461.
Fafchamps, D. (1994). Organizational factors and software reuse. IEEE Software, 11(5), 31–41.
Falessi, D., Cantone, G., Kazman, R., & Kruchten, P. (2011). Decision-making techniques for software architecture design: a comparative survey. ACM Computing Surveys (CSUR), 43(4), 1–28.
Favaro, J., Favaro, K., & Favaro, P. (1998). Value based software reuse investment. Annals of Software Engineering, 5, 5–52.
Frakes, W. B., & Kang, K. (2005). Software reuse research: status and future. IEEE Transaction on Software Engineering, 31(7), 529–535.
Frakes, W., & Terry, C. (1996). Software reuse: metrics and models. ACM Computing Surveys, 28(2), 415–435.
Freeman, P. (1983) Reusable software engineering: Concepts and research directions. Workshop on Reusability and Programming (Newport, R. I., Sept.) (pp. 2–16). ITT Programming, Stratford, Comm. Also in Freeman [1987b]
Gaffney, J. E., & Durek, T. A. (1989). Software reuse—key to enhanced productivity: some quantitative models. Information and Software Technology, 31(5), 258–267.
Guindon, R. (1990). Knowledge exploited by experts during software system design. International of Journal Man Machine Studies, 33, 279–304.
Jones, C. (1994). Economics of software reuse. Computer, 27(7), 106–107.
Kelley, H. J., Kopp, R. E., & Moyer, H. G. (1967). Singular externals. In G. Leitmann (Ed.), Topics in optimization. New York: Academic.
Krueger, C. W. (1992). Software reuse. ACM Computing Surveys, 24(2), 132–183.
Lenz, M., Schmid, H.A., & Wolf, P.F. (1987). Software reuse through building blocks. IEEE Software, 4(4), 34–42.
Lim, W.C. (1994). Effects of reuse on quality, productivity, and economics. IEEE Software, 11(5), 23–30.
Lubars, M. D. (1988). Wide-spectrum support for sofwtare reusability. In W. Tracz (Ed.), Software reuse: Emerging technology (pp. 275–281). Los Alamitos: CS Press.
Mangano, C., Baker, A., Dempsey, M., Navarro, E., & Hoek, A. (2010). Software design sketching with calico. Proceedings of the IEEE/ACM international conference on Automated software engineering, September 20–24, 2010, Antwerp, Belgium.
Mili, A., Yacoub, S., Addy, E., & Mili, H. (1999). Toward and engineering discipline of software reuse. IEEE Software, 16(5), 22–31
Mili, H., Mili, A., Yacoub, S., & Addy, E. (2002). Organizational considerations for software reuse. Reuse-based software engineering. Canada: Wiley.
Milli, A., Fowler, S.C., Gottumkkala, R., & Zhang, L. (2000). An integrated cost model for software reuse. Proceedings of the 22nd international conference on Software engineering, pp. 157–166, June 2000.
Mohagheghi, P. (2004). The impact of software reuse and incremental development on the quality of large systems. PhD Thesis, NTNU, ISBN 82-471-6408-6.
Monroe, R. T., & Garlan, D. (1996). Style-based reuse for software architectures. Proceedings of the 4th International Conference on Software Reuse, pp.84-96, April 23–26, 1996
Neighbors, J. (1984). The DRACO approach to constructing software from reusable components. IEEE Transaction on Software Eng, 10(5), 564–574.
Peng, Y., Yu-hong, X., & Ming, H. (2009). Research on a coordination model for architecture reuse. Test and Measurement, 2009. ICTM '09. International Conference on , vol. 2, no. (pp.67-70). 5–6 Dec. 2009.
Poulin, J. S., Caruso, J. M., & Hancock, D. R. (1993). The business case for software reuse. IBM Systems Journal, 32(4), 567–594.
Räihä, O. (2010). A survey on search-based software design. Computer Science Review, 4(4), 203–249.
Reese, R., & Wyatt, L.D. (1987). Software reuse and simulation. Proceedings of the 19th conference on Winter simulation, pp. 185–192.
Sawyer, S., & Guinan, P. J. (1998). Software development: processes and performance. IBM System Journal, 37(4).
Sen, A. (1997). The role of opportunism in the software design reuse process. IEEE Transactions on Software Engineering, 23(7), 418–436.
Sethi, S.P., & Thompson, G.L. (2000). Optimal control theory. Kluwer Academic Publishers, Boston, Massachusetts.
Sherif, K., & Vinze, A. (1999). A qualitative model for barriers to software reuse adoption. Proceeding of the 20th international conference on Information Systems, pp. 47–64, January 1999.
Shiva, S. G., & Shala, L. A. (2007) Software reuse: Research and practice. Proc. 4th IEEE Conf. Information Technology (ITNG 07), IEEE CS Press, pp. 603–609.
Soloway, E., & Ehrlich, K. (1984). Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, 18(5), 595–609.
Subedha, V., & Sridhar, S. (2012). Design of dynamic component reuse and reusability metrics library for reusable software components in context level. International Journal of Computer Applications, 40(9), 30–34.
Sutcliffe, A. (1993). Software reuse: State of the art and survey of technical approaches. In P. Walton & N. Maiden (Eds.), Integrated software reuse: Management and techniques. Brookfield: Ashgate Publishers.
Tracz, W. (1988) Software reuse myths. ACM SIGSOFT Software Engineering Notes, 13(1), 17–21.
Yau, S. S., & Tsai, J. J. (1986). A Survey of software design techniques. IEEE Transactions on Software Engineering, 12(6), 713–721.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix A
Proposition 1: The optimal design investment policy is bang-bang i.e.,. r(t) = bang [0,1;λ2-λ1 R]
Proof: The Hamiltonian of the above optimal control problem is
The adjoint variables λ 1 and λ 2 satisfy the following equations:
Also, the optimal project duration T should satisfy the transversality condition (Sethi and Thompson 2000) as stated below:
Since, the Hamiltonian in (6) is linear in the control variable and the fact that the Hamiltonian is concave in (r, n, R) the sufficiency conditions for the bang–bang control to be optimal are satisfied. (Sethi and Thompson 2000).
Case A: For \( \begin{array}{*{20}c} {0\leq t\leq {\tau_1}} \hfill & {r(t)=1} \hfill \\ \end{array} \)
Solving the differential equations we get
Case B: For \( \begin{array}{*{20}c} {{\tau_1}\leq t\leq T} \hfill & {r(t)=0} \hfill \\ \end{array} \)
Solving the differential equations we get
Since there is no terminal constraint on the ending design capital we have
We now solve for the various constants in the above differential equations
Also at τ 1 the argument must be i.e., \( {\lambda_2}\left( {{\tau_1}} \right)-{\lambda_1}\left( {{\tau_1}} \right)\mathrm{R}\left( {{\tau_1}} \right)=0 \)
Also from n(t) we have two boundary conditions
From Eq. A4 we have
Solving the above Eqs. A5–A8 we get
Proposition 2a: The instantaneous value of number of modules and the design capital under the optimal (bang-bang) reuse policy are given by,
where τ is the optimal switch point at which the effort is diverted from design to implementation.
Proof: These results are derived as part proof of Proposition 1 above.
Proposition 2b: The switch point at which the project moves from design to implementation (τ) and the time to completion (T), under the optimal (bang-bang) reuse policy are given by,
Proof: These results are derived as part proof of Proposition 1 above.
Lemma 1: Singular control is not optimal for the problem.
Proof:
For singular control to be optimal we require equations \( \frac{{\partial H}}{{\partial r}} \), \( \frac{{\partial {H_r}}}{{\partial t}} \) and \( \frac{{{\partial^2}{H_r}}}{{\partial {t^2}}} \) to be simultaneously equal to zero.
Taking the partial derivative of the Hamiltonian control (r) we get,
Now, taking the partial derivative of H r with respect to t we get,
Substituting for \( {{\mathop{\lambda}\limits^{\cdot}}_2} \), \( {{\mathop{\lambda}\limits^{\cdot}}_1} \) and \( \mathop{R}\limits^{\cdot } \) from Eqs. A2 and A3 we get,
Differentiating once more with respect to time t we obtain,
From Eqs. A9, A10 and A11, \( \frac{{\partial H}}{{\partial r}} \), \( \frac{{\partial {H_r}}}{{\partial t}} \) and \( \frac{{{\partial^2}{H_r}}}{{\partial {t^2}}} \) are simultaneously equal to zero iff
From the transversality condition (Eq. A4), we have
Therefore, singular control in not optimal for the problem.
Lemma 2: The instantaneous value of the design investment proportion (control variable r(t)) is non-increasing with time
Proof:
We first prove that the control variable r(t) cannot transition from 0 to 1.
Consider the state equation
In addition to n(t) ≥ 0, the implicit constraint is that \( \mathop{n}\limits^{\cdot }(t)\geq 0 \), since the number of modules developed is strictly non-decreasing.
Now consider a possible solution to the optimal design investment problem,
where, 0 ≤ τ A ≤ τ B ≤ τ C ≤ T
Clearly, for \( {\tau_B}\leq t\leq {\tau_C},\mathop{n}\limits^{\cdot }(t)\leq 0 \) since n(τ B ), k 0 ≥ 0which is infeasible.
It is thus proved that the instantaneous design effort cannot increase from 0 to 1.
From Proposition 1 we know that the optimal design investment policy is bang-bang i.e. r(t) = bang [0,1;λ 2-λ 1 R].
Thus the instantaneous value of the design effort (control variable r(t)) is non-increasing with time.
Corollary 1: The optimal switch point at which the development effort is diverted reuse activities to direct development activities (τ) is increasing in the project size (N) as well as complexity (k 0).
Proof: From Proposition 2b, it follows that,
Corollary 2: The optimal completion time of the project (T) is increasing in the project size (N) as well as complexity (k 0)
Proof: From Proposition 2b, it follows that,
Appendix B
Proposition 3: The optimal design investment policy in the upstream and the downstream projects continues to be bang-bang in the two-project case.
Proof: We formulate the problem for the two project case as follows,
Subject to
For the upstream project,
For the downstream project,
The Hamiltonian for the problem is given by,
Thus,
Since the Hamiltonian in Eq. (B5) is linear in the control variables (r 1(t), r 2(t)), it follows that the optimal control is bang-bang. Thus, for the two-project case the optimal design investment policy in the upstream as well as downstream project continues to be bang-bang.
r 1 (t) = bang [0,1; λ 2 − λ 1 R 1]; r 2 (t) = bang [0,1; λ 4 − λ 3 R 2].
The singular control can be easily eliminated similar to lemma 1 of Proposition 1.
Proposition 4: When there is full commonality (α = 1) across the projects, the entire design capital utilized in the second project is developed by the first project i.e.
Proof: We first break the central planner’s problem into the upstream and downstream problem in order to jointly optimize for τ1 and τ2 to minimize the total time T across projects as follows:
For the downstream project,
Subject to
And for the upstream project,
Note that from the central planner perspective the upstream project has the additional salvage value term (B6) in its objective, so as to minimize the overall project completion time.
Along the lines of Proposition 1, the downstream project solution is of the form,
We note that for the case α = 1, all the design capital generated by the first project is available for the second project. Since both projects consist of developing N modules, it is clear that for the second project all the necessary design capital for minimizing the project duration is available right from start (since this optimal amount of reuse capital is generated by the upstream project and fully available to the downstream project), therefore \( \tau_2^{*}=0 \). Hence we get,
It can be shown with the salvage value function, \( {S_1}\left( {{R_1}\left( {{T_1}} \right)} \right)=-T_2^{*} \), the solution for the upstream project has the following form. Here, \( \lambda_{1,2}^u \) are the adjoint variables associated with the upstream project.
Also known n(t) we have two boundary conditions
Note that B12-B15 are comparable to Eqs. A5–A8 in Appendix A for single period problem). Solving the these equations, we get
Proposition 5: For fractional commonality (0 < α < 1), the optimal design policy is characterized as,
Case A: For 0 < α < αc < 1, total design effort is split between the upstream and downstream project, such that, \( \tau_1^{*}=\beta;\,\,\tau_2^{*}=\delta -\alpha \tau_1^{*}-k \)
where
Case B: For α c < α < 1, entire design effort is undertaken by upstream project, such that, \( \tau_2^{*}=0 \); \( \tau_1^{*} \) is the solution to equation
Where α c is the solution to equation, \( \therefore \delta -\frac{{{\alpha_c}}}{2}\left( {N{k_0}-2k+\sqrt{{{N^2}k_0^2+\frac{4N }{{1-{\alpha_c}}}}}} \right)-k=0 \)
Proof:
Case A: For small values of α (α < α c ), not all the necessary design capital necessary for minimizing the project duration is transferred from the upstream to the downstream project \( \tau_2^{*} > 0 \). In this case, Eqs. (B7–B8) take the form,
Where, R 2(T 1) is the starting design capital for the downstream project. This is turn is a fraction of the ending design capital of the upstream project and is given by, (along the lines of Proposition 1),
\( \therefore \tau_2^{*}=\delta -\alpha \left( {\tau_1^{*}+k} \right) \) where \( \delta =0.5\,\left( {N{k_0}+\sqrt{{{N^2}k_0^2+4N}}} \right) \) (B22)
In this case, the salvage value function for the upstream project,
In this case (B12) takes the form,
Combining (B25) with (B13-B15) , we get
Case B: We note from Eq. (B28) that \( \tau_1^{*} \) is an increasing function of α (0 ≤ α ≤ 1), \( \tau_2^{*} \) is decreasing in α. There exists a critical value α c such that \( \tau_2^{*}=0 \) for α = α c and \( \tau_2^{*} < 0 \) for α > α c . Thus for α > α c the optimal solution for \( \tau_2^{*} \) is the boundary solution \( \tau_2^{*}=0 \).
Combining (B22) and (B27) this critical value α c can be found by solving,
For the upstream project Eq. (B12) takes the form,
Combining with (B.13) and (B.18) we get,
Corollary 3a: The additional time spent in design in the upstream project in global solution as compared to the local solution decreases with project complexity (k 0) when α < α c .
Corollary 3b: The additional time spent in design in the upstream project in global solution as compared to the local solution may increase or decrease with project size (N) when α < α c .
Proof:
From (B.27) and Proposition 2b, we know that for α < α c the additional time spent in design in the upstream project in global solution is given by,
Taking partial derivative of B31.1 w.r.t k 0 , we get
Similarly it can be shown that the time spent in design in the upstream project in global solution as compared to the local solution may increase or decrease with project size (N). Taking derivative ofr B31.1 with N,
Last, since B31.1 is independent of the starting reuse capital (k), it is clear that the additional time spent in design in the upstream project in the global solution remains unchanged with the k.
Proposition 6: The design effort of two projects can be coordinated to minimize total time T across the two projects by providing an simple linear incentive scheme, S(R(T)) = γR(T) to the upstream project where \( \gamma =1+\frac{1}{{{k_0}\left( {\tau_1^{*}+k} \right)}}-\frac{1}{{{k_0}\left( {\tau_1^{*}+k-N{k_0}} \right)}} \).
Proof:
We assume a general salvage value function S(R(T), T). Thus the transversality condition (A3) is transformed to,
Solving the differential Eq. A3 with the boundary condition B32, we get
Therefore, the crossover condition A5 is modified to,
Solving we get,
Thus, the salvage function that helps coordinate the effort between the two projects to minimize system completion time T, is given by B35.
Rights and permissions
About this article
Cite this article
Johar, M., Mookerjee, V. & Sethi, S. Optimal software design reuse policies: A control theoretic approach. Inf Syst Front 17, 439–453 (2015). https://doi.org/10.1007/s10796-013-9421-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10796-013-9421-1