34
S Chapter 16 Software Reuse Chapter 16 - Software Reuse 1

Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Embed Size (px)

Citation preview

Page 1: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse1

S

Chapter 16Software Reuse

Page 2: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse2

Before Reuse

CAD – 1970s, 1980s Graphics

Devices supported move by dx,dy, with pen control Supplied software gave crude circles, text Had to do your own

Menus No standard GUIs existed Had to do your own

File systems Very limited Had to do our own

No Networking available Did our own

Program structure Single executable System code only linked in

Page 3: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse3

Why Reuse (Figure 16.1)

Increased Dependability IF the component is supported Other companies are your development arms

Page 4: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse4

… Why Reuse (Figure 16.1)

Reduced Process Risk More predictability of development time Cost is in learning the component, not development Education time is more predictable than development

time

Page 5: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse5

… Why Reuse (Figure 16.1)

Effective Use of Specialists Make use of others knowledge Specialists in

Graphics Networking Database Audio Spreadsheets Security

Page 6: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse6

… Why Reuse (Figure 16.1)

Standards Compliance Communications Standards User Interface Standards Database Standards Graphic Standards

Standards compliance Improves availability of developers Improves the chance of future expansion via standards

expansion Improves inteaction with other applications

Page 7: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse7

… Why Reuse (Figure 16.1)

Availablity of Developers That know how to use standard components If the components are your own, this is less

important

Page 8: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse8

… Why Reuse (Figure 16.1)

Accelerated Development

Replace development time with learning time, costs

Developers may already know

Page 9: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse9

Why Not Reuse (Fig 16.2)

Increased Maintenance Costs IF there is not support for your component (open

software)

Dead ends IF source is not available and you need expansion

Page 10: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse10

… Why Not Reuse (Fig 16.2)

Initial Costs high If not a common technology

Page 11: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse11

… Why Not Reuse (Fig 16.2)

Lack of tool support / compatibility Visual Studio recognizes many components from Microsoft

Graphic subsystems File Subsystems GUI subsystems

The integration helps with these Help for object browsing Automatic parameter prompting

What if these are not available for your component

Example: Crystal Reports partial support in Visual Studio Separate Development Tool

Page 12: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse12

… Why Not Reuse (Fig 16.2)

Not Invented Here Common response from developers Belief that it is easier to build than to buy By itself, not really valid Other issues should prevail

Cost, supportability,

Page 13: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse13

… Why Not Reuse (Fig 16.2)

Creating, Maintaining and Using a component library This is if separating you own code for use in multiple

projects

Page 14: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse14

… Why Not Reuse (Fig 16.2)

Finding, understanding, and adapting reusable components

finding can be difficult Automatic dialing components

Understanding Know all objects Know all methods Know limitations

Adapting What if your component does not support what you want And supplier does not let you modify

Example: Automated polling

Page 15: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse15

… Why Not Reuse (Fig 16.2)

Version modification by supplier Supplier

Creates new version (or product) with expanded features New version discontinues features you use New version changes implementation of features you use. Discontinues support for older

You can be faced with decision Stay with older version to avoid having to rework code Go with newer code to obtain new features

Examples .net Microsoft SQL Server

Page 16: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse16

Planning Reuse

Development Schedule may drive reuse

Software lifetime May require access to source of components

Development team Standard components that are common can be

useful

Criticality of result May necessitate source availability

Page 17: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse17

Reuse Approaches

Architectural patterns Relatively simple reuse High level model

Page 18: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse18

Reuse Approaches

Design Paterns Relatively simple Menu styles – collapsing, cascading Menu locations Screen layouts Paging of data

Page 19: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse19

Reuse Approaches

Components Audio Player Video Player (youTube) Web page display (integrated in application) Report Generators

Page 20: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse20

Application Framework

Microsoft Visual Studio Menu Structures Dialogs Grids Database Access File access

Microsoft Access Graphically build panels GUI assignment of actions Visual Basic code/ macro code

VB for Applications Built into many Microsoft applications Allow access into object structure of the application

Page 21: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse21

Legacy System Wrapping

Intergraph CAD system Based upon command line structure Wrapper around this allowed for graphical selection

of commands, points, that were fed into command line structure

Page 22: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse22

Service Oriented Systems

External systems Storage Authentication Standard Information Streams Translation

Page 23: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse23

Configurable Vertical Applications

SAP Accounting System MUST be tailored to be used User configures desired screent, reports, menus Foundation of accounting components provided

Page 24: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse24

Program Generators

Common in Web Applications

GUI to build screens, interactions

System builds HTML, JavaScript Code to implement

Standard web design paradigms built in.

Page 25: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse25

Example – Restaurant System

Tip system captures tip data at restaurant

Data transmitted to central site

Data transferred into tip calculation system Employees, locations, timecards

Further reporting to AccPack Standard transfer of timecards into AccPack

Change to Quick Books Quick books allows for custom development Except in the area of timecards

Page 26: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse26

COTS Example - Autodesk

Offered as a framework for development

Developers can Create programs Create menus Read/ Modify graphic data Build libraries of symbols

Entire business model built around offering this toolkit

Page 27: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse27

(Autodesk Example)

Systems derived from AutoCad Yard Sprinkler layout HVAC layout Landscape design layout Telephone cable layout/documentation Electronic Equipment configuration layout

Page 28: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse28

COTS ExamplesMicrosoft Word

Functions can be created in Visual Basic added to menus Pop up panels, prompts possible

Page 29: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse29

COTS ExamplesMicrosoft Word

Ideas Handwriting Analysis – capture parameters and generate report

Scheduling volunteers for churches/volunteer organization Spreadsheet of volunteers Spreadsheet of

Company Budgeting system Standard file per department Protected fields except for department defined Roll up of departments into company wide budget

Page 30: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse30

COTS ExampleSchedule Display

Similar to Airline listing in Airport

Microsoft Excel Sheet List of today’s events, times, and room assignments Updated daily by clerical staff

Microsoft Power Point with password protection Password protected, never changed References the daily spreadsheet Formats this data into multiple screens Formatting to appear like airport schedule Multiple pages with configured timing Configured to display full screen so that no menus show

Page 31: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse31

Example – Voter Targeting

Base development HTML / ASP / SQL

Components .Net Framework (GUI components – menus, forms) .ADO – database access Visual Studio (GUI for report manager) Crystal Reports (configured with GUI tool) Bar Coding software

Page 32: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse32

Example – On Line Polling

Fully automated polling sytem

Scenario Customer interaction from web site only Identifies voters to target Formulates Questions/ Answers for poll - textual Records prompts, Answers Edits prompts, answers Schedules times for polls System delivers polls, collects data System analyzes poll results System presents results on web page Sstem generates reports of resuts

Page 33: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse33

Poling Example Desired Components

Base development: HTML SQL

Components .Net – forms Recorder component Editor Component Database – all data Database Access – Microsoft DAO Crystal Reports Automated Dialing System

Page 34: Chapter 16 Software Reuse Chapter 16 - Software Reuse1

Chapter 16 - Software Reuse34

Polling ExampleDialing System Component

Desired – programmable interface Objects

Poll Question – Textual, Audio Answer – Textual, Audio Contact Call List

Fill Get cal status

Call schedule Start/ Stop Get Status

Phones dialed Number Answered / not answered / recorder