Requirements. Version Control History. Implementation Technology. Software Process. Developers
|
|
|
- Tobias Beasley
- 9 years ago
- Views:
Transcription
1 If Your Version Control System Could Talk... Thomas Ball Jung-Min Kim Adam A. Porter Harvey P. Siy Bell Laboratories Dept. of Computer Sciences Bell Laboratories Lucent Technologies University of Maryland Lucent Technologies Abstract Requirements Version control systems (VCSs) are used to store and reconstruct past versions of program source code. As a by-product they also capture a great deal of contextual information about each change. We will illustrate some ways to use this information to better understand a program's development history. Software Process Version Control History Developers Implementation Technology 1 Introduction There are many software-based metrics that one may use to assess the state of a software system. For example, the McCabe[7] and Halstead[4] software complexity metrics measure aspects of the structure of a static snapshot of source code to estimate its complexity. By measuring how these metrics change over time, the hope is that one can identify \decaying" components of a software system that, if restructured, may reduce the development eort needed to maintain and extend the system. Such analyses depend on the ability to recreate snapshots of the software at dierent points in time. Aversion control system (VCS) tracks each change a developer makes to the system and, as a result, can recreate a consistent snapshot at any point in time. Examples of VCSs include RCS[10] and SCCS[9]. While this basic functionalityofvcss is essential for version control and measuring the evolution of metrics over time, there is much datainavcs that is ignored when simply using it to extract snapshots of source code. In this paper, we will examine some of the rich structure in version control data and show how analysis of version control data can illuminate the software development process in new ways. AVCS tags each change with a substantial amount of additional contextual information. Knowing what code was changed, when it was changed, who made the change, and so on, can yield valuable insights into what actually went on in the course of code development, sometimes better than Figure 1: Version control history captures interactions between various aspects of software development. developers' memories. VCS data is amenable to completely automated analysis, just as a snapshot of source code is amenable to metric analysis. Most software development organizations employ some form of VCS. Thus the methods we will outline here have wide applicability tomany software projects. Our framework is to use the data in a VCS (referred to as the version control history), in addition to the source code itself, to explore the relationships between various aspects of software development. For example, the requirements of the software, the implementation technology used, development process followed, and the organization of the developers have some eect on how the software evolved. Figure 1 illustrates the idea. Each of these characteristics is a particular view of software development, with its own constraints and impact. Our thesis is that interactions between these views can impact the ecient production of software and that the version history data captured in a VCS provides a good starting point for exploring many of these relationships. In our particular example, we will examine some interesting relationships between the requirements of an optimizing compiler, the implementation technology of C++, and the desire to have developers work in parallel. We will examine these relationships using visualizations automatically generated from the VCS data.
2 2 Version Control Data We present a very simplied description of some basic data collected by a VCS. Most VCSs operate over a set of les containing the text lines of source code. An atomic change to the program text is captured by recording the lines that were deleted and those that were added in order to make the change. This information is usually computed by a le dierencing algorithm (such as Unix di), which compares the previous version of a le with the current version. Each change has associated with it the le that was changed, the time the change was recorded by thevcs, and the name and login id of the programmer who made it, at a minimum. In order to make a change to a software system, a developer may have to modify many program entities in many les. Most VCSs have the ability to track a group of related changes via a modication record (MR), which captures the fact that these changes were made for a specic purpose and are thus semantically related. An MR may have an English abstract associated with it that the developer provides, describing the purpose of the change. An MR also may have other data, such as it's opening time, closing time, and other status information (approved, rejected). An MR is a set of atomic changes and every atomic change has some MR associated with it. Thus, every line of text in any source code snapshot has associated with it: time of change, developer name and login, MR and related data. By analyzing the source code to identify functions, classes or other program entities, we can then associate the VCS data with these entities as well as with source lines. 3 The Project Under Study We present abriefoverview of the project under study. More details may be found in Ladd and Ramming[6]. The 5ESS TM is LucentTechnologies' agship local/toll switching system, containing an estimated 10 million lines of code in product and support tools. At the heart of the 5ESS software is a distributed relational database with information about hardware connections, software conguration, and customers. For the switch to function properly, this data must conform to certain integrity constraints. Some of these are logical constraints for example, \call waiting and call forwarding/busy should never be active on the same line." Other constraints exist to document data design choices (redundancy, functional dependencies, distribution rules) that support ecient 5ESS operation and call processing. PRL5[5] is a declarative SQL-like language, created to specify these data integrity constraints. PRL5 specications are translated automatically into data audits and transaction guards in C, which is then compiled on multiple platforms. Due to the constantly changing integrity constraints to be provided to dierent communication service providers worldwide, compilation speed was crucial. The generated C code also had to be optimized to make as few disk accesses as possible. A compiler for PRL5 called P5CC (PRL5 to C Compiler) was developed in C++. The compiler follows traditional compiler structure and includes lexing, parsing, semantic and type checking, optimization, and code generation phases. The lexing and parsing phases produce an abstract syntax tree (AST) over which the other phases operate. For this compiler project, we have chosen to study the following views: Requirements. Build an optimizing compiler for a declarative SQL-like language Developers. Team of 6 developers who have to coordinate with each other Implementation technology. The C++ language Software process. built in parallel. Many, but not all components 4 Insights Into Compiler Development The P5CC compiler is written in C++, using approximately 275 classes. Multiple inheritance is not used, so the class inheritance relationship is tree structured. Approximately, 120 of these classes are small stub classes generated via macros. We partitioned the classes into 5 basic groups (excluding miscellaneous support classes): Top: the top level classes. That is, the classes not directly related to any language entity, but used primarily as base classes SymTab: symbol table classes representinga PRL5 language construct or type AST: abstract syntax tree (AST) classes Optim: classes that apply optimization transformations to the abstract syntax tree Quads: code generation classes Each modication to the P5CC compiler is recorded in a VCS known as ECMS (the Extended Change Management System). Our analysis is based on 750 MR's. For each class, we computed howmany MRs modied it. Figure 2 shows the inheritance hierarchy of the P5CC classes. The area of a node is proportional to the log of the number of MRs that modied the corresponding class. A node is only shown if there was an MR touching
3 Figure 2: StatementNode TreeNode PrimaryExprNode DescriptorRep Indirect TreeFunc Quad The class inheritance hierarchy of the P5CC compiler, where the size of a node is proportional to the log of the number of MRs that touch the class. The shape of the node represents its class group as follow: Top { diamonds, SymTab { unlled square, AST { lled circle, Optim { unlled circle, Quads { lled squares. it this is the reason that the number of Quads classes is so small{most of the classes are generated by macros and are never modied by hand. It is clear from this gure that most of the change activity was related to the AST. Keep in mind that the AST code does much more than simply maintain a tree data structure. Member functions of the AST classes are responsible for many compilation phases, such as type checking, code generation, etc. In an imperative language such asc,onemight encapsulate type checking in a module that takes an AST as input and traverses it to perform the type checking. However, in an object-oriented language such as C++, the function of type checking is more naturally expressed as a method of the AST classes. In the P5CC compiler, the member functions of the AST classes are divided among les according to their functionality. For example, all the member functions for type checking can be found in a particular set of les, while member functions for code generation can be found in another le set. The left panel in Figure 3 makes this clear, using the SeeSoft code visualization [1]. Each rectangle represents a le from the compiler. Only les containing code from the AST classes are shown. Each class is given a level of gray from the gray scale spectrum on the left, and each line of a le is colored to show which class it belongs to. As is clear from the picture, each le contains code from many classes. Note, for example, the les containing a gray scale spectrum. These les group members functions from many dierent classes in the AST that constitute a particular phase of the compiler (such as type checking or code generation). There is a very good reason to divide classes into les by functionality. Centralizing too much functionality in one set of classes can impede concurrent development. By splitting member functions of the same class across dierent les, dierent programmers can work on dierent aspects of the compiler. The right panel in Figure 3 shows which programmers worked on which les. This data is derived from ECMS: every MR is owned by exactly one programmer, so the code for that MR can be traced to an individual. It is clear that certain programmers had ownership of particular aspects of the compiler and AST classes, although most les have accumulated modications by several programmers. This partitioning illustrates the complex relationships among the views we are examining. For example, compiler literature[8] suggests that when prototyping a new programming language, it is useful to implement compiler phases as member functions of each AST class. To add new language constructs, one simply adds new classes to the set of AST classes. On the other hand, for a mature language, it is useful to implement compiler phases as modules that transform or operate over an abstract data type representing an AST. This makes it easier to add new optimizing passes to the compiler. Since PRL5 was changing during the compiler's development, an OO approach would appear to make sense (the inheritance hierarchy acts as a built-in switch statement and virtual functions help avoid writing identical functions in all classes within a inheritance hierarchy). However, the developers' work assignments mimic'd the second approach. That is, each developer implemented a specic compiler phase for all AST classes. In the end, the compiler phases were incorporated into the member functions of the AST classes, but, during development, member functions with similar functionality were grouped together into separate les. One goal of our research is to better understand the eect that development decisions, such as these, have on the evolution of software systems. In the next section we discuss some preliminary approaches for analyzing the relationship between development approaches and a system's change history.
4 umberchanges Subject 1 Subject 2 Subject 3 Subject 4 Subject 5 Subject 6 values 93/93/ 93 lines 29482/29482/ files 45/45/ 45 MR Date NestingLevel Subject Inspect Class ReturnNode values 6/6/ 6 lines 29482/29482/ files 45/45/ 45 umberchanges MR Date NestingLevel Subject Subject 4 Inspect Class Figure 3: Two SeeSoft views of the les comprising the abstract syntax tree classes of the P5CC compiler. In the view to the left, each class maps to a level of gray in the gray scale spectrum on the left and each line of a le is colored with the class it belongs to. The view on the right shows the same set of les, where each line of a le is colored by programmer (there are six programmers). 5 Cluster Analysis of Classes by Modication TreeNode Quad One way to help understand the eects of a development decision on system evolution is to examine the system's change history. In this example we describe initial explorations of how the class structure of this system encapsulated changes to it. For each class C, let C mr be the number of MRs that touch class C. If C and D are two unique classes, let CD mr be the number of MRs that touch both classes C and D. CD mr denes a relationship between the two classes, which translates to a link in a graph where the nodes are classes. A probability measure can also be associated with the link: DescriptorRep Figure 4: Cluster analysis of classes based on MR relationships. Each node representing a class is colored by the group of the class (same color and shape as in Figure 2). Nodes closer together are joined by links of higher probability. The clustering analysis has dened the ve class groups. CD mr = p C mr D mr If the classes C and D are always modied together, the link probability will be 1, since C mr = D mr = CD mr in this case. However, if C and D are rarely modied together in comparison to the total number of modi- cations to C or D, then the link probability will be low. We generated this data for the current version of the P5CC compiler and ran it through a graph clustering algorithm which places nodes connected by links of higher weight closer together. We used the probability measure described above for the link weighting. For details on this algorithm, see [3]. Figure 4 shows the resulting graph. Each node rep-
5 resents a class. The shape of a node denotes the group that the class belongs to, as in Figure 2. Note that the clustering algorithm has identied clusters of semantically related classes. In fact, it identied the ve basic partitions described earlier! The cluster of round lled nodes on the lower left are the AST classes, while the cluster of white square nodes on the right are the SymTab classes. The cluster on the upper left is the Optim group. The group of lled square nodes above the symbol table cluster represents the Quads group. In this example, all links between classes of dierent groups had probabilities less than 40the same group had higher probability. This gure shows that changes to the AST classes often involved other changes to the Optim and SymTab groups. However, as expected, there are very few links between the Optim and SymTab groups. Based on this initial analysis, we are currently examining the types of changes that are made between classes within the same hierarchy. If they are mainly changes involving the same member function across different classes, then it argues that the class partitioning was not eective. In addition, we are examining similar views for le partitioning. 6 Summary The thesis of this researchisthat version control systems contain signicant amounts of data that could be exploited in the study of system evolution. We haveil- lustrated some ways to use this information. In particular we have derived VCS-related metrics, like connection strength based on the probability that two classes are modied together. We used this metric to assess the eect of implementation decisions on the evolution of the resulting software. Clearly, this work is in its initial stages. We are currently exploring several extensions to it. Time-series analysis. Most metric work is based on a single snapshot of a system. Little work has explored metrics to capture how structure changes over long periods of time. Improved analysis models. This work implicitly treats aspects of the change history as dependent variables and aspects of development history as independent variables. Our initial work has looked at only a few variables. For example, we have looked at number of changes per class as a dependent variable. In our ongoing work we willre- ne this variable, looking at the type of changes, change eort, and whether the change was actually approved or had to be reworked. We will also examine complex changes, i.e., those that involve multiple developers, multiple classes, and multiple functions. Examining development processes. We can also examine issues related to the development process. For example, are defects discovered during inspection dierent in nature than those discovered during testing? We can also look at the eect of development decisions on criteria such as development interval. Improved visualization techniques. The visualizations we show in this paper are obviously static. Since we are inherently interested in system behavior over time we expect that visualizations must improve to capture this. Some possibilities include Trellis displays[2] and animation. Static program analysis. The change history provides information about how dierent parts of a system are related. This information may be useful for automatic restructuring. References [1] T. Ball and S. G. Eick. Software visualization in the large. IEEE Computer, 29(4):33{43, April [2] William S. Cleveland. Visualizing Data. Hobart Press, [3] Stephen G. Eick and Graham J. Wills. Navigating large networks with hierarchies. In Visualization '93 Conference Proceedings, pages 204{210, San Jose, California, Oct [4] Maurice H. Halstead. Elements of Software Science. Elsevier { North Holland, [5] David A. Ladd and J. Christopher Ramming. Software research and switch software. In International Conference on Communications Technology, Beijing, China, [6] David A. Ladd and J. Christopher Ramming. Two application languages in software production. In USENIX Symposium on Very-High-Level Languages, Oct [7] Thomas J. McCabe. A complexity measure. IEEE Trans. on Software Engineering, 2(4):308{320, Dec [8] Martin Odersky and Philip Wadler. Pizza into Java: Translating theory into practice. In Conference Record of1997acm Symposium on Principles of Programming Languages, pages 146{159, Paris, France, Jan [9] Marc J. Rochkind. The Source Code Control System. IEEE Trans. on Software Engineering, SE-1(4):364{370, December [10] Walter Tichy. Design, implementation and evaluation of a revision control system. In Proceedings of the 6th International Conference on Software Engineering, pages 58{67, Tokyo, Japan, Sept
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 [email protected]
interactive automatic (rules) automatic (patterns) interactive REP ENVIRONMENT KERNEL
AN APPROACH TO SOFTWARE CHANGE MANAGEMENT SUPPORT Jun Han Peninsula School of Computing and Information Technology Monash University, McMahons Road, Frankston, Vic 3199, Australia phone: +61 3 99044604,
Prediction of Software Development Modication Eort Enhanced by a Genetic Algorithm
Prediction of Software Development Modication Eort Enhanced by a Genetic Algorithm Gerg Balogh, Ádám Zoltán Végh, and Árpád Beszédes Department of Software Engineering University of Szeged, Szeged, Hungary
Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar
Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs
Programming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
Managing large sound databases using Mpeg7
Max Jacob 1 1 Institut de Recherche et Coordination Acoustique/Musique (IRCAM), place Igor Stravinsky 1, 75003, Paris, France Correspondence should be addressed to Max Jacob ([email protected]) ABSTRACT
A Web-Based Requirements Analysis Tool. Annie I. Anton. Eugene Liang. Roy A. Rodenstein. fanton,eugene,[email protected]
A Web-Based Requirements Analysis Tool Annie I. Anton Eugene Liang Roy A. Rodenstein fanton,eugene,[email protected] College of Computing Georgia Institute of Technology Atlanta, GA 30332-0280 Abstract
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
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 [email protected] Abstract During
Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.
Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit
Cooperative Learning Method Based On Game Design and Visual Object Oriented Environment to Teach Object Oriented Programming Course
Cooperative Learning Method Based On Game Design and Visual Object Oriented Environment to Teach Object Oriented Programming Course Yulia 1,Rudy Adipranata 2 Informatics Department Petra Christian University
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.
CH04 Capturing the Requirements Understanding what the customers and users expect the system to do * The Requirements Process * Types of Requirements * Characteristics of Requirements * How to Express
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
Department of Computer and Information Science, Ohio State University. In Section 3, the concepts and structure of signature
Proceedings of the 2nd International Computer Science Conference, Hong Kong, Dec. 1992, 616-622. 616 SIGNATURE FILE METHODS FOR INDEXING OBJECT-ORIENTED DATABASE SYSTEMS Wang-chien Lee and Dik L. Lee Department
Using UML Part One Structural Modeling Diagrams
UML Tutorials Using UML Part One Structural Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,
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
Tudumi: Information Visualization System for Monitoring and Auditing Computer Logs
Tudumi: Information Visualization System for Monitoring and Auditing Computer Logs Tetsuji Takada Satellite Venture Business Lab. University of Electro-Communications [email protected] Hideki Koike Graduate
Automated Testing Tool
Automated Testing Tool Damon Courtney, Gerald Lester, Lauren Vaughn and Tim Thompson October 2, 2006 Abstract This paper presents details of the design and implementation of a Automated Testing Tool for
FileNet System Manager Dashboard Help
FileNet System Manager Dashboard Help Release 3.5.0 June 2005 FileNet is a registered trademark of FileNet Corporation. All other products and brand names are trademarks or registered trademarks of their
Methodologies. Adam Pasztory 12/19/07. Pasztory - 1
Revision Control Methodologies Adam Pasztory 12/19/07 Pasztory - 1 Revision control is one of the primary components of the change management process for system administrators.(1) Any project that has
Fault Analysis in Software with the Data Interaction of Classes
, pp.189-196 http://dx.doi.org/10.14257/ijsia.2015.9.9.17 Fault Analysis in Software with the Data Interaction of Classes Yan Xiaobo 1 and Wang Yichen 2 1 Science & Technology on Reliability & Environmental
Lab Experience 17. Programming Language Translation
Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly
Algorithms, Flowcharts & Program Design. ComPro
Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of
Tool Support for Inspecting the Code Quality of HPC Applications
Tool Support for Inspecting the Code Quality of HPC Applications Thomas Panas Dan Quinlan Richard Vuduc Center for Applied Scientific Computing Lawrence Livermore National Laboratory P.O. Box 808, L-550
EB TechPaper. Test drive with the tablet. automotive.elektrobit.com
EB TechPaper Test drive with the tablet automotive.elektrobit.com 1 A great many test miles have to be covered in the development and validation of driver assistance systems. A tablet with Elektrobit (EB)
Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
Efficient Agent Based Testing Framework for Web Applications
International Journal of Scientific & Engineering Research, Volume 3, Issue 2, February-2012 1 Efficient Agent Based Testing Framework for Web Applications Ms.Neha Saluja Prof.Amit Kanskar Abstract- Now
Test Specification. Introduction
Test Specification Introduction Goals and Objectives GameForge is a graphical tool used to aid in the design and creation of video games. A user with little or no experience with Microsoft DirectX and/or
specication [3]. FlowDL allows to indicate the source of the documents, their control ow and the activities that make use of these documents. A MARIFl
A Workow System through Cooperating Agents for Control and Document Flow over the Internet? A. Dogac 1,Y.Tambag 1,A.Tumer 1, M. Ezbiderli 1,N.Tatbul 1, N. Hamali 1,C. Icdem 1 and C. Beeri 2 1 Software
SIEMENS. Teamcenter 11.2. Change Manager PLM00140 11.2
SIEMENS Teamcenter 11.2 Change Manager PLM00140 11.2 Contents What is Change Manager?.............................................. 1-1 Related topics........................................................
Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist
Software Metrics 1. Lord Kelvin, a physicist 2. George Miller, a psychologist Software Metrics Product vs. process Most metrics are indirect: No way to measure property directly or Final product does not
French Scheme CSPN to CC Evaluation
French Scheme CSPN to CC Evaluation Antoine COUTANT ITSEF AMOSSYS 4 bis allée du bâtiment 35000 Rennes [email protected] Abstract. Since 2008, French certication body created a new scheme for
Software Metrics in Static Program Analysis
www.redlizards.com Software Metrics in Static Program Analysis ICFEM, 11/18/2010 Andreas Vogelsang 1, Ansgar Fehnker 2, Ralf Huuck 2, Wolfgang Reif 3 1 Technical University of Munich 2 NICTA, Sydney 3
The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.
The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide
A case study of evolution in object oriented and heterogeneous architectures
The Journal of Systems and Software 43 (1998) 85±91 A case study of evolution in object oriented and heterogeneous architectures Vaclav Rajlich *, Shivkumar Ragunathan Department of Computer Science, Wayne
UNLOCK YOUR IEC 61850 TESTING EXCELLENCE
IMPROVE EFFICIENCY TEST WITH CONFIDENCE OF KNOW-HOW LEARN AND EXPAND YOUR IEC 61850 SKILLS MASTER YOUR NETWORK KNOWLEDGE GENERATE TEST RESULTS UNLOCK YOUR IEC 61850 TESTING EXCELLENCE Connect To & Read
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
SuperViz: An Interactive Visualization of Super-Peer P2P Network
SuperViz: An Interactive Visualization of Super-Peer P2P Network Anthony (Peiqun) Yu [email protected] Abstract: The Efficient Clustered Super-Peer P2P network is a novel P2P architecture, which overcomes
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
Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland
Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static
STRUTS: Statistical Rules of Thumb. Seattle, WA
STRUTS: Statistical Rules of Thumb Gerald van Belle Departments of Environmental Health and Biostatistics University ofwashington Seattle, WA 98195-4691 Steven P. Millard Probability, Statistics and Information
The Sierra Clustered Database Engine, the technology at the heart of
A New Approach: Clustrix Sierra Database Engine The Sierra Clustered Database Engine, the technology at the heart of the Clustrix solution, is a shared-nothing environment that includes the Sierra Parallel
CPS122 Lecture: State and Activity Diagrams in UML
CPS122 Lecture: State and Activity Diagrams in UML Objectives: last revised February 14, 2012 1. To show how to create and read State Diagrams 2. To introduce UML Activity Diagrams Materials: 1. Demonstration
1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha
Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,
Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
Pico Lisp A Radical Approach to Application Development
Pico Lisp A Radical Approach to Application Development Software Lab. Alexander Burger Bahnhofstr. 24a, D-86462 Langweid [email protected] (www.software-lab.de) +49-(0)821-9907090 June 22, 2006 Abstract
Database Design Overview. Conceptual Design ER Model. Entities and Entity Sets. Entity Set Representation. Keys
Database Design Overview Conceptual Design. The Entity-Relationship (ER) Model CS430/630 Lecture 12 Conceptual design The Entity-Relationship (ER) Model, UML High-level, close to human thinking Semantic
CSC408H Lecture Notes
CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other
Topic Maps Visualization
Topic Maps Visualization Bénédicte Le Grand, Laboratoire d'informatique de Paris 6 Introduction Topic maps provide a bridge between the domains of knowledge representation and information management. Topics
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
An Automated Model Based Approach to Test Web Application Using Ontology
An Automated Model Based Approach to Test Web Application Using Ontology Hamideh Hajiabadi, Mohsen Kahani [email protected], [email protected] Computer Engineering Department, Ferdowsi
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
Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design
I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)
Managing Users and Identity Stores
CHAPTER 8 Overview ACS manages your network devices and other ACS clients by using the ACS network resource repositories and identity stores. When a host connects to the network through ACS requesting
Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem
International Journal of Applied Science and Technology Vol. 3 No. 8; December 2013 Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem D. R. Aremu O. A. Gbadamosi
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
Cedalion A Language Oriented Programming Language (Extended Abstract)
Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
Snapshots in Hadoop Distributed File System
Snapshots in Hadoop Distributed File System Sameer Agarwal UC Berkeley Dhruba Borthakur Facebook Inc. Ion Stoica UC Berkeley Abstract The ability to take snapshots is an essential functionality of any
Insight Advanced Workstation
Technical Specification Sheet Document No. 149-333P25 October 29, 2015 Insight Advanced Workstation Figure 1. Insight Advanced Main Menu. The Insight Advanced Workstation transforms a personal computer
Standard for Software Component Testing
Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document
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
JProfiler: Code Coverage Analysis Tool for OMP Project
CMU 17-654 & 17-754 Analysis of Software Artifacts Spring 2006 Individual Project: Tool Analysis May 18, 2006 Eun-young Cho [email protected] JProfiler: Code Coverage Analysis Tool for OMP Project Table
Process Modelling from Insurance Event Log
Process Modelling from Insurance Event Log P.V. Kumaraguru Research scholar, Dr.M.G.R Educational and Research Institute University Chennai- 600 095 India Dr. S.P. Rajagopalan Professor Emeritus, Dr. M.G.R
A Typing System for an Optimizing Multiple-Backend Tcl Compiler
The following paper was originally published in the Proceedings of the Fifth Annual Tcl/Tk Workshop Boston, Massachusetts, July 1997 A Typing System for an Optimizing Multiple-Backend Tcl Compiler Forest
Using Library Dependencies for Clustering
Using Library Dependencies for Clustering Jochen Quante Software Engineering Group, FB03 Informatik, Universität Bremen [email protected] Abstract: Software clustering is an established approach
REMOTE DEVELOPMENT OPTION
Leading the Evolution DATA SHEET MICRO FOCUS SERVER EXPRESS TM REMOTE DEVELOPMENT OPTION Executive Overview HIGH PRODUCTIVITY DEVELOPMENT FOR LINUX AND UNIX DEVELOPERS Micro Focus Server Express is the
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS
SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE Version A.4, January 2014 FOREWORD This document was written to provide software development projects with a template for generating a System
programming languages, programming language standards and compiler validation
Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important
Calculation Example Rolling Bearings According to to DIN ISO 281
Calculation Example Rolling Bearings According to to DIN ISO 281 Release July 2013 c 2013 GWJ Technology GmbH Rebenring 31 38106 Braunschweig Tel.: +49 (0) 531 129 399-0 Contents 0.1 Calculation Examples:
Appendix B Data Quality Dimensions
Appendix B Data Quality Dimensions Purpose Dimensions of data quality are fundamental to understanding how to improve data. This appendix summarizes, in chronological order of publication, three foundational
International Workshop on Field Programmable Logic and Applications, FPL '99
International Workshop on Field Programmable Logic and Applications, FPL '99 DRIVE: An Interpretive Simulation and Visualization Environment for Dynamically Reconægurable Systems? Kiran Bondalapati and
