/
Informatics 122 Informatics 122

Informatics 122 - PowerPoint Presentation

mitsue-stanley
mitsue-stanley . @mitsue-stanley
Follow
405 views
Uploaded On 2016-06-01

Informatics 122 - PPT Presentation

Software Design II Lecture 9 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited 1 Todays Lecture Component reuse ID: 344224

design component fit components component design components fit cost criteria architectural reuse system architecture functionality reusable build buy free

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Informatics 122" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Informatics 122Software Design II

Lecture 9Emily NavarroDuplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

1Slide2

Today’s LectureComponent reuseAssignment 5Slide3

Component Reuse – Avoiding “Reinventing the Wheel”Component reuse is using an already-developed piece of software (usually from a third-party) to provide some type of functionality to your system

rather than developing the functionality yourself from scratchA true software component is one that has been specifically designed to be reusablee.g., library, APISlide4

A Critical Design Tradeoff

build

(and thus design)

buy or get for free

(and thus fit into a design)Slide5

A Critical Design Tradeoff: Benefits

build

(and thus design)

buy or get for free

(and thus fit into a design)

full control

full understanding

flexibility

competitive advantage

can be instantaneous

external support

quality

standardizationSlide6

A Critical Design Tradeoff: Drawbacks

build

(and thus design)

buy or get for free

(and thus fit into a design)

time

cost

maintenance

licensing

lack of customizability

obsolescence

urgent bugs

evaluation costSlide7

A Critical Design Tradeoff

build

(and thus design)

buy or get for free

(and thus fit into a design)

time

cost

maintenance

licensing

lack of customizability

obsolescence

urgent bugs

evaluation cost

full control

full understanding

flexibility

competitive advantage

can be instantaneous

external support

quality

standardizationSlide8

Our Focus Today8

build

(and thus design)

buy or get for free

(and thus fit into a design)

time

cost

maintenance

licensing

lack of customizability

obsolescence

urgent bugs

evaluation cost

full control

full understanding

flexibility

competitive advantage

can be instantaneous

external support

qualitySlide9

You Practice Software Reuse All The Time!9Slide10

Different Levels of Reuse GranularityLines of code

Functions/methods/proceduresClasses (inheritance), interfaces/templatesModules/ComponentsPackagesFrameworksSubsystemsEntire programsSlide11

A New Kind of Design DecisionLess fine controlMore learning and using and applying

Similar to recoverySlide12

Architectural MismatchArchitectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part

System topology

Construction

dependencies

initialization

Non-functional qualities

e.g., scalability

Components

functionality

interfaces

behaviorcontrol modelConnectorsprotocols

data model

Difficult to predict a-prioriSlide13

Architectural MismatchArchitectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part

System topology

Construction

dependencies

initialization

Non-functional qualities

e.g., scalability

Components

functionality

interfaces

behaviorcontrol modelConnectorsprotocols

data model

How much adaptation is too much adaptation?Slide14

Architectural Mismatch can Break your System!In 1996, the first test flight of the Ariane 5 rocket ended in disaster when the launcher went out of control 37 seconds after take off.

The problem was due to a reused component from a previous version of the launcher (the Inertial Navigation System) that failed because assumptions made when that component was developed did not hold for Ariane 5.The functionality that failed in this component was not required in Ariane 5.Slide15

Component Reuse Process

identifypreliminaryarchitecture

identify

potential

places for

reuse

establish

selection

criteria (per

place)search forapplicablecomponents

evaluatecomponentsselectcomponentupdatearchitectureSlide16

Identify Preliminary ArchitectureLargely as usualFamiliarity with certain reusable components may influence the architectural choices being madeSlide17

Identify Potential Places for ReuseThere are components for just about anything

graph layoutdatabase accessregular expression handlingnumerical computingprotein visualizationspeech recognitione-mail handlingindex and search

maps

geocoding

Judiciously mark the architecture in terms of where reusable components may fit inSlide18

Establish Selection Criteria (Per Place)What kind of component does the architecture really need?

functionalityabsolutely necessary versus desired functionalitysoftware qualitiesHow is the component to fit with the rest of the architecture?some adaptation can be accommodatedInvestmentcost

future cost

Reputation

component provider

component itself

Platform, deployment needs, licensing terms, documentation, help available, user base, usability,

security, speed, space, stability, portability, scalability…Slide19

Search for Applicable ComponentGoogle is a wonderful thing

www.google.comcode.google.comComponent repositoriesrich in available componentsmany junksome decent

occasional gems

Research and professional development

literature

Too many is no good

Too few is no good either

although one perfect component would solve the problemSlide20

sourceforge.net20Slide21

apache.org21Slide22

stackoverflow.com22Slide23

Evaluate ComponentsApply selection criteria to each of the components found

matrix of criteria versus componentCriteria 1Criteria 2

Criteria 3

Criteria 4

Criteria 5

Component A

Component B

Component C

Component D

Component ESlide24

Evaluate ComponentsAdditional

approachestrial/evaluation licensesreading component codeexamine sample programs using the componentwriting code using the componentExamine the component’s documentationAnalyze architectural impact of the componentPerhaps even “mini integrate” the componentSlide25

Select ComponentChoose the optimum componentunderstand tradeoffs

be prepared to not choose a componentSlide26

Update ArchitectureDesign any adapters necessary to fit the component

Redesign other components as neededRestructure architecture as neededConsider implementersspecial role for documentationSlide27

A Quick Sample Among the Graduate StudentsXalan

XercesLuceneJungKaffe

Bcel

Equip

Jloox

Schematron

GraphViz

Jython

Jgraph

Scriptalicious

XacmlSWTJOALJettyBatikJmDNSDarwin Streaming ServerSpookMplayer

MySQLlive.com

RTP/RTSP

gaim

im

client

…Slide28

Assignment 5