Component Markets Developing Applications with COTS Components Component
- Slides: 47
Component Markets Developing Applications with COTS Components Component Markets
Any Questions? Component Markets
Agenda 1. 2. 3. 4. 5. High-level overview of CBSD and COTS Case Study: When it works Potential Problems Case Study: When it doesn’t work How to make it work 1. Assessing Components 2. Component Qualities 3. Cost Estimation 11/29/2020 Component Markets 3
Component-Based Software Development: An Overview • The idea: Let’s make software like integrated circuits! Assemble, don’t build software! • Component: “A piece of software written with reuse in mind that can be deployed with little or no modification. ” -- Mancebo • Usually divided into – Black box components – White box components • Components have ‘weight’ 11/29/2020 Component Markets 4
CBSD: Promises • A component market will exist – Bringing economies of scale to the software world – Reduce development costs and time-to-market – Increased vendor specialization – Higher software quality • Standard components used to make custom software – Thus retaining individual competitive advantage 11/29/2020 Component Markets 5
Plug-and-play! Spreadsheet functions 11/29/2020 Component Markets 6
New Roles in the Component Market • Component System Architect – Ensures different frameworks can cooperate • Component Framework Architect – Ensures different components can cooperate • Component Developer – Develops component functionality • Component Assembler – Assembles applications from components 11/29/2020 Component Markets 7
The Technologies • Components need to communicate • Standards and technologies – OLE, Active. X, COM/COM+ – Java Beans, EJB – CORBA 11/29/2020 Component Markets 8
Current State of the Market • Numbers are soft, but it appears the market is on its way up – Initially, fine-grained GUI components – Now, more medium and large-grain server components • 54% of software projects used purchased code (2000) 11/29/2020 Component Markets 9
Case Study: When it Works… • Hubble Space Telescope Control Center Software was redone • Goals: – Use COTS to save money – Extend life of HST until 2010 • Mission-critical software – High performance requirements – High security requirements 11/29/2020 Component Markets 10
Case Study: When it Works… • Final Product – Integration of 30+ COTS/GOTS components with 1 M lines of legacy code using. 5 M lines of glue code • Results – Replaced 3 M lines of source code – Proof of concept delivered in 3 months – Live system delivered in 1 year – Brand new architecture delivers greater 11/29/2020 Component Markets functionality 11
CBSD: Perils • Components may provide more or less functionality than is needed • How do you know if a component performs as specified? – Testing black-box components can be difficult • Components don’t always work with other components or with existing code • The component market fluctuates greatly – Component lifecycles are short – No clear, established and trustworthy vendors 11/29/2020 Component Markets 12
Case Study: When it Doesn’t… • The Aesop Fable – An example of large-scale code reuse gone wrong • Summary – Even when existing components meet our needs, they may not fit well together 11/29/2020 Component Markets 13
For the Rest of the Lecture… • We’re going to talk about ways to avoid the perils of using commercial software components • This work is research in progress – Still no ‘perfect’ solution • Specific Techniques • General Guidelines 11/29/2020 Component Markets 14
The Development Process • Component Assessment • Component Tailoring • ‘Glue-code’ Development 11/29/2020 Component Markets 15
Principles to Adhere to 1. Process happens where effort happens 2. Don’t start with requirements 3. Avoid premature commitments, but have a plan 4. Buy information early to reduce risk 5. Prepare for COTS change 11/29/2020 Component Markets 16
Formal Component Evaluation (Lawlins et. Al) • “How do we select amongst many potential components? ” • Purchasing a COTS component is an investment • When the investment is significant… – Analysis should be done, on par with the analysis done for other investments – Traditionally, this analysis has been done in an adhoc manner 11/29/2020 Component Markets 17
Formal Component Evaluation • Uses weighted averages – (you have seen this before!) • Even uses controls. Components are evaluated: – By the same people – That have the same configuration – In the same scenarios – Using the same data 11/29/2020 Component Markets 18
Formal Component Evaluation • In general, component assessment is divided up into three stages 1. Trade Study: A ‘quick and dirty’ filtering of a large number of components 2. Hands-on Evaluation: A more thorough analysis of the remaining components 3. Final Selection: Selection based on the results of previous stages 11/29/2020 Component Markets 19
Formal Evaluation Process 11/29/2020 Component Markets 20
Trade Study • Break down your requirements – These will form the basis for questions on a questionnaire – Requirements should be of similar granularities – Send questionnaire to vendors and current users • Component Requirements Matrix • Components receiving half or more the possible points move on 11/29/2020 Component Markets 21
Components Requirements Matrix 11/29/2020 Component Markets 22
Hands-On Evaluation • You must actually have access to the components – Necessary if component represents a significant investment • Use components as the basis for tests – Scenario-Based Tests – Examining Specific Criteria 11/29/2020 Component Markets 23
Hands-On Evaluation 11/29/2020 Component Markets 24
Criticism of this Technique • This technique is primarily requirementsdriven – Tends to select “best-in-breed” components – Should be tailored to reflect internal requirements • Assumes clean division of requirements • Full assessment not always cost effective 11/29/2020 Component Markets 25
Component Selection: Revised • The previous technique selecting components was fundamentally requirements-based • Now you will see a technique for selecting components that is architecture based • Goal: – Avoid the problems encountered in “Architectural Mismatch” 11/29/2020 Component Markets 26
Architecture-Based COTS Selection • When using COTS, you accept their architectural restrictions • Component selection and architecture definition are intertwined • The following method treats them as such • Here we’ll use a simple case study to exemplify the points – Case study come from Mancebo 2005 11/29/2020 Component Markets 27
Architecture-Based COTS Selection • 4 step, iterative process • Here we will select components for a multimedia presentation application • Think “Powerpoint 3 D” Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach 11/29/2020 Component Markets 28
Architecture-Based COTS Selection • • Possible architectures are modeled as a decisions space Examples: 1. Should graphics object know how to render themselves (KAD 1 a), or should they be decoupled from rendering (KAD 1 b)? 2. Should objects keep track of time individually (KAD 2 a), or should their be master synchronization object (KAD 2 b)? 3. Should presentations be stored in XML format (KAD 3 a) or as serialized objects (KAD 3 b) ? 11/29/2020 Component Markets Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach 29
Architecture-Based COTS Selection • • Perform analysis of available components Create matrices reflecting the assumptions a capabilities of components 1. Requirements fulfillment 2. Component dependency 3. Architectural Assumptions 11/29/2020 Component Markets Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach 30
Requirements Fulfillment Ogre Direct. X Open. GL Graphics API X X Audio X 3 d Text X Scene Mgmt. Open. AL QT X X X GUI Widgets 11/29/2020 OGLFT X Component Markets 31
Component Dependency & Architectural Assumptions Graphics API Ogre MFC Open. GL Ogre X KAD 1 Direct. X 1 a X KAD 3 OGLFT X GLTT X 11/29/2020 KAD 2 Component Markets 32
Architecture-Based COTS Selection • • To determine the feasible selections: Enumerate the architectural approaches – Of the form: – Example: • Choose Architectural Decisions Model Component Market Enumerate implementation approaches • • List Implementation Approaches Of the form: Example: Choose Best Implementation Approach 11/29/2020 Component Markets 33
Architecture-Based COTS Selection • Under the constraints that this set of components: 1. Covers all rows in the requirements matrix 2. Satisfies all component dependencies 3. Is consistent with Architectural Approach 11/29/2020 Component Markets Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach 34
Architecture-Based COTS Selection • • • After all of this, you’ll come up with several feasible permutations. These permutations are evaluated on the basis of Architecture and Implementation together. Example: – Portability is a high priority so you lean towards implementations that don’t require Direct. X or MFC. 11/29/2020 Component Markets Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach 35
Component Quality • Quality Characteristics – Dimensions of software quality • Quality Attributes – Specific information about components that will help you determine the characteristics • Here we will cover Characteristics and Attributes specific to COTS components 11/29/2020 Component Markets 36
Where does this come from? • ISO 9126 defines Quality Characteristics • This is a proposed modification to the specification • Modified to recognized specifically what defines quality in COTS components 11/29/2020 Component Markets 37
Reliability: Maturity • We would like to use stable components. • Maturity can be measured in: – Volatility: The mean time between versions – Evolve-ability: The number of versions – Failure Removal: The bugs fixed in the current component 11/29/2020 Component Markets 38
Usability: Learn-ability • Note the difference in perspective here – Developer’s not end-user’s usability • Can be measured with – Time to use – Time to configure – Time to admin – Time to master 11/29/2020 Component Markets 39
Usability: Understand-ability • Closely related to Learn-ability • Can be measured in the quality of: – Human-readable documentation – Help System – Machine-readable documentation – Training Provided – Demo-ed functionality 11/29/2020 Component Markets 40
Maintain-ability: Change-ability • Different from the traditional idea of maintainability • Can be measured in: – Customizability: Number of customizable parameters – Customizability Ratio: Parameters / Interfaces – Change Control Capability: Difficulty of identifying component versions 11/29/2020 Component Markets 41
Maintain-ability: Testability • Can the proper functionality of this component be tested easily? • Can be measured in: – POST: Does component perform environment test? – Test suite: Is a test suite provided? – Testable interfaces: Do interfaces allow for easy testing? 11/29/2020 Component Markets 42
Cost Estimation • • • Most of you are familiar with COCOMO COCOTS is an extension to COCOMO for COTS-based projects Four sources of cost (In order of cost): 1. 2. 3. 4. 11/29/2020 Glue-Code Development Tailoring Volatility Assessment Component Markets 43
COCOTS • Assessment • Glue Code • Tailoring • Volatility 11/29/2020 Component Markets 44
Unknowns • Pricing model? – Pay-per-use? Licensing fees? One time cost? • Legal issues? – Who holds liability? • Current Processes and Metrics are insufficient 11/29/2020 Component Markets 45
Any Questions? Component Markets
1. References Abts, C. Boehm, B. Clark, E. B. 5. Lawlis, P. K. Mark, K. E. Thomas, D. A. “COCOTS: A COTS Software Courtheyn, T. , “A formal process for Integration Lifecycle Cost Model evaluating COTS software products, ” Model Overview and Preliminary Data Computer, vol. 34, no. 5 pp. 58 -63, May 2001. Collection Findings. ” USC CSE 6. Mancebo, E. and Andrews, A. 2005. A Technical Report , USC-CSE-2000 -501. strategy for selecting multiple components. In 2. L. Bass, C. Buhman, S. Comella-Dorda, Proceedings of the 2005 ACM Symposium on F. Long, J. Robert, R. Seacord, and K. Applied Computing (Santa Fe, New Mexico, Wallnau, “Volume I: Market March 13 - 17, 2005). L. M. Leibrock, Ed. Assessment of Component-Based SAC '05. ACM Press, New York, NY, 1505 Software Engineering, ” Software 1510. Engineering Institute, Technical Note 7. Pfarr, T. and Reis, J. E. 2002. The Integration CMU/SEI-2001 -TN-007, May, 2000 of COTS/GOTS within NASA's HST 2001. Command Control System. In 3. Bertoa, M. and Vallecillo, A. Quality Proceedings of the First international Attributes for COTS Components. In Conference on Cots-Based Software Systems th Proceedings of QAOOSE 02, the 6 (February 04 - 06, 2002). J. C. Dean and A. International Workshop on Quantitative Gravel, Eds. Lecture Notes In Computer Approaches in Object-Oriented Software Science, vol. 2255. Springer-Verlag, London, Engineering (Malaga, Spain, 2002). 209 -221. 4. David Garlan, Robert Allen, and John 8. Vitharana, P. 2003. Risks and challenges of Ockerbloom. Architectural Mismatch or component-based software development. Why it’s hard to build systems out of Commun. ACM 46, 8 (Aug. 2003), 67 -72. existing parts. In Proceedings of the 9. Y. Yang, J. Bhuta, B. Boehm, and D. N. Port. Seventeenth International Conference on “Value-Based Processes for COTS-Based Software Engineering, Seattle WA, April Applications. ” IEEE Software Vol 22 No. 4, 11/29/2020 Component Markets 47 1995. pp. 54 -62. July 2005.
- Les cots
- Frc robot parts
- Cots etl
- Derek schatz
- Cots reuse
- Software licensing best practices
- Les cots
- Cots architecture
- Cots informatique
- Isocout
- Componentes cots
- Cots bot
- Strongly connected components applications
- International financial markets and instruments
- Features of capital market
- Contrasting international markets
- The effects of walmart on local labor markets
- Chapter 9 expanding markets and moving west
- Chapter 9 expanding markets and moving west
- Organizational buying behaviour
- Classification of financial markets
- Pricing of securities in stock exchange
- Fractals in financial markets
- Chapter 18 the markets for the factors of production
- Equity markets and stock valuation
- Encirclement attack examples
- Sociology major dartmouth
- Levich international financial markets
- How do primary and secondary financial markets differ
- Reaching global markets
- Analyzing consumer markets
- Firms in competitive markets chapter 14 ppt
- Mechanics of options markets
- Business markets and business buyer behavior ppt
- Gramin agricultural markets
- Why study money banking and financial markets
- Un emissions gap report
- Consumers producers and the efficiency of markets
- Analyzing consumer markets
- Madura j. financial markets and institutions
- Labor market
- When entering foreign markets basic entry
- Nomura connecting markets east & west
- Mechanics of options
- Cisi financial markets
- Heterogent marked
- Reseller markets consist mainly of
- Role of financial markets