chapter 16 software reuse chapter 16 - software reuse1
TRANSCRIPT
Chapter 16 - Software Reuse1
S
Chapter 16Software Reuse
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
Chapter 16 - Software Reuse3
Why Reuse (Figure 16.1)
Increased Dependability IF the component is supported Other companies are your development arms
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
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
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
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
Chapter 16 - Software Reuse8
… Why Reuse (Figure 16.1)
Accelerated Development
Replace development time with learning time, costs
Developers may already know
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
Chapter 16 - Software Reuse10
… Why Not Reuse (Fig 16.2)
Initial Costs high If not a common technology
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
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,
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
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
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
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
Chapter 16 - Software Reuse17
Reuse Approaches
Architectural patterns Relatively simple reuse High level model
Chapter 16 - Software Reuse18
Reuse Approaches
Design Paterns Relatively simple Menu styles – collapsing, cascading Menu locations Screen layouts Paging of data
Chapter 16 - Software Reuse19
Reuse Approaches
Components Audio Player Video Player (youTube) Web page display (integrated in application) Report Generators
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
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
Chapter 16 - Software Reuse22
Service Oriented Systems
External systems Storage Authentication Standard Information Streams Translation
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
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.
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
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
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
Chapter 16 - Software Reuse28
COTS ExamplesMicrosoft Word
Functions can be created in Visual Basic added to menus Pop up panels, prompts possible
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
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
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
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
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
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