ABSTRACT
An approach to statically analyzing a concurrent program not suited for analysis is described. The program is reengineered to reduce the complexity of concurrency-related activities, thereby reducing the size of the concurrency state space. The key to the reengineering process is a metric set that characterizes program task interaction complexity and provides guidance for restructuring. An initial version of a metric set is proposed and applied to two examples to demonstrate the utility of the reengineering-for-analysis process. The reengineering has potential benefits apart from supporting analyzability, following the dictum that if it is hard to analyze, it is hard to understand and maintain.
- ADWR86.George S. Avrunin, Laura K. Dillon, Jack C. Wileden, and William E. Riddle. Constrained expressions: Adding analysis capabilities to design methods for concurrent software systems. IEEE Transactions on Software Engineering, SE-12(2):278-292, February 1986. Google ScholarDigital Library
- CBOR88.V. C6t6, P. Bourque, S. Oligny, and N. Riyard. Software metrics: An overview of recent results. Journal of Systems and Sofa,'are, 8(2):121-13 i, March 1988. Google ScholarDigital Library
- CC90.Elliot J. Chikofsky and James H. Cross ii. Reverse engineering and design recovery: A rexonomy. IEEE Sofm,are, 7(1):13-18, January 1990. Google ScholarDigital Library
- DS92.Srinivasarao Damerla and Sol M. Shatz. Software complexity and Ada rendezvous: Metrics based on nondeterminism. Jourttal of Systems and Software, 17(2): 119-127, February 1992. Google ScholarDigital Library
- GN92.William G. Griswold and David Notkin. Automated assistance for program restructuring. Technical Report CS92-221, University of California, San Diego, January 1992.Google Scholar
- HK81.Sallie Henry and Dennis Kafura. Software structure metrics based on information flow. IEEE Transactions on Software Engineering, SE-7(5):510-518, September 1981.Google ScholarDigital Library
- HL84.David P. Helmbold and David C. Luckham. Debugging Ada tasking programs. In Proceedings of the IEEE Computer Society 1984 Conference on Ada Apphcations and Environments, pages 96-105, St. Paul, October 1984.Google Scholar
- HMKD82.Warren Harrison, Kenneth Magel, Raymond Kluczny, and Arian DeKock. Applying software complexity metrics to program maintenance. IEEE Computer, 15(9):65-79, September 1982. Also appeared in the IEEE Computer Society Tutorial on Software Restructurzng, order number 680.Google ScholarDigital Library
- HS90.Sallie Henry and Calvin Selig. Predicting source-code complexity at the design stage. IEEE Software, 7(2):36-45, March 1990. Google ScholarDigital Library
- Lar89.James R. Lares. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, March 1989. Google ScholarDigital Library
- LC89.Douglas L. Long and Lori A. Clarke. Task interaction graphs for concurrency analysis. In Proceedings of the Eleventh Itzternational Cow ference on Software Engineering, pages 44-52, Pittsburgh, PA, May 1989. Google ScholarDigital Library
- McC76.Thomas J. McCabe. A complexity measure. IEEE Transactions otz Software Engitzeeritzg, SE-2(4):308-320, December 1976.Google ScholarDigital Library
- Mur91.James A. Murdock. Perturbations: Theory and Methods. John Wiley & Sons, New York, 1991. Google ScholarDigital Library
- RAO92.Debra J. Richardson, Stephanie Leif Aha, and T. Owen O'Malley. Specification-based test oracles for reactive systems. In Proceedings ofthe Fourteenth International Conference on Software Engineering, Melbourne, Australia, May 1992. Google ScholarDigital Library
- Rom87.H. Dieter Rombach. A controlled experiment on the impact of software structure on maintainability. IEEE Transactiotzs otz Software Engineering, SE-13(3):344-354, March 1987. Google ScholarDigital Library
- San89.Bo Sanden. An entity-life modeling approach to the design of concurrent software. Communications of the ACM, 32(3):330-343, March 1989. Google ScholarDigital Library
- Sel92.B. Henderson Sellers. Modularization and Mc- Cabe's cyclomatic complexity. Comtmzntcations of the ACM, 35(12):17-19, December 1992.Google Scholar
- Sha88.Sol M. Sham. Towards complexity metrics for Ada tasking. IEEE Transactions otz Software Elzgineering, 14(8):1122-1127, August 1988. Google ScholarDigital Library
- TLK92.Richard N. Taylor, David L. Levine, and Cheryl D. Kelly. Structural testing of concurrent programs. IEEE Transactiotzs on Software Engineerit~g, 18(3):206-215, March 1992. Google ScholarDigital Library
- Wam85.Gordon Kent Wampler. Static concurrency analysis of Ada programs. Master's thesis, University of California, Irvine, 1985.Google Scholar
- Wey88.Elaine J. Weyuker. Evaluating software complexity measures. IEEE Transactions Otl Sofi~ ware Elzgineering, 14(9):1357-1365, September 1988. Google ScholarDigital Library
- YTL+92.Michal Young, Richard N. Taylor, David L. Levine, Kari Forester, and Debra Brodbeck. A concurrency analysis tool suite: Rationale, design, and preliminary experience. Technical Report TR-128-P, Software Engineering Research Center, 1398 Computer Sciences, Purdue University, West Lafayette, IN 47907- 1398, October 1992.Google Scholar
- YY91.Wei Jen Yeh and Michal Young. Compositional reachability analysis using process algebra. In Proceedings of the Symposium on Software Testing, Analysis, and Verificatton (TAV4 ), pages 49-59, Victoria, British Columbia, October 1991. ACM SIGSOFT, ACM Press. Google ScholarDigital Library
Index Terms
- Metric-driven reengineering for static concurrency analysis
Recommendations
Metric-driven reengineering for static concurrency analysis
An approach to statically analyzing a concurrent program not suited for analysis is described. The program is reengineered to reduce the complexity of concurrency-related activities, thereby reducing the size of the concurrency state space. The key to ...
Towards reengineering in reuse reengineering processes
ICSM '95: Proceedings of the International Conference on Software MaintenanceReuse of existing software has been regarded in recent years as a feasible solution to software quality and productivity improvement problems. Various reference paradigms for setting up a reuse reengineering process have been proposed. With reference to ...
Comments