1 / 36

Component-Based Software Engineering

Component-Based Software Engineering. M.R.V. Chaudron www.win.tue.nl/~mchaudro Dept. of Mathematics and Computing Science Eindhoven University of Technology. This lecture. Obstacles to CBD CBD Process domain engineering. Obstacles to CBD. Some Obstacles to CBSD.

Sophia
Download Presentation

Component-Based Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Component-BasedSoftware Engineering M.R.V. Chaudron www.win.tue.nl/~mchaudro Dept. of Mathematics and Computing Science Eindhoven University of Technology

  2. This lecture • Obstacles to CBD • CBD Process • domain engineering

  3. Obstacles to CBD

  4. Some Obstacles to CBSD • Organizational Concerns: • who pays for extra development effort? • (for making components more generic, flexible, ..) • cost of learning

  5. Some Obstacles to CBSD • Commercial Concerns: • No established market! • No Software shops : • marketing, licensing, trading, … • Legal issues: liability (aansprakelijkheid) • Business model (pay-per-copy vs. pay-per-use)

  6. Some Obstacles to CBSD • Technical Concerns: • Method for Design of Components • balance genericity, flexibility, … • Adequate tools are needed; • in particular for integration of third party • components • Need for Common/Standardized: • architectures • component model • data model • specification methods • …

  7. Domain Engineering

  8. What is Domain Engineering ? Typically, organisations build many systems in a single domain Domain Engineering is the activity of collecting, organizing and storing experience in building systems in a particular domain • using reusable assets • providing means for reuse • retrieval, dissemination, adaptation, assembly Goal: Capitalize the experience/expertise acquired in building systems, in order to build new systems more efficiently Assets may be software, but also requirements, domain models In general: domain knowledge

  9. What is Domain Engineering? ... the process of producing, maintaining and cataloging reusable assets, to make them available to application engineering teams.

  10. References on Domain Engineering • FODA – Feature Oriented Domain Analysis Kang, K., et al. Feature-Oriented Domain Analysis (FODA) Feasibility Study (CMU/SEI-90-TR-21, ADA 235785). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1990. • ODM – Organization Domain Modelling Simos, M., et al. Software Technology for Adaptable Reliable Systems (STARS) Organization Domain Modeling (ODM) Guidebook Version 2.0 (STARS-VC-A025/001/00). Manassas, VA: Lockheed Martin Tactical Defense Systems, 1996. Also available onlinehttp://www.asset.com/WSRD/abstracts/ABSTRACT_1176.html • Survey papers: • Arango, G. "Domain Analysis Methods," 17-49. Software Reusability. Chichester, England: Ellis Horwood, 1994.

  11. References on Domain Engineering • Reuse-Based Software Engineering: Techniques, Organization and Controls, H. Mili, A. Mili, S. Yacoub, E. Addy, Wiley & Sons, 2002

  12. Domain Engineering Domain Engineering: inputs and outputs Dom.Eng. Methods Mngmt. Procedures Domain literature Taxonomies Standards Existing Appl. Documentation Dom. Models Customer Surveys Components Expert Advice Domain Expert Domain Analysts Domain Engineer

  13. Domain Engineering Process • Domain Identification & Scoping • What is inside/outside the domain • Identify stakeholders • Domain Analysis • Establish lexicon • Identify commonalities/variabilities • Define a set of reusable requirements • Domain Design • Establish a common architecture for the domain • Domain Implementation • Engineer Asset Base / Implement reusable assets; e.g. models, components, generators, reuse infrastructure, ..

  14. Domain Engineering enabled Application Engineering Domain Engineering Development Domain SW Architecture Implement Reusable Assets Domain Analysis Reusable Assets & Tools Domain Model Domain Software Architecture User Req’s Domain Model Based Analysis Domain Arch.-Based Design Application Development Application Model Application Architecture Application Application Engineering

  15. Domain Analysis • The process by which a software engineer learns about the domain to better understand the problem: • The domain is the general field of business or technology in which the clients will use the software • A domain expert is a person who has a deep knowledge of the domain • Benefits of performing domain analysis: • Anticipation of extensions • Aquire expertise to fill in gaps in available information

  16. Domain Analysis A domain model is an explicit representation of knowledge about the domain • Domain model consists of: • Domain lexicon • Concept models (using e.g. diagrams, formalisms, … ) • Feature models

  17. Features According to FODA: A prominent and user-visible aspect, quality or characteristic of a system. ODM: A distinguishable characteristic of a system that is relevant to a stakeholder of the system In mobile telephones: - polyphonic ringtones - SMS, MMS - dual, tri-band, - … In cars: - airco - power-steering - remote key-lock - …

  18. Feature models • Types of features • Mandatory: All systems must have it • e.g. A car must have an engine • Alternative: • A system must have one out of multiple options • e.g. Transmission may be manual or automatic • Optional: A system may have a feature • e.g. A car may have air-conditioning

  19. Feature Diagram A hierarchical decomposition of features. A concept higher in the tree consists of its children car optional wheels engine steering wheel transmission airco alternative mandatory (default) manual automatic • Additional annotations that may be used in the feature diagram: • mutually exclusive features • rationale for chosing between alternatives • composition rules: airco may be used if horsepower>100

  20. Example Domain Analysis document A. Introduction B. Glossary C. General knowledge about the domain D. Customers and users E. The environment • Tasks and procedures currently performed • Vision on future of domain • Competing software • Similarities to other domains

  21. Maintaining Domain Models • Businesses and their environments change. • Hence Domain Models should be maintained.

  22. CBD Process

  23. Typical Activities of a SE Project • Problem Analysis • Requirement Engineering • Architecture Design • Subsystem Design • Implementation & Unit Test • Integration & System Test • Deployment • Maintenance • (De)comission

  24. Consumer and Producer Processes Two concurrent processes Domain Model Domain Software Architecture Consumer aims to build systems using existing components Producer aims to build component to supply to consumers Application Architecture Reusable Assets & Tools Application

  25. CBD Consumer Process (1) • Problem Understanding • Requirement Engineering • list (sub)system requirements • determine (sub)system test-cases • Component Reconnaisance • Survey available Components • Shortlist Candidates • CBD Architecture Design The components selected influence the architecture!

  26. CBD Consumer Process (2) • CBD Architecture Design • Chose a component model • proprietary vs. industry-provided • Indentify dependencies across components • Design space is typically limited to a set of ‘assemblies’; i.e. discrete set of particular combinations of components

  27. CBD Consumer Process (3) • Finding/Locating Components • search internal (department/company) repositories • search external repositories • Component Selection • Component/Assembly Evaluation • Vendor Selection • Build vs. Buy-decision • Component Acquisition • Component understanding • Acquirer testing • Build Custom Software

  28. CBD Consumer Process (4) • Component Integration • wrapping • adapting/tailoring • installing/configuring • verification & validation of assembly & system • test system-wide properties • Component Maintenance • when to update with a new version • when to switch to another vendor • Component Decomission

  29. Consumer Persective primary criterium: suitable functional & extra-functional properties • How will the component affect the behaviour of other components in the system? • Components inevitably interact through resource use • What does a component require of other components in the system? • Who is responsible for • maintenance of the component in the system? • failures in the final system? Producer or assembler?

  30. Consumer Persective Vendor selection • reputation • product quality • service quality • expected business continuity

  31. Selection Criteria Process: • how fast can the component be delivered? • how much time will it take to integrate? • how much time will it take to maintain? • … Product • does it provide required functionality? • does it not provide superfluous functionality? • quality/cost ratio? • …

  32. Component versus Assembly Selection What count are the properties of the final systems. These are not necessarily those of individual components. Instead of evalutating components, we should evaluate assemblies.

  33. CBD Production Activities (1) • Assess market-potential: • what are current and future needs? • what exists in the market? • Identify/Scope components • balance genericity vs. (size, complexity, …) • select variability • Implement Components • documentation / specification

  34. CBD Production Activities (2) • Verify Components • Certification by 3rd party • Packaging • Distribution • insert into repository

  35. Concluding Remarks

  36. Questions? • You should know • component design guidelines • what domain engineering is • how to read & make feature-diagrams • CBD process Self-Study material: - Chapter .. from Mili

More Related