Comprensione del software - principi base e pratica reale 5

Size: px
Start display at page:

Download "Comprensione del software - principi base e pratica reale 5"

Transcription

1 Prologue C era una volta Comprensione del software - principi base e pratica reale Reverse engineer lines of C++ code in ca classes * 2 = seconds / 3600 = 667 hours 667 hours / 8 = 83 working days 83 days / 5 = 16 working weeks and 3 days ~ 4 months Michele Lanza Facoltà di scienze informatiche Università della Svizzera italiana Questions: What is the size and the overall structure of the system? What is the internal structure of the system and its elements? How did the software system become like that? Comprensione del software - principi base e pratica reale 1 The Life Cycle of Software Systems Object-Oriented Reverse Engineering Requirements Analysis Goal: take a (large legacy) software system and understand it, i.e., construct a mental model of the system? Issues Tool support Scalability Flexibility Time Design Implementation Problem: the software system in question is Unknown, very large, and complex Domain- and language-specific Seldom documented or commented In bad shape Comprensione del software - principi base e pratica reale 2 Comprensione del software - principi base e pratica reale 3 Object-Oriented Reverse Engineering (II) Reverse Engineering Approaches Constructing a mental model requires information about the system: Top-down approaches Bottom-up approaches Mixed Approaches There is no silver bullet methodology Every reverse engineering situation is unique Need for flexibility, customizability, scalability, and simplicity Reading (source code, documentation, UML diagrams, comments) Running the SW and analyze its execution trace Interview users and developers (if available) Clustering Concept Analysis Software Visualization Software Metrics Slicing and Dicing Querying (Database) Data Mining Logic Reasoning Comprensione del software - principi base e pratica reale 4 Comprensione del software - principi base e pratica reale 5 1

2 The Information Crystallization Problem Many approaches generate too much or not enough information The reverse engineer must make sense of this information by himself We need the right information at the right time..take a step back..block the ground..think about it.. The information needed to reverse engineer a legacy software system resides at various levels We need to obtain and combine Coarse-grained information about the whole system Fine-grained information about specific parts Evolutionary information about the past of the system Comprensione del software - principi base e pratica reale 6 Comprensione del software - principi base e pratica reale 7 A Solution - The Polymetric View The Polymetric View - Principles A lightweight combination of two approaches: Software visualization (reduction of complexity, intuitive) Software metrics (scalability, assessment) Interactivity (iterative process, silver bullet impossible) Does not replace other techniques, it complements them: Opportunistic code reading Visualize software: entities as rectangles relationships as edges Enrich these visualizations: Map up to 5 software metrics on a 2D figure Map other kinds of semantic information on nominal colors Entities Relationships width metric 2 position metrics color metric height metric Comprensione del software - principi base e pratica reale 8 Comprensione del software - principi base e pratica reale 9 The Polymetric View - Example The Polymetric View - Example (II) System Complexity View Nodes = Classes Edges = Inheritance Relationships Width = Number of Attributes Height = Number of Methods Color = Number of Lines of Code System Complexity View Nodes = Classes Edges = Inheritance Relationships Width = Height = Color = Reverse engineering goals # attributes # methods # lines of code Get an impression (build a first raw mental model) of the system, know the size, structure, and complexity of the system in terms of classes and inheritance hierarchies Locate important (domain model) hierarchies, see if there are any deep, nested hierarchies Locate large classes (standalone, within inheritance hierarchy), locate stateful classes and classes with behaviour View-supported tasks Count the classes, look at the displayed nodes, count the hierarchies Search for node hierarchies, look at the size and shape of hierarchies, examine the structure of hierarchies Search big nodes, note their position, look for tall nodes, look for wide nodes, look for dark nodes, compare their size and shape, read their name => opportunistic code reading Comprensione del software - principi base e pratica reale 10 Comprensione del software - principi base e pratica reale 11 2

