Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Chapter 16 – Software Reuse
Chapter 2 – Software Processes
COTS Reuse.
Software Reuse SEII-Lecture 28
Software Reuse Building software from reusable components Objectives
Software Product Lines
- 1 - Component Based Development R&D SDM Theo Schouten.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Overview of Software Requirements
Building software from reusable components.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Life Cycle Model
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
Chapter 9 – Software Evolution and Maintenance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter : Software Process
Chapter 16 – Software Reuse
©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.
Chapter 2 The process Process, Methods, and Tools
Figures – Chapter 16. Figure 16.1 Benefits of software reuse BenefitExplanation Increased dependabilityReused software, which has been tried and tested.
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.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
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.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Reuse 1 Dr. Eman Alkhammash Taif University.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 15 – Software Reuse Chapter 15 Software reuse117/11/2014.
Lecture 21: Component-Based Software Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IT323 - Software Engineering 2 1 Tutorial 4.  List the main benefits of software reuse 2.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
 System Requirement Specification and System Planning.
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
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
IS301 – Software Engineering V:
Chapter 18 Maintaining Information Systems
Software Reuse ©Ian Sommerville 2006.
Component Based Software Engineering
Chapter 16 – Software Reuse
Chapter 16 – Software Reuse
Chapter 16 – Software Reuse
Presentation transcript:

Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library The reuse landscape – Application frameworks, legacy system wrapping, service-oriented systems, software product lines, COTS product reuse Key factors for reuse – Development schedule, expected software lifetime, background, skills, and experience of development team, criticality of software and its non-functional requirements, application domain, system platform Application frameworks Software Product lines 2

Commercial-Off-The-Shelf product to fulfill the needs of different customers without changing the source code Desktop applications and server products general use, many features and functions Open source products Built-in configuration mechanisms to tailor functionality 3

Rapid deployment of a reliable system Easier to decide for reuse as functionality is already known Organizations may have previous experience Some development risks are avoided Business can focus on the core activity Vendor is the responsible for updates 4

Requirements have to be adapted to reflect the functionality of COTS product COTS product may have some assumptions that are practically impossible to change Choosing the right COTS product is difficult task Lack of local expertise to support systems development Vendor may go out of business 5

Despite of problems, its use is increased COTS is preferred over object-oriented approach Studies show that COTS-based reuse reduces effort and the time to deploy the system Two types of COTS product reuse – COTS-solution systems – COTS-integrated systems 6

Generic application systems Example 1: management system for dentist – Handles appointments, dental records, patient recall Example 2: ERP system – Manufacturing, ordering, and customer relationship management activities Domain-specific COTS-solution systems – Assumptions about how users work – Example: student registration at university 7

ERP systems are used in large organizations, widely used form of software reuse ERP system by SAP Ordering and invoicing, inventory management, and manufacturing scheduling Gathering detailed information about customer’s business and business processes ERP system is configured based on that information Configuration is done by consultants 8

Number of modules – May be composed in different ways – Configuration process Business processes – A defined set of processes associated with each module – Roles and activities are defined Common database – Maintains information about all related business functions – No replication Business rules – Consistent rules for all data in the database 9

10 Figure source: Software Engineering, I. Sommerville, 9 th ed., p. 443

functionality is restricted to the generic core Organization’s processes have to be expressed in the system configuration language Mismatch between business concepts and concepts supported by the configuration language Example: ERP for university, need for the definition of customer in this context It cause problems in configuring the system 11

Selection of required functionality from the system Establish a data model for the organization Define business rules to apply on the data Define the expected interactions with external systems Define the input forms and output reports Design new business processes to conform the system Setting parameters to deploy the system on its underlying platform 12

After the configuration settings, testing is started Testing is a major problem Systems are built using reliable platforms Problems are often related to the interaction between the operational processes and the system configuration Often detectable by end-users only No automated testing 13

Two or more COTS products When no single system fulfills all the needs Sometimes integration with the existing system Interaction through APIs Otherwise, output of one system as an input to other system or updating the database Design choices – Which COTS products offer the most appropriate functionality? – How will data be exchanged? – What features of a product will actually be used? 14

15 Figure source: Software Engineering, I. Sommerville, 9 th ed., p. 446

Lack of control over functionality and performance – Hidden operations may interfere in some situations – Fixing problems is the concern of product integrator rather than vendor Problems with COTS system interoperability – Every product has its own assumptions – A study conducted to integrate four products – Each product assumed the exclusive access to the event queue – Consequently, project effort was five times more that originally predicted – Project took two years whereas the predicted time was six months – After ten years, the researchers found that the discovered integration problems could not fixed in the whole duration 16

No control over system evolution – Vendors have their own decisions in response to market pressures – New versions are frequently produced and may not be compatible with all previous versions – New versions may have new unwanted functionality – No support for previous versions Support from COTS vendors – Level of support varies widely – Developers have no access to the source code and detailed documentation – Changing market and economic circumstances may affect it 17

The cost of system maintenance and evolution may be greater for such products Life-cycle problems If people involved in the system maintenance left the organization Real difficulties with COTS-integrated systems 18

COTS product reuse Benefits of COTS product reuse Problems with COTS product reuse COTS-solution systems ERP systems – Architecture of ERP systems – Limitations of reuse Configuration of COTS-solution systems COTS-integrated systems – Problems with COTS-integrated systems 19