Informatics 122 Software Design II

Slides:



Advertisements
Similar presentations
(c) 2009 University of California, Irvine – André van der Hoek1April 20, 2015 – 00:59:05 Informatics 122 Software Design II Lecture 11 André van der Hoek.
Advertisements

(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 9 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1February 8, 2009 – 21:49:30 Informatics 122 Software Design II Lecture 9 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1June 12, 2015 – 07:51:20 Informatics 121 Software Design I Lecture 8 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 18:19:12 Informatics 122 Software Design II Lecture 5 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:08:09 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:29:37 Informatics 121 Software Design I Lecture 1 André van der Hoek and.
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 16, 2015 – 21:42:11 Informatics 121 Software Design I Lecture 7 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 22, 2015 – 23:08:13 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 15:42:49 Informatics 121 Software Design I Lecture 13 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
(c) 2009 University of California, Irvine – André van der Hoek1February 21, 2009 – 18:05:18 Informatics 122 Software Design II Lecture 10 André van der.
Design Recovery 1 Informatics 122 Alex Baker. What is Design Recovery? Sort of like reverse engineering.
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 9 André van der.
© 2010 University of California, Irvine – André van der Hoek1June 28, 2015 – 09:26:53 Informatics 121 Software Design I Lecture 12 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 André van der.
© 2009 University of California, Irvine – André van der Hoek1June 29, 2015 – 10:35:56 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1July 14, 2015 – 14:37:42 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
(c) 2009 University of California, Irvine – André van der Hoek1February 21, 2009 – 18:05:18 Informatics 122 Software Design II Lecture 12 André van der.
Informatics 122 Software Design II Lecture 9 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
+ Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek.
Legacy Systems and Software Reuse CS 560. Economics Software is expensive.  Most software development makes extensive use of existing software.  Developers.
Advanced Higher Computing Science
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Presentation transcript:

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. December 3, 2018 – 18:16:38 (c) 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Today’s Lecture Component reuse Assignment 5 December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A Critical Design Tradeoff build (and thus design) buy or get for free (and thus fit into a design) December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A Critical Design Tradeoff: Benefits full control full understanding flexibility competitive advantage can be instantaneous external support quality build (and thus design) buy or get for free (and thus fit into a design) December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A Critical Design Tradeoff: Drawbacks build (and thus design) buy or get for free (and thus fit into a design) time cost maintenance standards licensing lack of customizability obsolescence urgent bugs evaluation cost December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A Critical Design Tradeoff full control full understanding flexibility competitive advantage can be instantaneous external support quality build (and thus design) buy or get for free (and thus fit into a design) time cost maintenance standards evaluation cost licensing lack of customizability obsolescence urgent bugs December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Our Focus Today full control full understanding flexibility competitive advantage can be instantaneous external support quality build (and thus design) buy or get for free (and thus fit into a design) time cost maintenance standards evaluation cost licensing lack of customizability obsolescence urgent bugs December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A New Kind of Design Decision Less fine control More learning and using and applying Similar to recovery December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

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 December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

Architectural Mismatch Architectural mismatch stems from mismatched assumptions a reusable component makes about the system structure it is to be part of Components functionality interfaces behavior control model Connectors protocols data model System topology Construction dependencies initialization How much adaptation is too much adaptation? December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

Component Reuse Process identify preliminary architecture identify potential places for reuse establish selection criteria (per place) update architecture select component evaluate components search for applicable components December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

Identify Preliminary Architecture Largely as usual Familiarity with certain reusable components may influence the architectural choices being made December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

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 December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

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 … SLIDE NEEDS WORK December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

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 NEEDS WORK December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek sourceforge.net December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek apache.org December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek 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 SLIDE NEEDS WORK December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Select Component Choose the optimum component understand tradeoffs be prepared to not choose a component December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek 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 NEEDS WORK December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

A Quick Sample Among the Graduate Students Xalan Xerces Lucene Jung Kaffe Bcel Equip JLoox Schematron GraphViz Jython Scriptalicious … Xacml SWT JOAL Jetty Batik JmDNS Darwin Streaming Server Spook Mplayer MySQL live.com RTP/RTSP gaim im client … December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Assignment 5 Research available components that provide a particular kind of functionality for VBoard, 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 are having trouble writing code to recognize 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 December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Assignment 5 Additional constraint we have $800 in funds to spend on this project, but we want to save money for user studies and other assorted expenses, so cost should be minimized if truly warranted, management can be requested to fund one “big ticket” component, up to possibly $10,000 December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Assignment 5 Create a 12 minute presentation that describes for each type of component 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 suggested mouse gesture component and the suggested replacement for Piccolo from this document, someone should be able to make these changes “effortlessly” no need to consider the speech recognition component in this document December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Assignment 5 Presentation in class Tuesday, November 20th Document due at the beginning of class Tuesday, November 20th 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) December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Team Assignments Team 1 BEDFORD, AURORA KOLLA, SUBODH JONAS, NICHOLAS IGNACIO, JAN Team 2 BAUTISTA, JEREMIAH CHIU, ARTHUR KWOK, MATHEW PURPURA, DAVID APPLEBAUM, WARREN Team 3 CHISLOM, ALTON BOSCH, CHRISTOPHER LIU, ZHE SAM, VINH Team 4 HUANG, ALLEN HIRANO, SEN LAVAVESHKUL, MICHAEL SHAFER, THOMAS SHI, LINDA Team 5 BAMBAEEROW, CAMERON KNOBEL, JACOB LAM, CYNTHIA ESQUENAZI, NATHAN YEGANYAN, MICHAEL Team 6 DEMPSEY, MITCHELL DAUZ, JONATHAN DYKZEUL, BRADLEY LEE, RICK STEWART, DAVID December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek

© 2007 University of California, Irvine – André van der Hoek Web scripting languages Ruby C / C++ JavaScript C# / ASP Perl December 3, 2018 – 18:16:38 © 2007 University of California, Irvine – André van der Hoek