3 Coarse-grained Software Visualization Coarse-grained Polymetric Views - Example Reverse engineering question: What is the size and the overall structure of the system? LOC Method Efficiency Correlation View Coarse-grained reverse engineering goals: Gain an overview in terms of size, complexity, and structure Asses the overall quality of the system Locate and understand important (domain model) hierarchies Identify large classes, exceptional methods, dead code, etc. NOS Nodes: Methods Edges: - Size: Number of method parameters Position X: Number of lines of code Position Y: Number of statements Goals: Detect overly long methods Detect dead code Detect badly formatted methods Get an impression of the system in terms of coding style Know the size of the system in # methods Comprensione del software - principi base e pratica reale 12 Comprensione del software - principi base e pratica reale 13 CodeCrawler Demo Coarse-grained SV - Conclusions Benefits Views are customizable (context ) ) and easily modifiable Simple approach, yet powerful Scalability Limits Visual language must be learned Comprensione del software - principi base e pratica reale 14 Comprensione del software - principi base e pratica reale 15 Fine-grained Software Visualization Reverse engineering question: What is the internal structure of the system and its elements? The Class Blueprint - Principles Initialization External Interface Internal Implementation Accessor Attribute Fine-grained reverse engineering goals: Understand the internal implementation of classes and class hierarchies Detect coding patterns and inconsistencies Understand class/subclass roles Identify key methods in a class The class is divided into 5 layers Nodes Methods, Attributes, Classes Edges Invocation, Access, Inheritance Invocation Sequence The method nodes are positioned according to Layer Invocation sequence Comprensione del software - principi base e pratica reale 16 Comprensione del software - principi base e pratica reale 17 3

4 The Class Blueprint - Principles (II) The Class Blueprint - Example # invocations Method # external accesses Attribute # lines # internal accesses Abstract Method Overriding Method Delegating Method Extending Method Constant Method Read Accessor Write Accessor Attribute Delegate: Delegates functionality to other classes May act as a Façade (DP) Large Implementation: Deep invocation structure Several methods High decomposition Wide Interface Direct Access Sharing Entries Method Invocation Direct Attribute Access Comprensione del software - principi base e pratica reale 18 Comprensione del software - principi base e pratica reale 19 The Class Blueprint - Example (II) The Class Blueprint - What do we see? Call-flow Double Single Entry (=> split class?) Inheritance Adder Interface overriders Semantics Direct Access State Usage Sharing Entries Comprensione del software - principi base e pratica reale 20 Comprensione del software - principi base e pratica reale 21 CodeCrawler Demo Fine-grained SV - Conclusions Benefits Complexity reduction Visual code inspection technique Complements the coarse-grained views Limits Visual language must be learned Good object-oriented knowledge required No information about actual functionality => opportunistic code reading necessary Comprensione del software - principi base e pratica reale 22 Comprensione del software - principi base e pratica reale 23 4

5 Messaggio Promozionale Object-Oriented Metrics in Practice M. Lanza, R. Marinescu ISBN: Springer, Nice! but, what about the practice?? In practice the key question is where to start We have devised a methodology to characterize, evaluate and improve the design of object-oriented systems It is based on: The Overview Pyramid The System Complexity View Detection Strategies Class Blueprints Comprensione del software - principi base e pratica reale 24 Comprensione del software - principi base e pratica reale 25 The Overview Pyramid A metrics-based means to both describe and characterize the structure of an object-oriented system by quantifying its complexity, coupling and usage of inheritance Measuring these 3 aspects at system level provides a comprehensive characterization of an entire system The Overview Pyramid in Detail The left side: System Size & Complexity Direct metrics: NOP, NOC, NOM, LOC, CYCLO Derived metrics: NOC/P, NOM/C, LOC/M, CYCLO/LOC The right side: System Coupling Direct metrics: CALLS, FANOUT Derived metrics: CALLS/M, FANOUT/CALL The top: System Inheritance Direct metrics: ANDC, AHH Comprensione del software - principi base e pratica reale 26 Comprensione del software - principi base e pratica reale 27 Interpreting the Overview Pyramid The pyramid characterizes a system from the viewpoints of size&complexity, coupling, and inheritance; based on the 8 computed proportions: They are independent of the size of the system! This allows an objective assessment Wait a second objective? objective? Where is the reference point? Putting things in a real-world context We have measured dozens of systems written in Java and C++ Based on the obtained measurements we can now statistically assess the design of a system Comprensione del software - principi base e pratica reale 28 Comprensione del software - principi base e pratica reale 29 5

