Introduction Software is becoming very expensive:

Slides:



Advertisements
Similar presentations
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Advertisements

Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
The Re-engineering and Reuse of Software
COMPONENT-BASED SOFTWARE ENGINEERING
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
CSE 303 – Software Design and Architecture
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Computing: An Object-Oriented Approach Chapter 35 Component-based Software Development Prepared by: M206 Team - Kuwait Branch.
Introduction to OOAD and UML
Module: Software Engineering of Web Applications Dr. Samer Odeh Hanna 1.
Faculty Economics & Business EBS 2033 Systems Development Lecture 1 The Systems Development Environment Lecturer: Puan Asleena Helmi.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
A Method for Improving Code Reuse System Prasanthi.S.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Washington, D.C., U.S.A May Some concepts of systems architectures Industrialization of statistics and software architecture Study cases.
Object Oriented Systems Design
Review of last class Software Engineering Modeling Problem Solving
Software Project Configuration Management
Chapter 1 The Systems Development Environment
Modern Systems Analysis and Design Third Edition
Module: Software Engineering of Web Applications
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 17 - Component-based software engineering
Modern Systems Analysis and Design Third Edition
DnDAF security views.
CS 641 – Requirements Engineering
CS 641 – Requirements Engineering
Introduction to Software Engineering: Second Edition
Iterative Waterfall Model
Chapter 1 The Systems Development Environment
Design and Implementation
Component Based Software Engineering
Object oriented system development life cycle
Software What Is Software?
Abstract descriptions of systems whose requirements are being analysed
Software Maintenance
Software Maintenance PPT By :Dr. R. Mall.
Software Project Planning &
Chapter 1 The Systems Development Environment
Applied Software Implementation & Testing
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Component Based Software Engineering
Tools of Software Development
Chapter 4 Automated Tools for Systems Development
Module: Software Engineering of Web Applications
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Modern Systems Analysis and Design Third Edition
Software life cycle models
Assessing Risk Impact Factors affecting the consequences Nature Scope
Software Testing and Maintenance Maintenance and Evolution Overview
An Overview of Software Processes
Software Reuse (Lecture 15)
Requirements Engineering for Product Lines
Modern Systems Analysis and Design Third Edition
Static Class Members March 29, 2006 ComS 207: Programming I (in Java)
Chapter 7 –Implementation Issues
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Module: Software Engineering of Web Applications
Chapter 17 - Component-based software engineering
Terms: Data: Database: Database Management System: INTRODUCTION
Chapter 1 The Systems Development Environment
Project Management Unit #2
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Introduction Software is becoming very expensive: a possible way to reduce cost: reuse parts from previously made software. assemble software from off-the-shelf components.

Introduction Advantages of reuse also include: reduced number of defects: standard and well-tested components are reused. reduced development time: provide early market access for products.

Software reuse Software development with reuse: similar to an electronic engineer building an electronic circuit: uses standard types of electronic ICs and other components.

At the most abstract level: What can be reused? Specification Design Code Test cases At the most abstract level: knowledge

Reuse of Knowledge More difficult compared to day- to-day reuse of knowledge: developers vary over time and over projects difficult to remember details of potentially reusable development knowledge.

Why almost no software reuse so far? Engineers working in industry often have a frustrated feeling: current system is similar to last few systems they have already built everything is being built from scratch current system is behind schedule: no one has time to figure out what this similarity really means.

Another complaint In spite of having software components available for reuse: programmers have preferred to create their own, because: available components are difficult to understand difficult to adapt to new application

Basic Issues in Software Reuse Component creation Component indexing Search Understanding Adaptation Repository maintenance

Basic Issues Component creation: Component indexing: Identify reusable components Component indexing: classification of reusable components so that they can be easily searched when we look for a component to reuse.

Basic Issues Search: search for right components in a database of components requires a proper method to describe components

Basic Issues Understanding: to decide whether we can use some component we need a precise and sufficiently complete understanding of what the component does.

Basic Issues Adaptation: A selected component may not exactly fit the problem at hand Tinkering with the code is not satisfactory: in any case justified only if thoroughly understood

Basic Issues Repository maintenance: component entering tracking faulty components new applications emerge older applications become obsolete components might need changes obsolete components might have to be removed

Domain analysis Aim: identify reusable components for a problem domain. identification of right kind of reusable information is a difficult problem.

Domain analysis Domain analysis identifies: objects, operations and relationship among them. Consider airline reservation: objects are seats, flights, airports, crew, meal orders Operations are scheduling a flight, reserving a seat, assigning a crew to a flight, etc.

Domain analysis Analysis of an application domain: to identify the reusable components Actual construction of reusable components for a domain is called domain engineering.

Reuse at organization level Reusability should be a standard part in: specification, design, implementation, test, etc. Ideally there is a steady flow of reusable components: in practice, things are not so simple.

Reuse at organization level Extracting reusable knowledge from past projects: presents difficulties not encountered in working with a current project typically original developers are no longer available for consultation.

Summary Basic issues in reuse: Component creation Component indexing Search Understanding Adaptation Repository maintenance

Summary Domain analysis: Creation of highly reusable components is a very difficult problem a promising approach is domain analysis Domain analysis: aims to identify reusable components for a problem domain

Summary Application generators: translate specifications into application programs. facilitate reuse not very flexible, if new concepts need to be supported.

Summary Reuse at organization level assess product’s potential for reuse refine product for greater reusability integrate product with reuse repository