Title: Presentazione di PowerPoint
1Today 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.
1
Roma, 22 novembre 2001 -
2Distributed 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)
2
Roma, 22 novembre 2001 -
3Why 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
3
Roma, 22 novembre 2001 -
4Component 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
4
Roma, 22 novembre 2001 -
5Component 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
5
Roma, 22 novembre 2001 -
6Middleware 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
6
Roma, 22 novembre 2001 -
7Reliability 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
7
Roma, 22 novembre 2001 -
8Proposed 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
8
Roma, 22 novembre 2001 -
9Can 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
9
Roma, 22 novembre 2001 -