6 Example: ArgoUML A system to model and handle UML diagrams The System Complexity View Provides locality and overview! Comprensione del software - principi base e pratica reale 3 0 Comprensione del software - principi base e pratica reale 3 1 Evaluating the Design of a System Design Harmony What entities do we measure in object-oriented design? It depends on the language What metrics do we use? It depends on our measurement goals What can we do with the information obtained? It depends on our objectives The problem is that simple metrics are not enough to understand and evaluate design Can you understand the beauty of a painting by measuring its frame? Software is a human artifact There are several ways to implement things The point is to find the appropriate way! Appropriate to what? Identity Harmony How do I define myself? Collaboration Harmony How do I interact with others? Classification Harmony How do I define myself with respect to my ancestors and descendants? Comprensione del software - principi base e pratica reale 3 2 Comprensione del software - principi base e pratica reale 3 3 Detection Strategies A Detection Strategy is a composed logical condition, based on metrics, that identifies those design fragments that are fulfilling the condition What? Transforming an informal design rule into a detection strategy Comprensione del software - principi base e pratica reale 3 4 Comprensione del software - principi base e pratica reale 3 5 6

7 A Catalogue of Design Disharmonies For each Design Disharmony, we provide Description Context Impact Detection Strategy Examples Refactoring The Class Blueprint It reduces the amount of code that must be read and thus serves as code inspection technique Comprensione del software - principi base e pratica reale 3 6 Comprensione del software - principi base e pratica reale 3 7 Messaggio Ri-Promozionale Object-Oriented Metrics in Practice M. Lanza, R. Marinescu ISBN: Springer, Evolutionary Software Visualization Reverse engineering question: How did the software system become like that? Evolutionary reverse engineering goals: Understand the evolution of OO systems in terms of size and growth rate Understand at which time an element, e.g., a class, has been added or removed from the system Understand the evolution of single classes Detect patterns in the evolution of classes Comprensione del software - principi base e pratica reale 3 8 Comprensione del software - principi base e pratica reale 3 9 The Evolution Matrix - Principles The Evolution Matrix - Principles (II) First Version Version 2.. Version (n - 1) Removed Classes Last Version The Evolution Matrix reveals patterns The evolution of the whole system (versions, growth and stagnation phases, growth rate, initial and final size) The life-time of classes (addition, removal) Moreover, we enrich the evolution matrix view with metric information # methods Class # attributes Added Classes Growth Phase Time (Versions) Stagnation Phase This allows us to see patterns in the evolution of classes Comprensione del software - principi base e pratica reale 40 Comprensione del software - principi base e pratica reale 41 7

8 The Evolution Matrix - Pattern Language The Evolution Matrix - Pattern Language (II) Pulsar Repeated Modifications make it grow and shrink. System Hotspot: Nearly every new system version requires changes. No cheap class Supernova Suddenly increases in size, possible reasons: Massive shift of functionality towards a class. Data storage class Developers knew what to fill in. Time (Versions) White Dwarf Lost the functionality it had and now trundles along without real meaning. Possibly dead code. Red Giant A permanent god class which is always very large Idle Keeps size over several versions. Possibly dead code, possibly good code. Time (Versions) Comprensione del software - principi base e pratica reale 42 Comprensione del software - principi base e pratica reale 43 The Evolution Matrix - Pattern Language (III) The Evolution Matrix - Example Dayfly Persistent Has the same lifespan as the whole system. Part of the original design. Perhaps holy dead code which no one dares to remove. Exists during only one or two versions. Perhaps an idea which was tried out and then dropped. Comprensione del software - principi base e pratica reale 44 Comprensione del software - principi base e pratica reale 45 Evolutionary SV - Conclusions Industrial Validation - The Acid Test Benefits Complexity reduction Limits Scalability (can be solved) Rename problem (can be solved) Relative changes hard to see (can be solved) Several large, industrial case studies (NDA) Different implementation languages Severe time constraints System Language Lines of Code Classes Z C ~2300 Y C++/Java ~400 X Smalltalk ~2500 W COBOL Sortie C/C ~70 Duploc Smalltalk ~230 V C ~10000 Jun Smalltalk ~700 Comprensione del software - principi base e pratica reale 46 Comprensione del software - principi base e pratica reale 47 8

