1 / 16

Components, Component Models and Reuse

Components, Component Models and Reuse. ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine http://www.isr.uci.edu/classes/ics123s02/. * with very special thanks to David S. Rosenblum for the use of his materials. What Is Reuse? (I).

yasuo
Download Presentation

Components, Component Models and Reuse

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. Components, Component Models and Reuse ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine http://www.isr.uci.edu/classes/ics123s02/ * with very special thanks to David S. Rosenblum for the use of his materials..

  2. What Is Reuse? (I) • Develop systems of components of a reasonable size and reuse them • Further use or repeated use of a component • Adapting components for use outside their original context • Extend the idea beyond code to other development artifacts • Goals of reuse are primarily economic • Save cost/time/effort of redundant work, increase productivity • Decrease time to market • Improve systems by reusing both the artifact and the underlying engineering experience • Economic goals achieved only when units of reuse reach critical mass in size, capability and uniformity

  3. What Is Reuse? (II) • Idea originally due to Doug McIlroy “Mass Produced Software Components”, 1968 NATO Conference on Software Engineering • Reusable components, component libraries • Named as a potential “silver bullet” by Fred Brooks (1987) • A lot of research interest in the 1980s and 1990s • Technical and managerial barriers have prevented widespread success with reuse and with reuse-oriented technologies • This led McIlroy to believe he had been wrong!

  4. What Is Reuse? (III) • The term reuse is a misnomer • No other engineering discipline uses the term • Systematic design and use of standard components is accepted practice in other engineering disciplines • The term will (eventually) become obsolete • The important ideas behind reuse are centered on the notion of components • Design of components for use in multiple contexts • Design of families of related components • Design of components with standardized packaging

  5. Review:Architectural Components • A component is an architectural building block that is … • A unit of computation or a data store, with an interface specifying the services it provides • A unit of deployment • A unit of reuse

  6. The Difference Between Components and Objects • Objects have a unique identity • Objects have a persistent state • Objects are instances of a class, with classes arranged in hierarchies according to inheritance relationships (object-oriented design and programming) • Components may contain many classes and class instances • Objects can be passed as parameters in methods • Components vary more dramatically in size

  7. Component Packaging Standards • Models and tools for building, packaging and interconnecting software components • Called by many different names • Component standards • Component models • Distributed component platforms • … • Our focus in this course will be on the C2component model, although we will discuss others

  8. Key Goals of a Component Standard • Language independence • Interchangeability of Components • Requires separation of interface from implementation • Requires standardized interface definition language (IDL) • Current IDLs primarily support syntactic interface specification • Limited support for specification of semantics: strong typing • Customizability of Components • Components are tailored for application use in well-defined, predetermined ways • Compositionality of Components • Easy formation of larger-grained components and whole applications

  9. Important Features of Component Standards • Component interfaces • Metadata • Integrated development environments (IDEs) • Distributed server components

  10. Component Interfaces • Define facilities for interoperation with other components • Properties/attributes/data members • Entities forming component state • Methods/operations/function members • Entities allowing access and changes to component state • Events • Component response to internal or external stimuli • Event consumers (other components) register their interest with a component that generates events

  11. Component Metadata • Component data for the use of other components, rather than for the direct support of the component’s functionality • Class name, interface elements, resources, visual representation, etc. • Some component standards also support metaoperations • Supports discovery of a component’s capabilities, especially at runtime • Encapsulated in separate components or metaclasses • Often called “introspection” or “reflection” • Introspection is a misnomer—implies component looking at itself • Reflection is a better term—externally available information reflecting internal capabilities

  12. Integrated Development Environments (IDEs) • Application development based on direct manipulation of visually rendered components • Drag-and-drop composition • Color-coded syntax source code highlighting and checking • Integrated source code editors, compilers, debuggers • Class, object, component repositories • Configuration management capabilities • Versions • Configurations • Teams

  13. Distributed Server Components • Support for “enterprise-wide” distribution and management of shared multi-user applications • Protocols for communication with remote components • Transaction services for shared data components • Component and resource naming services • Security services • System management, monitoring, administration services • This is the focus of distributed object technology and other kinds of client/server middleware

  14. Component Frameworks • Component-based implementation of an important design pattern or architectural style, tailored to specific application domain • Provides guidance for application construction • Provides base architecture that can be tailored for specific application • Well-known example: Microsoft Foundation Classes (MFC) • Implementation of Model-View-Controller (MVC) style for GUI development • Supported by powerful IDE (Visual C++/Visual J++) • Application generation • Development wizards

  15. Leading Creators of Component Standards • Microsoft • OLE: Object Linking and Embedding • COM: Component Object Model (component model underlying OLE) • ActiveX (enhancement and generalization of OLE) • DCOM: Distributed COM • SOAP: Simple Object Access Protocol (Is this a component standard?) • Sun Microsystems • JavaBeans • Enterprise JavaBeans • Jini • Object Management Group (OMG) • OMA: Object Management Architecture • CORBA: Common Object Request Broker Architecture (part of OMA) • UML: Unified Modeling Language • World Wide Web Consortium (W3C) • XML (Is this a component standard?)

  16. Who Will Win? • Who knows? • Microsoft tends to win everything • But there is a lot of industry buy-in for Java and related technologies • OMG stays afloat by reacting to whatever Microsoft and Sun do • What if there isn’t a winner? • Interoperability between component standards is always possible • Bridges • Adapters • Wrappers • Etc.

More Related