Skip to main content
Log in

Optimal software design reuse policies: A control theoretic approach

  • Published:
Information Systems Frontiers Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

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.

    Article  Google Scholar 

  • Barnes, B., & Bollinger, T. (1991). Making software reuse cost effective. IEEE Software, 1, 13–24.

    Article  Google Scholar 

  • 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-Ada94, (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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Fafchamps, D. (1994). Organizational factors and software reuse. IEEE Software, 11(5), 31–41.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Favaro, J., Favaro, K., & Favaro, P. (1998). Value based software reuse investment. Annals of Software Engineering, 5, 5–52.

    Article  Google Scholar 

  • Frakes, W. B., & Kang, K. (2005). Software reuse research: status and future. IEEE Transaction on Software Engineering, 31(7), 529–535.

    Article  Google Scholar 

  • Frakes, W., & Terry, C. (1996). Software reuse: metrics and models. ACM Computing Surveys, 28(2), 415–435.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Guindon, R. (1990). Knowledge exploited by experts during software system design. International of Journal Man Machine Studies, 33, 279–304.

    Article  Google Scholar 

  • Jones, C. (1994). Economics of software reuse. Computer, 27(7), 106–107.

    Google Scholar 

  • Kelley, H. J., Kopp, R. E., & Moyer, H. G. (1967). Singular externals. In G. Leitmann (Ed.), Topics in optimization. New York: Academic.

    Google Scholar 

  • Krueger, C. W. (1992). Software reuse. ACM Computing Surveys, 24(2), 132–183.

    Article  Google Scholar 

  • Lenz, M., Schmid, H.A., & Wolf, P.F. (1987). Software reuse through building blocks. IEEE Software, 4(4), 34–42.

    Google Scholar 

  • Lim, W.C. (1994). Effects of reuse on quality, productivity, and economics. IEEE Software, 11(5), 23–30.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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

    Google Scholar 

  • Mili, H., Mili, A., Yacoub, S., & Addy, E. (2002). Organizational considerations for software reuse. Reuse-based software engineering. Canada: Wiley.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Räihä, O. (2010). A survey on search-based software design. Computer Science Review, 4(4), 203–249.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vijay Mookerjee.

Appendices

Appendix A

Proposition 1: The optimal design investment policy is bang-bang i.e.,. r(t) = bang [0,121 R]

Proof: The Hamiltonian of the above optimal control problem is

$$ H\left( {r,R,n,{\lambda_1},{\lambda_2}} \right)=-1+{\lambda_1}\left[ {R-{k_0}n} \right]+r\left[ {{\lambda_2}-{\lambda_1}R} \right] $$
(A1)

The adjoint variables λ 1 and λ 2 satisfy the following equations:

$$ \begin{array}{*{20}c} {{{{\mathop{\lambda}\limits^{\cdot}}}_1}=-\frac{{\partial H}}{{\partial n}}={\lambda_1}{k_0},} \hfill & {{\lambda_1}(T)=\mathrm{constant}} \hfill \\ \end{array} $$
(A2)
$$ \begin{array}{*{20}c} {{{{\mathop{\lambda}\limits^{\cdot}}}_2}=-\frac{{\partial H}}{{\partial R}}=-{\lambda_1}\left( {1-r} \right),} \hfill & {{\lambda_2}(T)=0} \hfill \\ \end{array} $$
(A3)

Also, the optimal project duration T should satisfy the transversality condition (Sethi and Thompson 2000) as stated below:

$$ -1+{\lambda_1}(T)\left[ {\left( {1-r(T)} \right)R(T)-{k_0}N} \right]+{\lambda_2}(T)r(T)=0 $$
(A4)

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

$$ \begin{array}{*{20}c} {\mathop{R}\limits^{\cdot }=1} \hfill & {R(0)=k} \hfill \\ {R(t)=t+k} \hfill & {} \hfill \\ {\mathop{n}\limits^{\cdot }=-{k_0}n} \hfill & {n(0)={n_0}} \hfill \\ {n(t)={n_0}{e^{{-{k_0}t}}}} \hfill & {} \hfill \\ {{{{\mathop{\lambda}\limits^{\cdot}}}_1}={\lambda_1}{k_0}} \hfill & {} \hfill \\ {{\lambda_1}(t)=A{e^{{{k_0}t}}}} \hfill & {} \hfill \\ {{{{\mathop{\lambda}\limits^{\cdot}}}_2}=0} \hfill & {} \hfill \\ {{\lambda_2}(t)={c_1}} \hfill & {} \hfill \\ \end{array} $$

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

$$ \begin{array}{*{20}c} {\mathop{R}\limits^{\cdot }=0} \hfill & {} \hfill \\ {R(t)={\tau_1}+k} \hfill & {} \hfill \\ {\mathop{n}\limits^{\cdot }=-{k_0}n+\left( {{\tau_1}+k} \right)} \hfill & {n(T)=N} \hfill \\ {n(t)=C{e^{{-{k_0}t}}}+\frac{{{\tau_1}+k}}{{{k_0}}}} \hfill & {} \hfill \\ {{{{\mathop{\lambda}\limits^{\cdot}}}_1}={\lambda_1}{k_0}} \hfill & {} \hfill \\ {{\lambda_1}(t)=A{e^{{{k_0}t}}}} \hfill & {} \hfill \\ {{{{\mathop{\lambda}\limits^{\cdot}}}_2}=-{\lambda_1}=-A{e^{{{k_0}t}}}} \hfill & {} \hfill \\ {{\lambda_2}(t)={c_1}} \hfill & {} \hfill \\ \end{array} $$

Since there is no terminal constraint on the ending design capital we have

$$ \begin{array}{*{20}c} {{\lambda_2}(T)=0} \\ {{\lambda_2}(t)=\frac{A}{{{k_0}}}\left( {{e^{{{k_0}T}}}-{e^{{{k_0}t}}}} \right)} \\ \end{array} $$

We now solve for the various constants in the above differential equations

$$ {\lambda_2}\left( {{\tau_1}} \right)={c_1}=\frac{A}{{{k_0}}}\left( {{e^{{{k_0}T}}}-{e^{{{k_0}{\tau_1}}}}} \right) $$

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 \)

