Components, Component Models and Reuse - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Components, Component Models and Reuse

Description:

OLE: Object Linking and Embedding. COM: Component Object Model (component model underlying OLE) ActiveX (enhancement and generalization of OLE) DCOM: Distributed COM ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 17
Provided by: ics123ins
Learn more at: https://www.ics.uci.edu
Category:

less

Transcript and Presenter's Notes

Title: Components, Component Models and Reuse


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
ReviewArchitectural 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
    components functionality
  • Class name, interface elements, resources, visual
    representation, etc.
  • Some component standards also support
    metaoperations
  • Supports discovery of a components capabilities,
    especially at runtime
  • Encapsulated in separate components or
    metaclasses
  • Often called introspection or reflection
  • Introspection is a misnomerimplies component
    looking at itself
  • Reflection is a better termexternally 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 isnt a winner?
  • Interoperability between component standards is
    always possible
  • Bridges
  • Adapters
  • Wrappers
  • Etc.
Write a Comment
User Comments (0)
About PowerShow.com