Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
Published byModified over 6 years ago
Presentation on theme: "Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building."— Presentation transcript:
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building Component- Based Applications
Typical Steps in Building a Component- Based Application (1) Gather requirements Decide scope of application Analyze requirements Identify parts that can be componentized Define interfaces
Typical Steps in Building a Component- Based Application (2) Decide which components to buy, reuse in-house ones, or build Implement components Integrate and compose application Test components Test application increment composed from components
Typical Steps in Building a Component- Based Application (3) Understand the Requirements Define the Architecture Implement the solution Test the implementation
Components & Software Architecture Compositional style of developing application Application components adhere to some set of predefined convention to support composition Components implement two interface types –functional, that reflects its role in the system –extrafunctional, reflecting the model imposed by the underlying component framework
Model for component reuse There are three steps for reuse –locating the component –understanding the component by an introspection mechanism –adapting and integrating components for business workflow
Key to Successful CBSD Successful component-based development of sophisticated applications requires –an effective application architecture –proper controlled iterative development approach –high quality testing For significant SW systems, the quality of the SW architecture is a key determinant of a project’s success than the set of available components.
Role of Component Technologies for developing Distributed Applications Distributed applications have 3-tier or N-tier architecture –Presentation tier –Business logic tier –Data access tier Component technologies play a significant role in developing all three tiers Component infrastructures provide several services that help ease development of middle-tier components
Popular Component Technologies for Developing Distributed Applications Bus Microsoft’s COM+, and now the.NET framework Sun Microsystem’s EJB and J2EE specifications OMG’s CORBA specifications
Benefits of CBSD (1) Enables reuse of core functionality across applications Applications can be developed more quickly Can result in higher quality, more reliable software Lets developers focus more on the application problems rather than low level programming details Can be cheaper than traditional development
Benefits of CBSD (2) Flexibility in choice of tools and languages to implement parts of solutions as interoperable components Offers the best of both alternatives in the build vs buy decision Encapsulates organizational best practices such that they can be adapted as business conditions change
CBSD Scenario Today (1) Improved and functionality rich Component infrastructures are available to facilitate CBSD –Microsoft’s COM/ActiveX, COM+,.NET, –Sun’s --JavaBeans, EJB, J2EE –Commercial CORBA implementations Large third-party component market is in place Types of components available are expanding rapidly
CBSD Scenario Today (2) Not only desktop applications but also Enterprise applications can be built using server side components that run within an Application Server Component technology is playing a significant role in building Web applications Powerful tools have become available for designing and testing component-based applications FINE