$$ \begin{array}{*{20}c} {\Rightarrow {c_1}=\left( {{\tau_1}+k} \right)\left( {A{e^{{{k_0}{\tau_1}}}}} \right)} \hfill \\ {\therefore \frac{A}{{{k_0}}}\left( {{e^{{{k_0}T}}}-{e^{{{k_0}{\tau_1}}}}} \right)=\left( {{\tau_1}+k} \right)\left( {A{e^{{{k_0}{\tau_1}}}}} \right).} \hfill \\ \end{array} $$
(A5)

Also from n(t) we have two boundary conditions

$$ n\left( {{\tau_1}} \right)=0\Rightarrow C{e^{{-{k_0}{\tau_1}}}}+\frac{{{\tau_1}+k}}{{{k_0}}}=0\Rightarrow C=-\frac{{{\tau_1}+k}}{{{k_0}}}{e^{{{k_0}{\tau_1}}}} $$
(A6)
$$ n(T)=N\Rightarrow C{e^{{-{k_0}T}}}+\frac{{{\tau_1}+k}}{{{k_0}}}=N $$
(A7)

From Eq. A4 we have

$$ \begin{array}{*{20}c} {-1+{\lambda_1}(T)\left( {{\tau_1}+k-{k_0}N} \right)=0} \hfill \\ {\Rightarrow A{e^{{{k_0}T}}}\left( {{\tau_1}+k-{k_0}N} \right)=1} \hfill \\ \end{array} $$
(A8)

Solving the above Eqs. A5A8 we get

