Agile Software Development
|
|
|
- Claude Stafford
- 10 years ago
- Views:
Transcription
1 Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1
2 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with mostly identical bodies. Create a superclass constructor; call this from the subclass methods. 2
3 Dealing with Generalization: Extract Subclass/Superclass Extract Subclass A class has features that are used only in some instances. Create a subclass for that subset of features. Extract Superclass You have two classes with similar features. Create a superclass and move the common features to the superclass. 3
4 Dealing with Generalization: Extract Interface Extract Interface Several clients use the same subset of a class's interface, or two classes have part of their interfaces in common. Extract the subset into an interface. 4
5 Dealing with Generalization: Collapse Hierarchy Collapse Hierarchy A superclass and subclass are not very different. Merge them together. 5
6 Dealing with Generalization: Form Template Method Form Template Method You have two methods in subclasses that perform similar steps in the same order, yet the steps are different. Get the steps into methods with the same signature, so that the original methods become the same. Then you can pull them up. 6
7 Dealing with Generalization: Form Template Method 7
8 Dealing with Generalization: Replace Inheritance with Delegation Replace Inheritance with Delegation A subclass uses only part of a superclass s interface or does not want to inherit data. Create a field for the superclass, adjust methods to delegate to the superclass, and remove the subclassing. 8
9 Dealing with Generalization: Replace Delegation with Inheritance Replace Delegation with Inheritance You're using delegation and are often writing many simple delegations for the entire interface. Make the delegating class a subclass of the delegate. 9
10 Big Refactorings: Tease Apart Inheritance Tease Apart Inheritance You have an inheritance hierarchy that is doing two jobs at once. Create two hierarchies and use delegation to invoke one from the other. 10
11 Big Refactorings: Tease Apart Inheritance 11
12 Big Refactorings: Convert Procedural Design to Objects Convert Procedural Design to Objects You have code written in a procedural style. Turn the data records into objects, break up the behavior, and move the behavior to the objects. 12
13 Big Refactorings: Convert Procedural Design to Objects 13
14 Big Refactorings: Separate Domain from Presentation Separate Domain from Presentation You have GUI classes that contain domain logic. Separate the domain logic into separate domain classes. 14
15 Big Refactorings: Extract Hierarchy Extract Hierarchy You have a class that is doing too much work, at least in part through many conditional statements. Create a hierarchy of classes in which each subclass represents a special case. 15
16 Big Refactorings: Extract Hierarchy 16
17 References Fowler, M., Refactoring: Improving the Design of Existing Code, Addison-Wesley, Fowler, M., Catalog of Refactorings, Published online at: December 2013 (last visited on: 1 December 2014). 17
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
Chapter 8 The Enhanced Entity- Relationship (EER) Model
Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
Génie Logiciel et Gestion de Projets. Refactoring
Génie Logiciel et Gestion de Projets Refactoring 1 Make it Work, Make it Right, Make it Fast Roadmap What is refactoring? Why is it necessary? Some Examples When to refactor? Bad Smells Catalog of Refactorings
SE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin
SE 360 Advances in Software Development Object Oriented Development in Java Polymorphism Dr. Senem Kumova Metin Modified lecture notes of Dr. Hüseyin Akcan Inheritance Object oriented programming languages
CSC 742 Database Management Systems
CSC 742 Database Management Systems Topic #4: Data Modeling Spring 2002 CSC 742: DBMS by Dr. Peng Ning 1 Phases of Database Design Requirement Collection/Analysis Functional Requirements Functional Analysis
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
Introduction. Acknowledgments Support & Feedback Preparing for the Exam. Chapter 1 Plan and deploy a server infrastructure 1
Introduction Acknowledgments Support & Feedback Preparing for the Exam xv xvi xvii xviii Chapter 1 Plan and deploy a server infrastructure 1 Objective 1.1: Design an automated server installation strategy...1
Systems Analysis and Design
Systems Analysis and Design Slides adapted from Jeffrey A. Hoffer, University of Dayton Joey F. George, Florida State University Joseph S. Valacich, Washington State University Modern Systems Analysis
Database Design Methodology
Database Design Methodology Three phases Database Design Methodology Logical database Physical database Constructing a model of the information used in an enterprise on a specific data model but independent
Object Oriented Databases (OODBs) Relational and OO data models. Advantages and Disadvantages of OO as compared with relational
Object Oriented Databases (OODBs) Relational and OO data models. Advantages and Disadvantages of OO as compared with relational databases. 1 A Database of Students and Modules Student Student Number {PK}
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
Code Qualities and Coding Practices
Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests
11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl
UML Class Diagrams 11 November 2015 UML Class Diagrams The class diagram provides a static structure of all the classes that exist within the system. Classes are arranged in hierarchies sharing common
ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION
ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION Raúl Marticorena, Carlos López Language and Informatic Systems, University of Burgos, EPS Campus Vena Edificio C, Burgos, Spain
ACCELRYS DISCOVERANT
CATALOG ACCELRYS DISCOVERANT 2013 COURSE CATALOG We are proud to offer a variety of courses to meet your organization s needs. These classes are designed to teach everything from the basics of navigation
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent
Bad code smells Refactoring Example
Bad code smells Refactoring Example Game Design Experience Professor Jim Whitehead January 26, 2009 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Announcements Game concept document
Percerons: A web-service suite that enhance software development process
Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software
Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management
Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 12 Agile Methodologies: Crystal 1 Crystal Introduced by Cockburn as a family of methodologies in 1998. New members of the family were defined
Paul Boisvert. Director Product Management, Magento
Magento 2 Overview Paul Boisvert Director Product Management, Magento Platform Goals Release Approach 2014 2015 2016 2017 2.0 Dev Beta 2.0 Merchant Beta 2.x Ongoing Releases 2.0 Dev RC 2.0 Merchant GA
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN Chanchai Supaartagorn Department of Mathematics Statistics and Computer, Faculty of Science, Ubon Ratchathani University, Thailand [email protected]
Software Development Process
Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously
Agile Software Development
Agile Software Development Lecturer: Raman Ramsin Lecture 17 Practices: Design and Kanban 1 Design Practices: CRC Cards CRC Class, Responsibilities, and Collaborators Potential classes are written on CRC
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
Dealing with Roles. Martin Fowler. [email protected]
Dealing with Roles Martin Fowler [email protected] Anyone who runs a company deals with other companies. Such companies may act as suppliers of goods or services, they may be customers of your products, they
PHP Object Oriented Classes and objects
Web Development II Department of Software and Computing Systems PHP Object Oriented Classes and objects Sergio Luján Mora Jaume Aragonés Ferrero Department of Software and Computing Systems DLSI - Universidad
Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
How To Design Software
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies
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
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
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
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Building Java Programs
Building Java Programs Chapter 9 Lecture 9-1: Inheritance reading: 9.1 The software crisis software engineering: The practice of developing, designing, documenting, testing large computer programs. Large-scale
ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40
SOFTWARE DEVELOPMENT, 15.1200.40 1.0 APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.1 Describe methods and considerations for prioritizing and scheduling software development
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 7 Integrated Object-Oriented Methodologies: OPEN and FOOM 1 Object-oriented Process, Environment and Notation (OPEN) First introduced in
An Automatic Reversible Transformation from Composite to Visitor in Java
An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,
A Case Study for Program Refactoring
A Case Study for Program Refactoring Berthold Hoffmann, Javier Pérez 2, and Tom Mens 3 Universität Bremen, Germany 2 Universidad de Valladolid, Spain 3 Service de Génie Logiciel, Université de Mons-Hainaut,
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
Exercise 8: SRS - Student Registration System
You are required to develop an automated Student Registration System (SRS). This system will enable students to register online for courses each semester. As part of the exercise you will have to perform
Domain-Specific Modelling for Cross-Platform Product Families
Domain-Specific Modelling for Cross-Platform Product Families Steven Kelly & Risto Pohjonen MetaCase Consulting, [email protected], [email protected] Abstract. Domain-specific modelling has proved its
Outline. Data Modeling. Conceptual Design. ER Model Basics: Entities. ER Model Basics: Relationships. Ternary Relationships. Yanlei Diao UMass Amherst
Outline Data Modeling Yanlei Diao UMass Amherst v Conceptual Design: ER Model v Relational Model v Logical Design: from ER to Relational Slides Courtesy of R. Ramakrishnan and J. Gehrke 1 2 Conceptual
Agile Software Development
Software Testing and Maintenance Agile Software Development Jeff Offutt SWE 437 George Mason University 2008 Based on Agile Estimating and Planning, Cohn, Prentice Hall, Chapters 1-3 Thanks to Ian Sommerville
Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles
Ingegneria del Software Corso di Laurea in Informatica per il Management Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal of design-related
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 9 Agile Methodologies: Scrum 1 Scrum First mentioned as a development method in 1986, referring to a fast and flexible product development
ATM Case Study OBJECTIVES. 2005 Pearson Education, Inc. All rights reserved. 2005 Pearson Education, Inc. All rights reserved.
1 ATM Case Study 2 OBJECTIVES.. 3 2 Requirements 2.9 (Optional) Software Engineering Case Study: Examining the Requirements Document 4 Object-oriented design (OOD) process using UML Chapters 3 to 8, 10
Building a Flexible Software Factory Using Partial Domain Specific Models
Building a Flexible Software Factory Using Partial Domain Specific Models Jos Warmer 1, Anneke Kleppe 2 3 1 Ordina SI&D, The Netherlands [email protected] 2 University Twente, Netherlands [email protected]
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. September 2013 EXAMINERS REPORT
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT September 2013 EXAMINERS REPORT Systems Analysis and Design Section A General Comments Candidates in general
Microsoft Office Word 2010: Level 1
Microsoft Office Word 2010: Level 1 Workshop Objectives: In this workshop, you will learn fundamental Word 2010 skills. You will start by getting acquainted with the Word user interface, creating a new
A logical approach to role-based access control in a distributed environment
A logical approach to role-based access control in a distributed environment Université Paul Sabatier, IRIT COPS - February 2008 Motivation Express access control policies in distributed systems. Take
REST Client Pattern. [Draft] Bhim P. Upadhyaya ABSTRACT
REST Client Pattern [Draft] Bhim P. Upadhyaya EqualInformation Chicago, USA [email protected] ABSTRACT Service oriented architecture (SOA) is a common architectural practice in large enterprises. There
Java Programming Language
Lecture 1 Part II Java Programming Language Additional Features and Constructs Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Subclasses and
Masters of Science in Software & Information Systems
Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS
RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS Eduardo Piveta 1, Ana Morra 2, Maelo Penta 1 João Araújo 2, Pedro Guerrro 3, R. Tom Price 1 1 Instituto de Informática, Universidade
CS 209 Programming in Java #1
CS 209 Programming in Java #1 Introduction Spring, 2006 Instructor: J.G. Neal 1 Topics CS 209 Target Audience CS 209 Course Goals CS 209 Syllabus - See handout Java Features, History, Environment Java
TAP into NAU. TAP is a single tool. How it works. Transfer Academic Plan nau.edu/tap
TAP into and an degree: the catalog TAP into and an degree: the catalog TAP into and an degree: the catalog TAP into and an degree: the catalog TAP into and an degree: the catalog TAP into and an degree:
Object Oriented Software Models
Software Engineering CSC 342/ Dr Ghazy Assassa Page 1 Object Oriented Software Models Use case diagram and use case description 1. Draw a use case diagram for a student-course-registration system. Show
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
Chapter 13 - Inheritance
Goals Chapter 13 - Inheritance To learn about inheritance To understand how to inherit and override superclass methods To be able to invoke superclass constructors To learn about protected and package
An Introduction To UML Class Diagrams Classes
An Introduction To UML Class Diagrams Classes 1. Represent a user-created or defined data type a. they are an abstract data type (ADT) b. they implement data hiding and encapsulation c. they establish
Programming and Software Development (PSD)
Programming and Software Development (PSD) Course Descriptions Fundamentals of Information Systems Technology This course is a survey of computer technologies. This course may include computer history,
CTC 4.1 - What's New?
Digital Experience CTC 4.1 - What's New? WebSphere User Group 24 th Sept - Royal Society Edinburgh Agenda A reminder, What is the Content Template Catalog A reminder, What is the Site Builder Demo! CTC
Analyzing Java Software by Combining Metrics and Program Visualization
Analyzing Java Software by Combining Metrics and Program Visualization Tarja Systä Software Systems Laboratory Tampere University of Technology P.O. Box 553, FIN-33101 Tampere, Finland [email protected]
NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department
NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department COURSE: CST1201 Programming Fundamentals (2 class hours, 2 lab hours, 3 credits) Course Description: This course is an intensive
RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science
I. Basic Course Information RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 105 Foundations of Computer Science A. Course Number and Title: CISY-105, Foundations of Computer Science B. New
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
A Practical Roadmap to SOA Governance. 2011 Enterprise Integration Services
A Practical Roadmap to SOA Governance 2011 A Practical Roadmap to SOA Governance Corporate Overview Staples is the world s largest office products company and a trusted source for office solutions. Provides
Programming Cocoa with Ruby Create Compelling Mac Apps Using RubyCocoa
Programming Cocoa with Ruby Create Compelling Mac Apps Using RubyCocoa Brian Mariek The Pragmatic Bookshelf Raleigh. North Carolina Dallas. Texas 1 Introduction 1 1.1 What Is Cocoa? 2 1.2 What Is RubyCocoa?
CANDIDATE RECORD SHEET: GCE Applied ICT Unit 4 WEB DESIGN
CANDIDATE RECORD SHEET: GCE Applied ICT Unit 4 WEB DESIGN Summer 201_ Assessment Objective Marks Available Marks Awarded Teacher Comment AO1: ICT capability 13 AO2: Kwledge and understanding 15 AO3: ICT
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
Supporting Software Development through Declaratively Codified Programming Patterns
Supporting Software Development through Declaratively Codified Programming Patterns Kim Mens, Isabel Michiels Roel Wuyts { kimmens Isabel.Michiels }@vub.ac.be [email protected] Programming Technology
a. Inheritance b. Abstraction 1. Explain the following OOPS concepts with an example
1. Explain the following OOPS concepts with an example a. Inheritance It is the ability to create new classes that contain all the methods and properties of a parent class and additional methods and properties.
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
III. Class and Object Diagrams
III. Class and Object Diagrams Classes, Attributes and Operations Objects and Multi-objects Generalization and Inheritance Associations and Multiplicity Aggregation and Composition Business Objects and
Agile Software Development
Agile Software Development Lecturer: Raman Ramsin Lecture 4 Scrum: Current Framework 1 Scrum: New Process Framework 1. A people-centric framework based on a set of values, principles, and practices that
Chapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
SharePoint Training DVD Videos
SharePoint Training DVD Videos SharePoint 2013 Administration Intended for: Prerequisites: Hours: Enterprise Content Managers / Administrators Planners / Project managers None 16 hours of video + 18 hours
