Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

Chapter 14 Design with Reuse.
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter II Chap1: Software Engineering Models (Review) Mandatory reading: chapter.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Soft. Eng. I, Spring 07Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 5 Requirements Engineering Reading: Chap. 6, 7 + annex.
Software Reuse Building software from reusable components Objectives
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
1 Reusability and Portability Xiaojun Qi. 2 Reuse Concepts Reuse is the use of components of one product to facilitate the development of a different.
SWE Introduction to Software Engineering
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 7 Title : Object Oriented Analysis and Design Reading: I. Sommerville,
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
Reusability and Portability Chapter 8 CSCI Reusability and Portability  The length of the development process is critical.  No matter how high.
Building software from reusable components.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©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.
Software Engineering Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
This chapter is extracted from Sommerville’s slides. Text book chapter
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 7 System models.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CSC480 Software Engineering Lecture 11 September 30, 2002.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Software Reuse compliments of Spiros Mancoridis l Building software from reusable components.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Tempus Software Maintenance and Evolution JMSE-SM&E Unit 4: Software Reuse (Building Software From Reusable Components) Prof. Mohammad A. Mikki Gaza, Palestine,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Chapter 16 – Software Reuse
Chapter 17 - Component-based software engineering
Abstract descriptions of systems whose requirements are being analysed
Chapter 16 – Software Reuse
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 17 - Component-based software engineering
Chapter 16 – Software Reuse
Presentation transcript:

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville2 Software Reuse Building software from reusable components

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville3 Objectives To discuss the advantages and disadvantages of software reuse To describe development with and for reuse To discuss the characteristics of generic reusable components To describe methods of developing portable application systems

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville4 Reusable component types Application system reuse The whole of an application system may be reused on a different machine. Usually referred to as program portability Modules or object reuse The reusable component is a collection of functions or procedures + their data strutures… Function reuse The reusable component is a single function

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville5 Three aspects of reuse Software development with reuse How must SE processes evolved to incorporate reuse… Software development for reuse How to design generic software components for reuse Application system reuse How to write application systems so that they may be readily ported from one platform to another

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville6 Software development with reuse Attempts to maximize the use of existing components Some components may have to be adapted in a new application Some components need be specified, designed and coded Overall development costs should therefore be reduced

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville7 Requirements for reuse It must be possible to find appropriate reusable components in a component data base Component re-users must be able to understand components and must have confidence that they will meet their needs The components must have associated documentation discussing HOW they can be reused and the potential costs of reuse

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville8 Development with reuse process

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville9 Further advantages System reliability is increased Overall risk is reduced Effective use can be made of specialists Organizational standards can be embodied in reusable components Software development time can be reduced

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville10 Reuse-driven development Rather than reuse being considered after the software has been specified, the specification takes into account the existence of reusable components This approach is commonplace in the design of electronic, electrical and mechanical systems. If adopted for software, should significantly increase the proportion of components reused

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville11 Reuse-driven development

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville12 Reuse problems Difficult to quantify costs and benefits of development with reuse CASE toolsets do not support development with reuse. Some software engineers prefer to rewrite rather than reuse components Current techniques for component classification, cataloging and retrieval are immature... The cost of finding suitable components is high

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville13 Software development for reuse Software components are not automatically reusable. They must be modified to make them usable across a range of applications Software development for reuse is a development process which takes existing components and aims to generalize and document them for reuse across a range of applications

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville14 Development for reuse The development cost of reusable components is higher than the cost of specific equivalents. This extra reusability enhancement cost should be an organization rather than a project cost... Generic components may be less space-efficient and may have longer execution times than their specific equivalents...

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville15 Reusability enhancement process

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville16 Reusability enhancement Name generalisation Names in a component may be modified so that they are not a direct reflection of a specific application entity Operation generalisation Operations may be added to provide extra functionality and application specific operations may be removed Exception generalisation Application specific exceptions are removed and exception management added to increase the robustness of the component Component certification Component is certified as reusable

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville17 Domain-specific reuse Components can mostly be reused in the application domain for which they were originally developed as they reflect domain concepts and relationships Domain analysis is concerned with studying domains to discover their elementary characteristics Components can be generalised for reuse in that domain

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville18 Component adaptation Extra functionality may have to be added to a component. When this has been added, the new component may be made available for reuse Unneeded functionality may be removed from a component to improve its performance or reduce its space requirements The implementation of some component operations may have to be modified. This suggests that the original generalization decisions may be incorrect

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville19 Application system portability Portability is a special case of reuse where an entire application is reused on a different platform

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville20 Aspects of system portability Transportation The physical movement of the program code and associated data from one environment to another This is a less significant problem than it used to be as electronic interchange of programs through networks avoids media incompatibility Adaptation The changes required to make a program work in a different environment

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville21 Portability dependencies Machine architecture dependencies Dependencies on information representation and organisation Operating system dependencies Dependencies on operating system characteristics Run-time system problems Dependencies on a particular run-time support system Library problems Dependencies on a specific set of libraries

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville22 Development for portability Isolate parts of the system which are dependent on the external program interfaces. These interfaces should be implemented as a set of abstract data types or objects Define a portability interface to hide machine architecture and operating system characteristics

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville23 Machine architecture dependencies The program must rely on the information representation scheme supported by a particular machine architecture Common problems are: The precision of real numbers Bit ordering in number representation Can be tackled by the use of abstract data types. Different representations can be supported

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville24 Operating system dependencies The program relies on the use of specific operating system calls such as facilities to support process management The program depends on a specific file system organization supported by the operating system

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville25 Standards are an agreement across the community which reduces the amount of variability in software systems In principle, as standards are further developed, heterogeneous systems may be developed where parts of a program may run on completely different machines Standards

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville26 Programming language standards Ada, Pascal, C, C++ Operating system standards UNIX, MS-DOS, MS Windows Networking standards TCP/IP protocols, X400, X500, Sun NFS, OSI layered model. HTML, WWW Window system standards X-windows. Motif toolkit Existing standards

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville27 Software reuse involves using components developed in some application in a different application Systematic reuse can reduce costs, reduce management risk and improve software reliability Development with reuse must be based on a library of reusable components Components must be generalized for reuse Key points

Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville28 Key points Application portability is a form of reuse where an entire application is reused on a different platform Portability is achieved by developing according to standards and isolating platform dependencies