110 likes | 287 Views
EMOOSE 2000-2001 Course OOSE. Evol - Part 3. Global Restructuring. Dr. Tom Mens tommens@vub.ac.be Programming Technology Lab http://prog.vub.ac.be Vrije Universiteit Brussel Pleinlaan 2 - 1050 Brussel. Definition. R estructuring is a reorgani s ation of a software system to
E N D
EMOOSE 2000-2001Course OOSE.Evol - Part 3 Global Restructuring Dr. Tom Mens tommens@vub.ac.be Programming Technology Lab http://prog.vub.ac.be Vrije Universiteit Brussel Pleinlaan 2 - 1050 Brussel
Definition • Restructuring is a reorganisation of a software system to • improve reuse • increase maintainability and evolvability • limit the effects of software aging • decrease complexity of the software system • increase understandibility
Kinds of restructuring • Global restructuring • At the level of the entire software system • Especially useful for large-scale software systems • Based on the structure rather than the implementation • Local restructuring = refactoring • At the level of the software implementation • Behaviour-preserving software transformations
Case Study • Telecommunication switching system (TSS) [Gall et al. 1993] • Large-scale software system (10 MLOC) • 20 system releases over a period of 2 years • Structural information stored in a product release database
System structure • 4-layered structure • system, subsystem, module, program systemlayer 1 System subsystemlayer 8 Subsystem A Subsystem B Subsystem C modulelayer 47-49 Module a Module b Module c programlayer 1499-2303 Program 1 Program 2 Program 3
System properties • size(of a system, subsystem or module) • the number of programs it contains • changing rate(of a system, subsystem or module) • the percentage of programs which changed from one release to the next • growing rate(of a system, subsystem or module) • the percentage of programs which have been added (or deleted) from one release to the next
System observations • system size increases drastically • (over 53% in 21 months) • system size increases linearly
System observations ctd. • changing rate of system decreases • fewer programs are added in latest releases • system stabilises over time This only indicates something about the global system, not about particular subsystems!
Subsystem observations • 3 subsystems A, B and C • one particular subsystem (C) has • a high changing rate (25%) • a very high growing rate (193%)
Subsystem observations • subsystem C consists of 3 modules A, B, C with • growing rate: 220%,110%, 70% • changing rate: 11%, 84%, 92% • moreover, the changing rate ofmodules B and C does notdecrease over time! • conclusion: modules A, B and C are subject to redesign!
Bibliography • S.C. Choi, W. Scacchi. Extracting and restructuring the design of large systems. IEEE Software, pp. 66-71, Jan. 1990 • W.G. Griswold, D. Notkin. Automated assistance for program restructuring. ACM Trans. Software Engineering and Methodology, 2(3): 228-269, July 1993 • H. Gall, M. Jazayeri, R. Klösch, G. Trausmuth. Software evolution observations based on product release history. Int. Conf. Software Maintenance, pp. 160-166, IEEE Computer Society Press, Sep. 1997