components component models and reuse
Download
Skip this Video
Download Presentation
Components, Component Models and Reuse

Loading in 2 Seconds...

play fullscreen
1 / 16

Components, Component Models and Reuse - PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on

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).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Components, Component Models and Reuse' - yasuo


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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
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
what is reuse ii
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!
what is reuse iii
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
review architectural components
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
the difference between components and objects
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
component packaging standards
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
key goals of a component standard
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
important features of component standards
Important Features of Component Standards
  • Component interfaces
  • Metadata
  • Integrated development environments (IDEs)
  • Distributed server components
component interfaces
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
component metadata
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
integrated development environments ides
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
distributed server components
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
component frameworks
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
leading creators of component standards
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?)
who will win
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.
ad