240 likes | 256 Views
Dive into advanced object composition, delegation strategies, environmental acquisition, dynamic inheritance, and new abstractions in component software design. Learn about subject-oriented and aspect-oriented programming, XML components, and more.
E N D
Onthehorizon Chapter twenty-five of: Szyperski, Clemens et al. Component Software - Beyond Object-Oriented Programming. Second Edition
Contents • Advanced object composition • Delegation • Split Objects • Environmental acquisition • Dynamic inheritance • New forms of object and component abstraction • Subject-oriented programming • Aspect-oriented programming • XML Components
Advanced object composition • Class composition is too static for many components applications • Object composition is usually based on message forwarding • The Loss of identity of the whole causes some problems
Delegation • Dependencies between base class and subclass • Delegation-based object composition problem • Performance aspects
Split Objects • A web of objects with a common identity established by means of delegation • Individually a fragment of a split object does not have object status • Delegations across split objects is excluded in this model • Hierarchical split objects • Reorganization
Environmental acquisition • Objects are embedded in a containment hierarchy • Delegation or forwarding requests are sent up the containment hierarchy
Dynamic inheritance • The idea is to generalize the concept of a base class to that of a base object selected at object construction time • Rely on delegation between an object and its base object
New forms of object and component abstraction • Fundamental property of objects • Traditional inheritance • Supertype
Subject-oriented programming • A subject can associate state and behavior with an object identifier as required by that subject • Association of property • Separation of concerns along hyperplanes
Aspect-oriented programming • AOP is about explicitly slicing programs according to the various aspects they address • AOP weavers • Post-deployment weaving
XML Components • XML world is mostly declarative in nature • Still be necessary to establish an appropriate component concept • XML web services
Gamut of markets Chapter twenty-five of: Szyperski, Clemens et al. Component Software - Beyond Object-Oriented Programming. Second Edition
Contents • Component platforms and infrastructure • Tools • Professional Services
Component platforms and infrastructure • The value of component platforms and infrastructure can exceed that of used components • Approaches to reduce the cost of component construction
Component design and implementation tools • Rests on environmental specifications • Should use RAD methods • Use the same environment to prototype a component and implente the component • Support for the construction of models and supporting futher metadata
Component testing tools • Testing of components is the single most demanding aspect of component technology • Systematic aproach to testing are needed • Advisable strategies
Component assembly tools • Assembly needs to be automated • Differences from hardware assembly
Component system diagnosis and maintenance • Related to component testing • Diagnosis is tricky because systems consist of components from many different vendors • Diagnosis tools and ways of operation • Requirements of maintenance
Component system and framework architects • These tasks are extremely demanding • Independent architecture firms can concentrate the expertise • Few clients X Open markets
Component assembly consultants • Component assembly is supposedly simple… • Component specializing in assembly of components can find a broad market • COTS (commercial off the shelf) • Act knowing well the potential and limitations of products and helping gauge the risks and benefits
Component configuration management • Outsourcing • Monitoring of component markets • Development of gradual migration plans and the integration • Migration from monolithic solutions to component-based ones
Component warehouses, marketing, and consulting • Traditional aspects… • All activities are likely to be fully electronic • Legal and practical protection offered by physical package becomes unnecessary
Component operators, web services, application service providers • Component paired with a service provider forms a marketplace service • Business model will be concentrated in provisioning service combined with availability and help desk services