Comprensione del software - principi base e pratica reale 5
|
|
- Adrian Waters
- 8 years ago
- Views:
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
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 informationSoftware 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 informationGé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 informationCodeCrawler 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 informationSoftware 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 informationPolymetric 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 informationProgram 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 informationThe 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 informationSoftware 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 informationSoftware 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 informationSoftware 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 informationVISUALIZATION 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 informationService 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 informationA 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 informationProgram 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 informationSoftware 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 informationDesign 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 informationVragen 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 informationOOP? 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 informationEclipse 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 informationComponent 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 informationThe 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 informationA 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 informationInsights 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 informationWhat 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 informationBig 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 informationPercerons: 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 informationHigh-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 informationSequence 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 informationAgile 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 informationAdvanced 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 informationWhite 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 informationSTAN. 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 informationCOLUMN. 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 informationKarunya 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 informationGrouping 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 informationTHE 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 informationVisualization 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 informationAgile 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 informationSOFT 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 informationCodeCrawler 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 informationNokiaSiemens 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 informationObject-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 informationQuestions? 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 informationTransmodel 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 informationMasters 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 informationSistemi 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 informationVisualization 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 informationSupporting 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 informationIMPROVING 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 informationChap 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 informationSoftware 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 informationHierarchical 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 informationApplying 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 informationJRefleX: 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 informationAn 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 informationTraceability 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 information9 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 informationCoordinated 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 informationCHAPTER 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 informationChapter 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 informationA 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 informationService-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 informationSoftware 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 informationFormal 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 informationA 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 informationContents. 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 informationA 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 informationChapter 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 informationUse 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 informationProblem-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 informationDi 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 information22C: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 informationBaseline 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 informationHow 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 informationBugMaps-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 information1.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 informationLayered 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 informationSemTalk 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 informationArchitecture. 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 informationPerformance 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 informationASSISTING 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 informationManual 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 informationOrionPlanning: 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 informationUsing 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 informationTHE 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 informationAnalyzing 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 informationGadget: 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 informationProgram 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 informationUML: 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 informationObject 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 informationThe 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 informationDetecting 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 informationStakeholder 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 informationData 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 informationApplying 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 information3SL. 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 informationKeywords 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 informationAutomated 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