$$ \begin{array}{*{20}c} {T*={\tau_1}-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{\tau_1}+k}}} \right]} \hfill \\ {{\tau_1}=\frac{{\left( {N{k_0}-2k} \right)\pm \sqrt{{{N^2}k_0^2+4N}}}}{2}} \hfill \\ {\begin{array}{*{20}c} {A=\frac{{{e^{{-{k_0}T}}}}}{{\tau +k-N{k_0}}};} \hfill & {B=\frac{-1 }{{A{k_0}}}} \hfill \\ \end{array}} \hfill \\ \end{array} $$

Proposition 2a: The instantaneous value of number of modules and the design capital under the optimal (bang-bang) reuse policy are given by,

$$ \begin{array}{*{20}c} {R(t)=\left\{ {\begin{array}{*{20}c} {t+k} \hfill & {0\leq t\leq \tau } \hfill \\ {\tau +k} \hfill & {\tau \leq t\leq T} \hfill \\ \end{array}} \right.} \\ {n(t)=\left\{ {\begin{array}{*{20}c} 0 \hfill & {0\leq t\leq \tau } \hfill \\ {B{e^{{-{k_0}t}}}+{{{\left( {\tau +k} \right)}} \left/ {{{k_0}}} \right.}} \hfill & {\tau \leq t\leq T} \hfill \\ \end{array}} \right.} \\ \end{array} $$

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,

$$ \begin{array}{*{20}c} {\tau =Max\left( {0,0.5\left( {\left( {N{k_0}-2k} \right)+\sqrt{{{N^2}k_0^2+4N}}} \right)} \right)} \\ {T=\tau -\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{\tau +k}}} \right]} \\ {A=\frac{{{e^{{-{k_0}T}}}}}{{\tau +k-N{k_0}}};B=\frac{-1 }{{A{k_0}}}} \\ \end{array} $$

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,

$$ \frac{{\partial H}}{{\partial r}}={H_r}={\lambda_2}-{\lambda_1}R $$
(A9)

Now, taking the partial derivative of H r with respect to t we get,

$$ \frac{{\partial {H_r}}}{{\partial t}}={{\mathop{\lambda}\limits^{\cdot}}_2}-{\lambda_1}\mathop{R}\limits^{\cdot }-{{\mathop{\lambda}\limits^{\cdot}}_1}R $$

Substituting for \( {{\mathop{\lambda}\limits^{\cdot}}_2} \), \( {{\mathop{\lambda}\limits^{\cdot}}_1} \) and \( \mathop{R}\limits^{\cdot } \) from Eqs. A2 and A3 we get,

$$ \begin{array}{*{20}c} {\frac{{\partial {H_r}}}{{\partial t}}=-{\lambda_1}\left( {1-r} \right)-{\lambda_1}r-{\lambda_1}{k_0}R} \hfill \\ {\frac{{\partial {H_r}}}{{\partial t}}=-{\lambda_1}\left( {1+{k_0}R} \right)} \hfill \\ \end{array} $$
(A10)

Differentiating once more with respect to time t we obtain,

$$ \begin{array}{*{20}c} {\frac{{{\partial^2}{H_r}}}{{\partial {t^2}}}=-{{{\mathop{\lambda}\limits^{\cdot}}}_1}-{\lambda_1}{k_0}\mathop{R}\limits^{\cdot }-{{{\mathop{\lambda}\limits^{\cdot}}}_1}{k_0}R} \hfill \\ {\frac{{{\partial^2}{H_r}}}{{\partial {t^2}}}=-{\lambda_1}{k_0}-{\lambda_1}{k_0}r-{\lambda_1}k_o^2R} \hfill \\ {\frac{{{\partial^2}{H_r}}}{{\partial {t^2}}}=-{\lambda_1}{k_0}\left( {1+r+{k_0}R} \right)} \hfill \\ \end{array} $$
(A11)

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

$$ {\lambda_1}=A{e^{{{k_0}t}}}=0 $$

From the transversality condition (Eq. A4), we have

