Alexander Serebrenik, Serguei Roubtsov, and Mark van den Brand D n -based Design Quality Comparison of Industrial Java Applications.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

•7/12 /07 F-1 © 2010 T. Horton CS 4240 Principles of SW Design Packages in Java and UML.
Chapter 7 Advantages and Disadvantages of Web Services
Stability and Volatility is Software Design H. Rahnama Tutorial in software engineering.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Application Servers What is it? General A set of software frameworks, components, utilities, functionality that enables you to develop and deliver n-tiered.
Object-Oriented Metrics
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Object Oriented Metrics XP project group – Saskia Schmitz.
Iterative development and The Unified process
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Plan Introduction What is Cloud Computing?
Enterprise Resource Planning
CHAPTER FIVE Enterprise Architectures. Enterprise Architecture (Introduction) An enterprise-wide plan for managing and implementing corporate data assets.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Quality analysis of industrial systems. LaQuSo experience Serguei Roubtsov.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
1 OO Design Novosoft, 2001 by V. Mukhortov. 2 OO Design Goals  Flexibility Changes must be localized  Maintainability Modules requiring changes can.
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Measurement & Metrics
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
CPT Week, Apr Lassi A. Tuura, Northeastern University Software Quality with Ignominy Lassi A. Tuura Northeastern.
4/1/05F-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Packages and Components in Java and UML.
Alexander Serebrenik and Mark van den Brand Theil index for aggregation of software metrics values.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
1 OO Package Design PrinciplesStefan Kluth 4OO Package Design Principles 4.1Packages Introduction 4.2Packages in UML 4.3Three Package Design Principles.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Version # Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1999 by Carnegie.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
Frameworks CompSci 230 S Software Construction.
OO Design Principles Copyright © Vyacheslav Mukhortov, Nikita Nyanchuk-Tatarskiy, Copyright © INTEKS LLC,
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1 #*#* Transitioning Your Organization to an Object-Oriented Methodology.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
©2001 Priority Technologies, Inc. All Rights Reserved Meteor Status Miami Face to Face Meeting January 16 – 18, 2002.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Virtualization Assessment. Strategy for web hosting Reduce costs by consolidating services onto the fewest number of physical machines
09:18© , hello2morrow1 Golden Rules to Improve Your Architecture Alexander v. Zitzewitz hello2morrow Inc.
Tools Shane Cantrell Zach Crisman. Tools CVS FogBUGZ (Bug Tracking) Unit Testing (JUnit, Jakarta Cactus) Catalyst Web Tools (BB and Surveys) Mailman ( .
Principles of Package Design COMPOSE AT A HIGHER LEVEL OF ABSTRACTION.
by C.A. Conley and L. Sproull
Recent trends in estimation methodologies
Principles of Package Architecture
Design and Maintenance of Web Applications in J2EE
John D. McGregor C8 - Tactics
Alexander Serebrenik, Serguei Roubtsov LaQuSo & SET
Software Engineering Lecture #8.
Software life cycle models
Evaluating Compuware OptimalJ as an MDA tool
Starting Design: Logical Architecture and UML Package Diagrams
Design Tips.
Principles of Object-Oriented Design Part II
the Java package design analyser
Principles of High-Level Design
Presentation transcript:

Alexander Serebrenik, Serguei Roubtsov, and Mark van den Brand D n -based Design Quality Comparison of Industrial Java Applications

What makes a good software architecture? PAGE 1 Among other things… easy to build additions and make changes Why? Software evolves: not flexible enough architecture causes early system’s decay when significant changes become costly Maintenance typically accounts for 75% or more of the total software workload

Goals of good architectural design Make software easier to change when we want to minimize changes which we have to make PAGE 2 Flexible design: more abstract classes and less dependencies between packages

PAGE 3 Abstractness/stability balance Stable packages Do not depend upon classes outside Many dependents Should be extensible via inheritance (abstract) Instable packages Depend upon many classes outside No dependents Should not be extensible via inheritance (concrete) Stability is related to the amount of work required to make a change [Martin, 2000].

What does balance mean? PAGE 4 A good real-life package must be instable enough in order to be easily modified It must be generic enough to be adaptable to evolving requirements, either without or with only minimal modifications Hence: contradictory criteria

How to measure Instability? C a – afferent coupling measures incoming dependencies C e – efferent coupling measures outgoing dependencies Instability = C e /(C e +C a )

PAGE 6 D n – Distance from the main sequence Abstractness = #AbstrClasses/#Classes Instability = C e /(C e +C a ) D n = | Abstractness + Instability – 1 | main sequence zone of pain zone of uselessness [R.Martin 1994]

Maintainability of software architecture in numbers PAGE 7

PAGE 8 Instability: What does “depend” mean? [Martin 1994] [Martin 2000] [JDepend] Still: Entire architecture? Ce: Instability = C e /(C e +C a )

PAGE 9 2 Flavors of Architecture Assessment Averages Industrial practice  Benchmarking for Java OSS  Distributions  Expectation for threshold exceeding values

PAGE 10 Benchmarks? 21 Java OSS Different domains EJB frameworks, entertainment, web-app development tools, machine learning, code analysis, … Different ages ( ) Size: ≥ 30 original packages Development status: focus on Stable/Mature Also include alpha, beta and inactive

PAGE 11 Average D n Benchmarks 0.32 Dresden OCL Toolkit But… average is not all! [  -2  ;  +2  ] Exceeds  + 4 

PAGE 12 How are the D n -values distributed? Exponential distribution?

PAGE 13 Exponential distribution? Exponential distribution: Support [0;1] rather than [0;  ): Hence, we normalize : And use max-likelihood fitting to find

PAGE 14 Benchmarking DnDn Higher Sharper peaks Thinner tails Smaller averages increases Why is interesting? PAGE 14

PAGE 15 Estimate excessively high values! How many packages exceed threshold z? z P(D n ≥z)  -3   +3  PAGE 15

PAGE 16 D n ≥ 0.6 Dresden OCL Toolkit: 23.7% packages  -3  +3  P(D n ≥0.6)

PAGE 17 Dresden OCL Toolkit: Why? Started in BUT: We are looking at the Eclipse version! Version 1.0 – June 2008 Version 1.1 – December 2008 Has yet to mature…

Can we compare proprietary systems using D n ? Case study: System A and System B support loan and lease approval business processes Both systems employ three-tier enterprise architecture: System A uses the IBM Websphere application server System B uses a custom made business logic layer implemented on the Tomcat web server System A: 249 non-third-party packages System B: 284 non-third-party packages PAGE 18

PAGE 19 Average D n Benchmarks System B Exceeds  + 4  System A

What about distributions? PAGE 20 D n threshold value % of packages beyond threshold System B System A an average OSS

Independent assessments Cyclic dependencies between packages A, B, C should be released and maintained together PAGE 21 B A C JDepend reports # of cyclic dependencies: System A - 1 System B - 23 The dependencies between packages must not form cycles [Martin, 2000]

Layering PAGE 22 System ASystem B Upcoming dependencies

Chidamber and Kemerer OO metrics PAGE 23 System ASystem BNASA avgNASA lowNASA high WMC LCOM * The lower the better System A (white bars) has more (%) low- WMC packages than System B (blue bars). The same holds for LCOM.

PAGE 24 Conclusions Java OSS benchmarks for average D n g(x) – statistical model Expectation for threshold exceeding values Applicable to other metrics as well! practical feasibility of D n -based assessment of industrial applications