
248a5340d634fae2ce94a5ca435bdf3c.ppt
- Количество слайдов: 26
Informatics 122 Software Design II Lecture 9 André van der Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 1
Today’s Lecture Component reuse Assignment 5 February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 2
A Critical Design Tradeoff build (and thus design) February 21, 2010 – 18: 05: 18 buy or get for free (and thus fit into a design) (c) 2010 University of California, Irvine – André van der Hoek 3
A Critical Design Tradeoff: Benefits full control full understanding flexibility competitive advantage build (and thus design) February 21, 2010 – 18: 05: 18 can be instantaneous external support quality buy or get for free (and thus fit into a design) (c) 2010 University of California, Irvine – André van der Hoek 4
A Critical Design Tradeoff: Drawbacks build (and thus design) time cost maintenance standards February 21, 2010 – 18: 05: 18 buy or get for free (and thus fit into a design) licensing lack of customizability obsolescence urgent bugs evaluation cost (c) 2010 University of California, Irvine – André van der Hoek 5
A Critical Design Tradeoff full control full understanding flexibility competitive advantage build (and thus design) time cost maintenance standards February 21, 2010 – 18: 05: 18 can be instantaneous external support quality buy or get for free (and thus fit into a design) licensing lack of customizability obsolescence urgent bugs evaluation cost (c) 2010 University of California, Irvine – André van der Hoek 6
Our Focus Today full control full understanding flexibility competitive advantage build (and thus design) time cost maintenance standards February 21, 2010 – 18: 05: 18 can be instantaneous external support quality buy or get for free (and thus fit into a design) licensing lack of customizability obsolescence urgent bugs evaluation cost (c) 2010 University of California, Irvine – André van der Hoek 7
A New Kind of Design Decision Less fine control More learning and using and applying Similar to recovery February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 8
Architectural Mismatch Architectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part Components – functionality – interfaces – behavior – control model Connectors – protocols – data model System topology Construction – dependencies – initialization Difficult to predict a-priori February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 9
Architectural Mismatch Architectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part Components – functionality – interfaces – behavior – control model Connectors – protocols – data model System topology Construction – dependencies – initialization How much adaptation is too much adaptation? February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 10
Component Reuse Process identify preliminary architecture update architecture February 21, 2010 – 18: 05: 18 identify potential places for reuse select component establish selection criteria (per place) evaluate components (c) 2010 University of California, Irvine – André van der Hoek search for applicable components 11
Identify Preliminary Architecture Largely as usual Familiarity with certain reusable components may influence the architectural choices being made February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 12
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 February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 13
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 … February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 14
Search for Applicable Components 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 February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 15
sourceforge. net February 21, 2010 – 18: 05: 18 (c) 2010 University of California, Irvine – André van der Hoek 16
apache. org February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 17
Evaluate Components Apply selection criteria to each of the components found – beware of the platform, deployment needs, licensing terms – matrix of criteria versus components 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 February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 18
Select Component Choose the optimum component – understand tradeoffs – be prepared to not choose a component February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 19
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 February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 20
A Quick Sample Among the Graduate Students Xalan Xacml Xerces SWT Lucene JOAL Jung Jetty Kaffe Batik Bcel Jm. DNS Equip Darwin Streaming Server JLoox Spook Schematron Mplayer Graph. Viz My. SQL Jython live. com RTP/RTSP Scriptalicious gaim im client … … February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 21
Assignment 5 Research available components that provide a particular kind of functionality for Calico, 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 Specifically, research components for the following situations – speech recognition – we want to add the ability to use speech to create text labels, for which we need some sort of speech-to-text conversion component that is as reliable as possible – mouse gestures – we would like to integrate more complex mouse gestures; find an existing component that can recognize mouse gestures reliably, possibly employing a learning algorithm – graphics – we want to replace Piccolo, as it is no longer supported, ideally with a drawing framework that has powerful functionality for future extensions yet has minimal impact on the current architecture – distribution – we would like to replace the current home-grown mechanism with an actual real protocol and middleware that is lightweight, fast, and can handle long distance February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 22
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 February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 23
Assignment 5 Create a 10 minute presentation that describes for one of the four categories (specific assignments of which category by which team on slide 26) – 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 four) – from this document, someone should be able to make these changes “effortlessly” February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 24
Assignment 5 Presentation in class Thursday, February 25 th Document due at the beginning of class Thursday, February 25 th 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 ( new forms available on class webpage) February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 25
Team Assignments Team 1 (speech) Team 4 (distibution) ZIMING DAI RYAN CHRISTOPHER HSU SEAN LEW TSUSAKI KYLE STEPHEN LUTZE JAMES RICHARD BENSON Team 2 (mouse) SAMUEL JAMES KAUFMAN KYLE PHILLIP MUSLER PATRICK CHAO-CHENG LU JOSHUA ALEXANDER PAPA JESSE MAYORGA DANIELSON Team 5 (graphics) TAE SUNG KIM JORDANIEL CHARLES WOLK ARREN APPLEBAUM SOHRAB HEJAZI GARRETT KIM LEO ZEN FRANCISCO MORALES HIROE ONO SIMON HUYNH FRANCESCO MANTOVANI MICHAEL IDRIS MERCHANT Team 3 (graphics) RYAN SCOTT NISSENBAUM STACEY THUY VI DAO HUNTER GLENN GILLANE ALEX RYAN CHUNG MATTHEW JAMES PALMER February 21, 2010 – 18: 05: 19 (c) 2010 University of California, Irvine – André van der Hoek 26