CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE

Slides:



Advertisements
Similar presentations
Chapter 14 Design with Reuse.
Advertisements

Software Reuse and Component-Based Software Engineering
Software Reuse SEII-Lecture 28
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Software Reuse Building software from reusable components Objectives
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.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Building software from reusable components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Course Instructor: Aisha Azeem
©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.
1 Configuration Management and Designing for Reuse Chapters 29 and 14.
Software Engineering Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
CSE 303 – Software Design and Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
©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.
Software Reusability An efficient way in Software Development By Tejaswi Peesapati
System models l Abstract descriptions of systems whose requirements are being analysed.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
Software Reuse compliments of Spiros Mancoridis l Building software from reusable components.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
©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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
IT323 - Software Engineering 2 1 Tutorial 4.  List the main benefits of software reuse 2.
Tempus Software Maintenance and Evolution JMSE-SM&E Unit 4: Software Reuse (Building Software From Reusable Components) Prof. Mohammad A. Mikki Gaza, Palestine,
A Method for Improving Code Reuse System Prasanthi.S.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
CompSci 280 S Introduction to Software Development
Chapter 16 – Software Reuse
Advanced Computer Systems
IS301 – Software Engineering V:
Chapter 17 - Component-based software engineering
Software Reuse ©Ian Sommerville 2006.
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Chapter 2 SW Process Models
Abstract descriptions of systems whose requirements are being analysed
Chapter 16 – Software Reuse
Chapter 16 – Software Reuse
Chapter 2: Database System Concepts and Architecture
Software Reuse Objectives
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Design and Implementation
Chapter 13 Quality Management
Chapter 7 –Implementation Issues
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Chapter 17 - Component-based software engineering
Chapter 16 – Software Reuse
Chapter 5 Architectural Design.
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Software Re-engineering and Reverse Engineering
Presentation transcript:

CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE SOFTWARE REUSABILITY CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE <<professor>>

Computer Science Department SOFTWARE REUSE In most engineering disciplines, systems are designed by composing existing components that have been used in other systems. • Software engineering has been more focused on original development but it is now recognized that to achieve better software, more quickly and at lower cost, we need to adopt a design process that is based on systematic software reuse. Computer Science Department

Computer Science Department SOFTWARE REUSE APPLICATION SYSTEM REUSE The whole of an application system may be reused either by incorporating it without change into other systems (COTS reuse) or by developing application families. COMPONENT REUSE Components of an application from sub-systems to single objects may be reused. OBJECT AND FUNCTION REUSE Software components that implement a single well-defined object or function may be reused. Computer Science Department

Computer Science Department WHAT IS SOFTWARE REUSE Software reuse is the process of implementing or updating software systems using existing software components. TYPES OF REUSE HORIZONTAL REUSE to software components used across a wide variety of applications. VERTICAL REUSE the reuse of system functional areas, or domains, that can be used by a family of systems with similar functionality . Computer Science Department

Computer Science Department SOFTWARE REUSE In most engineering disciplines, systems are designed by composing existing components that have been used in other systems Software engineering has been more focused on original development but it is now recognised that to achieve better software, more quickly and at lower cost, we need to adopt a design process that is based on systematic reuse Computer Science Department

Computer Science Department BENEFITS OF REUSE Increased reliability Components exercised in working systems Reduced process risk Less uncertainty in development costs Effective use of specialists Reuse components instead of people Standards compliance Embed standards in reusable components Accelerated development Avoid original development and hence speed-up production Computer Science Department

REQUIREMENTS FOR DESIGN WITH REUSE It must be possible to find appropriate reusable components The reuser of the component must be confident that the components will be reliable and will behave as specified The components must be documented so that they can be understood and, where appropriate, modified Computer Science Department

Computer Science Department REUSE PROBLEMS Increased maintenance costs Lack of tool support Not-invented-here syndrome Maintaining a component library Finding and adapting reusable components Computer Science Department

GENERATOR-BASED REUSE Program generators involve the reuse of standard patterns and algorithms These are embedded in the generator and parameterised by user commands. A program is then automatically generated Generator-based reuse is possible when domain abstractions and their mapping to executable code can be identified A domain specific language is used to compose and control these abstractions Computer Science Department

TYPES OF PROGRAM GENERATOR Application generators for business data processing Parser and lexical analyser generators for language processing Code generators in CASE tools Generator-based reuse is very cost-effective but its applicability is limited to a relatively small number of application domains It is easier for end-users to develop programs using generators compared to other component-based approaches to reuse Computer Science Department

REUSE THROUGH PROGRAM GENERATION Computer Science Department

COMPONENT-BASED DEVELOPMENT Component-based software engineering (CBSE) is an approach to software development that relies on reuse It emerged from the failure of object-oriented development to support effective reuse. Single object classes are too detailed and specific Components are more abstract than object classes and can be considered to be stand-alone service providers Computer Science Department

Computer Science Department COMPONENTS Components provide a service without regard to where the component is executing or its programming language A component is an independent executable entity that can be made up of one or more executable objects The component interface is published and all interactions are through the published interface Components can range in size from simple functions to entire application systems Computer Science Department

Computer Science Department COMPONENT INTERFACES Computer Science Department

Computer Science Department COMPONENT INTERFACES PROVIDES INTERFACE Defines the services that are provided by the component to other components REQUIRES INTERFACE Defines the services that specifies what services must be made available for the component to execute as specified Computer Science Department

PRINTING SERVICES COMPONENT Computer Science Department

COMPONENT ABSTRACTIONS Functional abstraction The component implements a single function such as a mathematical function Casual groupings The component is a collection of loosely related entities that might be data declarations, functions, etc. Data abstractions The component represents a data abstraction or class in an object-oriented language Cluster abstractions The component is a group of related classes that work together System abstraction The component is an entire self-contained system Computer Science Department

AN OPPORTUNISTIC REUSE PROCESS Computer Science Department

Development with reuse Computer Science Department

Computer Science Department REUSABLE COMPONENTS 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 Computer Science Department

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 Computer Science Department

REUSABILITY ENHANCEMENT PROCESS Computer Science Department

Computer Science Department TOOLS USED IN REUSE Component management tools, such as repositories, for architectures, designs, documentation, and code must be developed and maintained Domain analysis tools and procedures for the development and maintenance of a domain architecture Computer Science Department

Computer Science Department REUSE ADVANTAGES Higher quality products Less development time Higher scheduling accuracy Reliability Computer Science Department

Computer Science Department