Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Component Oriented Programming 1 Chapter 2 Theory of Components.
WEB SERVICES DAVIDE ZERBINO.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Some of these slides were excerpted from: Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer.
Distributed Systems Architectures
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen-Bolzano Lesson 1 – Component-Based.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
B. RAMAMURTHY Web services. Topics What is a web service? From OO to WS WS and the cloud WS code.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
SOA, BPM, BPEL, jBPM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
An Introduction to Software Architecture
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Introduction to MDA (Model Driven Architecture) CYT.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
Component-based software architecture Overview Divides the problem into sub-problems each associated with component partitions. The interfaces of the components.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Service Oriented Architecture + SOAP -Robin John.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Lecture 21: Component-Based Software Engineering
Enterprise Computing Distribution and components.
Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Distribution and components
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Inventory of Distributed Computing Concepts
Service Oriented Architecture + SOAP
Analysis models and design models
An Introduction to Software Architecture
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Quality Assurance for Component-Based Software Development
The Current State of CBSE
Presentation transcript:

Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components and Reuse

Components and SW Reusability SW components support “black box” reuse SW components are like black boxes –they encapsulate functionality and provide services through well-defined interfaces Can be reused in many different applications or in building other larger components. Allow cross language reuse. Allow distributing reusable code in an executable format. Source code is not required. Can be interchanged with any other component that provides the same interfaces without breaking the system.

How Components Differ from Objects (1) Components –Can be written in any language –More loosely coupled than objects –Larger granularity than objects –Support multiple interfaces, and interface-oriented design –Support more forms of dynamic binding and dynamic discovery –Have better mechanisms for third party composition –More support for higher order services (security, transactions, etc.) –Designed to obey rules of the underlying component framework

How Components Differ from Objects (2) Objects –Bound to OO languages –Many tight dependencies such as impl. Inheritance, fragile base class –Fine-grained units of composition –Limited forms of connectors (method invocation) –Limited sets of supported services such as security, transactions, etc. –Designed to obey Object-Oriented principles

CBSD and OT (Object Technology) OT is a convenient starting point for CBSD OT does not express the full range of abstractions needed by CBSD It is possible to realize CBSD without employing OT OT is neither necessary nor sufficient for CBSD

CBSD Elements Bus Components Interfaces Component Model Component infrastructure Component Assembly

Software Component A package of software that provides some coherent functionality, can be independently developed and delivered as a unit, and provides its services through well-defined interfaces Adheres to the rules of a Component model

Interfaces (1) An interface is a specification of some behaviour. It contains only operation signatures, no implementation. An interface is a contract between the component and its client. As long as the interface remains the same, the component implementation of an interface can be changed without affecting clients. Programming to Interfaces allow clients to freely interchange components that support the same interface(s).

Interfaces (2) An interface is a collection of logically related operations that define some functionality. Interfaces are the mechanisms by which components describe what services they provide. –Interface description consists of only a specification of the operations. It does not contain any implementation. Interfaces are separated from component implementation of interfaces Client of components need to know only the interfaces of components to use them. –Implementation details of the interfaces by a component are completely hidden from clients.

Typical Component Types (1) UI components/controls: visual representation for business and infrastructure components –widgets, action menus and buttons, icons Business components: cross-organizational streams of activities, tasks and documents –ordering, trading financial instruments, scheduling Foundation components: technical components that provide basic programming and reuse services –linked lists, database index tables, exception handlers

Typical Component Types (2) Data management components: facilities for information exchange between existing application –data exchange and pipeline, format conversion utilities Infrastructure components: processes and entities defining the flow of activities, tasks and documents –files management, performance monitoring, message queuing, fault tolerance

Basic Elements of a Component Model (1) A component model defines standards for Defining interfaces Naming components and interfaces Metadata – information on components, interfaces and their relationships; APIs for accessing such information Interoperability among components – communication and data exchange among components developed by different vendors possibly on different platforms and/or using different languages

Basic Elements of a Component Model (2) Customization of components –Facility for a client to adapt a component prior to its installation or use Composition –Rules for combining components to create larger structures and for substituting and adding components to existing structures Evolution support –Rules and services for replacing components or interfaces by newer versions Packaging and deployment –Packaging implementation and resources needed for installing and configuring a component

Popular SW Component Models Microsoft’s COM (Component Object Model), DCOM, COM+,.NET Framework Sun’s JavaBeans, EJB (Enterprise Java Beans), J2EE specification OMG’s CORBA (Common Object Request Broker Architecture) specification

Component Infrastructure Provides components with services to –find components connected to the infrastructure –make reference to other components using some meaningful naming scheme –guarantee once-only delivery of messages between components –manage transactions consisting of multiple interactions among components –allow secure communication between components

Component Assembly Concerns how an application is composed and built from components First the Application architecture is designed –it describes the design of the application in terms of components –what interfaces are used –how components interact (via calls on operations on interfaces) to realize application functions The Application is then composed by wiring (connecting) together components Visual Application Builder tools make composing component-based applications easy –Examples: Visual Basic IDE, Sun’s BeanBox, etc. FINE