Main issues: • Why is reuse so difficult • How to realize reuse

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Software Reuse and Component-Based Software Engineering
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Domain Engineering Silvio Romero de Lemos Meira
Lecture # 2 : Process Models
PRESENTED BY USHA GHIMIRE. Introduction-The need for MBSE MBSE now and present shortcomings A view of MBSE in the future Key advantages and disadvantages.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Software Engineering General Project Management Software Requirements
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
N. Kokash, Software Engineering course 2011
L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
March 22, 2004CS WPI1 CS 509 Design of Software Systems Lecture #9 Monday, March 22, 2004.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Reuse Basic concepts. Rationale for reuse  Save calendar time  Save person hours  Reduce process risk  Increased quality  Standards compliance.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software Product Line Architectures (SPLA) Nipun Shah
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
Computer Systems & Architecture Lesson Software Product Lines.
The Re-engineering and Reuse of Software
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
ISO Tor Stålhane IDI / NTNU. What is ISO ISO 9001 was developed for the production industry but has a rather general structure ISO describes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Software Reusability An efficient way in Software Development By Tejaswi Peesapati
Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi and Reidar Conradi Dept. Computer and.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Frameworks CompSci 230 S Software Construction.
Introduction to Design. What is Design? 2 minutes Pairs.
Component-Based Systems X LIU, School of Computing, Napier University TIP As computing systems become more and more complex, software reuse and component-based.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Physical Data Model – step-by-step instructions and template
Component Based Software Engineering
Chapter 16 – Software Reuse
Component Based Software Engineering
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Chapter 2 – Software Processes
Object-Oriented Systems Development Life Cycle (CH-3)
Software Engineering with Reusable Components
Architecture Description Languages
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering with Reusable Components
On the notion of Variability in Software Product Lines
Chapter 16 – Software Reuse
Rapid software development
Presentation transcript:

Main issues: • Why is reuse so difficult • How to realize reuse Software Reusability Main issues: • Why is reuse so difficult • How to realize reuse © SE;Reusability, Hans van Vliet

Reuse dimensions Things being reused: components, concepts, … Scope: horizontal vs vertical Approach: systematic or opportunistic Technique: compositional or generative Use: black-box or white-box Product being reused: source code, design, … SE, Reusability, Hans van Vliet, ©2008

Success criteria for component libraries Well-developed field, standard terminology Small interfaces Standardized data formats SE, Reusability, Hans van Vliet, ©2008

Requirements for component libraries Searching for components Understanding/evaluating components found Adapt components if necessary Compose systems from components SE, Reusability, Hans van Vliet, ©2008

Component evaluation, useful information Quality information Administrative information (name developer, modification history, etc) Documentation Interface information Test information SE, Reusability, Hans van Vliet, ©2008

Reuse process models Software development with reuse Passive Component library evolves haphazardly Software development for reuse Active Reusable assets are developed, rather than found by accident SE, Reusability, Hans van Vliet, ©2008

Software development with reuse SE, Reusability, Hans van Vliet, ©2008

Software development for reuse SE, Reusability, Hans van Vliet, ©2008

Software development for reuse Often two separate development processes: Development of components (involving domain analysis) Development of applications, using the available components Specific forms hereof: Component-based software development Software factory Software product lines SE, Reusability, Hans van Vliet, ©2008

Reuse tools and techniques Languages to describe compositions Module Interconnection Language (MIL) Architecture Description Language (ADL) Middleware (CORBA, JavaBeans, .NET) SE, Reusability, Hans van Vliet, ©2008

Characteristics of successful reuse programs Extensive management support Organizational support structure Incremental implementation Significant success High incentives Domain analysis done Attention to architectural issues SE, Reusability, Hans van Vliet, ©2008

Non-technical aspects of software reuse Economics: it is a long term investment Management: it does not happen spontaneously Psychology: people do not want to reuse someone else’s code SE, Reusability, Hans van Vliet, ©2008

Reuse devil’s loop SE, Reusability, Hans van Vliet, ©2008

Summary We can reuse different things: code, design, … Reuse can be systematic (software development for reuse), or opportunistic (software development with reuse) Reuse does not just happen; it needs to be planned SE, Reusability, Hans van Vliet, ©2008