Reuse and Reusability (Chapter 8 of maintenance text) Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Image from

Slides:



Advertisements
Similar presentations
Chapter 13 Review Questions
Advertisements

Main issues: • Why is reuse so difficult • How to realize reuse
Chapter 7 CASE Tools and Joint and Rapid Application Development.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 CSSE 477 – Intro to Modifiability Steve Chenoweth Friday, 9/23/2011 Week 3, Day 4 Right - A modified VW beetle, from
1 Program Understanding Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Paper Title Your Name CMSC 838 Presentation. CMSC 838T – Presentation Motivation u Problem paper is trying to solve  Characteristics of problem  … u.
Software Architecture Design Instructor: Dr. Jerry Gao.
1 Maintenance Metrics and Measures (M 12) Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
W4118 Operating Systems OS Overview Junfeng Yang.
Slide 1 Requirements Wrap-up (Chapter 31 of requirements text) and Interaction Design: Introduction (Chapters 1 of Interaction Design text) CSSE 371 Software.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
SWE Introduction to Software Engineering
1 Software Change Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Ref M , 4 - In progress -
1 The Maintenance Process Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Team Skill 6 - Building The Right System Part 1: Applying Use Cases (Chapters of the requirements text) CSSE 371 Software Requirements and Specification.
1 Quality Assurance in Construction and Maintenance (Section 13.4 of Maintenance Text; Chapter 20 of Code Complete) Steve Chenoweth CSSE 375, Rose-Hulman.
1 Detailed Design Representations (Chapter 9 of Code Complete) Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
March 22, 2004CS WPI1 CS 509 Design of Software Systems Lecture #9 Monday, March 22, 2004.
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Maintenance Framework Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Ref M 2.
1 Maintenance Management and Organization Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Welcome to OBJECT ORIENTED PROGRAMMIN Date: 10/09/2014 Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
CSE 303 – Software Design and Architecture
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
SOFTWARE DESIGN.
McGraw-Hill/Irwin Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 7 CASE Tools and Joint and Rapid Application Development.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Architectural Design Identifying system components and their interfaces.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
♦ Use Case Model  Detailled use case - Important  Use case diagram- Refactoring Use case diagram  > 1 Last Lectures.
Accounting Information System. System A system is a set of parts coordinated to accomplish a set of goals. It is also an organized set of interrelated.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
Geog. 377: Introduction to GIS - Lecture 27 Overheads 1 1. Aspects of setting up a GIS operation 2. General steps in setting up a GIS operation Topics:
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
1 Maintenance of Documentation and Documentation of Maintenance Quiz 7 Tori Bowman CSSE 375, Rose-Hulman October 1, 2006.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Lecture VIII: Software Architecture
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
CASE Tools and their Effect on Software Quality
CASE Tools and Joint and Rapid Application Development
McCall’s Quality Factors
Software Design and Architecture
Part 3 Design What does design mean in different fields?
About the Presentations
Designing Programs.
Image Enhancement in the
Qbasic Modular Programming.
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Software Engineering with Reusable Components
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8 - Design Strategies
Introduction Software maintenance:
Chapter 2: Building a System
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Reuse and Reusability (Chapter 8 of maintenance text) Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Image from

2 Today Your feedback on HW2 Your feedback on HW2 Armadillo Run & requirements discussion Armadillo Run & requirements discussion Lab time – Help on project design & coding Lab time – Help on project design & coding Reuse & reusability – this Reuse & reusability – this

3 Using “Reuse Maintenance Process Model” (from Chapter 5) Advantages Advantages Can use components, etc. from other projects Can use components, etc. from other projects Code is modular Code is modular Disadvantages Disadvantages Overhead in designing for reuse Overhead in designing for reuse

4 A prime example of reuse strategy – Product lines Enhance & maintain a base platform Enhance & maintain a base platform Enhance & maintain multiple products on top of that base Enhance & maintain multiple products on top of that base Where’s the reuse advantage? Where’s the reuse advantage? Image from

5 Product lines – and where’s the overhead? Image from A typical ongoing activity – extract commonalities for upcoming releases:

6 Targets for Reuse Process Process Specific – like “how we adapted the last system to work with Oracle” Specific – like “how we adapted the last system to work with Oracle” Personnel Personnel No such thing as a “technical head count year” No such thing as a “technical head count year” Product Product More of a business strategy, maybe – adapt software to a new target market More of a business strategy, maybe – adapt software to a new target market

7 Targets for Reuse, cntd Data Data Especially reusing test data Especially reusing test data Design Design Higher level = more useful Higher level = more useful Why isn’t this done more? Why isn’t this done more? Why is it done in compilers? Why is it done in compilers? Program Program This is the one you’d expect This is the one you’d expect

8 Maintenance Motivations Reduction in time and effort Reduction in time and effort Higher quality Higher quality Improve maintainability Improve maintainability Code “transportation” Code “transportation” PC to Mac PC to Mac Stand-alone to server-based Stand-alone to server-based US to Japan US to Japan Image from jcmc.indiana.edu/vol9/issue1/nishimura.html.jcmc.indiana.edu/vol9/issue1/nishimura.html

9 Approaches to Reuse – Composition Essence of the “Reuse model” – Fig 5.18 Essence of the “Reuse model” – Fig 5.18 Components Components Black box Black box White box White box Classes Classes Keep spawning children, intelligently! Keep spawning children, intelligently! Image from

10 Approaches to Reuse – Generation Parameterized systems Parameterized systems Application generators Application generators

11 Approaches to Reuse – Transformation Input the requirements… Input the requirements… Output a new system! Output a new system! Two kinds: Two kinds: Stepwise refinement Stepwise refinement Linguistic transformation Linguistic transformation

12 Intro to Components Two strategies: Two strategies: Horizontal – use in lots of domains Horizontal – use in lots of domains Vertical – use to solve common problems in a domain Vertical – use to solve common problems in a domain Require domain analyses Require domain analyses “Essence of OO” “Essence of OO”

13 Intro to Components – cntd Characteristics of reusable components: Characteristics of reusable components: Generality Generality Cohesion vs coupling Cohesion vs coupling Interaction – with user, utility fns Interaction – with user, utility fns Uniformity and standardization Uniformity and standardization Data & control abstractions Data & control abstractions More on these – Read Sec 8.7 More on these – Read Sec 8.7

14 A Reuse Process Model