3 Pages

cse403reuse-1

Course: CS 403, Fall 2009
School: Washington
Rating:
 
 
 
 
 

Word Count: 517

Document Preview

Software CSE403: Engineering Reid Holmes Winter 2009 COMPLEXITY NSB REDUX Confusions over accidental complexity Emergence of OOP "The best way to address the complexity of software is to not build it at all" Several NSB responses highlight software reuse As a means to reduce complexity As a means to improve productivity As a means to increase reliability SOFTWARE REUSE...

Register Now

Unformatted Document Excerpt

Coursehero >> Washington >> Washington >> CS 403

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Software CSE403: Engineering Reid Holmes Winter 2009 COMPLEXITY NSB REDUX Confusions over accidental complexity Emergence of OOP "The best way to address the complexity of software is to not build it at all" Several NSB responses highlight software reuse As a means to reduce complexity As a means to improve productivity As a means to increase reliability SOFTWARE REUSE Domain-specific component markets Populated by carefully created reusable components New features are added by dropping in components Accounts for 53% of reuse at NASA [Selby 2005] Three main impediments: High up-front cost [Gaffney 1992, ICSE] Library scaling problem [Biggerstaff 1994, ICSR] Architectural mismatch [Garlan et. al. 1995, IEEE Software] ECONOMICS Budgets are drawn up annually Heavy emphasis on the current quarter Reusable software is: ~Twice as expensive [Gaffney 1992, ICSE] ~Three times as expensive [Brooks 1975] Requires careful forethought to determine what software will be reused and whether any savings outweigh extra costs What is the benefit to the customer? LIBRARY SCALING Two extremes: Large, feature-laden, components Small, simple, components Adapting large components to a system can be difficult The effort of adapting a small component might outweigh any benefits of reuse in the first place ARCHITECTURAL MISMATCH Even reusable code makes some assumptions about how it should be reused; these assumptions are often implict Explicit assumptions are often easy to identify: Programming language Libraries & frameworks Implicit assumptions are harder to spot: Topology assumptions Protocols of use Implicit assumptions are often not documented because the original developer may not have considered them constraints AN ALTERNATIVE REUSE APPROACH Bug: UltiGPX should I wish UltiGPX showed me visualize elevation how my elevation has changes in trackschanged... using a profile view UltiGPX 8 MOTIVATION Azureus UltiGPX 1) Enact 9 MANUAL Plan 2) REUSE APPROACH Easy to get discouraged Difficult to modify earlier decisions Easy to attempt infeasible tasks Piecemeal nature diverts attention from core technical difficulties 10 PRAGMATIC REUSE White-box reuse Code Scavenging [Krueger 1992, ACM Computing Surveys] Ad hoc nature increases risk of bad decisions Adaptation expensive and overwhelming Industrially effective Effective reuse approach [Frakes 1995, CACM] Common risk-aversion practice [Cordy 2003, IWPSE] Replicate & specialize [Kapser & Godfrey, 2006, WCRE] 11 PRAGMATIC REUSE PROCESS Identify starting point Plan task / triage dependencies Enact plan Evaluate reused code Abort task Re-implement feature 12 PLANNING A TASK 4 main kinds of decisions: Common Accept Reject Remap SpeedGraphic.drawChart() Legend O Method or Field ! Call or Reference 13 TRANSITIVE IMPLICATIONS Accepted Code Rejected Code Remapped Code Common Code 14 ENACTMENT PROCESS Existing Code Accepted Code Rejected Code Remapped Code Developer's System 1) Extraction 2) Integration 15 H-1: TASK TIME Task Time 30 Time (min) 10 15 20 25 35 40 5 Supported Reuse Manual Reuse Task Su...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

