Architecture of Product Lines

David Weiss [email protected]

DMW 23 Sep 09 ICSM

1

Topics •  Software Product Lines –  What are product lines? –  Why have product lines? •  Economics, Benefits •  Product lines and maintenance –  Examples of successful product lines

•  Architecture –  Architecture as structures –  Product line architectures –  Architecture and maintenance

•  How should developers be organized? –  Open Market Software Development

DMW 23 Sep 09 ICSM

2

“Those who ignore history are condemned to repeat it.” George Santayana

DMW 23 Sep 09 ICSM

3

Families “We consider a set of programs to constitute a family whenever it is worthwhile to study programs from the set by first studying the common properties of the set and then determining the special properties of the individual family members.”

David L. Parnas

DMW 23 Sep 09 ICSM

4

Product Lines “ We call a family of products designed to take advantage of their common aspects and predicted variabilities a product line.” Lai & Weiss “A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.” Clements & Northrop

DMW 23 Sep 09 ICSM

5

A Product Line Engineering Process Investment Domain Engineering

Feedback

Product Line Engineering Environment Product Engineering

Payback

DMW 23 Sep 09 ICSM

Products

6

A Product Line Engineering Process Investment Domain Engineering

Feedback

Product Line Engineering Environment Product Engineering

Payback

DMW 23 Sep 09 ICSM

Products

7

PLE “Nirvana”

Solutions

Architecture DMW 23 Sep 09 ICSM

8

Economics Of Families (Simplified) Current Practice

Cumulative Cost

Product Line Engineering

Number of Family Members

DMW 23 Sep 09 ICSM

9

Economics Of Families (More Realistic) Current Practice

Klein Horizon

Cumulative Cost

Product Line Engineering

Number of Family Members

DMW 23 Sep 09 ICSM

10

Cumulative Savings 5*S F - I

S = N*(C T - CF) - I

4*S F - I 3*S F - I

1 2 3 Number of Family Members

2*S F - I

4 Payback Point

SF - I -I

S = Cumulative savings CT = Cost per family member with current practice CF = Cost per family member with domain engineering N = Number of family members I = Investment in domain engineering for the family DMW 23 Sep 09 ICSM

11