9 Epilogue Did we succeed after all? Not completely, but System Hotspots View on LOC of C++ System Complexity View on ca. 200 classes of C++ e vissero felici e contenti? Questions and Comments Comprensione del software - principi base e pratica reale 48 Comprensione del software - principi base e pratica reale 49 9

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

Software Evolution Analysis & Visualization

Software Evolution Analysis & Visualization Software Evolution Analysis & Visualization Harald C. Gall s.e.a.l. - software evolution & architecture lab University of Zurich, Switzerland http://seal.ifi.uzh.ch/gall University of Zurich Department

More information

Génie Logiciel et Gestion de Projets. Evolution

Génie Logiciel et Gestion de Projets. Evolution Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions

More information

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool Michele Lanza Software Engineering Group Department of Informatics University of Zurich, Switzerland Stéphane Ducasse

More information

Software Engineering & Architecture

Software Engineering & Architecture Software Engineering & Architecture 11. QUALITY METRICS AND VISUALIZATION Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems References Some

More information

Polymetric Views A Lightweight Visual Approach to Reverse Engineering

Polymetric Views A Lightweight Visual Approach to Reverse Engineering Polymetric Views A Lightweight Visual Approach to Reverse Engineering Michele Lanza, Stéphane Ducasse Preprint of the Transactions on Software Engineering Journal 1 Abstract Reverse engineering software

More information

Program Understanding with Code Visualization

Program Understanding with Code Visualization Program Understanding with Code Visualization Arif Iftikhar Department of Computer Science National University of Computer and Emerging Sciences 852-B Faisal Town, Lahore, Pakistan l060802@lhr.nu.edu.pk

More information

The Class Blueprint A Visualization of the Internal Structure of Classes

The Class Blueprint A Visualization of the Internal Structure of Classes The Class Blueprint A Visualization of the Internal Structure of Classes Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch Stéphane Ducasse Software Composition

More information

Software Visualization and Model Generation

Software Visualization and Model Generation Software Visualization and Model Generation Erik Doernenburg Software Developer ThoughtWorks, Inc. Gregor Hohpe Software Engineer Google, Inc. Where are the most defects? 2006 Erik Doernenburg & Gregor

More information

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Marco D Ambros and Michele Lanza Faculty of Informatics University of Lugano, Switzerland Abstract Versioning systems such as

More information

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering System Models Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain why the context of a system should be modeled as part of the RE process To describe

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Service Oriented Analysis and Design (SOAD) in Practice Part 4 Adomas Svirskas Vilnius University October 2005 Agenda Service identification and definition Business process

More information

A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint

A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

Software visualization. Why visualization?

Software visualization. Why visualization? Software visualization Tudor Gîrba www.tudorgirba.com Software Visualization is the use of typography, graphic design, animation, and cinematography with human-computer interaction and computer graphics

More information

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD) Design methods List of possible design methods Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP) OO is good, isn t it Decision tables E-R Flowcharts FSM JSD JSP

More information

Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures

Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures Vragen en opdracht Complexity Wat wordt er bedoeld met design g defensively? Wat is het gevolg van hoge complexiteit icm ontwerp? Opdracht: http://www.win.tue.nl/~mvdbrand/courses/se/1011/opgaven.html

