CSE301 Harry R. Erwin, PhD University of Sunderland

Slides:



Advertisements
Similar presentations
Connected Health Framework
Advertisements

ASYCUDA Overview … a summary of the objectives of ASYCUDA implementation projects and features of the software for the Customs computer system.
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Software Reuse SEII-Lecture 28
Chapter 2 The Origins of Software
7-1 INTRODUCTION: SoA Introduced SoA in Chapter 6 Service-oriented architecture (SoA) - perspective that focuses on the development, use, and reuse of.
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.
- 1 - Component Based Development R&D SDM Theo Schouten.
Client and Server Design J2EE Steps In. What now? At this point, you understand how to design servers and how to design clients But how do you put them.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
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.
Reuse Activities Selecting Design Patterns and Components
1 Introduction Introduction to database systems Database Management Systems (DBMS) Type of Databases Database Design Database Design Considerations.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Course Instructor: Aisha Azeem
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
enterprise S.O.A. SOA What? why R U here? mandated to build company portal understand how to fit GIS into a portal technology enthusiast.
You’ve Built The Pieces, Now Integrate Your Enterprise! Mid-Atlantic Regional Conference January 17, 2003 Patty Gertz, Princeton University
Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
TIBCO Service-Oriented Architecture (SOA) Our SOA solutions help organizations migrate to an infrastructure composed of services that can be assembled,
SOA, BPM, BPEL, jBPM.
OO Frameworks Department of Computer Science Kent State University.
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.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Categories of Software
Chapter 2 The Origins of Software Modern Systems Analysis and Design.
Source: J. Hoffer ,J. George, J. Valacich
SAP R/3 System: Client Server Overview (Buck-Emden & Galimow, 1998) Dr. K. Palaniappan.
CSE 303 – Software Design and Architecture
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Tom Clarke Washington State Administrative Office of the Courts May 25, 2004 Service-oriented Architecture Connecting the Dots.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks.
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.
Architectural Design Identifying system components and their interfaces.
Chapter 2 The Origins of Software Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 2 The Origins of Software Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
CSE 303 – Software Design and Architecture
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Cis339 Chapter 2 The Origins of Software 2.1 Modern Systems Analysis and Design Fifth Edition.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
CS223: Software Engineering Lecture 15: Software construction.
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.
Lecture 2 The Sources of Software. Copyright © 2011 Pearson Education, Inc. 2 Chapter 2 Introduction There are various sources of software for organizations.
Chapter 16 – Software Reuse
Distribution and components
Chapter 16 – Software Reuse
An Introduction to Software Architecture
Chapter 16 – Software Reuse
Presentation transcript:

CSE301 Harry R. Erwin, PhD University of Sunderland Software Reuse CSE301 Harry R. Erwin, PhD University of Sunderland

Resources This lecture is about how to think critically about reuse. Martin, R. C., 2003, Agile Software Development, Prentice-Hall. Schmidt, D. C., 2003, “Why software reuse has failed and how to make it work for you,” http://www.cs.wustl.edu/~schmidt/reuse-lessons.html Radding, A., 1998, “Hidden Costs of Code Reuse,” http://www.informationweek.com/708/08iuhid.htm

Why Reuse Software? What we most need are systems that are: Portable Flexible Extensible Predictable Efficient Reliable (Schmidt, 2003) Software meeting these qualities is hard to develop (and even harder to develop for reuse).

Software Economics and Reuse Highly skilled software professionals are rare and expensive (~£12,000/person-month (PM) including overhead). Productivity is low for essential and critical systems development (100-320 lines of code per PM). Modern systems are large (100-10000 PM) and costly (£1M-£100M). Reuse can reduce these costs by three to ten-fold. However, initially developing the software for reuse triples (x3) the cost. (Radding, 1998) So reuse has a delayed payoff.

Why Does Reuse Fail? Communications—how to make requirements reflect both programmer and business needs? Economics—who pays for it? Administration—who maintains the reuse libraries? Politics—“rice bowls”. Psychological—programmer resistance, NIH (“not invented here”). Technical—how do you organize it? (Schmidt, 2001)

What is Reuse? Components, frameworks, and applications are what you reuse. Components are self-contained instances of abstract data types that can be plugged together to create complete applications. Frameworks are integrated collections of classes that support the following: System infrastructure Middleware integration Enterprise applications Both live in packages.

What do you reuse? GUI objects Server-side components Infrastructure components Services frameworks High-level patterns Packaged applications (Radding, 1998)

GUI Object Reuse Easy to achieve Often requires no code development Improves quality and consistency Implications: good practice, but not a big cost driver, so does not save much money

Server-Side Components Reusable business logic Significant potential for pay-back Require extensive front-end analysis and design Have to be provided an architectural foundation Require protection as trade secrets Become obsolete fairly rapidly

Infrastructure Components and Services Frameworks Provide standards-based generic services for transaction processing, messaging, security, and database access Require extensive analysis and design and complex programming Often available as commercial off-the-shelf (COTS) “Make versus buy” decision

High-Level Patterns Will be addressed later in this module Support design reuse Must be programmed or purchased

Packaged Applications Guaranteed reuse Not necessarily a close match to the user requirements, so customization may be required Locks the customer into the vendor, which is good for the vendor but not so good for the customer End of life issues, as well