Industry Experience Lucent Nokia Philips Avaya * * * (See Software Product Line Hall of Fame http://splc.net/fame.html)

DMW 23 Sep 09 ICSM

12

Lucent Some 5ESSTM Domains Previous Interval

Percent 100 80 60 40 20 0 A

B

C

D

Reduced Interval

5ESS Change Time Reduction DMW 23 Sep 09 ICSM

13

Nokia Group Project •  Define a product line with ~25-30 new products a year •  Across products, you must support:

–  –  –  –  –  – 

Varying number of keys Varying Display Size Varying sets of features A number of languages, and input methods Backwards Compatibility to accessories Different protocols and API’s

•  And of course make them segmented (low end, high-end, …). •  Each Feature must be:

–  Configurable (On/Off, various settings) –  Able to change behavior after product release –  Plug’n’playable Source: Anders Heie, SPLC2 Keynote Presentation

DMW 23 Sep 09 ICSM

14

Nokia Facts •  This year, we have released 12 new products (lots more on the way) •  We sell phones in more than 130 countries •  We support 58 Languages, amongst which are:

–  Latin Languages –  Arabic –  Chinese (With variants) –  Thai –  Hebrew •  We support multiple Protocols:

–  CDMA, TDMA, AMPS, GSM, GPRS, and more… •  The HW is constantly changing, and the SW is constantly expanding to provide features •  We have several different UI Series to support Source: Anders Heie, SPLC2 Keynote Presentation

DMW 23 Sep 09 ICSM

15

Philips

Source: Rob van Ommering DMW 23 Sep 09 ICSM

16

Price

TV Diversity

Image

Connectivity

UTV

quality

Sound 1394 AC3

100 Hz P50

Dolby

Broadcasting Standard

Eu DTV

AP

US

Region

MTV TiVo

Tx t

menus TVCR

EPG

PTV HD

Data Processing

animation

DVD

Storage Device

3D

VCR

FTV

LCT V Video Output Device

User Interface

© 2003 Koninklijke Philips Electronics NV

DMW 23 Sep 09 ICSM

17

Lucent 5ESS™ Switch Configuration: A More Detailed Example

Lucent Technologies 5ESS

DMW 23 Sep 09 ICSM

18

Packet Service Unit Relationships

DMW 23 Sep 09 ICSM

19

Packet Service Unit Relationships With Attributes

DMW 23 Sep 09 ICSM

20

Relationship Architecture Designer (RAD)

DMW 23 Sep 09 ICSM

21

“The art of progress is to preserve order amid change, and to preserve change amid order.” Alfred North Whitehead

DMW 23 Sep 09 ICSM

22

A Product Line Engineering Process Investment Domain Engineering

Feedback

Product Line Engineering Environment Product Engineering

Payback

DMW 23 Sep 09 ICSM

Products

23

Domain Engineering Domain Analysis

Domain Model

Analysis Document, Application Modeling

Language

Domain Implementation Tools,Process Product Engineering Environment

DMW 23 Sep 09 ICSM

24

The Domain Model •  Conceptual Framework –  Family Definition •  Commonalities and Variabilities Among Family Members •  Common Terminology for the Family •  Abstractions for the Family

–  Economic Analysis –  Application Modeling Language (AML): Language for stating requirements

•  Mechanism for translating from AML to software –  Alternative 1: Compiler –  Alternative 2: Composer

DMW 23 Sep 09 ICSM

25

Building The Conceptual Framework •  Qualify The Domain –  Is it economically viable?

•  Define The Family –  What do members of the family have in common and how do they vary?

•  Define The Decision Model –  What decisions must be made to identify a family member?

•  Design The Application Modeling Language –  What is a good way to model a family member?

•  Design The Product Engineering Environment –  What are good mechanisms for using the decision model and the Application Modeling Language?

DMW 23 Sep 09 ICSM

26

Defining A Product Line: Commonality Analysis •  A process to understand the extent of commonality and variability –  Identify commonalities: attributes whose values are the same for all family members –  Identify variabilities: attributes that may vary across the family –  Quantify variabilities: define the range of values allowed for each variability –  Define common terms •  A product line definition document that predicts how products will evolve •  The basis for a product-line architecture

DMW 23 Sep 09 ICSM

27

Defining The Family: The Commonality Analysis •  Dictionary of terms –  Technical terms that define a vocabulary for the domain •  Primary Condition: The availability of a unit: working: ready, unready, or unusable •  Commonalities: Assumptions that hold for every member of the family –  Every unit must be in one of the four primary conditions. •  Variabilities: Assumptions that define the range of variation for the family –  Some unit names have inhibit states. •  Parameters of Variation: Quantification of the variabilities –  Whether or not a unit name can have an inhibit state: Boolean

DMW 23 Sep 09 ICSM

28

Product Line Engineering Environment For Configuration Control •  Language for specifying relationships among units •  Relationship Architecture Designer (RAD) •  Translator for RAD –  Generates C from RAD diagrams

DMW 23 Sep 09 ICSM

29

Product Line Engineering Environment For Configuration Control

RAD Dia gram Rules And Operations Translator

Translator

Control Code

Applica tion Environment Functions

Data Structures

Configuration Controller DMW 23 Sep 09 ICSM

30

Summary •  The technology to improve the software production process exists •  Reorganizing software production to take advantage of the family viewpoint is the key to improvement •  Similar reorganizations are used in other engineering fields –  –  –  – 

customer involvement shorter time to market more variation across product line maintain consistency across product line

•  See The Software Product Line Hall of Fame http://splc.net/fame.html

DMW 23 Sep 09 ICSM

31

ARCHITECTURE

DMW 23 Sep 09 ICSM

32

“If I have seen farther than others, it is because I have stood on the shoulders of giants.” Isaac Newton (?)

DMW 23 Sep 09 ICSM

33

Hagia Sophia, Istanbul

DMW 23 Sep 09 ICSM

34

Built 532-537

DMW 23 Sep 09 ICSM

35

Designers: Anthemius of Tralles and Isidorus of Miletus (Mathematicians, Engineers, Architects)

DMW 23 Sep 09 ICSM

36

Pendentives

DMW 23 Sep 09 ICSM

37

Hagia Sophia Interior.  Four arches swing across the piers, linked by four pendentives. The apices of the arches and the pendentives support the circular base of the huge central dome. http://www.patriarchate.org/ecumenical_patriarchate/chapter_4/html/hagia_sophia__page_2.html

DMW 23 Sep 09 ICSM

38

St. Paul’s Cathedral, London

DMW 23 Sep 09 ICSM

39

Architect: Sir Christopher Wren

DMW 23 Sep 09 ICSM

40

Built 1675-1708

DMW 23 Sep 09 ICSM

41

View From The Dome (1)

DMW 23 Sep 09 ICSM

42

View From The Dome (2)

Millenium Bridge

DMW 23 Sep 09 ICSM

43

How Did They Know It Would Stay Up?

DMW 23 Sep 09 ICSM

44

Buckling Load B ~ ET/R T= Thickness R= Radius E = Elastic Modulus

R T

Assumptions 1.  Spherical 2.  Isotropic - identical properties at each point

How Did They Know It Would Stay Up? •  Prototypes •  Theoretical Models DMW 23 Sep 09 ICSM

45

What Is Architecture? “The art or science of building; esp. the art or practice of designing and building edifices for human use, taking both aesthetic and practical factors into account.” The Shorter Oxford English Dictionary, Fifth Edition, 2002 Merriam Webster Online Dictionary

“In wider use, the term ‘architecture’ always means ‘unchanging deep structure.’ ” Stewart Brand, How Buildings Learn

DMW 23 Sep 09 ICSM

46

Attributes Of An Admired Architecture •  Distinctiveness (Istanbul and London landmarks) •  Beauty •  Utility (used every day) •  Persistence (1500 years and more!!) •  Features that delight (whispering gallery, dome view) •  Maintainable •  Safe •  Buildable (safe intermediate states, affordable) •  Different structures for different purposes (load bearing, interior layout, building services, …)

DMW 23 Sep 09 ICSM

47

Attributes Of An Admired Architecture •  Distinctiveness (Istanbul and London landmarks) •  Beauty •  Utility (used every day) •  Persistence (1500 years and more!!) •  Features that delight (whispering gallery, dome view) •  Maintainable •  Safe •  Buildable (safe intermediate states, affordable) •  Different structures for different purposes (load bearing, interior layout, building services, …)

DMW 23 Sep 09 ICSM

48

What is Software Architecture? •  Literally Hundreds of definitions http://www.sei.cmu.edu/architecture/definitions.html

•  Architecture is focused on –  Partitioning the whole into parts –  Specifying the relations among the parts –  Satisfying Requirements •  Functional Requirements –  End User Features …

•  Other Engineering Requirements –  Performance & Scalability, Reliability & Availability …

DMW 23 Sep 09 ICSM

49

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. "Externally visible” properties refers to those assumptions other elements can make of an element, such as its provided services, performance characteristics, fault handling, shared resource usage, and so on.

Software Architecture in Practice (2nd edition), (Bass, Clements, Kazman; Addison-Wesley 2003:

DMW 23 Sep 09 ICSM

50

Structure (View) •  A structure is a binary relation –  Set of ordered pairs {(a,b), (c,d), (b,a), (c,e)}

•  Defining a structure –  Define the set of elements •  a,b,c,d,e

–  Define the relation •  Enumeration •  Rule

•  Example: connected graph –  Elements: nodes in the graph: a,b,c,d,e,f,g –  Relation: “is connected to” •  {(a,b), (a,c), (b,d), (b,f), (f,e), (c.g)}

DMW 23 Sep 09 ICSM

51

a b

c

d f e

DMW 23 Sep 09 ICSM

g

52

Architectural Structures •  There are many stakeholders in the architecture of a software system – individuals or groups who have an interest in products built using the architecture. •  •  •  • 

Product Management System Engineering Architects Software Development •  Including “maintainers” •  aka “current engineering” •  System Verification

DMW 23 Sep 09 ICSM

•  •  •  •  • 

Information Development Project Management R&D Management Professional Services Services

53

Architectural Structures •  Different Stakeholders have Different Concerns: Some Examples •  Product Management –  How can I explain this architecture to customers, in a way that “sells” it to them? –  What product variations are supported by the architecture?

•  System Engineering –  What functionality does the a product built using this architecture offer to its users? –  How are the product requirements embodied in the software?

•  Architects –  What changes may be needed in the software in the future, and what changes are likely and need to be especially easy to make in the future?

•  Software Development, –  What implementation constraints must I satisfy when I implement a module? –  What technologies and standards are used to implement the modules defined by the architecture?

DMW 23 Sep 09 ICSM

54

Architectural Structures •  Module Guide –  Explains the principles used to design the information hiding structure of the architecture, and shows how responsibilities are allocated among the major modules.

•  Uses View –  Describes the allowed “uses” relationships between modules and limits what other modules the implementer of a module may use.

•  Process View –  Defines the distinct processes in the architecture; Specifies the module(s) that make up the process, synchronization between processes …

DMW 23 Sep 09 ICSM

55

Architectural Structures •  Technology View –  Maps the technology or technologies that will be used to implement each module in the architecture.

•  Integration View –  Highlights what data and modules within the system are externally accessible

•  Design View –  Ties together all of these design perspectives (e.g., workflow, data model, report model ….) to ensure that application customization was consistent across the CRM System.

DMW 23 Sep 09 ICSM

56

Architectural Structures •  Module Interface Specs –  Define Services Provided and Services Needed –  Define syntax and semantics for accessing services –  Define data types, program effects, … –  Define test cases –  Record design decisions and implementation notes •  Marchitecture View –  Describes the architecture and the functionality provided at a high-level; Stakeholders include product managers, prospective customers …

DMW 23 Sep 09 ICSM

57

Structures and Models •  Every view should have a model associated with it •  Every model should help answer questions about the products –  Questions are driven by the concern(s) associated with the view •  What is the buckling load?

–  Typical questions •  How much does it cost to make a particular type of change? •  How does performance vary with load on the product? •  What is the expected availability? •  How can I find a known bug? •  What modules do I need to produce a member of my product line?

DMW 23 Sep 09 ICSM

58

Architecture & Organization •  Conway’s Law The structure of a system reflects the structure of the organization that built it. •  Module structure and organizational structure should mirror each other •  Recall: Module is a work assignment –  Information hiding module hides a design decision –  Interface is the assumptions that the users of a module can make about it (specification is the contract)

DMW 23 Sep 09 ICSM

59

From Architecture To Product: The Decision Model System Composition Mapping

DMW 23 Sep 09 ICSM

60

Decision Model Excerpt for Floating Weather Station Parameter

Meaning

Value Set

P10: SensorCount

Number of wind speed sensors

(LOW, HIGH)

P11: SensorPeriod

Sensor period

P12: SensorRes

Resolution of each sensor

P13: Transmit TransmitPeriod period

DMW 23 Sep 09 ICSM

Constraints

Binding Time

Modules

Spec

Sensor Monitor, Data Banker, Sensor Device Driver

[1..MaxSensorPeriod] sec. Default: 5

Spec

Sensor Monitor, Sensor Device Driver

For each sensor, one of {LOWRES, HIGHRES} Default: LOWRES

Spec

[1..MaxTransmitPeriod] sec. Default: 10

Spec

LOW and HIGH are integers representing the no. of low resolution and high resolution sensors respectively, such that Minlow ≤ LOW ≤ L. Minhigh ≤ HIGH ≤ H, L+H ≤ MaxSensors

Message Generation, Transmitter Device Driver, Message Format, Averager, Data Banker 61

Architecture Summary •  Structures are at the heart of architecture •  Structures should be designed to satisfy specific concerns •  Each structure should have an associated model to help know whether or not the concern(s) are satisfied •  We know many of the important structures for software architecture –  Models form a product line as well –  Documentation forms a product line as well

•  Architecture and organization are closely linked •  Architecture drives production of products DMW 23 Sep 09 ICSM

62

Conclusions •  Product line architectures should be based on a product line of architectures –  Common structures –  Common models –  Common documentation –  Common tests •  Product line organizations should be based on a product line of organizations –  Consistent PLE goals, business goals, organizational goals –  Use motivators enabled by PLE •  Product lines are everywhere

DMW 23 Sep 09 ICSM

63

How Should Developers Be Organized?

DMW 23 Sep 09 ICSM

64

Motivating Developers •  Work with whom you want, when you want •  Hawthorne Effect –  Compensation tied to value and productivity •  Individually or by small group

–  Rapid feedback on productivity

Parsons, H.M.; What Happened at Hawthorne?, Science, vol. 183, 8 March 1974

DMW 23 Sep 09 ICSM

65

Organizing Development: The Module Marketplace •  Issue: How To Assign Work •  Issue: How To Compensate Developers

DMW 23 Sep 09 ICSM

66

Basic Assumptions •  The Product Line Architecture is organized into a collection of (information hiding) modules •  Each module needs an interface specification and an implementation •  It is possible to establish a priority ordering among modules •  There is a Module Approval Board (MAB) that can –  Set module priorities, with attendant rewards –  Evaluate the quality of module interface specifications –  Evaluate the quality of module implementations •  Before it can be used in a product, every module must be approved –  The interface specification must be approved before the implementation is approved •  Interface specification defines module –  new interface spec means new module •  New implementation may also mean new module DMW 23 Sep 09 ICSM

67

Assigning Work: A Family Of Possibilities •  Hierarchical, carefully controlled organization –  Management decides who does what, with whom, and when •  Bidder’s Market –  Bidding window established by MAB –  (Teams of) developers bid on developing modules •  Low bidder wins (track record considered)

–  Winning bidder develops interface spec and implementation –  Winning bidder has first rights on later revisions •  Open market –  (Teams of) developers submit interface specs, implementations as they wish

DMW 23 Sep 09 ICSM

68

Compensating Developers: A Family Of Possibilities •  Management assigns salaries •  Management assigns salaries, plus rewards for approval of interface spec, implementation •  Management assigns salaries, plus royalties for module use •  Royalties for module use –  Royalties based on revenues of products in which module is used –  Royalties based on contribution of module to products –  Royalties reduced for modules with uncorrected defects

DMW 23 Sep 09 ICSM

69

Open Market Software Development

DMW 23 Sep 09 ICSM

70

Organizing Development: Open Market Software Development •  Work assignment strategy: Bidder’s market •  Compensation strategy: Royalties for module use

DMW 23 Sep 09 ICSM

71

Motivations •  Developers are motivated by chances to work with people they respect and like •  Performance should be rewarded in proportion to contribution and quality of the work •  Design for change should be encouraged

DMW 23 Sep 09 ICSM

72

Complications •  Quality Standards –  For each field defect, reduce royalties by 1/n •  Determining Royalties –  For each product in which a module is used, royalties are proportional to •  Contribution of the module to the product •  Quality of the module •  Revenue gained from the product

•  Encouraging Improvements –  Improvers get a share of royalties, up to a maximum –  Major improvements are rewarded more than minor improvements •  Sales Bias –  Avoid collusion between development teams and sales •  Bookkeeping •  Training New Developers

DMW 23 Sep 09 ICSM

73

Side Effects •  No more performance evaluation •  No more development management •  No more HR •  Developers will form teams on their own

DMW 23 Sep 09 ICSM

74

Summary •  Product Line architecture permits bidding system on module basis –  Use product lines and their architectures to break Conway’s Law

•  Family of work assignment, compensation combinations –  Bidding –  Royalties

•  Motivate developers through feedback on quality, productivity

DMW 23 Sep 09 ICSM

75

Backup

DMW 23 Sep 09 ICSM

76

References Product Lines Lai, C.T.R., Weiss, D. Software Product Line Engineering, Addison Wesley, 1999 Software Product Line Hall of Fame: http://www.sei.cmu.edu/productlines/plp_hof.html Building Architecture

–  Brand, Stewart; How Buildings Learn, Penguin Books, 1994 –  Petroski, Henry; To Engineer Is Human, St. Martin's Press,1985 –  Levy, Matthys, Salvadori, Mario; Why Buildings Fall Down, W.W. Norton, 1992 Software Architecture & Views

–  Documenting Software Architectures Views and Beyond, Paul Clements et. al. –  IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, IEEE Std 1471-2000 –  The ‘4+1’ View Model of Software Architecture, P. Krutchen, IEEE Software, November 1995 –  Software Fundamentals, D. Hoffman, D. Weiss, eds., Addison Wesley, 2001 Hawthorne Effect

–  Parsons, H.M.; What Happened at Hawthorne?, Science, vol. 183, 8 March 1974

DMW 23 Sep 09 ICSM

77

Categorizing Product Lines •  Product Line as evolution of existing family members –  Modify members to produce new products in product line •  Versions of Linux

•  Product Line as named set of products –  Audi: A4, A6, A8, … –  Avaya S8600, S8700, …

•  Product Line as configurable options –  Mac OSX

DMW 23 Sep 09 ICSM

78

Architecture of Product Lines

23 Sep 2009 - Families. “We consider a set of programs to constitute a family whenever it is worthwhile to study programs from the set by first studying the common properties of the ... We call a family of products designed to take advantage ..... Levy, Matthys, Salvadori, Mario; Why Buildings Fall Down, W.W. Norton, 1992.

5MB Sizes 0 Downloads 254 Views

Recommend Documents

Pairwise Testing for Software Product Lines: Comparison of Two ...
example throughout the paper to illustrate and compare our two approaches for pairwise testing. The FM was added to the FM repository on the SPL. Online ...

product architecture, modularity and product design: a ...
initial design, and its future development potential, but also for outsourcing possibilities. For example, the ... standards in PCs, permits organisations such as Dell to outsource virtually all sub- assembly manufacturing. ... Levin, 1987; Kauffman

International Trade, Product Lines and Welfare: The ...
(2014) for a derivation of the optimum without consumer heterogeneity. 26Both the (ZCP) and (ZCP FB) are invariant to the normalization adopted for γ and η. 27This contrasts with the results of Nocco et al. (2014) who find that under linear pricing

A Generic Weaver for supporting Product Lines - CiteSeerX
May 12, 2008 - The Aspect-Oriented Software Development (AOSD) para- digm first appeared at the code ... nization or RIDL [7] for specifying the remote data transfer in systems. It is next ..... Distributed Programming. PhD thesis, College of.

International Trade, Product Lines and Welfare: The ...
This also places firms at the center of any analysis of how trade ... nition/classification and aggregation (firm/plant data) are also likely to be important ...... More generally changes in market size, L, are relatively difficult to engineer within

EVALUATION OF CANDIDATE LINES AGAINST WHEAT RUSTS.pdf ...
These lines will remain in NUWYT 2005-06. for further ... even long distances ( Singh et al., 2005). ... results of these trials, the candidate wheat .... NRL-2017 AMSEL/TUI CM107503-12Y-020Y-010M-3Y- 010M-1Y-0M-0AP NIFA, Peshawar.

Concurrency of Four Euler Lines
Apr 9, 2001 - F−. D+. D−. O. Figure 2. The Parry reflection point. This is the reflection of the circumcenter in the focus of the Kiepert parabola.

Reconstruction of Orthogonal Polygonal Lines
algorithm has a low computational complexity and can be used for restoration of orthogonal polygonal lines with many vertices. It was developed for a raster- to-vector conversion system ArcScan for ArcGIS and can be used for interactive vectorization

Points and Lines Axis-parallel Lines Hyperplanes ... - Semantic Scholar
segments in the tour (or the path) are axis-parallel. Four Optimization Problems. • Minimum-Link Covering Tour. • Minimum-Link Rectilinear Covering Tour.

parental lines of hybrid rice
Climatic factors play a major role in altering the floral biology .... 017-0LSL yy„OI X SZ'y-£IO'0-„-0 I X Lşşſ-00Z 0ſuſuɔAaog \sug og SK2GI (e ț7ț7068 SV 9.

Test Pair of lines
2) Find the joint equation of the following pair of lines: 3) passing through (2, 3) and parallel ... 17)AOAB is formed by the lines x2 – 4xy + y2. = 0 and the line AB.

eCounty Lines -
LEADING OFF: Federal Spending Bill Fully Funds PILT, Reauthorizes SRS. There is good news for Colorado counties in the $1.3 trillion federal spending bill Congress passed last week. In addition to funding the federal government through September 30,

Points and Lines Axis-parallel Lines Hyperplanes ... - Semantic Scholar
with constraint, the algorithm fails to find a solution to our counterexample. (Another ..... rankx ¯y(pi ), then initialize the four coordinates ai ,bi ,ci ,di to the index i.

tight lines
bank balance and lack of holidays make me realise that this is not something that can be done on a regular basis. (Steve Long ... In the article Horsey states that he already thought Tasmania had the best Stillwater trout fishery in the world and he

pdf-174\pictures-of-architecture-architecture-of-pictures-a ...
... apps below to open or edit this item. pdf-174\pictures-of-architecture-architecture-of-pictur ... tion-between-jacques-herzog-and-jeff-wall-moderated.pdf.

An Investigation of the Relationships between Lines of ...
We measure software in order to better understand its ... the objectives of software metrics. ... For example, top 10% of the largest program account for about.