90 likes | 98 Views
This article discusses the trends in software engineering, specifically distributed objects and component software. It covers the benefits, challenges, and proposed solutions for reliable reuse in component technology.
E N D
P SATel Institute for Information Processing “Sant’Anna” school Pisa University of Pisa Today trends in Software Engineering 1. Distributed Objects The applications consist of multiple objects that can be physically dispersed across the network. 2. Component Software The applications are formed by the integration of multiple “pieces”, that can be developed separately and by different people. Roma, 22 novembre 2001 - 1
Distributed Objects P SATel Client Objects Server Objects Object Request Broker (ORB) Object Services Basic distributed-objects model State of the practice middleware: Corba (OMG) JavaRMI (Sun) DCOM (Microsoft) Roma, 22 novembre 2001 - 2
Why to use Component Software? P SATel • Building from scratch large software systems requires enormous financial and time resources • It is difficult to obtain high reliability Why not to use components? • Basically reusing components requires less time in all phases of software production (then lower costs) • Components simplify update • Three new roles in software production: • Components architect • Components developer • Components assembler • More specialization then better quality Roma, 22 novembre 2001 - 3
Component Software P SATel Goal, plug-&-play software but It is difficult to associate the “semantic” to a Component What is a software component? “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties” C. Szyperski Roma, 22 novembre 2001 - 4
Component Software remarks P SATel • Note: • Inherent contractual nature of a component • Also QoS is important in Component specification Component is not Object!! 1. A Component: is a unit of independent deployment is a unit of third-party composition has no persistent state 2. An Object: is a unit of instantiation; it has a unique identity has a state; this state can be a persistent state encapsulates its state and behaviour Roma, 22 novembre 2001 - 5
Middleware in Client/Server Computing P SATel Three-tier & n-tier Client/Server • Presentation Layer • Processing Layer • Data Layer Distributed objects and Components in Client/Server Computing Component model for server side: • J2EE - EJB (Sun) • .Net (Microsoft) • CORBA Component Model Roma, 22 novembre 2001 - 6
Reliability of Component technology P SATel Is it necessary to retest a software component, or the reuse of already tested components guarantees per se reliability? 1996 - Ariane 5 exploded during the maiden voyage! Q: Which was the problem? R: No retested software component from Ariane 4 • Generally testing is driven by domain use • In component technology it is impossibile to know, in advance, all applications domains • Then: • Customer must consider retesting of components • Components must be realized with reuse in mind Roma, 22 novembre 2001 - 7
Proposed solutions for reliable reuse P SATel Information carried by the interface are inadeguate for reuse!! (lacking in semantic) Proposed solution for more reliable reuse: • Design by Contract • Certification • Built-in test • Additional information enclosed with the component Roma, 22 novembre 2001 - 8
Can Monitoring be useful in Component Technology? P SATel • Components are extensively instrumented, from vendors, with control obtained from specifications • Customers formalize the requirements from the specification for each component • New approach: to insert “thread monitor” • Performance?? • We can introduce severity levels with assertions and then monitoring levels • When components reach “sufficient” reliability we can reduce the monitoring level Roma, 22 novembre 2001 - 9