More information

OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1

OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1 OOP? What is OOP? Why? OOP in a nutshell Stéphane Ducasse 2.1 Reality on Software Development Analyze Maintain Design Construct Test What is important? maintainability extensibility understandability Stéphane

More information

Eclipse 3.5 - A Case Study in Software Visualization Based on Static Analysis

Eclipse 3.5 - A Case Study in Software Visualization Based on Static Analysis MetricAttitude: A Visualization Tool for the Reverse Engineering of Object Oriented Software ABSTRACT Michele Risi Dipartimento di Matematica e Informatica Università di Salerno Fisciano, Italy mrisi@unisa.it

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

The Role of the Software Architect

The Role of the Software Architect IBM Software Group The Role of the Software Architect Peter Eeles peter.eeles@uk.ibm.com 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation

More information

A Programming Language Independent Framework for Metrics-based Software Evolution and Analysis

A Programming Language Independent Framework for Metrics-based Software Evolution and Analysis DOI: 10.2298/CSIS120104026G A Programming Language Independent Framework for Metrics-based Software Evolution and Analysis Črt Gerlec 1, Gordana Rakić 2, Zoran Budimac 2, Marjan Heričko 1 1 Institute of

More information

Insights into System Wide Code Duplication

Insights into System Wide Code Duplication Insights into System Wide Code Duplication Matthias Rieger, Stéphane Ducasse, and Michele Lanza Software Composition Group University of Bern, Switzerland {rieger,ducasse,lanza}@iam.unibe.ch Abstract Duplication

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

Big Data: Rethinking Text Visualization

Big Data: Rethinking Text Visualization Big Data: Rethinking Text Visualization Dr. Anton Heijs anton.heijs@treparel.com Treparel April 8, 2013 Abstract In this white paper we discuss text visualization approaches and how these are important

More information

Percerons: A web-service suite that enhance software development process

Percerons: A web-service suite that enhance software development process Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software

More information

High-level Design. What is software architecture?

High-level Design. What is software architecture? High-level Design Software Architecture What is it? Examples of common architectures Parnas KWIK index example of information hiding Model view controller in high level layered design 1 What is software

More information

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011 Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design

Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design Dionisis X. Adamopoulos 1, Constantine A. Papandreou 2 1 University of Piraeus, Greece and Centre for Communication

More information

White Coats: Web-Visualization of Evolving Software in 3D

White Coats: Web-Visualization of Evolving Software in 3D White Coats: Web-Visualization of Evolving Software in 3D Cédric Mesnage Département d informatique Université de Caen, France Michele Lanza Faculty of informatics University of Lugano, Switzerland Abstract

More information

STAN. Structure Analysis for Java. Version 2. White Paper. Fall 2009

STAN. Structure Analysis for Java. Version 2. White Paper. Fall 2009 STAN Structure Analysis for Java Version 2 White Paper Fall 2009 Abstract: This paper gives a brief introduction to structure analysis using STAN, a static code analysis tool bringing together Java development

More information

COLUMN. What is information architecture? Intuitive navigation doesn t happen by chance MAY 2005. The cost of failure

COLUMN. What is information architecture? Intuitive navigation doesn t happen by chance MAY 2005. The cost of failure KM COLUMN MAY 2005 What is information architecture? Organising functionality and content into a structure that people are able to navigate intuitively doesn t happen by chance. Organisations must recognise

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Grouping in Object-Oriented Reverse Engineering

Grouping in Object-Oriented Reverse Engineering Grouping in Object-Oriented Reverse Engineering Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Daniele Talerico 2003 Leiter der Arbeit: Michele Lanza

More information

THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS

THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS David L. Spooner Computer Science Department Rensselaer Polytechnic Institute Troy, New York 12180 The object-oriented programming

More information

Visualization of bioinformatics workflows for ease of understanding and design activities

