Component-Based Software Recommended Reading DF14900 Software Engineering CUGS

Component-Based Software Recommended Reading DF14900 Software Engineering CUGS

TDDD05 Component-Based Software Recommended Reading DF14900 Software Engineering CUGS Szyperski: Component Software – Beyond Object-Oriented nd Component-based Software Programming, 2 edition. Addison-Wesley, 2002. Douglas McIlroy. Mass-produced software components. http://cm.bell-labs.com/cm/cs/who/doug/components.txt Introduction and overview in: P. Naur and B. Randell, "Software Engineering, Report on a Christoph Kessler conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968", Scientific Affairs Division, NATO, Brussels, 1969, 138-155. Christoph Kessler, IDA, Linköpings universitet, 2010. C. Kessler, IDA, Linköpings universitet. 1.2 TDDD05 / DF14900 Motivation for Component Based Mass-produced Software Components Development Managing system complexity: Garmisch 1968, NATO conference on software engineering Divide-and-conquer (Alexander the Great) McIlroy: Well known in other disciplines Mechanical engineering (e.g., German DIN 2221; IEEE standards) Every ripe industry is based on components, since these Electrical engineering allow to manage large systems Architecture Computer architecture Components should be produced in masses and composed to systems afterwards Outsourcing to component producers Goal: Reuse of partial solutions Easy configurability of the systems Variants, versions, product families C. Kessler, IDA, Linköpings universitet. 1.3 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.4 TDDD05 / DF14900 Mass-produced Software Components Mass-produced Software Components Later McIlroy was with Bell Labs ... InIn the the phrase phrase ` mass`mass production production techniques techniques,',' my my emphasis emphasis is is on on `techniques' and not on mass production plain. `techniques' and not on mass production plain. ... and invented pipes, diff, join, echo (UNIX). OfOf course, course, mass mass production, production, in in the the sense sense of of limitless limitless replication replication ofof a a prototype, prototype, is is trivial trivial for for software. software. Pipes are still today the most employed component system! ButBut certain certain ideas ideas from from industrial industrial technique technique I Iclaim claim are are relevant. relevant. -- The The idea idea of of subassemblies subassemblies carries carries over over directly directly and and is is well well exploited. exploited. - The idea of interchangeable parts corresponds roughly to our term - The idea of interchangeable parts corresponds roughly to our term Where are we today? `modularity,'`modularity,' and and is is fitfully fitfully respected. respected. -- The The idea idea of of machine machine tools tools has has an an analogue analogue in in assembly assembly programs programs andand compilers. compilers. YetYet this this fragile fragile analogy analogy is is belied belied when when we we seek seek forfor analogues analogues of of other other tangible tangible symbols symbols of of mass mass production. production. -- There There do do not not exist exist manufacturers manufacturers of of standard standard parts, parts, muchmuch less less catalogues catalogues of of standard standard parts. parts. -- One One may may not not order order parts parts to to individual individual specifications specifications of of size, size, ruggedness,ruggedness, speed, speed, capacity, capacity, precision precision or or character character set. set. C. Kessler, IDA, Linköpings universitet. 1.5 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.6 TDDD05 / DF14900 Real Component Systems Definition of “Component” Lego “A software component is a unit of composition with contractually specified interfaces and Square stones explicit context dependencies only. A software component Building plans can be deployed independently and is subject to composition by third parties.” IC‘s - C. Szyperski, ECOOP Workshop WCOP 1997. Hardware bus How do they differ from software? C. Kessler, IDA, Linköpings universitet. 1.7 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.8 TDDD05 / DF14900 More Definitions of “Component” (cont.) More Definitions of “Component” “A reusable software component is a logically cohesive, loosely coupled Heineman / Councill [Ch.1]: module that denotes a single abstraction” “A software component is a software element MetaGroup (OpenDoc): -Grady Booch that conforms to a component model “Software components are defined as prefabricated, and can be independently deployed and composed pretested, self-contained, reusable software modules without modification according to a composition standard. bundles of data and procedures - that perform specific functions.” A component model defines specific interaction and “A software component is a static abstraction with plugs.” composition standards. -Nierstrasz/Dami Sametinger: Composition is the combination of two or more software “Reusable software components are self-contained, components yielding a new component behavior at a different clearly identifyable pieces that describe and/or perform level of abstraction ... [which is] determined by the components specific functions, have clear interfaces, being combined and the way how they are combined.” appropriate documentation, and a defined reuse status.” C. Kessler, IDA, Linköpings universitet. 1.9 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.10 TDDD05 / DF14900 Are Objects Components?? Component as unit of composition Szyperski [CS 4.1]: No! U. Assmann (2003): An object is a unit of instantiation. A component is a container with It has a unique identity. variation points It may have state, and this can be (externally) observed extension points It encapsulates its state and behavior. that are adapted during composition Components are rather prototypes / blueprints / plans from which (stateful) objects can be instantiated A component is a reusable unit for composition e.g., a function definition, type definition, class or set of classes A component underlies a component model No (externally observable) state Only one copy required per context (e.g., process) abstraction level Unit of independent deployment composition time (static or runtime?) Unit of third-party composition C. Kessler, IDA, Linköpings universitet. 1.11 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.12 TDDD05 / DF14900 Component Systems (Component Platforms) Software Composition Systems A composition system has We call a technology in which component-based systems can be produced a component system or component platform. A component system has Component Model Composition Technique Component Model Composition Technique CompositionComposition for description of forfor compositions compositions of of LanguageLanguage for description of components componentscomponents components forfor programming-in-the- programming-in-the- largelarge andand architecture architecture C. Kessler, IDA, Linköpings universitet. 1.13 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.14 TDDD05 / DF14900 Issues in Component/Composition Systems The Ladder of Component and Composition Systems Component Model Software Compo- How do components look like? Aspect Systems View Systems sition Systems Secrets? (Location, lifetime, language, platform, …)? Aspect Separation Composition Composition Binding points, binding time? Operators Language Aspect-J COMPOST Interfaces, contracts, substitutability? Architecture as Aspect Darwin, CoSy, Parameterizability? Adaptability? Extensibility? Architecture Systems UNICON, BPEL Standardization of execution environment, services? Web Services Uniformly Interoperable SOAP, Composition Technique Standard Components WSDL How are components glued together, composed, merged, applied? Classical Standard Components .NET CORBA Component Systems Beans EJB Composition time (Compile- / Link- / Deployment- / Connection- / Run-time ...) Objects as Object-Oriented Systems C++ Java Run-Time Components Composition Language How are compositions of large systems described and managed? Modular Systems Modules as Compile- Modula Ada-85 Time Components C. Kessler, IDA, Linköpings universitet. 1.15 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.16 TDDD05 / DF14900 The Essence of the 60s-90s: Blackbox Composition LEGO Software Procedural systems Modular systems Components Object-oriented technology Component-based programming with COTS (Components-off-the-shelf) systems Connectors Component-based CORBA, EJB, DCOM, COM+, .NET applications Software architecture description languages Composition recipe Blackbox composition C. Kessler, IDA, Linköpings universitet. 1.17 TDDD05 / DF14900 C. Kessler, IDA, Linköpings universitet. 1.18 TDDD05 / DF14900 Procedural Systems Procedures as Composition System Caller Fortran, Algol, Pascal, C, ... (code) The procedure is the Linker Component Model Composition Technique component Content: binary code with symbols Connection by linking object files Callee (code) Binding points: linker symbols Program transformation on object files The activation record the procedures (with parameters) and Composition time: link-time, static instantiation global variables Run-time stack contents Component model is supported Callee- by almost all processors AR directly Caller AR addr. Return address Caller- Caller- Caller- JumpSubroutine instruction AR AR AR Composition Language Return instruction call ret C. Kessler, IDA, Linköpings universitet. 1.19 Run time TDDD05 / DF14900 C. Kessler, IDA,

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us