SOFTWARE REUSE 28 March 2013 William W. McMillan.

Slides:



Advertisements
Similar presentations
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Advertisements

SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
Software Reuse SEII-Lecture 28
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Technical Architectures
IS6112 Application Modelling and Design Introduction.
The OSI Model A layman’s view of the internet. OSI Structure Application Presentation Session Transport Network Data Link Physical Each layer has a specific.
Object Oriented System Development with VB .NET
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
MERTIS: Modifiable, Extensible, Real-Time, Interactive Simulation Leandro Basallo ◦ Ryan Leigh ◦ Sam Talaie ◦ Regan Snyder with Dr. Sergiu Dascalu and.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
The OSI Model A layman’s view of the internet. OSI Structure Application Presentation Session Transport Network Data Link Physical Each layer has a specific.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Microsoft Dynamics AX Technical Conference 2013
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
1GMS-VU : Module 2 Introduction to Information and Communication Technologies Module 2 Computer Software.
©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.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
9/10/20151 Hyperion Enterprise 6.5 New Features & Functionality Robert Cybulski, CPA Finit Solutions.
CSS/417 Introduction to Database Management Systems Workshop 5.
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125) SPRING 2008 (CVN) NAVID AZIMI (NA2258) Web Platforms, or: How I Learned To Stop Worrying And Love Facebook.
Rapid Application Development (RAD) Software Development Approaches.
CLOUD COMPUTING. What is cloud computing ? History Virtualization Cloud Computing hardware Cloud Computing services Cloud Architecture Advantages & Disadvantages.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
Computing on the Cloud Jason Detchevery March 4 th 2009.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Fundamentals of Database Chapter 7 Database Technologies.
M1G Introduction to Database Development 6. Building Applications.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Computer Software Chapter 4 McGraw-Hill/IrwinCopyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
1 3. Computing System Fundamentals 3.1 Language Translators.
Rajiv and Shipra Introduction to.NET (asp.net,c#,vb)
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
 What are CASE Tools ?  Rational ROSE  Microsoft Project  Rational ROSE VS MS Project  Virtual Communication  The appropriate choice for ALL Projects.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
CLOUD COMPUTING. What is cloud computing ? History Virtualization Cloud Computing hardware Cloud Computing services Cloud Architecture Advantages & Disadvantages.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
Lecture 21: Component-Based Software Engineering
CS223: Software Engineering Lecture 14: Architectural Patterns.
Retele de senzori Curs 1 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
IT Audit for non-IT auditors Cornell Dover Assistant Auditor General 31 March 2013.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Lesson Objectives Aims You should be able to:
Part 3 Design What does design mean in different fields?
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
IBM AS 400 online Training in Hyderabad
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
Presentation transcript:

SOFTWARE REUSE 28 March 2013 William W. McMillan

What is the most common form of software reuse in Java programming?

Benefits of Reuse  Save resources.  Standardize a solution that can be trusted.  Support levels-of-abstraction approach to creating systems.  Encapsulated “black-box” components.  Reduce tedium, allow developers to work on new things.

Risks of Reuse  Propagate inefficient solution.  e.g., O(N 2 ) sorting routine  Propagate incorrect solution.  Stats formula could be wrong or inappropriate.  Shield developers from fundamental knowledge of how something works.  May not know inefficiencies of solution in particular context.  May miss interactions and dependencies.

Risks of Reuse  Hard to change or update reused component.  Long-term cost if there’s a license fee.  Loss of support if provider goes belly-up.

Suppose a method to compute a standard error of the mean is incorrect. What are some potential costs if the routine is used repeatedly?

History of Reuse  Copy someone’s source code to do a task.  Subroutines:  Well-defined modules, with name,  … but might use common data structures.  Call subroutines with parameters.  “Include” files.  External libraries of useful routines.  E.g., LINPACK for linear algebra and related.  Database tools like Ingres

History of Reuse  Computer simulation led to object-oriented design.  Simula 67  Packages and “Units” appeared.  UCSD Pascal, Ada.  Abstract data types influential in computer science.  Object-oriented goes mainstream:  C++, O-O capabilities bolted onto C.  Smalltalk from a more AI perspective.

History of Reuse  Java cleans up a lot of O-O trash:  Multiple inheritance gone.  No “friend” access.  Better dynamic memory management.  C# is Microsoft’s version of Java.  Packages, APIs, components now common.  A lot of development is done on top of:  Statistics packages  SQL engines  Enterprise mega-packages like SAP

How have people employed books and tutorials on programming and scripting in software reuse?

Reuse of Software Ideas  Algorithms and data structures.  Useful architectures and design patterns (discussed earlier in course).  E.g., model-view-controller  Programming styles.  Elements of Programming Style by Kernighan and Plauger  Relational databases.

What benefits do you gain in being familiar with the idea of a sparse matrix?

Software Frameworks  Integrated sets of tools and utilities.  E.g.,.NET, Enterprise Java Beans, Allegro Common Lisp.  User interface objects and methods.  Communication facilities.  Security tools.  Data structures.  Database management.  Web applications.  Session and transaction management.

What facilities do you rely on most in a software framework you use?

Families of Software Products  E.g., Microsoft Office, Adobe Creative Suite.  Might have unique scripting language.  UI has similar feel and style across members.  Compatible parts.  Common architecture.  Common data formats.  Incentives to use all or none.  Reasons to keep all parts up to date.

Do Oracle software products constitute a family?

Buy Commercial Software?  E.g., SAP, E-Commerce tools.  Why reinvent the wheel?  Why not get expert advice and help?  Reduce costs, especially maintenance.  Reduce liability.  Get things you might not have thought of:  Encryption, back-up facilities, slick algorithms,…

Use Open-Source Software?  Talk about saving costs….  But do you always save?  Where does support come from?  “Read the source code” isn’t always the help you need.  Need to consider long-term costs and risks.

When would you advise a client to consider including open-source software in a system?

Use Cloud-Based Services?  E.g., Amazon, AT&T.  Third-party provider.  Data and functions on servers managed by provider.  Includes many tools.  Access via the Internet.

A client says, “I want this to be a cloud- based system.” What questions would you ask in order to respond intelligently?