Software Architectural Design Software Components Instructor Dr. Lawrence Chung.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

A component- and message-based architectural style for GUI software
Technical Architectures
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Chapter 13 Physical Architecture Layer Design
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
CRM WEB UI – ARCHITECTURE- DEFINITIONS For More details please go to
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
BCS 2143 Introduction to Object Oriented and Software Development.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
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
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
©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.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Threading Models in Visual Basic Language Student Name: Danyu Xu Student ID:98044.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
Introduction To System Analysis and Design
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
National Institute of Science & Technology Architecture of Message Oriented Middleware Anindya Kumar Jena [1] Architecture of Message Oriented Middleware.
Architecture of Message Oriented Middleware [1]
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Andrew S. Budarevsky Adaptive Application Data Management Overview.
SE-02 COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require.
CS212: Object Oriented Analysis and Design Lecture 13: Relationship between Classes.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
Cooperation & Interoperability Architecture & Ontology.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
Real-Time Operating System Design
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 OS 1.
CpE PROJECT: Concurrent Programming - Web Services Aim: To develop a multi threaded web service which handles requests from multiple clients, interact.
Wide Area Grid – Technical Requirements Paul Kopp.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Modern Systems Analysis and Design Third Edition
N-Tier Architecture.
Common object request broker
Distribution and components
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Modern Systems Analysis and Design Third Edition
Component--based development
Modern Systems Analysis and Design Third Edition
Architecture Description Languages
An Introduction to Software Architecture
واسط كاربري هوشمند Intelligent User Interface
Multithreaded Programming
Quality Assurance for Component-Based Software Development
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Presentation transcript:

Software Architectural Design Software Components Instructor Dr. Lawrence Chung

Introduction…  What are Software Components? Software components are binary units of independent production, acquisition, and deployment that interact to form a functioning system. -Clemens Szyperski, Component Software The definition highlights several features of software components: Precompiled and linked into a standard binary format. Precompiled and linked into a standard binary format. Reusable program building blocks. Reusable program building blocks. Combined with other components to form an application. Combined with other components to form an application.

Motivation… What are the benefits we get by developing applications using software components? Fast application development. Fast application development. Reduced cost. Reduced cost. Software reuse. Software reuse. Improved maintainability. Improved maintainability. Ability to reconfigure software on the fly. Ability to reconfigure software on the fly. Ability to fine-tune the performance characteristics of real-time applications. Ability to fine-tune the performance characteristics of real-time applications. The simplest answer is: “components are the way to go because all other engineering disciplines introduced components as they became mature - and still use them” -Szyperski, Component Software Also, Component software is gaining widespread acceptance in the software industry. Examples of non-embedded component technologies include CORBA from the ObjectManagement Group, COM from Microsoft, and JavaBeans from Sun.

Components- A feel of them… In the diagram above, software components consist of two main functional entities: A set of useful activities, or services. A set of useful activities, or services. A set of interfaces, or service access points (SAPs), that allow clients (other components) to request the activities. A set of interfaces, or service access points (SAPs), that allow clients (other components) to request the activities.

Component Architecture… The component architecture defines the structure of component binaries. It specifies how a component’s services, SAPs, and other information required for operation fit within the component’s binary. The component architecture also provides mechanisms for performing the following activities: Installing components in the software application. Installing components in the software application. Establishing interactions among components. Establishing interactions among components. Executing component functionality while accommodating real-time constraints. Executing component functionality while accommodating real-time constraints. Managing instances of components. Managing instances of components. Using operating system functionality in an efficient and standard manner. Using operating system functionality in an efficient and standard manner.

How do Components interact? Components communicate with each other using service access points (SAPs). A SAP is an interface that a component provides to clients, allowing them to request particular services. A component can provide multiple SAPs for multiple clients. Each SAP provides an interface for a different set of the component’s services. A component can provide multiple SAPs for multiple clients. Each SAP provides an interface for a different set of the component’s services. The definition for a SAP might include a callback, which allows the component to provide information to the client when it has performed the requested service. The definition for a SAP might include a callback, which allows the component to provide information to the client when it has performed the requested service. SAP code runs within the client component’s execution context. Callback code runs within the server component’s execution context. SAP code runs within the client component’s execution context. Callback code runs within the server component’s execution context.

How Component Execute? SAP-API functions run under the client’s execution context, implementing services within API functions is not a good idea... Instead……. A component’s services can be implemented within its executable threads. A component possesses zero or more threads, each of which runs within an execution context (OS process) defined by the software system. When a client requests a service through a component’s SAP, the component’s API functionality typically schedules execution of a thread.

Questions…!!

Thank you Niraj Agarwal