Génie Logiciel et Gestion de Projets. Evolution
|
|
|
- Bernard Mitchell
- 10 years ago
- Views:
Transcription
1 Génie Logiciel et Gestion de Projets Evolution 1
2 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2
3 Evolution: Definitions
4 Software Evolution Software evolution is all programming activity that is intended to generate a new software version from an earlier operational version [Lehman&Ramil 2000] the life of the software after its initial development cycle (or after the first delivery of the software system) Any subsequent change to the software, such as bug fixes, adding new functionality, even modifying existing functionality and major architectural changes, is considered to be software evolution 4
5 Software Maintenance Software maintenance is The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment [IEEE Std ] The software product undergoes modification to code and associated documentation due to a problem or the need for improvement. The objective is to modify the existing software product while preserving its integrity [ISO Std 12207] 5
6 Software Aging We need to learn how to reverse the effects of aging Programs, like people, get old. We can t prevent aging, but we can understand its causes, take steps to limit its effects, temporarily reverse some of the damage it has caused, and prepare for the day when the software is no longer viable. [Parnas, 1994] Reasons why software ages maintenance ignorant surgery and architectural erosion inflexibility from the start insufficient or inconsistent documentation deadline pressure duplicated functionality (code duplication) lack of modularity... Possible solution: restructuring/refactoring 6
7 Observations Software change is unavoidable (inevitable) unpredictable expensive (costly) difficult poorly supported by tools, techniques, formalisms underestimated by managers 7
8 Change is unavoidable Software change is inevitable New requirements emerge when the software is being used Even when it is being developed! Errors must be repaired be improved The business environment changes New computers and equipment are added to the system The performance or reliability of the system may have to New technology is being used (new standards, new OS, new software versions,...) 8
9 Change is unpredictable The main difficulty in software engineering is that changes cannot be anticipated at design time The fundamental problem, supported by 40 years of hard experience, is that many changes actually required are those that the original designers cannot even conceive of. [Bennett&Rajlich 2000] Software engineers are very bad in predicting which classes will change upon evolution 9
10 Change is expensive Software maintenance is costly The majority of the software budget in large companies is devoted to adapting (i.e., evolving) existing software rather than developing new software Maintenance costs exceed estimated costs with a factor between 2 and 100 (depending on the application) 10
11 Change is difficult Software maintenance is difficult Maintenance incorporates aspects of all other phases of the software life-cycle Nevertheless, even today, many organizations assign maintenance to Unsupervised beginners, and Less competent programmers Tools used by the maintenance programmer to find faults? The error report provided by the user The source code And often nothing else 11
12 Laws of Software Evolution
13 Laws of Software Evolution Program evolution dynamics is the study of the processes of software system change After major empirical studies, Lehman and Belady proposed a number of "laws" that seem to be applicable to all evolving software systems. Laws : Reflect the cooperative activity of many individuals and organisational behaviour Influenced by thermodynamics Reflect established observations and empirical evidence An emerging theory of software process and software evolution, i.e., work in progress. 13
14 Laws of Software Evolution Lehman's laws of software evolution Based on the evolution of IBM 360 mainframe OS over a period of 30 years References: Lehman M.M. and Belady L.A. (Eds.), 1985 Software Evolution Processes of Software Change, Academic Press, London (Free download from wiki.ercim.org/wg/softwareevolution) M. M. Lehman. Laws of Software Evolution Revisited. Lecture Notes in Computer Science 1149, pp , Springer Verlag,
15 Laws Law 1: Continuing change Law 2: Increasing complexity Law 3: Self regulation Law 4: Conservation of organisational stability Law 5: Conservation of familiarity Law 6: Continuing growth Law 7: Declining quality Law 8: Feedback system 15
16 Law 1: Continuing change "An E-type program that is used in a real-world environment must be continually adapted, else it becomes progressively less satisfactory" Reasons: Evolution of the environment ( operational domain ) Hence, increasing mismatch between the system and its environment Remark E-type programs : E for Evolutionary Real-world problem : Stakeholders mainly humans Requirements and environment continuously evolving Continuous need for change 16
17 Law 2: Increasing complexity "As a program is evolved its complexity increases unless work is done to maintain or reduce it." Reasons: Small changes are applied in a step-wise process Each patch makes sense locally, not globally Effort needed to reconcile accumulated changes with the overall performance goals techniques like refactoring and performance optimisation are needed. 17
18 Applicability of Lehman s laws Lehman s laws seem to be generally applicable to large, tailored systems developed by large organisations. It is not (yet) clear whether they are applicable to Shrink-wrapped software products Systems that incorporate a significant number of off-the-shelf components or external libraries Small organisations Medium sized systems Open source software 18
19 References [Lehman&Ramil 2000] M. M. Lehman, J. F. Ramil. Effort Estimation from Change Records of Evolving Software, 2000 [Parnas 1994] D. L. Parnas. Software Aging. Invited plenary talk. Proc. Int. Conf. on Software Engineering (ICSE 94), pp , IEEE Computer Society Press, 1994 [Bennett&Rajlich 2000] K. H. Bennett, V. T. Rajlich. Software Maintenance and Evolution: a Roadmap. The Future of Software Engineering, ACM Press,
20 Legacy Systems
21 Legacy System legacy : A sum of money, or a specified article, given to another by will; anything handed down by an ancestor or predecessor. --- Oxford English Dictionary A legacy system is a piece of software that you have inherited is valuable to you 21
22 Problems with Legacy Systems original developers are no longer available outdated development methods are used made documentation is missing or outdated extensive patches and modifications have been so that further evolution may be prohibitively expensive The difference between legacy systems and adaptable software is the ability to change. Solution: migration to a new system 22
23 Object-oriented Legacy Systems = successful OO systems whose architecture and design no longer responds to changing requirements Compared to traditional legacy systems The symptoms and the source of the problems are the same The technical details and solutions may differ OO techniques promise better flexibility, reusability, maintainability,... do not come for free... 23
24 Common Symptoms lack of knowledge obsolete or no documentation departure of the original developers or users disappearance of inside knowledge about the system limited understanding of entire system process symptoms too long to turn things over to production need for constant bug fixes maintenance dependencies difficulties separating products code symptoms duplicated code code smells 24
25 Common Problems Architectural problems insufficient documentation = non-existent or out-of-date improper layering = too few or too many layers lack of modularity = strong coupling duplicated code = copy, paste and edit code duplicated functionality = similar functionality by separate teams Refactoring opportunities misuse of inheritance = code reuse vs polymorphism missing inheritance = duplication, case statements misplaced operations = operations outside classes violation of encapsulation = type-casting, C++ friends class abuse = classes as namespaces 25
26 Re-engineering
27 Re-engineering Software development is more than forward engineering alone... Requirements Analysis Forward Engineering Re-engineering Design Time Implementation 27
28 Reengineering Reorganising and modifying existing software systems to make them more maintainable Re-structuring or re-writing part or all of a legacy system without changing its functionality Applicable where some but not all sub-systems of a larger system require frequent maintenance Re-engineering involves adding effort to make them easier to maintain. The system may be restructured and re-documented 28
29 Advantages of Reengineering Reduced risk There is a high risk in new software development. There may be development problems, staffing problems and specification problems. Reduced cost The cost of re-engineering is often significantly less than the costs of developing new software. 29
30 Re-engineering Life-cycle (2) problem detection (1) model capture people centric lightweight (0) requirements analysis (3) problem resolution (4) program transformation 30
31 Forward and Reengineering System specification Forward engineering Design and implementation New system Existing software system Software re-engineering Understanding and transformation Re-engineered system 31
32 Re-engineering Process Original program Program documentation Modularised program Original data Reverse engineering Source code translation Program modularisation Data reengineering Program structure improvement Structured program Reengineered data 32
33 Re-engineering Approaches Automated progr am restructuring Program and data restructuring Automated source code conversion Automated r estructuring with manual changes Restructuring plus architectural changes Increased cost 33
34 Reverse Engineering Reverse engineering is the process of analyzing a subject system to identify the system s components and their interrelationships create representations of the system in another form or at a higher level of abstraction Motivation Understanding other people s code (cf. newcomers in the team, code reviewing, original developers left,...) 34
35 Reverse engineering May be part of a re-engineering process, but may also be used to respecify a system for reimplementation Builds a program database and generates information from this Program understanding tools (browsers, crossreference generators, etc.) may be used in this process 35
36 Reverse Engineering Process System to be re-engineered Automated analysis Manual annotation System information store Document generation Program stucture diagrams Data stucture diagrams Traceability matrices 36
37 Re-engineering Life-cycle (2) problem detection (1) model capture (0) requirements analysis (3) problem resolution (4) program transformation 37
38 Software Visualisation Motivation: Problem: Reverse Engineering We want to understand a (legacy) software system that is Unknown to us Very large and complex Domain- and language-specific Poorly documented In bad shape Solution Construct a mental model of the system Using visualisation techniques 38
39 Software Visualisation Tools Metrics Eclipse Metrics plug-in includes a graphical dependency analyzer Lightweight approaches CodeCrawler 39
40 CodeCrawler Tool for visualising source code metrics in Smalltalk Developed by Michele Lanza, University of Bern Main challenge 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 40
41 CodeCrawler: Visualising Quality Nodes = Classes Edges = Inheritance Relationships Width = Number of Attributes Height = Number of Methods Color = Number of Lines of Code 41
42 CodeCrawler: Coarsegrained Coarse-grained software visualisation What is the size and the overall structure of the system? 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. Proposed visualisation Method efficiency correlation view 42
43 CodeCrawler: Coarsegrained example Method Efficiency Correlation View LOC Nodes: Methods Edges: - Size: Number of method parameters Position X: Number of lines of code Position Y: Number of statements NOS 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 43
44 CodeCrawler: Fine-grained Fine-grained software visualisation What is the internal structure of the system and its elements? 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 Proposed visualisation Class blueprint 44
45 CodeCrawler: Fine-grained Example Initialization External Interface Internal Implementation Accessor Attribute 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 45
46 CodeCrawler: Evolutionary Evolutionary Software Visualisation 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 Proposed visualisation Evolution Matrix 46
47 CodeCrawler: Evolutionary Example First Version Version 2.. Version (n - 1) Last Version Removed Classes Added Classes Growth Phase Stagnation Phase Time (Versions) 47
48 CodeCrawler: Evolution Matrix 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 First Version Version 2.. Version (n - 1) Removed Classes Last Version Class # attributes Added Classes This allows us to see patterns in the evolution of classes Growth Phase Stagnation Phase Time (Versions) 48
49 CodeCity: 3D Visualisation Environment for software analysis, in which software systems are visualized as interactive, navigable 3D cities. The classes are represented as buildings in the city, while the packages are depicted as the districts in which the buildings reside. The visible properties of the city artifacts depict a set of chosen software metrics, as in the polymetric views of CodeCrawler 49
50 Re-engineering Life-cycle (2) problem detection (1) model capture (0) requirements analysis (3) problem resolution (4) program transformation 50
51 Reengineering Patterns
52 Reengineering Patterns You might have noticed: Reengineering is difficult. Reengineering patterns capture reengineering of legacy object-oriented systems planning a reengineering project reverse-engineering problem detection migration strategies software redesign 52
53 13. Patterns in the lifecycle Tests: Your Life Insurance! Detailed Model Capture Migration Strategies Initial Understanding First Contact Setting Direction Legacy System Detecting Duplicated Code Redistribute Responsibilities Transform Conditionals to Polymorphism Reengineered System Figure 3: A map of reengineering pattern clusters 53
54 Reengineering Pattern Structure Name Problem(s) it addresses Solution List of trade-offs the pros the cons the difficulties Example Reasons for applying the pattern Related Patterns 54
55 Make a bridge to the new town Intent: Migrate data from a legacy system by running the new system in parallel, with a bridge in between them. Problem: how do you incrementally migrate data from a legacy system to its replacement while the two systems are running in tandem? 55
56 Make a bridge to the new town Solution: Make a (data) bridge that will incrementally transfer data from the legacy system to the replacement system as new components are ready to take the data over from their legacy counterparts. New System Legacy System 1.1:read() 1:read() 1.2:write() Bridge Data Store 2:write() 2.1:write() 56
57 Make a bridge to the new town Pros you can start using the new system without migrating all the legacy data Cons can be tricky to implement once some data is transferred it can be hard to go back the data bridge will add performance overhead Known uses, rationale, related patterns 57
58 Summary Software maintenance is really continuous development. Object-oriented software also suffers from legacy symptoms Reverse engineering and reengineering are essential activities in the lifecycle of any successful software system. (And especially OO ones!) There is a large set of lightweight tools and techniques to help you with reengineering. Common, lightweight techniques can be applied to keep software healthy. Despite these tools and techniques, people must do the job and represent the most valuable resource. 58
59 References Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz, Object-Oriented Reengineering Patterns, Morgan- Kaufmann, 2002 CodeCity 3D engine codecity.html Michele Lanza and Stéphane Ducasse. CodeCrawler--An Extensible and Language Independent 2D and 3D Software Visualization Tool. In Tools for Software Maintenance and Reengineering, RCOST / Software Technology Series p , Franco Angeli, Milano, Michele Lanza and Stéphane Ducasse and Harald Gall and Martin Pinzger. CodeCrawler --- An Information Visualization Tool for Program Comprehension. In Proceedings of ICSE 2005, p , ACM Press,
Software Engineering. So(ware Evolu1on
Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers
Chapter 9 Software Evolution
Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes
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
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
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
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
Software Engineering. Software Evolution und Reengineering! Kapitel 12
Martin Glinz Harald Gall Software Engineering Kapitel 12 Software Evolution und Reengineering! 2010, 2011 Harald Gall. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen
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 [email protected]
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
How to realize software evolution of existing BOSS via ZTE SEEM
How to realize software evolution of existing BOSS via ZTE SEEM Zhan Zhang Abstract Due to long-term construction and accumulation for different purposes, telecom carriers normally have very complex IT
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 [email protected] Stéphane Ducasse Software Composition
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
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Génie Logiciel et Gestion de Projets. Patterns
Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands [email protected] Abstract Packages are an important mechanism to decompose
Lecture 20: Software Evolution
Lecture 20: Software Evolution Basics of Software Evolution Laws of software evolution Requirements Growth Software Aging Basics of Change Management Baselines, Change Requests and Configuration Management
Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when
Software Design Document (SDD) Template
(SDD) Template Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase.
Software Maintenance. Software Maintenance. (Chapter 14) Relative distribution of software/ hardware costs. Point to ponder #1
Software Maintenance Software Maintenance (Chapter 14) Mark van den Brand Tom Verhoeff Main issues:! why maintenance is such an issue! reverse engineering and its limitations! how to organize maintenance
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
To introduce software process models To describe three generic process models and when they may be used
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
Outline. Definitions. Course schedule
SENG480A/CSC576A Topics in Software Engineering Software Development, Architecture & Evolution Lectures, Sep 17, 20, 2001 Hausi A. Müller University of Victoria Outline Assignment 1 due Sep 27 Last week
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]
28. Software Re-engineering
Software Reengineering 1 28. Software Re-engineering Objectives The objective of this chapter is to explain the process of software reengineering to improve the maintainability of a software system. When
Simulating the Structural Evolution of Software
Simulating the Structural Evolution of Software Benjamin Stopford 1, Steve Counsell 2 1 School of Computer Science and Information Systems, Birkbeck, University of London 2 School of Information Systems,
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
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
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
IEEE SESC Architecture Planning Group: Action Plan
IEEE SESC Architecture Planning Group: Action Plan Foreward The definition and application of architectural concepts is an important part of the development of software systems engineering products. The
A Rational Development Process
Paper published in: Crosstalk, 9 (7) July 1996, pp.11-16. A Rational Development Process Philippe Kruchten Vancouver, BC [email protected] 1. Introduction This paper gives a high level description of the
Software Engineering UNIT -1 OVERVIEW
UNIT -1 OVERVIEW The economies of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for
Exploiting Dynamic Information in IDEs Eases Software Maintenance
Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland [email protected] Abstract The integrated development
Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
26. Legacy Systems. Objectives. Contents. Legacy systems 1
Legacy systems 1 26. Legacy Systems Objectives The objectives of this chapter are to introduce legacy systems and to describe how many of these systems have been designed. When you have read this chapter,
CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING
Lecture Software Engineering CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING Lecture Software Engineering Topics Introduction Historical Aspects Economic Aspects Requirements, Analysis, and Design Aspects
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
IV. Software Lifecycles
IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle
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
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
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,
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
Increasing Development Knowledge with EPFC
The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,
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
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
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
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
Software Refactoring using New Architecture of Java Design Patterns
Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:
Péter Hegedűs, István Siket MTA-SZTE Research Group on Artificial Intelligence, Szeged, Hungary {hpeter,siket}@inf.u-szeged.hu
QualityGate SourceAudit: A Tool for Assessing the Technical Quality of Software Tibor Bakota FrontEndART Software Ltd. Zászló u. 3 I./5. H-6722 Szeged, Hungary [email protected] Péter Hegedűs, István
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
CodeCrawler Lessons Learned in Building a Software Visualization Tool
CodeCrawler Lessons Learned in Building a Software Visualization Tool Michele Lanza [email protected] - Software Composition Group - University of Berne, Switzerland Abstract Software visualization tools
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).
0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems
Extend the value of your core business systems.
Legacy systems renovation to SOA September 2006 Extend the value of your core business systems. Transforming legacy applications into an SOA framework Page 2 Contents 2 Unshackling your core business systems
Software Processes. Topics covered
Software Processes cmsc435-1 Topics covered Systems vs. software engineering Software process models Process iteration Process activities Computer-aided software engineering cmsc435-2 What is a system?
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
Software Re-engineering
Software Re-engineering Prepared By: Dr. Linda H. Rosenberg Engineering Section head Software Assurance Technology Center Unisys Federal Systems 301-286-0087 [email protected] Accepted By:
Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC
Modernized and Maintainable Code Frank Weil, Ph.D. UniqueSoft, LLC UniqueSoft is a provider of next-generation software development tools and services specializing in modernizing legacy software using
Software Evolution and Aspect-Oriented Programming
Software Evolution and Aspect-Oriented Programming Belgian Symposium and Contact Day Monday, 3 May 2004 Het Pand, Gent Software Evolution and Aspect-Oriented Programming Co-organised by FWO Scientific
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
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,
Web Applications Development and Software Process Improvement in Small Software Firms: a Review
Web Applications Development and Software Process Improvement in Small Software Firms: a Review Haroon Tarawneh Al-balqa Applied University [email protected] Sattam Allahawiah Al-balqa Applied University
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)
Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures
Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer
Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry
March 2004 Rational Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry Why companies do it, how they do it, and what they get for their effort By Dave Brown, Karla Ducharme,
What Questions Developers Ask During Software Evolution? An Academic Perspective
What Questions Developers Ask During Software Evolution? An Academic Perspective Renato Novais 1, Creidiane Brito 1, Manoel Mendonça 2 1 Federal Institute of Bahia, Salvador BA Brazil 2 Fraunhofer Project
A Visualization Approach for Bug Reports in Software Systems
, pp. 37-46 http://dx.doi.org/10.14257/ijseia.2014.8.10.04 A Visualization Approach for Bug Reports in Software Systems Maen Hammad 1, Somia Abufakher 2 and Mustafa Hammad 3 1, 2 Department of Software
Basic Unified Process: A Process for Small and Agile Projects
Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.
Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali
Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 [email protected] Spring 2014 (elicitation)
Understanding the Differences between Proprietary & Free and Open Source Software
Understanding the Differences between Proprietary & Free and Open Source Software D Prasad 1 and Dr.Ch.Satyananda Reddy 2 1. Department of Computer Science & Engineering, DVR & Dr HS MIC College of Technology,
Trends in Embedded Software Development in Europe. Dr. Dirk Muthig [email protected]
Trends in Embedded Software Development in Europe Dr. Dirk Muthig [email protected] Problems A software project exceeds the budget by 90% and the project time by 120% in average Project Management
7 Component-based Development Process and Component Lifecycle
7 Component-based Development Process and Component Lifecycle The process of component and component-based system development differs in many significant ways from the classical development process of
Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]
IF2261 Software Engineering Engineering Program Studi Teknik Informatika STEI ITB Overview Before software can be engineered: the system it is part of must be understood, the overall objective of the system
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