$$ \begin{array}{*{20}c} {A{e^{{{k_0}T}}}\left( {{\tau_1}+k-{k_o}N} \right)=1} \hfill \\ {\Rightarrow A\ne 0} \hfill \\ \end{array} $$

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

$$ \mathop{n}\limits^{\cdot }(t)=\left\{ {1-r(t)} \right\}R(t)-{k_0}n(t) $$

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,

$$ \begin{array}{*{20}c} {\mathrm{Case}\ \mathrm{A}: \mathrm{For}\;{\tau_A}\leq t\leq {\tau_B},\;\quad r(t)=0} & {\mathrm{Case}\ \mathrm{B}: \mathrm{For}\;{\tau_B}\leq t\leq {\tau_C},\;r(t)=1} \\ {\mathop{R}\limits^{\cdot }(t)=0\Rightarrow R(t)={d_0}} & {\mathop{R}\limits^{\cdot }(t)=1\Rightarrow R(t)=t+{d_0}} \\ {\mathop{n}\limits^{\cdot }(t)={d_0}-{k_0}n(t)} & {\mathop{n}\limits^{\cdot }(t)=-{k_0}n\left( {{\tau_B}} \right)} \\ \end{array} $$
(A12)

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,

$$ \begin{array}{*{20}c} {\frac{{\partial \tau }}{{\partial N}}=\frac{1}{2}\left( {{k_0}+\frac{{Nk_0^2}}{{\sqrt{{{N^2}k_0^2+4N}}}}} \right)\geq 0} \\ {\frac{{\partial \tau }}{{\partial {k_0}}}=\frac{1}{2}\left( {N+\frac{{{N^2}{k_0}}}{{\sqrt{{{N^2}k_0^2+4N}}}}} \right)\geq 0} \\ \end{array} $$

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,

$$ \begin{array}{*{20}c} {\frac{{\partial T}}{{\partial N}}=\frac{{\partial \tau }}{{\partial N}}+\frac{1}{{\tau +k-N{k_0}}}\geq 0} \\ {\frac{{\partial T}}{{\partial {k_0}}}=\frac{{\partial \tau }}{{\partial {k_0}}}+\frac{1}{{k_0^2}}\ln \left( {1-\frac{{N{k_0}}}{{\tau +k-N{k_0}}}} \right)\geq 0} \\ \end{array} $$

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,

$$ \mathop{Max}\limits_{{{r_1}(t),{r_2}(t)}}\int\limits_0^T { - dt} $$

Subject to

For the upstream project,

$$ {{\dot{n}}_1}(t)=\left( {1-{r_1}(t)} \right){R_1}(t)-{k_0}{n_1}(t)\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,{n_1}(0)=0,\,\,\,{n_1}({T_1})=N $$
(B1)
$$ \begin{array}{*{20}c} {\mathop{{{R_1}}}\limits^{\cdot }(t)={r_1}(t)} & {{R_1}(0)=k} \\ \end{array} $$
(B2)
$$ 0\leq {r_1}(t)\leq 1, {T_1}\leq T $$

For the downstream project,

$$ \begin{array}{*{20}c} {{{{\mathop{n}\limits^{\cdot}}}_2}(t)=\left( {1-{r_2}(t)} \right){R_2}(t)-{k_0}{n_2}(t)} \hfill & {{n_2}\left( {{T_1}} \right)=0,\,\,\,{n_2}(T)=N} \hfill \\ \end{array} $$
(B3)
$$ \begin{array}{*{20}c} {{{{\mathop{R}\limits^{\cdot}}}_2}(t)={r_2}(t)} \hfill & {{R_2}\left( {{t_1}} \right)=\alpha {R_1}\left( {{T_1}} \right)} \hfill \\ \end{array} $$
(B4)
$$ 0\leq {r_2}(t)\leq 1 $$

The Hamiltonian for the problem is given by,