Visualization of bioinformatics workflows for ease of understanding and design activities Visualization of bioinformatics workflows for ease of understanding and design activities H.V. Byelas and M.A.Swertz Genomics Coordination Center, Department of Genetics, University Medical Center Groningen,

More information

Agile Modeling and Design of Service-Oriented Component Architecture

Agile Modeling and Design of Service-Oriented Component Architecture Agile Modeling and Design of Service-Oriented Component Architecture Zoran Stojanovic, Ajantha Dahanayake, Henk Sol Systems Engineering Group, Faculty of Technology, Policy and Management, Delft University

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

More information

CodeCrawler Lessons Learned in Building a Software Visualization Tool

CodeCrawler Lessons Learned in Building a Software Visualization Tool CodeCrawler Lessons Learned in Building a Software Visualization Tool Michele Lanza lanza@iam.unibe.ch - Software Composition Group - University of Berne, Switzerland Abstract Software visualization tools

More information

NokiaSiemens and Agile Development by Petri Haapio JAOO 2008

NokiaSiemens and Agile Development by Petri Haapio JAOO 2008 NokiaSiemens and Agile Development by Petri Haapio JAOO 2008 DISCLAIMER! This presentation is based on my views and my opinion. This is not the view of the company and also others have experienced the

More information

Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Transmodel in UML. SITP 2 Système d'information Transport Public

Transmodel in UML. SITP 2 Système d'information Transport Public Transmodel in UML Equipe de projet Page 0 Version 0. 04/09/2003 Contents. Introduction... 2. Class diagrams... 3 2.. Network description... 3 2... CD TM Fig. 0 Points and Links... 3 2..2. CD TM Fig. 02

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Software Development Processes Docente: Vito Morreale (vito.morreale@eng.it) 17 October 2006 1 The essence of

More information

Visualization methods for patent data

Visualization methods for patent data Visualization methods for patent data Treparel 2013 Dr. Anton Heijs (CTO & Founder) Delft, The Netherlands Introduction Treparel can provide advanced visualizations for patent data. This document describes

More information

Supporting Software Development Process Using Evolution Analysis : a Brief Survey

Supporting Software Development Process Using Evolution Analysis : a Brief Survey Supporting Software Development Process Using Evolution Analysis : a Brief Survey Samaneh Bayat Department of Computing Science, University of Alberta, Edmonton, Canada samaneh@ualberta.ca Abstract During

More information

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands edwin.hautus@nl.compuware.com Abstract Packages are an important mechanism to decompose

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Hierarchical Data Visualization

