1 / 11

EMOOSE 2000-2001 Course OOSE. Evol - Part 3

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

aldan
Télécharger la présentation

EMOOSE 2000-2001 Course OOSE. Evol - Part 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

  7. System observations • system size increases drastically • (over 53% in 21 months) • system size increases linearly

  8. 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!

  9. Subsystem observations • 3 subsystems A, B and C • one particular subsystem (C) has • a high changing rate (25%) • a very high growing rate (193%)

  10. 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!

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

More Related