Washington - CS - 403
3/3/2009Program invariants Invariants can aid in the development of correct programs The invariants are defined explicitly as part of the construction of the program Invariants can aid in the evolution of software as well In particular, program
Washington - CS - 321
Practice Questionsfrom previous CSE321 exams1. If D(x, y) is the predicate x divides y then which of the following statements are true in the domain of positive integers? xD(x, x). xy(D(x, y) D(y, x). xy(D(x, y)andD(y, x) (x = y). xy(D(x, y)
Washington - CS - 321
Discrete Structures CSE 321, Autumn 2003Anna KarlinExample Problems from Old FinalsDirections Feel free NOT to multiply out binomial coefficients, factorials, etc, and feel free to leave answers in the form of a sum. No calculators, books or
Washington - CS - 321
CSE 321: Discrete Structures Assignment #1 Due: Wednesday, October 8Reading Assignment: Rosen, Sections 1.1 1.6 Problems: 1. Section 1.1, exercise 10 2. Section 1.1, exercise 18, parts a, b, f, g. 3. State in English the converse and contrapositive
Washington - CS - 321
CSE 321: Discrete Structures Assignment #2 Due: Wednesday, October 15Reading Assignment: Rosen, 5th edition: Sections 1.3-1.8 pp. 233-236, 2.4-2.5. (If you have the 4th edition, these are 1.3-1.6, pp. 76-78, 3.1, 2.3-2.4.) Problems: 1. Let Q(x, y)
Washington - CS - 321
CSE 321: Discrete Structures Assignment #3 due: Wednesday, October 22Reading: Sections 2,4-2.5, 3.1, 3.3, 3.4 (In 4th edition, these are 2.3-2.4 and 3.3-3.3). 1. Give an example of a function from N to N which is onto but not one-to-one one-to-on
Washington - CS - 321
CSE 321: Discrete Structures Assignment #4 due: Wednesday, October 29Reading: Rosen, Sections 3.13.3, 4.14.2 1. Let a, b and c be integers. Prove that if a does not divide bc, then a does not divide c. 2. Prove that any prime number bigger than 3 i
Washington - CS - 321
CSE 321: Discrete Structures Assignment #5 due: Wednesday, Nov 51. Euclids algorithm for computing the greatest common divisor of two numbers a > b 0 can be written recursively as follows: procedure Euclid (a, b: integer) returns g: integer begin
Washington - CS - 321
CSE 321 Worksheet #5Thursday, November 30, 20031.Give a recursive algorithm form computing nx whenever n is a positive integer and x is an integer. Prove that the recursive algorithm that you found in (1) is correct. Prove that procedure power (
Washington - CS - 321
CSE 321 Worksheet 321 Informal SolutionsThursday, November 30, 20031. procedure mult(n:positive integer,x:integer)if n=1 then mult(n,x) := x else mult(n,x) := x + mult(n-1,x)2. If n = 1 , then n = nx , and the algorithm correctly returns x . Ass
Washington - CS - 321
CSE 321: Discrete Structures Assignment #6 Due Wednesday, November 19Reading: Rosen, Sections 4.1-4.3, 5.1-5.3, 7.1, 7.4, 7.5. In the 4th edition, these are 4.1-4.5, 6.1, 6.4-6.5). 1. How many strings are there of four lowercase letters that have t
Washington - CS - 321
CSE 321: Discrete Structures Assignment #7 Due Wednesday, November 26Reading: Rosen, Sections 7.1, 7.4, 7.5, and chapter 8. In the 4th edition, these are 6.1, 6.4-6.5 and chapter 7). 1. A deck of 10 cards, each bearing a distinct number from 1 to 1
Washington - CS - 321
CSE 321: Discrete Structures Assignment #8 Due Wednesday, December 3Reading: Rosen, Sections 7.1,7.4, 7.5 and Chapter 8 (In 4th edition, Sections 6.1, 6.4 and 6.5, chapter 7). 1. Determine whether the following relations R on the set of all people
Washington - CS - 321
CSE 321: Discrete Structures Assignment #9 Due Wednesday, December 10Reading: Rosen, Chapter 8 (In 4th edition, chapter 7). 1. p. 555, problem 24 (4th edition, p. 455, problem 18) 2. Describe an algorithm to decide whether a graph is bipartite. 3.
Washington - CS - 522
Lecture 1Introduction to Combinatorial OptimizationOct 1, 2004 Lecturer: Kamal Jain Notes: Atri Rudra1.1 IntroductionCombinatorial Optimization is a broad eld where roughly one tries to optimize an objective function subject to certain constrai
Washington - CS - 522
%!PS-Adobe-2.0 %Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software %Title: C:/Documents and Settings/KAMALJ/Desktop/notes/note1.dvi %CreationDate: Wed Sep 29 15:50:37 2004 %Pages: 139 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %DocumentFon
Washington - CS - 522
Lecture 1CS522: Advanced AlgorithmsOctober 4, 2004 Lecturer: Kamal Jain Notes: Chris Re1.1 Plan for the weekFigure 1.1: Plan for the week The underlined tools, weak duality theorem and complimentary slackness, are most frequently used in CS. S
Washington - CS - 522
Lecture 3Polar Duality and Farkas' LemmaOctober 8th, 2004 Lecturer: Kamal Jain Notes: Daniel Lowd3.1Polytope = bounded polyhedronLast lecture, we were attempting to prove the Minkowsky-Weyl Theorem: every polytope is a bounded polyhedron, an
Washington - CS - 522
Lecture 4DualityOct 11, 2004 Lecturer: Kamal Jain Notes: Neva Cherniavsky4.1Weak dualityGiven a linear program, write all the equalities with a greater than or equal sign. The constraints can be strict, and you can have two types of variable
Washington - CS - 522
Lecture 5Facility Location AlgorithmOctober 16, 2004 Lecturer: Kamal Jain Notes: Ioannis GiotisWe are given a bipartite graph which represents a set of n facilities F and a set of m locations. An edge from facility i to location j represents the
Washington - CS - 522
Lecture 1CS522: Advanced AlgorithmsOctober 18, 2004 Lecturer: Kamal Jain Notes: Ethan Phelps-Goodman1.1The Min Cost Steiner Forest ProblemIn the last lecture we saw primal-dual schemas for weighted vertex cover and facility location. In this
Washington - CS - 522
Lecture 7Prize Collecting Steiner Forest ProblemOct 23, 2004 Lecturer: Kamal Jain Notes: Neva Cherniavsky7.1Problem descriptionG = (V, E), C : E R+ cost function. : V V R+ (i, j) = (j, i) (i, i) = 0 HG If you don't have a path between i
Washington - CS - 522
<?xml version="1.0" encoding="UTF-8"?> <Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>261fb21cf1036d8059a87a23b20bc52391cc1f7b.ps</Key><RequestId>EC 27044DD96A35F4</RequestId><HostId>yMVsWj3ksHANdngtLf1kWjoyuSl8
Washington - CS - 522
Lecture 8 CSE 522: Advanced AlgorithmsOctober 25, 2004 Lecturer: Kamal Jain Notes: Ning Chen1Prize-Collecting Problem ReviewGiven a graph G = (V, E), a non-negative cost function c : E Q+ , and a non-negative penalty function : V V Q+ , ou
Washington - CS - 522
Lecture 10Dynamic ProgrammingNovember 1, 2004 Lecturer: Kamal Jain Notes: Tobias Holgers10.1Knapsack ProblemWe are given a set of items U = {a1 , a2 , . . . , an }. Each item has a weight wi Z+ and a utility ui Z+ . Our task is to find the
Washington - CS - 522
Lecture 10Euclidean TSP Tree decompositionsNovember 5, 2004 Lecturer: Kamal Jain Notes: Ioannis Giotis1.1 Euclidean TSP continuedIn the last lecture we considered a bounding box of the points L L for L = 4n2 and the resulting grid formed by un
Washington - CS - 522
Lecture 11Minor Graph Theory and the Ellipsoid AlgorithmNov 8, 2004 Lecturer: Kamal Jain Notes: Atri RudraIn the last lecture we saw how the lemma on characterizing the tree width does not generalize to graphs of tree width three and higher. In t
Washington - CS - 522
Lecture 1Solving Linear Programs with the Ellipsoid AlgorithmNovember 12, 2004 Lecturer: Kamal Jain Notes: Chris R e1.1 OverviewRecall from last time: Given a convext set C, C EV (E) = R, a ball B(, ) C and a polytime separation oracle then w
Washington - CS - 522
Lecture 14 CSE 522: Advanced AlgorithmsNovember 15, 2004 Lecturer: Kamal Jain Notes: Ning Chen1Max-FlowIn the last class, we discussed max-flow problem in terms of total-unimodularity. Note that primal has integer optimal solution implies dual
Washington - CS - 522
Lecture 15Minimization of Submodular Functions in Polynomial Time; Edmond's TheoremNov 19, 2004 Lecturer: Kamal Jain Notes: Neva Cherniavsky15.1 Submodular function minimizationf : 2U {i|i is a k-bit integer} |U | = n S, T f (S) + f (T ) f (S
Washington - CS - 522
Lecture 16Submodular Functions and Network CodingNov 22, 2004 Lecturer: Kamal Jain Notes: Atri RudraIn the last lecture we looked at submodular function minimization. We will present a recent result on submodular functions in this lecture and the