+ Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any...

32
+ Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. 1

Transcript of + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any...

Page 1: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+

Informatics 122Software Design IILecture 12Emily Navarro

Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. 1

Page 2: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Today’s Lecture

Component reuse

Assignment 5

2

Page 3: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+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

scratch

A true software component is one that has been specifically designed to be reusable

3

Page 4: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A Critical Design Tradeoff

4

build(and thus design)

buy or get for free(and thus fit into a design)

Page 5: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A Critical Design Tradeoff: Benefits

5

build(and thus design)

buy or get for free(and thus fit into a design)

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

qualitystandardization

Page 6: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A Critical Design Tradeoff: Drawbacks

6

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenance

licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

Page 7: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A Critical Design Tradeoff

7

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenancestandards

licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

qualitystandardization

Page 8: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Our Focus Today

8

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenancestandards

licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

quality

Page 9: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+You Practice Software Reuse All The Time!

9

Page 10: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Different Levels of Reuse Granularity

Lines of code

Functions/methods/procedures

Classes (inheritance), interfaces/templates

Modules/Components

Packages

Frameworks

Subsystems

Entire programs

10

Page 11: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A New Kind of Design Decision

Less fine control

More learning and using and applying

Similar to recovery

11

Page 12: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Architectural Mismatch

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

12

System topology

Construction dependencies initialization

Non-functional qualities e.g., scalability

Components functionality interfaces behavior control model

Connectors protocols data model

Difficult to predict a-priori

Page 13: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Architectural Mismatch

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

13

System topology

Construction dependencies initialization

Non-functional qualities e.g., scalability

Components functionality interfaces behavior control model

Connectors protocols data model

How much adaptation is too much adaptation?

Page 14: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+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.

14

Page 15: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Component Reuse Process

15

identifypreliminaryarchitecture

identifypotentialplaces for

reuse

establishselection

criteria (perplace)

search forapplicable

components

evaluatecomponents

selectcomponent

updatearchitecture

Page 16: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Identify Preliminary Architecture

Largely as usual

Familiarity with certain reusable components may influence the architectural choices being made

16

Page 17: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Identify Potential Places for Reuse There are components for just about anything

graph layout database access regular expression handling numerical computing protein visualization speech recognition e-mail handling index and search maps geocoding …

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

17

Page 18: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

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

functionality absolutely necessary versus desired functionality software qualities

How is the component to fit with the rest of the architecture? some adaptation can be accommodated

Investment cost future cost

Reputation component provider component itself

18

Page 19: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Search for Applicable Component Google is a wonderful thing

www.google.com code.google.com

Component repositories rich in available components

many junk some 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 problem

19

Page 20: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+sourceforge.net

20

Page 21: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+apache.org

21

Page 22: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+stackoverflow.com

22

Page 23: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Evaluate Components

Apply selection criteria to each of the components found beware of the platform, deployment needs, licensing terms matrix of criteria versus component

Additional approaches trial/evaluation licenses reading component code examine sample programs using the component writing code using the component

Examine the component’s documentation

Analyze architectural impact of the component

Perhaps even “mini integrate” the component

23

Page 24: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Select Component

Choose the optimum component understand tradeoffs be prepared to not choose a component

24

Page 25: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Update Architecture

Design any adapters necessary to fit the component

Redesign other components as needed

Restructure architecture as needed

Consider implementers special role for documentation

25

Page 26: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+A Quick Sample Among the Graduate Students

Xalan Xerces Lucene Jung Kaffe Bcel Equip Jloox Schematron GraphViz Jython Jgraph Scriptalicious

26

Xacml SWT JOAL Jetty Batik JmDNS Darwin Streaming

Server Spook Mplayer MySQL live.com RTP/RTSP gaim im client …

Page 27: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Assignment 5

Research available components that provide a particular kind of functionality for SimSE, set up selection criteria, make a choice of the component that you believe is best, and detail how you would go about integrating the component

27

Page 28: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Assignment 5 Specifically, research components for the following

situations 3D graphics – we want to use a 3D graphical engine to replace

the current icon-based 2D graphics. It should be particularly flexible and customizable since we will eventually want to also incorporate this engine into the SimSE model builder, allowing one to create 3D graphics in the model builder and generate a customized game incorporating these graphics.

speech recognition – we want to add the ability to use speech to allow players to navigate through the game, for which we need some sort of speech-to-text conversion component that is as reliable as possible

distribution – we would like to make SimSE multi-player, so we need some type of protocol and middleware that is lightweight and fast so as not to disrupt the game experience

28

Page 29: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Assignment 5

Additional constraint we have $25,000 in funds to spend on this project, but we

want to save money for user studies and other assorted expenses, so cost should be (somewhat) minimized

if truly warranted, management can be requested to fund one “big ticket” component, up to possibly $75,000

29

Page 30: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Assignment 5

Create a 10 minute presentation that describes for one of the three categories (specific assignments of which category by which team the last slide) your search process candidate components you considered

strengths weaknesses

your selection criteria the component you deem best (and why)

Create a document that describes, at the design and code level, the impact of incorporating the chosen components (all three) from this document, someone should be able to make these changes

“effortlessly”

So, you will be researching all three categories (and reporting on them in your document) but presenting on one

30

Page 31: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Assignment 5

Presentation in class Thursday, February 27th

Document due (one per team) at the beginning of class Thursday, February 27th

Graded on breadth and depth of component evaluation, as well as the thoroughness and insightfulness of the document

Each person also needs to submit a team evaluation (one per person; new forms available on class webpage)

31

Page 32: + Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.

+Team Assignments

32

Team 1 (graphics) John Ader Mark Archer Jeffrey Fellows Shibani Dhume Chelsea Schneider

Team 2 (speech) Richmond Chang Michael Chizewski Daniel Hirsch Bing Feng Juan Cortez

Team 3 (distribution) Yufei Fu Jesse Huff Steven Melena Ronnie Nguyen Ariel Kruger

Team 4 (graphics) Cory Mortimer Rohan Venapusala Steven Ov Eric Tian Melissa Nguyen

Team 5 (speech) Joseph Yu Sofanah Alrobayan Brian Wance Maksim Zhilin Christopher Noel Ryan Phung