Hierarchical Data Visualization Hierarchical Data Visualization 1 Hierarchical Data Hierarchical data emphasize the subordinate or membership relations between data items. Organizational Chart Classifications / Taxonomies (Species and

More information

Applying Agile Methods in Rapidly Changing Environments

Applying Agile Methods in Rapidly Changing Environments Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen

More information

JRefleX: Towards Supporting Small Student Software Teams

JRefleX: Towards Supporting Small Student Software Teams JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca

More information

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands. An Open Framework for Reverse Engineering Graph Data Visualization Alexandru C. Telea Eindhoven University of Technology The Netherlands Overview Reverse engineering (RE) overview Limitations of current

More information

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,

More information

9 Research Questions Resolved

9 Research Questions Resolved 217 9 Research Questions Resolved "All truths are easy to understand once they are discovered; the point is to discover them." Galileo Galilei. 9.1 Main Contributions In section 1.6 the thesis introduced

More information

Coordinated Visualization of Aspect-Oriented Programs

Coordinated Visualization of Aspect-Oriented Programs Coordinated Visualization of Aspect-Oriented Programs Álvaro F. d Arce 1, Rogério E. Garcia 1, Ronaldo C. M. Correia 1 1 Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita

More information

CHAPTER 11 REQUIREMENTS

CHAPTER 11 REQUIREMENTS Lecture Software Engineering CHAPTER 11 REQUIREMENTS Lecture Software Engineering Topics Determining What the Client Needs Overview of the Requirements Workflow Understanding the Domain The Business Model

More information

Chapter 4 Discovery in a Nutshell

Chapter 4 Discovery in a Nutshell Chapter 4 Discovery in a Nutshell This chapter gives an overview of the Discovery Method, describing the activities carried out in each of its four overlapping phases. The Phases of Discovery Different

More information

A Visualization Method to Support Impacts Analysis in Program Understanding

A Visualization Method to Support Impacts Analysis in Program Understanding A Visualization Method to Support Impacts Analysis in Program Understanding Rita Noremi Bt Mohamad Centre for Advanced Software Engineering (CASE) Universiti Teknologi Malaysia Kuala Lumpur, Malaysia rit_emi78@yahoo.com

More information

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture and Software Engineering -Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based

More information

Software Analytics for Mobile Applications

Software Analytics for Mobile Applications Software Analytics for Mobile Applications Master s Thesis submitted to the Faculty of Informatics of the Università della Svizzera Italiana in partial fulfillment of the requirements for the degree of

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization

A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization Ciprian-Bogdan Chirila *, Pierre Crescenzo **, and Philippe Lahire ** * University Politehnica

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

A Tool for Visual Understanding of Source Code Dependencies

A Tool for Visual Understanding of Source Code Dependencies The 16th IEEE International Conference on Program Comprehension A Tool for Visual Understanding of Source Code Dependencies Martin Pinzger, Katja Gräfenhain, Patrick Knab, and Harald C. Gall Department

More information

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Chapter 8 The Enhanced Entity- Relationship (EER) Model Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization

More information

Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011

Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011 Use Cases Massimo Felici Use Cases 1 Support requirements engineering activities and the requirement process Capture what a system is supposed to do, i.e., systems functional requirements Describe sequences

More information

Problem-Solution Mapping for Forward and Reengineering on Architectural Level

Problem-Solution Mapping for Forward and Reengineering on Architectural Level Problem-Solution Mapping for Forward and Reengineering on Architectural Level Matthias Riebisch, Stephan Bode, and Robert Brcina Ilmenau University of Technology P.O. Box 10 05 65 98684 Ilmenau, Germany

More information

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Di 6.1a January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Warum naive SOA scheitert Ein Erfahrungsbericht Adam Bien How To Kill a SOA Project Early? [Warum naive SOA scheitert]

More information

22C:22 (CS:2820) Object-Oriented Software Development

22C:22 (CS:2820) Object-Oriented Software Development The University of Iowa 22C:22 (CS:2820) Object-Oriented Software Development Fall 2012 Software Complexity by Cesare Tinelli Complexity Software systems are complex artifacts Failure to master this complexity

More information

Baseline Code Analysis Using McCabe IQ

Baseline Code Analysis Using McCabe IQ White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges

More information

How To Understand The Software Development Lifecycle

How To Understand The Software Development Lifecycle REQUIREMENTS ANALYSIS AND SYSTEM DESIGN third edition LESZEKA. MACIASZEK ADDISON-WESLEY An imprint of Pearson Education Harlow, England London New York Boston San Francisco Toronto Sydney Singapore Hong

More information

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs César Couto 1,2, Pedro Pires 1, Marco Túlio Valente 1, Roberto S. Bigonha 1, Andre Hora 3, Nicolas Anquetil 3 1 Department

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

Layered Approach to Development of OO War Game Models Using DEVS Framework

Layered Approach to Development of OO War Game Models Using DEVS Framework Layered Approach to Development of OO War Game Models Using DEVS Framework Chang Ho Sung*, Su-Youn Hong**, and Tag Gon Kim*** Department of EECS KAIST 373-1 Kusong-dong, Yusong-gu Taejeon, Korea 305-701

More information

SemTalk BPMN Tutorial APRIL 2015 Email: support@semtalk.com. Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis

SemTalk BPMN Tutorial APRIL 2015 Email: support@semtalk.com. Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis Contents 1. About Business Process Modeling Notation (BPMN)... 3 2. Starting SemTalk BPMN Edition... 4 3. Editing a Process... 7 3.1. Adding

More information

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1

More information

Performance Monitoring and Analysis System for MUSCLE-based Applications

Performance Monitoring and Analysis System for MUSCLE-based Applications Polish Infrastructure for Supporting Computational Science in the European Research Space Performance Monitoring and Analysis System for MUSCLE-based Applications W. Funika, M. Janczykowski, K. Jopek,

More information

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION Raúl Marticorena, Carlos López Language and Informatic Systems, University of Burgos, EPS Campus Vena Edificio C, Burgos, Spain

More information

Manual Techniques, Rules of Thumb

Manual Techniques, Rules of Thumb Seminar on Software Cost Estimation WS 2002/2003 Manual Techniques, Rules of Thumb Pascal Ziegler 1 Introduction good software measurement and estimation are important simple methods are widely used simple,

More information

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture Gustavo Santos, Nicolas Anquetil, Anne Etien, and Stéphane Ducasse RMoD Team INRIA, Lille, France {firstname.lastname}@inria.fr

More information

Using Recovered Views to Track Architectural Evolution

Using Recovered Views to Track Architectural Evolution Using Recovered Views to Track Architectural Evolution Tamar Richner Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10, 3012 Berne,Switzerland richner@iam.unibe.ch,

More information

THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS

THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS William Kent Database Technology Department Hewlett-Packard Laboratories Palo Alto, California kent@hpl.hp.com 1990 CONTENTS: ABSTRACT 1 INTRODUCTION...

More information

Analyzing Java Software by Combining Metrics and Program Visualization

Analyzing Java Software by Combining Metrics and Program Visualization Analyzing Java Software by Combining Metrics and Program Visualization Tarja Systä Software Systems Laboratory Tampere University of Technology P.O. Box 553, FIN-33101 Tampere, Finland tsysta@cs.tut.fi

More information

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori

More information

Program Visualization Support for Highly Iterative Development Environments

Program Visualization Support for Highly Iterative Development Environments Program Visualization Support for Highly Iterative Development Environments Michele Lanza lanza@iam.unibe.ch Software Composition Group University of Bern, Switzerland Abstract Software Visualization is,

More information

UML: Classes -- Association

UML: Classes -- Association UML: Classes -- Association Class1 You can indicate that two classes have an association by using a simple line connector. Class2 Web Development for Business 69 UML: Classes -- Association Class1 You

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

The Concern-Oriented Software Architecture Analysis Method

The Concern-Oriented Software Architecture Analysis Method The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan

More information

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Current Research Team: Prof. Victor R. Basili Forrest Shull, Ph.D. Guilherme H. Travassos, D.Sc. (1)

More information

Stakeholder Communication in Software Project Management. Modelling of Communication Features

Stakeholder Communication in Software Project Management. Modelling of Communication Features Stakeholder Communication in Software Project Management. Modelling of Communication Features IOAN POP * and ALEXANDRA-MIHAELA POP ** * Department of Mathematics and Informatics ** Department of Industrial

More information

Data warehouse design

Data warehouse design DataBase and Data Mining Group of DataBase and Data Mining Group of DataBase and Data Mining Group of Database and data mining group, Data warehouse design DATA WAREHOUSE: DESIGN - 1 Risk factors Database

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

3SL. Requirements Definition and Management Using Cradle

3SL. Requirements Definition and Management Using Cradle 3SL Requirements Definition and Management Using Cradle November 2014 1 1 Introduction This white paper describes Requirements Definition and Management activities for system/product development and modification

More information

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability Volume 5, Issue 4, April 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review of Static

More information

Automated Modeling of Legacy Systems Using the UML

Automated Modeling of Legacy Systems Using the UML Automated Modeling of Legacy Systems Using the UML by Pan-Wei Ng Software Engineering Specialist Rational Software Singapore Poor documentation is one of the major challenges of supporting legacy systems;

More information