$$ \begin{array}{*{20}c} H\left( {{r_1},{r_2},{R_1},{R_2},{n_1},{n_2},{\lambda_1},{\lambda_2},{\lambda_3},{\lambda_4}} \right)=-1+{\lambda_1}\left[ {{R_1}-{k_0}{n_1}} \right]+{r_1}\left[ {{\lambda_2}-{\lambda_1}{R_1}} \right] \hfill \\ + {\lambda_3}\left[ {{R_2}-{k_0}{n_2}} \right]+{r_2}\left[ {{\lambda_4}-{\lambda_3}{R_2}} \right] \hfill \\\end{array} $$
(B5)

Thus,

$$ \frac{{\partial H}}{{\partial {r_1}}}={\lambda_2}-{\lambda_1}{R_1}\,\,\,\,\mathrm{and}\,\,\,\,\frac{{\partial H}}{{\partial {r_2}}}={\lambda_4}-{\lambda_3}{R_2} $$

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.

$$ \tau_1^{*}=\max \left( {0,0.5\,\left( {N{k_0}-2k+\sqrt{{{N^2}k_0^2+8N}}} \right)} \right);\,\,\tau_2^{*}=0 $$

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,

$$ \mathop{Max}\limits_{{{r_2}(t)}}\int\limits_0^{{{T_2}}} {-1\;dt} $$

Subject to

$$ \begin{array}{*{20}c} {{{{\mathop{n}\limits^{\cdot}}}_2}(t)=\left( {1-{r_2}(t)} \right){R_2}(t)-{k_0}{n_2}(t)\,} \hfill & {{n_2}(0)=0,\,\;{n_2}\left( {{T_2}} \right)=N} \hfill \\ {{{\dot{R}}_2}(t)={r_2}(t)} \hfill & {\,{R_2}(0)=\alpha\,{R_1}\left( {{T_1}} \right)} \hfill \\ \end{array} $$
$$ 0\leq {r_2}(t)\leq 1 $$

And for the upstream project,

$$ \mathop{Max}\limits_{{{r_1}(t)}}\int\limits_0^{{{T_1}}} {-1\,\,dt} \quad -T_2^{*} $$
(B6)
$$ \begin{array}{*{20}c} {{{{\mathop{n}\limits^{\cdot}}}_1}(t)=\left( {1-{r_1}(t)} \right){R_1}(t)-{k_0}{n_1}(t)\,} \hfill & {{n_1}(0)=0,\;{n_1}\left( {{T_1}} \right)=N} \hfill \\ {{{{\mathop{R}\limits^{\cdot}}}_1}(t)={r_1}(t)} \hfill & {{R_1}(0)=k} \hfill \\ \end{array} $$
$$ 0\leq {r_1}(t)\leq 1, {T_1}+{T_2}=T $$

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,

$$ T_2^{*}={\tau_2}-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{\tau_2}+{R_1}\left( {{T_1}} \right)}}} \right] $$
(B7)
$$ {\tau_2}=Max\left( {0,\frac{{\left( {N{k_0}-2{R_1}\left( {{T_1}} \right)} \right)+\sqrt{{{N^2}k_0^2+4N}}}}{2}} \right) $$
(B8)

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,

$$ T_2^{*}=-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{R_1}\left( {{T_1}} \right)}}} \right] $$
(B9)
$$ {\tau_2}=0 $$
(B10)

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.

$$ \therefore \lambda_2^u\left( {{T_1}} \right)={S_{{{R_1}}}}=\frac{N}{{{R_1}\left( {{T_1}} \right)\,\left( {{R_1}\left( {{T_1}} \right)-N{k_0}} \right)}}=\frac{N}{{\left( {{\tau_1}+k} \right)\left( {{\tau_1}+k-N{k_0}} \right)}} $$
(B11)
$$ \frac{N}{{\left( {{\tau_1}+k} \right)\left( {{\tau_1}+k-N{k_0}} \right)}}+\frac{A}{{{k_0}}}\left( {{e^{{{k_0}{T_1}}}}-{e^{{{k_0}{\tau_1}}}}} \right)=\left( {{\tau_1}+k} \right)\left( {A{e^{{{k_0}{\tau_1}}}}} \right) $$
(B12)

