×

The transformation of requirements into software primitives: studying evolvability based on systems theoretic stability. (English) Zbl 1217.68063

Summary: Evolvability is widely considered to be a crucial characteristic of software architectures, particularly in the area of information systems. Although many approaches have been proposed for improving evolvability, most indications are that it remains challenging to deliver the required levels of evolvability. In this paper, we present a theoretical approach to how the concept of systems theoretic stability can be applied to the evolvability of software architectures of information systems. We define and formalize the transformation of a set of basic functional requirements into a set of instantiations of software constructs. We define this transformation using both a static and a dynamic perspective. In the latter perspective, we formulate the postulate that information systems should be stable against new requirements. Based on this postulate, we derive a number of design theorems for software implementation. Using this transformation we use theoretical arguments to derive that these theorems contribute to achieving stability.

MSC:

68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Lehman, M.: Programs, life cycles, and laws of software evolution, Proceedings of the IEEE 68, No. 9, 1060-1076 (1980)
[2] Belady, L.; Lehman, M. M.: A model of large program development, IBM systems journal 15, No. 3, 225-252 (1976) · Zbl 0329.68014 · doi:10.1147/sj.153.0225
[3] , Program evolution: processes of software change (1985)
[4] Lehman, M. M.; Ramil, J. F.; Wernick, P. D.; Perry, D. E.; Turski, W. M.: Metrics and laws of software evolution–the nineties view, , 20-32 (1997)
[5] Lehman, M.; Ramil, J.: Rules and tools for software evolution planning and management, Annals of software engineering 11, 15-44 (2001) · Zbl 0987.68543 · doi:10.1023/A:1012535017876
[6] Godfrey, M. W.; Tu, Q.: Evolution in open source software: a case study, , 131-142 (2000)
[7] Stewart, K. J.; Darcy, D. P.; Daniel, S. L.: Opportunities and challenges applying functional data analysis to the study of open source software evolution, Statistical science 21, No. 2, 167-178 (2006) · Zbl 1426.68033
[8] Schach, S. R.; Jin, B.; Wright, D. R.; Heller, G. Z.; Offutt, J.: Quality impacts of clandestine common coupling, Software quality journal 11, No. 3, 211-218 (2003)
[9] Rusovan, S.; Lawford, M.; Parnas, D. L.: Open source software development: future of fad?, Perspectives on free and open source software, 107-121 (2005)
[10] Yau, S.; Collofello, J.: Some stability measures for software maintenance, IEEE transactions on software engineering 6, No. 6, 545-552 (1980)
[11] Li, W.; Etzkorn, L.; Davis, C.; Talburt, J.: An empirical study of object-oriented system evolution, Information and software technology 42, No. 6, 373-381 (2000)
[12] Alshayeb, M.; Li, W.: An empirical study of system design instability metric and design evolution in an agile software process, Journal of systems and software 74, No. 3, 269-274 (2005)
[13] Olague, H. M.; Etzkorn, L. H.; Li, W.; Cox, G.: Assessing design instability in iterative (agile) object-oriented projects, Journal of software maintenance and evolution 18, No. 4, 237-266 (2006)
[14] Figueiredo, E.; Cacho, N.; Sant’anna, C.; Monteiro, M.; Kulesza, U.; Garcia, A.; Soares, S.; Ferrari, F.; Khan, S.; Filho, F. C.; Dantas, F.: Evolving software product lines with aspects: an empirical study on design stability, , 261-270 (2008)
[15] Kelly, D.: A study of design characteristics in evolving software using stability as a criterion, IEEE transactions on software engineering 32, No. 5, 315-329 (2006)
[16] Garlan, D.; Perry, D. E.: Introduction to the special issue on software architecture, IEEE transactions on software engineering 21, No. 4, 269-274 (1995)
[17] Jackson, L. B.: Digital filters and signal processing, (1988)
[18] Oppenheim, A. V.; Willsky, A. S.; Nawab, S. H.: Signals systems, (1996)
[19] M. Lehman, Approach to a theory of software process and software evolution, in: FEAST 2000 Workshop, Imperial College, 2000.
[20] Parnas, D.: On the criteria to be used in decomposing systems into modules, Communications of the ACM 15, No. 12, 1053-1058 (1972)
[21] Denert, E.: Software engineering, (1991) · Zbl 0723.68001
[22] Booch, G.: Object-oriented analysis and design with applications, (1993) · Zbl 0839.68011
[23] Strachey, C.: Fundamental concepts in programming languages, Higher order symbolic computation 13, No. 1–2, 11-49 (2000) · Zbl 0949.68510 · doi:10.1023/A:1010000313106
[24] Orfali, R.; Harkey, D.: Client/server programming with Java and CORBA, (1998)
[25] Eden, A.; Mens, T.: Measuring software flexibility, IEE software 153, No. 3, 113-126 (2006)
[26] Soong, N. L.: A program stability measure, , 163-173 (1977)
[27] Myers, G. J.: Reliable software through composite design, (1975)
[28] Haney, F. M.: Module connection analysis: a tool for scheduling software debugging activities, , 173-179 (1972)
[29] Roden, P. L.; Virani, S.; Etzkorn, L. H.; Messimer, S.: An empirical study of the relationship of stability metrics and the qmood quality models over software developed using highly iterative or agile software processes, , 171-179 (2007)
[30] Mattsson, M.; Bosch, J.: Characterizing stability in evolving frameworks, , 118-130 (1999)
[31] Elish, M. O.; Rine, D.: Investigation of metrics for object-oriented design logical stability, , 193-200 (2003)
[32] Tonu, S. A.; Ashkan, A.; Tahvildari, L.: Evaluating architectural stability using a metric-based approach, , 261-270 (2006)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.