Refactoring and Rearchitecturing
|
|
- Blake Morris
- 6 years ago
- Views:
Transcription
1 Refactoring and Rearchitecturing
2 Overview Introduction Refactoring vs reachitecting Exploring the situation
3 Legacy code Code written by others Code already written Not supported code Code without automated tests But contains all the business rules and thus the richness of the company
4 Architecture styles
5 Architecture styles And sometimes
6 Overview Introduction Refactoring vs reachitecting Exploring the situation
7 Some Terminology "Forward Engineering is the traditional process of moving from high- level abstractions and logical, implementation- independent designs to the physical implementation of a system." "Reverse Engineering is the process of analyzing a subject system to identify the system s components and their interrelationships and create representations of thesystem in an other form or at a higher abstraction level". "Reengineering is the examination and alteration aof a subject system to reconstitute it in a new form and the subsequent implementation of the new form." Chilkofsky and Cross [in Arnold 1993]
8 Goals of Reverse Engineering Cope with complexity Need techniques to understand large, complex systems Generate alternative views Automatically generate differentways to view systems Recover lost information Extract what changes have been made and why Detect side effects Help understand ramifications of changes
9 Goals of Reverse Engineering Synthetize higher abstractions Identify latent abstractions in software Facilitate reuse Detect candidate reusable artifacts and components
10 Reverse Engineering Techniques Redocumentation Pretty printers Diagram generators Cross- reference listing generators Design recovery Software metrics Browsers, visualization tools Static analyzers Dynamic (trace) analyzers
11 Goals of Reengineering Unbundling Split a monolithic system into parts that can be separately marketed Performance "first do it, then do it right, then do it fast" experience shows this is the right sequence! Port to other platform The architecture must distinguish the platform dependent modules
12 Goals of Reengineering Design extraction To improve maintainability, portability, etc. Exploitation of New Technology New language features, standards, libraries
13 Reengineering Techniques Refactoring Renaming/movingmethods/classes etc. Code vs architectural level Renovating Rearchitecturing
14 What is Refactoring? The process of changing a software system in such a way that it does not alter the external behaviour of the code, yet improvesitsinternalstructure [Fowl99a] A behaviour- preserving source- to- source program transformation [Robe98a] A change to the system that leavesitsbehaviour unchanged, but enhances some non- functional quality - simplicity, flexibility, understandability, [Beck99a]
15 What is Refactoring? The process of changing a software system in such a way that it does not alter the external behaviour of the code, yet improvesitsinternalstructure [Fowl99a] Refactoring is the process of changing how code does thing, but not what it does. A behaviour- preserving source- to- source program transformation [Robe98a] A change to the system that leavesitsbehaviour unchanged, but enhances some non- functional quality - simplicity, flexibility, understandability, [Beck99a]
16 Typical refactoring Class Refactorings Method Refactorings Attribute Refactorings Add (sub) class to hierarchy Add method to class Add variable to class Rename class Rename method Rename variable Remove class Remove method Remove variable Push method down Push method up Add parameterto method Move method to Extract code in new method Push variable down Push variable up Create accessors Abstract variable These simple refactorings can be combined to provide bigger restructurings such as the introduction of design patterns.
17 Why refactoring? Grow, don t build software Fred Brooks Some argue that good design does not lead to code needing refactoring, but in reality Extremely difficult to get the design right the first time You cannot fully understand the problem domain You cannot understand user requirements, if the user does! You cannot really plan how the system will evolve in five years Original design is often inadequate System becomes brittle, difficult to change Refactoring helps you to Manipulate code in a safe environment (behavior preserving) Recreate a situation where evolution is possible Understand existing code
18 Code smells Abuse of the OO design Usage of Switch and imbricated if/else Abusive inheritance Optional fields Lack of homogeneity Violation of Demeter law
19 Sum up on (Code) refactoring Enhance existing code without modifying its behavior. Very localized within a method, a class or a hierarchy Generic Very often, almost daily Well supported by IDE Evolution in the small
20 Architecture refactoring Is larger code refactoring E.g. dependency cycles or overly generic design. E.g design pattern introduction Requires medium effort. Regularly performed during system lifecycles Focussed on some components.
21 Renovating Complementary to refactoring Deals with only parts of the system. It consists in the creation of new components from scratch. It occurs less frequently than refactoring.
22 Rearchitecturing when refactoring or renovating don t suffice. E.g. replacement of a technologic platform, a significant change in business scope, or when the architecture is in such bad shape that errors keep emerging. Corresponds to substantial modifications Implies the whole system. Components are reused, modified or built.
23 Re- architecture Last night I had a dream Old system Wished architecture Re- structured system
24 Evolution in the LARGE Eclipse v2.1 v3.0 v2.1 (Extensible IDE) v3.0 (Rich Client Platform)
25 Code smells Too long methods Too large classes Abuse of primitives Interminable list of parameters Data dissemination Absence of comments Dead code Duplicated code
26 Overview Introduction Refactoring vs reachitecting Exploring the situation
27 First contact Legacy systems are large and complex Split the system into manageable pieces Time is scarce Apply lightweight techniques to assess feasibility and risks First impressions are dangerous Always double- check your sources People have different agendas Build conference
28 Read all the Code in One Hour Problem: How can you get a first impression of the quality of the source code? Solution: Scan all the code in a single, short session Use a checklist (code review guidelines, coding styles etc) Look for functional and unit tests Look for abstract and root classes that define domain abstractions Beware of comments Log all your questions!
29 Analyze the Persistent Data Problem: Which objects represent valuable data? Solution: Analyze the database schema Prepare Model Tables => classes, columns => attributes Foreign keys => associations between classes Incorporate Inheritance Incorporate Associations Associations classes (e.g. many- t many associations)
30 Study the Exceptional Entities Problem: How can you quickly identify design problems? Solution: Measure software entities and study the anomalous ones Use simple metrics Visualize metrics to get an overview Browse the code to get insight the anomalies
31 Measure software quality Number of lines of code Ratio of long methods Cyclomatic complexity Number of classes per library Cover rate Number of methods per class Volume of comments Duplication rate
Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion
Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand
More informationSoftware Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology
Software Reengineering P1: Intro & Organization Martin Pinzger Delft University of Technology Greenfield software development 2 Non-greenfield software development? 3 How often did you...... encounter
More informationRefactoring Practice: How it is and How it Should be Supported
Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case
More informationWhat and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle
What and Why? Reverse Engineering Definition Reverse Engineering is the process of analyzing a subject system! to identify the system s components and their interrelationships and! create representations
More informationSOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.
SOFTWARE ENGINEERING SOFTWARE EVOLUTION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Evolution Learning Objectives: Identify the principal issues associated with software evolution and
More informationCSC 408F/CSC2105F Lecture Notes
CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes
More informationMetaprogramming and Reflection Refactoring
Metaprogramming and Reflection Refactoring Universität Bern Marcus Denker Hasso-Plattner-Institut Potsdam Software Architecture Group Prof. Dr. Robert Hirschfeld http://www.swa.hpi.uni-potsdam.de WS 2006/2007
More informationLecture 24 Software Visualization and Metrics Polymetric Views. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Lecture 24 Software Visualization and Metrics Polymetric Views Today s Agenda (1) Discussion on Practical Applications of Software Evolution Research Concern Graph Delta Debugging Regression Test Selection
More informationMaintainability and Agile development. Author: Mika Mäntylä
Maintainability and Agile development Author: Mika Mäntylä ISO 9126 Software Quality Characteristics Are the required functions available in the software? How easy is it to
More informationReengineering II. Transforming the System
Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have
More informationTesting and Migration
Testing and Migration Tudor Gîrba www.tudorgirba.com Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new
More informationCHAPTER 11 Refactoring
CHAPTER 11 Refactoring Introduction When, Why, What? Which Refactoring Tools? Demonstration: Internet Banking Iterative Development Life-cycle Prototype Consolidation: design review Expansion: concurrent
More informationKlocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect
Klocwork Architecture Excavation Methodology Nikolai Mansurov Chief Scientist & Architect Overview! Introduction Production of software is evolutionary and involves multiple releases Evolution of existing
More informationAdvanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs
Object Oriented Database Chapter 13 1 Object DBMSs Underlying concepts: Freely sharing data across processing routines creates unacceptable data dependencies All software should be constructed out of standard,
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Software quality and Object Oriented Principles
Ingegneria del Software Corso di Laurea in Informatica per il Management Software quality and Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal
More informationPresenter: Dong hyun Park
Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components
More informationRestructuring. What is restructuring? Tudor Gîrba Reengineering life cycle. What? forward engineering. reverse engineering
Restructuring Tudor Gîrba www.tudorgirba.com Reengineering life cycle Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code
More informationCHAPTER 11 Refactoring
CHAPTER 11 Refactoring Introduction When, Why, What? Which Refactoring Tools? Demonstration: Internet Banking Iterative Development Life-cycle Prototype Consolidation: design review Expansion: concurrent
More informationIntroduction. O.Univ.-Prof. DI Dr. Wolfgang Pree. Universität Salzburg
OO Reengineering Patterns O.Univ.-Prof. DI Dr. Wolfgang Pree Universität Salzburg www.softwareresearch.net Introduction 2 Goals Convince you about the following: 3 Lehman s laws 4 What is a legacy system?
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationSOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?
Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping
More informationKlocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect
Klocwork Architecture Excavation Methodology Nikolai Mansurov Chief Scientist & Architect Overview Introduction Production of software is evolutionary and involves multiple releases Evolution of existing
More informationThe Legacy Bridge Problem. Douglas Lyon and Chris Huntley
The Legacy Bridge Problem by Douglas Lyon and Chris Huntley Abstract We present a way to automate the reuse of legacy systems without multiple-inheritance, copying source code, accessing existing code
More informationUnderstading Refactorings
Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations
More informationHow to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect
How to Harvest Reusable Components in Existing Software Nikolai Mansurov Chief Scientist & Architect Overview Introduction Reuse, Architecture and MDA Option Analysis for Reengineering (OAR) Architecture
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationDesign Recovery & Rebuild with X-Analysis
MANAGEMENT OVERVIEW A GUIDE TO THE BENEFITS OF USING DESIGN RECOVERY & REBUILD Design Recovery & Rebuild with X-Analysis Databorough Ltd. 66 York Road Weybridge UK info@databorough.com Phone +44 (0)1932
More informationTechnical Metrics for OO Systems
Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer
More informationTHE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2
General Comments THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT Software Engineering 2 The pass rate was 40% representing the lowest mark
More informationDISCUSSION 5min 2/24/2009. DTD to relational schema. Inlining. Basic inlining
XML DTD Relational Databases for Querying XML Documents: Limitations and Opportunities Semi-structured SGML Emerging as a standard E.g. john 604xxxxxxxx 778xxxxxxxx
More informationRefactoring. Paul Jackson. School of Informatics University of Edinburgh
Refactoring Paul Jackson School of Informatics University of Edinburgh Refactoring definition Refactoring (noun) is a change made to the internal structure of software to make it easier to understand,
More informationStrategic Information Systems Systems Development Life Cycle. From Turban et al. (2004), Information Technology for Management.
Strategic Information Systems Systems Development Life Cycle Strategic Information System Any information system that changes the goals, processes, products, or environmental relationships to help an organization
More informationSoftware Modeling and Analysis. 1. Introduction. Oscar Nierstrasz. Documentation. Extract. Analyze. Process data. Software model.
Software Modeling and Analysis 1. Introduction Oscar Nierstrasz Documentation Process data Extract Software model Analyze Programs Run-time data Reports Instrument Roadmap > Overview > Laws of Software
More informationSRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A
SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A 1. What is an object? An object is a combination of data and logic; the representation of some realworld
More informationBLU AGE 2009 Edition Agile Model Transformation
BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation
More informationArchitecture and Design Evolution
Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,
More informationSoftware Reuse and Component-Based Software Engineering
Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering
More informationComputation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):
viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information
More informationObject-Oriented Software Engineering. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction
More informationSoftware Maintenance. Maintenance is Inevitable. Types of Maintenance. Managing the processes of system change
Software Maintenance Managing the processes of system change Maintenance is Inevitable The system requirements are likely to change while the system is being developed because the environment is changing.
More informationBaseline Testing Services. Whitepaper Vx.x
Whitepaper Vx.x 2018-04 Table of Contents 1 Introduction... 3 2 What is Baseline Testing?... 3 3 Customer Challenge... 3 4 Project Details... 3 4.1 First Steps... 3 4.2 Project Management... 3 4.3 Software
More informationLiving and Working with Aging Software. Ralph Johnson. University of Illinois at Urbana-Champaign
Living and Working with Aging Software Ralph Johnson University of Illinois at Urbana-Champaign rjohnson@illinois.edu Old software gets brittle n n Hard to change Hard to understand Software should be
More informationReverse Engineering and Refactoring Related Concept in Software Engineering
Reverse Engineering and Refactoring Related Concept in Software Engineering Ajit kumar and Navin kumar. Research scholars. B. R. Ambedkar Bihar University. Muzaffarpur, Bihar (India). Guide:-Dr.D.L.Das.
More informationImplementing evolution: Refactoring
2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment
More information1: Introduction to Object (1)
1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface
More informationMcCa!"s Triangle of Quality
McCa!"s Triangle of Quality Maintainability Portability Flexibility Reusability Testability Interoperability PRODUCT REVISION PRODUCT TRANSITION PRODUCT OPERATION Correctness Usability Reliability Efficiency
More informationTool Support for Complex Refactoring to Design Patterns
Tool Support for Complex Refactoring to Design Patterns Carmen Zannier 1, Frank Maurer 1 1 University of Calgary, Department of Computer Science, Calgary, Alberta, Canada T2N 1N4 {zannierc, maurer}@cpsc.ucalgary.ca
More informationObjectives: On completion of this project the student should be able to:
ENGI-0655/5232 Software Construction and Evolution Project 1 Reverse Engineering Refactoring & Object Oriented Design Due date November 10, 2009-4:00 pm 1. Aims The aim of this project is to give you more
More informationLecture 2: Software Engineering (a review)
Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More informationSupplementary Notes for Software Reengineering - July 8, 2011
Supplementary Notes for Software Reengineering - July 8, 2011 Note that these add to the material presented in the lecture slides. There will be exam question(s) on this topic! Most of our courses have
More informationA Study of Bad Smells in Code
International Journal for Science and Emerging ISSN No. (Online):2250-3641 Technologies with Latest Trends 7(1): 16-20 (2013) ISSN No. (Print): 2277-8136 A Study of Bad Smells in Code Gurpreet Singh* and
More information*ANSWERS * **********************************
CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO
More informationEvolutionary Architecture and Design
Evolutionary Architecture and Design Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,
More informationIBM Best Practices Working With Multiple CCM Applications Draft
Best Practices Working With Multiple CCM Applications. This document collects best practices to work with Multiple CCM applications in large size enterprise deployment topologies. Please see Best Practices
More informationHow We Refactor, and How We Know It
Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition
More informationRequirements Validation and Negotiation
REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of
More informationDATABASE SYSTEMS CHAPTER 2 DATA MODELS 1 DESIGN IMPLEMENTATION AND MANAGEMENT INTERNATIONAL EDITION ROB CORONEL CROCKETT
DATABASE SYSTEMS DESIGN IMPLEMENTATION AND MANAGEMENT INTERNATIONAL EDITION ROB CORONEL CROCKETT CHAPTER DATA MODELS 1 Coronel & Crockett 978184480731) In this chapter, you will learn: Why data models
More informationGRASP Design Patterns A.A. 2018/2019
GRASP Design Patterns A.A. 2018/2019 Objectives Introducing design patterns Introduzione ai design pattern Designing objects and responsibilities GRASP design patterns A long corridor A passage room Does
More informationMetrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University
and OO OO and OO SE 3S03 - Tutorial 12 Department of Computer Science McMaster University Complexity Lorenz CK Week of Apr 04, 2016 Acknowledgments: The material of these slides is based on [1] (chapter
More informationCode Smells & Refactoring
Material and some slide content from: - Mehdi Amoui Kalareh SERVICES COMPONENTS OBJECTS MODULES Code Smells & Refactoring Reid Holmes Lecture 21 - Thursday November 25 2010. Program restructuring Software
More informationARCHITECTURE MIGRATION USING DSM IN A LARGE-SCALE SOFTWARE PROJECT
14 TH INTERNATIONAL DEPENDENCY AND STRUCTURE MODELING CONFERENCE, DSM 12 KYOTO, JAPAN, SEPTEMBER 13 14, 2012 ARCHITECTURE MIGRATION USING DSM IN A LARGE-SCALE SOFTWARE PROJECT Takashi Maki Corporate Technology
More informationAnalyzing the Product Line Adequacy of Existing Components
Analyzing the Product Line Adequacy of Existing Components Jens Knodel and Dirk Muthig Fraunhofer Institute for Experimental Software Engineering (IESE), Fraunhofer-Platz 1, D-67663 Kaiserslautern, Germany
More informationAnalysis of Various Software Metrics Used To Detect Bad Smells
The International Journal Of Engineering And Science (IJES) Volume 5 Issue 6 Pages PP -14-20 2016 ISSN (e): 2319 1813 ISSN (p): 2319 1805 Analysis of Various Software Metrics Used To Detect Bad Smells
More informationWORLD WIDE NEWS GATHERING AUTOMATIC MANAGEMENT
WORLD WIDE NEWS GATHERING AUTOMATIC MANAGEMENT Luís Veiga and Paulo Ferreira {luis.veiga, paulo.ferreira } @ inesc.pt INESC, Rua Alves Redol, 9 - Lisboa -1000 Lisboa - Portugal Abstract The world-wide-web
More informationVerification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1
Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should
More informationSoftware Metrics and Problem Detection
Software Metrics and Problem Detection Oscar Nierstrasz Yuriy Tymchuk Selected material by Mircea Lungu Roadmap > Software Metrics Size / Complexity Metrics Quality Metrics > Metric-Based Problem Detection
More informationMTA Database Administrator Fundamentals Course
MTA Database Administrator Fundamentals Course Session 1 Section A: Database Tables Tables Representing Data with Tables SQL Server Management Studio Section B: Database Relationships Flat File Databases
More informationPractical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems
Practical Database Design Methodology and Use of UML Diagrams 406.426 Design & Analysis of Database Systems Jonghun Park jonghun@snu.ac.kr Dept. of Industrial Engineering Seoul National University chapter
More informationCode Smells & Refactoring
Material and some slide content from: - Mehdi Amoui Kalareh - Fowler Refactoring book Code Smells & Refactoring Reid Holmes Lecture 18 - Tuesday November 22 2011. Program restructuring Software systems
More information17.11 Bean Rules persistent
17.10 Java Beans Java beans are a framework for creating components in Java. AWT and Swing packages are built within this framework Made to fit in with graphic development environments such as Jbuilder
More informationArchitectures in Context
Architectures in Context Software Architecture Lecture 2 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Understand architecture in its relation
More informationADD 3.0: Rethinking Drivers and Decisions in the Design Process
ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method
More informationThe goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.
Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which
More informationSoftware Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>
Software Requirements Specification for Version 1.0 approved Prepared by Software Requirements Specification for Page 2 Table of Contents Revision
More information2 Software life span models
2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product stages are similar to the stages in the life span of other products
More informationIntroduction to Programming
Introduction to Programming Course ISI-1329 - Three Days - Instructor-Led Introduction This three-day, instructor-led course introduces students to computer programming. Students will learn the fundamental
More informationThe SQALE Models for Assessing the Quality of Real Time Source Code
The SQL Models for ssessing the Quality of Real Time Source ode Jean-Louis LTOUZY 1, Thierry OQ 2 1: NV IT Global Services, rcueil, France, jean-louis.letouzey@dnv.com 2: NV IT Global Services, rcueil,
More informationIn this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks
In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and
More informationProcess of Interaction Design and Design Languages
Process of Interaction Design and Design Languages Process of Interaction Design This week, we will explore how we can design and build interactive products What is different in interaction design compared
More informationCS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009.
CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009. Software Engineering Tools Project Planning and Management tools Requirements tools Risk Analysis tools
More informationPDI Techniques Logging and Monitoring
PDI Techniques Logging and Monitoring Change log (if you want to use it): Date Version Author Changes Contents Overview... 1 Before You Begin... 1 Terms You Should Know... 1 Use Case: Setting Appropriate
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized
More informationA Visual Guide to Automated MVC Reengineering
D a t a b o r o u g h A Visual Guide to Automated MVC Reengineering Steve Kilner This guide has the following sections: 1. Three Steps To New and Improved Systems 2. Why Reengineer? 3. Bad Practices of
More informationMEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi
MEASURE YOUR CODE USING CODE METRICS CS 599 Software Metrics and Models Hana Alarifi Overview Quality code is the top priority for a good developer. The code must be not only bug free code but also understandable,
More informationA few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through
A few more things about Agile and SE Could help in interviews, but don t try to bluff your way through 1 Refactoring How to do it, where it fits in http://www.cse.ohio-state.edu/~crawfis/cse3902/index.htm
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationGranularity of Documentation
- compound Hasbergsvei 36 P.O. Box 235, NO-3603 Kongsberg Norway gaudisite@gmail.com This paper has been integrated in the book Systems Architecting: A Business Perspective", http://www.gaudisite.nl/sabp.html,
More informationPatterns 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
More informationSoftware Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>
Software Requirements Specification for Version 1.0 approved Prepared by Copyright 2002 by Karl E. Wiegers. Permission is granted to use, modify, and distribute
More information1 Version management tools as a basis for integrating Product Derivation and Software Product Families
1 Version management tools as a basis for integrating Product Derivation and Software Product Families Jilles van Gurp, Christian Prehofer Nokia Research Center, Software and Application Technology Lab
More informationEnterprise Architect. User Guide Series. Time Aware Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH
Enterprise Architect User Guide Series Time Aware Models Author: Sparx Systems Date: 30/06/2017 Version: 1.0 CREATED WITH Table of Contents Time Aware Models 3 Clone Structure as New Version 5 Clone Diagram
More information10조 이호진 이지 호
10 조 200910045 이호진 200911415 이지호 According to the IEEE definition, design is.. The process of defining the architecture, components, interfaces, and other characteristics of a system or component 1.
More informationSOFTWARE MAINTENANCE: A
SOFTWARE MAINTENANCE: A TUTORIAL BY KEITH H. BENNETT 2008.10.13 소프트웨어 200310612 조보경 Software Engineering Field Main problem of software engineering Scale and Complexity of the software Goal of software
More informationCOPYRIGHTED MATERIAL. Introducing the Project: The SmartCA Application. The Problem
Introducing the Project: The SmartCA Application The project for this book is based on a real application for a real company. The names of the company and the application have been changed for privacy
More informationWhat are Metrics?! Functions, that assign a precise numerical value to. Detecting Design Problems using Metrics
Detecting Design Problems using Metrics What are Metrics?! Functions, that assign a precise numerical value to! Products (Software)! Resources (Staff, Tools, Hardware)! Processes (Software development).
More informationLayers. External Level Conceptual Level Internal Level
Layers External Level Conceptual Level Internal Level Objective of 3 Layer Arch. Separate each user s view of database from the way database is physically represented. Each user should be able to access
More informationPrinciples of Software Construction: Objects, Design, and Concurrency
Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems A formal design process Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Optional
More informationPatterns. Giovanni Sakti. in Software Engineering. Starqle
Patterns in Software Engineering Giovanni Sakti Starqle What is Patterns? Patterns Patterns describes a problem, which occurs over and over again in our environment and then desribes the core of the solution
More information