Also known n(t) we have two boundary conditions

$$ {n_1}\left( {{\tau_1}} \right)=0\Rightarrow B{e^{{-{k_0}{\tau_1}}}}+\frac{{{\tau_1}+k}}{{{k_0}}}=0\Rightarrow B=-\frac{{{\tau_1}+k}}{{{k_0}}}{e^{{{k_0}{\tau_1}}}} $$
(B13)
$$ {n_1}\left( {{T_1}} \right)=N\Rightarrow B{e^{{-{k_0}{T_1}}}}+\frac{{{\tau_1}+k}}{{{k_0}}}=N $$
(B14)
$$ \begin{array}{*{20}c} -1+\lambda_1^u\left( {{T_1}} \right)\left( {{\tau_1}+k-{k_0}N} \right)=0 \hfill \\ \Rightarrow A{e^{{{k_0}{T_1}}}}\left( {{\tau_1}+k-{k_0}N} \right)=1 \hfill \\\end{array} $$
(B15)

Note that B12-B15 are comparable to Eqs. A5A8 in Appendix A for single period problem). Solving the these equations, we get

$$ T_1^{*}={\tau_1}-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{\tau_1}+k}}} \right] $$
(B16)
$$ {\tau_1}=\frac{{\left( {N{k_0}-2k} \right)+\sqrt{{{N^2}k_0^2+8N}}}}{2} $$
(B17)
$$ A=\frac{{{e^{{-{k_0}{T_1}}}}}}{{\tau +k-N{k_0}}};\,\,\,\,\,B=\frac{-1 }{{A{k_0}}} $$
(B18)

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

$$ \beta =0.5\,\left( {N{k_0}-2k+\sqrt{{{N^2}k_0^2+\frac{4N }{{1-\alpha }}}}} \right);\delta =0.5\,\left( {N{k_0}+\sqrt{{{N^2}k_0^2+4N}}} \right) $$

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

$$ \frac{{\alpha\,N}}{{\left( {\alpha {\tau_1}+k} \right)\left( {\alpha {\tau_1}+k-N{k_0}} \right)}}+\frac{N}{{\left( {{\tau_1}+k} \right)\left( {\left( {{\tau_1}+k} \right)-N{k_0}} \right)}}=1 $$

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. (B7B8) take the form,

$$ T_2^{*}={\tau_2}-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{\tau_2}+{R_2}\left( {{T_1}} \right)}}} \right] $$
(B19)
$$ {\tau_2}=\frac{{\left( {N{k_0}-{R_2}\left( {{T_1}} \right)} \right)+\sqrt{{{N^2}k_0^2+4N}}}}{2} $$
(B20)

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),

$$ {R_2}\left( {{T_1}} \right)=\alpha\,{\tau_1}+k $$
(B21)

\( \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,

$$ {S_1}\left( {{R_1}\left( {{T_1}} \right)} \right)=-T_2^{*}=-\delta +\alpha\,\tau_1^{*}+k+\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{\delta }} \right] $$
(B23)
$$ \therefore \lambda_2^u\left( {{T_1}} \right)={S_{{{R_1}}}}=\alpha $$
(B24)

In this case (B12) takes the form,

$$ \alpha +\frac{A}{{{k_0}}}\left( {{e^{{{k_0}{T_1}}}}-{e^{{{k_0}{\tau_1}}}}} \right)=\left( {{\tau_1}+k} \right)\left( {A{e^{{{k_0}{\tau_1}}}}} \right) $$
(B25)

Combining (B25) with (B13-B15) , we get

