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

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

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
Design Exercises Informatics 121 Oct 23, Design Exercise I Suppose we are to give out an award for excellence in software design. Create a design.
(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.
© 2009 University of California, Irvine – André van der Hoek1June 20, 2015 – 03:43:42 Informatics 121 Software Design I Lecture 4 André van der Hoek &
© 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:07:15 Informatics 121 Software Design I Lecture 6 André van der Hoek &
© 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) 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.
(c) 2010 University of California, Irvine – André van der Hoek1June 29, 2015 – 08:55:05 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 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.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
(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.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 12.
Reverse Engineering and Design Recovery Informatics 122 Alex Baker.
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
+ 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.
+ Informatics 122 Software Design II Lecture 14 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 10.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
CS223: Software Engineering Lecture 13: Software Architecture.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
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 122 Software Design II
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 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
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 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 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Presentation transcript:

(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 Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

(c) 2009 University of California, Irvine – André van der Hoek2February 21, 2009 – 18:05:18 Today’s Lecture Component reuse Assignment 5

(c) 2009 University of California, Irvine – André van der Hoek3February 21, 2009 – 18:05:18 A Critical Design Tradeoff build (and thus design) buy or get for free (and thus fit into a design)

(c) 2009 University of California, Irvine – André van der Hoek4February 21, 2009 – 18:05:18 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

(c) 2009 University of California, Irvine – André van der Hoek5February 21, 2009 – 18:05:18 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

(c) 2009 University of California, Irvine – André van der Hoek6February 21, 2009 – 18:05:18 A Critical Design Tradeoff 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 full control full understanding flexibility competitive advantage can be instantaneous external support quality

(c) 2009 University of California, Irvine – André van der Hoek7February 21, 2009 – 18:05:18 Our Focus Today 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 full control full understanding flexibility competitive advantage can be instantaneous external support quality

(c) 2009 University of California, Irvine – André van der Hoek8February 21, 2009 – 18:05:18 A New Kind of Design Decision Less fine control More learning and using and applying Similar to recovery

(c) 2009 University of California, Irvine – André van der Hoek9February 21, 2009 – 18:05:18 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

(c) 2009 University of California, Irvine – André van der Hoek10February 21, 2009 – 18:05:18 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?

(c) 2009 University of California, Irvine – André van der Hoek11February 21, 2009 – 18:05:18 Component Reuse Process identify preliminary architecture identify potential places for reuse establish selection criteria (per place) search for applicable components evaluate components select component update architecture

(c) 2009 University of California, Irvine – André van der Hoek12February 21, 2009 – 18:05:18 Identify Preliminary Architecture Largely as usual Familiarity with certain reusable components may influence the architectural choices being made

(c) 2009 University of California, Irvine – André van der Hoek13February 21, 2009 – 18:05:18 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 – handling –index and search –maps –geocoding –… Judiciously mark the architecture in terms of where reusable components may fit in

(c) 2009 University of California, Irvine – André van der Hoek14February 21, 2009 – 18:05:18 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 …

(c) 2009 University of California, Irvine – André van der Hoek15February 21, 2009 – 18:05:18 Search for Applicable Components Google is a wonderful thing – –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

(c) 2009 University of California, Irvine – André van der Hoek16February 21, 2009 – 18:05:18 sourceforge.net

(c) 2009 University of California, Irvine – André van der Hoek17February 21, 2009 – 18:05:19 apache.org

(c) 2009 University of California, Irvine – André van der Hoek18February 21, 2009 – 18:05:19 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

(c) 2009 University of California, Irvine – André van der Hoek19February 21, 2009 – 18:05:19 Select Component Choose the optimum component –understand tradeoffs –be prepared to not choose a component

(c) 2009 University of California, Irvine – André van der Hoek20February 21, 2009 – 18:05: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

(c) 2009 University of California, Irvine – André van der Hoek21February 21, 2009 – 18:05:19 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 …

(c) 2009 University of California, Irvine – André van der Hoek22February 21, 2009 – 18:05:19 Assignment 5 Research available components that provide a particular kind of functionality for Palantír, 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 –code clones – we want to augment the functionality of Palantír with awareness of clones (code that is very similar or even identical across multiple files), we need a component that helps us detect such clones –graphics – we want to augment the Eclipse visualization with an external visualization that annotates UML diagrams of the code with awareness information of changes, clones, etc., we need a component that displays UML diagrams and allow us to easily make various kinds of annotations –events – we want to replace Siena with another event delivery system (publish-subscribe system), because Siena has some bugs, we want a reliable component that is as backwards compatible as possible

(c) 2009 University of California, Irvine – André van der Hoek23February 21, 2009 – 18:05:19 Assignment 5 Additional constraint –we have $1250 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

(c) 2009 University of California, Irvine – André van der Hoek24February 21, 2009 – 18:05:19 Assignment 5 Create a 10 minute presentation that describes for one of the three 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 –from this document, someone should be able to make these changes “effortlessly”

(c) 2009 University of California, Irvine – André van der Hoek25February 21, 2009 – 18:05:19 Assignment 5 Presentation in class Monday, March 2 nd Document due at the beginning of class Monday, March 2 nd 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)

(c) 2009 University of California, Irvine – André van der Hoek26February 21, 2009 – 18:05:19 Team Assignments Team 1 (clones) Lance Cacho Jeffrey Gaskill Derek Lee Ben Kahn Jordan Sinclair Team 2 (clones) Scott Roeder Robert Jolly Daniel Morgan James Rose David Schramm Team 3 (graphics) Leslie Liu Alexander Doan Aylwin Villanueva Scott Ditch James Milewski Team 4 (graphics) Tomas Ruiz-Lopez Alton Chislom Chad Curtis Jay Bacuetes Matt Shigekawa Team 5 (events) Matt Fritz Alex Kaiser Robert Duncan Rakesh Rajput Joshua Villamarzo Lance Zepeda