$$ T_1^{*}={\tau_1}-\frac{1}{{{k_0}}}\ln \left[ {1-\frac{{N{k_0}}}{{{\tau_1}+k}}} \right] $$
(B26)
$$ {\tau_1}=\frac{{\left( {N{k_0}-2k} \right)+\sqrt{{{N^2}k_0^2+\frac{4N }{{1-\alpha }}}}}}{2} $$
(B27)
$$ A=\frac{{{e^{{-{k_0}{T_1}}}}}}{{\tau +k-N{k_0}}};\,\,\,\,\,B=\frac{-1 }{{A{k_0}}} $$
(B28)

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,

$$ {{\left. {\tau_2^{*}} \right|}_{{\alpha ={\alpha_c}}}}=0, \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 $$
(B29)

For the upstream project Eq. (B12) takes the form,

$$ \frac{{\alpha\,N}}{{\left( {\alpha {\tau_1}+k} \right)\left( {\alpha {\tau_1}+k-N{k_0}} \right)}}+\frac{A}{{{k_0}}}\left( {{e^{{{k_0}{T_1}}}}-{e^{{{k_0}{\tau_1}}}}} \right)=\left( {{\tau_1}+k} \right)\left( {A{e^{{{k_0}{\tau_1}}}}} \right) $$
(B30)

Combining with (B.13) and (B.18) we get,

$$ \frac{{\alpha\,N}}{{\left( {\alpha {\tau_1}+k} \right)\left( {\alpha {\tau_1}+k-N{k_0}} \right)}}+\frac{N}{{\left( {{\tau_1}+k} \right)\left( {\left( {{\tau_1}+k} \right)-N{k_0}} \right)}}=1 $$
(B31)

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,

$$ \sqrt{{{N^2}k_0^2+\frac{4N }{{1-\alpha }}}}-\sqrt{{{N^2}k_0^2+4N}} $$
(B31.1)

Taking partial derivative of B31.1 w.r.t k 0 , we get

$$ \left( {\frac{1}{{\sqrt{{{N^2}k_0^2+\frac{4N }{{1-\alpha }}}}}}-\frac{1}{{\sqrt{{{N^2}k_0^2+4N}}}}} \right){N^2}{k_0}\leq 0 $$

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,

$$ \left( {\frac{{\left( {2Nk_0^2+{4 \left/ {{\left( {1-\alpha } \right)}} \right.}} \right.}}{{\sqrt{{{N^2}k_0^2+\frac{4N }{{1-\alpha }}}}}}-\frac{{\left( {2Nk_0^2+4} \right)}}{{\sqrt{{{N^2}k_0^2+4N}}}}} \right)0 $$

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,

$$ {\lambda_2}(T)={S_R}\left( {R(T),T} \right) $$
(B32)

Solving the differential Eq. A3 with the boundary condition B32, we get

$$ \therefore {\lambda_2}(t)=\frac{A}{{{k_0}}}\left[ {{e^{{{k_0}T}}}-{e^{{{k_0}t}}}} \right]+{S_R}\left( {R(T),T} \right) $$
(B33)

Therefore, the crossover condition A5 is modified to,

$$ \frac{A}{{{k_0}}}\left[ {{e^{{{k_0}T}}}-{e^{{{k_0}{\tau_1}}}}} \right]+{S_R}\left( {R(T),T} \right)=A{e^{{{k_0}{\tau_1}}}}\left( {{\tau_1}+k} \right) $$
(B34)

Solving we get,

$$ \begin{array}{*{20}c} {{S_R}\left( {R(T),T} \right)=\left( {1+\frac{1}{{{k_0}\left( {{\tau_1}+k} \right)}}-\frac{1}{{{k_0}\left( {{\tau_1}+k-N{k_0}} \right)}}} \right)} \hfill \\ {S\left( {R(T)} \right)=\left( {1+\frac{1}{{{k_0}\left( {{\tau_1}+k} \right)}}-\frac{1}{{{k_0}\left( {{\tau_1}+k-N{k_0}} \right)}}} \right)R(T)} \hfill \\ \end{array} $$
(B35)

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

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10796-013-9421-1

Keywords

Navigation