COP 4009 4 th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Sharif University of Technology Session # 2.  Contents  Structured analysis and design  Information system development  Systems Analysis and Design.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
CEN nd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Process Models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
A Successful RHIO Implementation
Basic Concepts in Component-Based Software Engineering
Acknowledgements Dr. George T. Heineman Dr. William Councill
Requirements Analysis Concepts & Principles
- 1 - Component Based Development R&D SDM Theo Schouten.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
COP th Lecture October 3, 2005 COP 4009 Component-Based Software Engineering The Case for Components Fall 2005 Instructor: Masoud Sadjadi
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Free Mini Course: Applying SysML with MagicDraw
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
Software Engineering CS B Prof. George Heineman.
©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
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
An Introduction to Software Architecture
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Component Oriented Programming 1 Introduction to COP.
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
1 Here are some quotations to get an overview of the kinds of issues of interest.
Lecture 21: Component-Based Software Engineering
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Basic Characteristics of Object-Oriented Systems
COP st Lecture August 29, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
COP nd Lecture September 12, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
1 The XMSF Profile Overlay to the FEDEP Dr. Katherine L. Morse, SAIC Mr. Robert Lutz, JHU APL
Software Design Refinement Using Design Patterns
Algorithms and Problem Solving
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Unified Modeling Language
Component Based Software Engineering
CEN 5011 Advanced Software Engineering
Component-based Software Engineering
Architecture Description Languages
An Introduction to Software Architecture
Presentation transcript:

COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 2 Acknowledgements  Dr. George T. Heineman –This course is based on the “CS 509 Design of Software Systems - Spring 2005” by Dr. Heineman with some adjustments to become appropriate for undergraduate students. Dr. Heineman has generously offered his course material (including the slides) and his help during preparation of this course. I am very grateful to him. –The original slides and the course material can be found at:   Dr. William Councill and other authors of the main textbook  Dr. Clemens Szyperski  Drs. Betty Cheng, Peter Clarke, Bernd Bruegge, and Allen Dutoit

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 3 Agenda  Component Based Software Engineering  Definitions  Component Infrastructure  Component Model  Tasks and Responsibilities

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 4 Other Engineering Fields  Every other engineering profession – divides problems into sub-problems  Ready-made solutions  Sub-contracted to conform to specifications – conforms to standards – self-imposed industrial regulation – certification regiment for engineers  But not Software Engineering…

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 5 Some Excuses  Software is different from hardware  My software needs are unique  We don’t trust software written elsewhere  Users can live with defective software  We want something better…

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 6 CBSE Methodology  At its core, CBSE is a methodology that: – constructs applications from software units – supports vendors in producing reusable software units – develops core technologies that support the run-time execution of these units – defines agreed-upon standards – engenders trust among participants We will participate in most of these tasks during this semester

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 7 Agenda  Component Based Software Engineering  Definitions  Component Infrastructure  Component Model  Tasks and Responsibilities

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 8 Software Component A Software Component is  a software element  that conforms to a component model  and can be independently deployed  and can be composed without modification  all above according to a composition standard

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 9 Component Model A Component Model defines specific interaction and composition standards. An interaction standard is the mandatory requirements employed and enforced to enable software elements to directly and indirectly interact with other software elements. Component interface Software Entity supply manage consume

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 10 comp Interaction Standard  Based on the concept of an interface – “An abstraction of the behavior of a component”  Provided interface – component implements the interface  Required interface – component interactions with other software elements are captured  Context Dependency in out

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 11 Composition Standard  Composition – the combination of two or more software components yielding a new component behavior  Defines several important concepts – PackagingInstallingInstantiating – DeployingConfiguring

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 12 CMI A Component Model Implementation is  the dedicated set of executable software elements  required to support the execution of components  that conform to the model  The “Plumbing” that enables components to connect and interact with each other

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 13 Agenda  Component Based Software Engineering  Definitions  Component Infrastructure  Component Model  Tasks and Responsibilities

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 14 Big Picture Decompose problem into projects and subprojects Design logical component infrastructure Problem to be Solved Select suitable component model Provided by vendor; or, if a proprietary component model, must be implemented. Legend Subproject Project Performance Requirements Evaluate Success of Software System Master Software Development Plan

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 15 Increasingly detailed refinement of design leads to an implemented component infrastructure Evaluate Success of Software System Analyze component infrastructure from multiple viewpoints Legend Interaction Component Logical Component Infrastructure Component Model Implementation Component Infrastructure

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 16 Component Infrastructure  A software component infrastructure is –a set of interacting software components  The infrastructure is designed to ensure that a software system constructed using those components will satisfy clearly defined performance requirements

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 17 Designing a Component Infrastructure  The Component Infrastructure is layered  Layering is a strategy for decomposing complex structures

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 18 Four Layers  User  Workflow and Process Control  Business Services  Data and Operating System Services

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 19 User  User components provide the external interface –graphical user interfaces (GUI), Web-based, or batch- oriented  Understand user interactions  Request services from other components in response to commands issued by the user

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 20 Workflow and Process Control  Workflow and process control components manage complex, automated business processes that interact with (potentially) many business services

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 21 Business Services  Business service and legacy wrapping components provide the implementation of the business rules and the operational activity  This is accomplished using internal business object implementations, or by wrapping legacy systems behind the component interface

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 22 Design Layers and Designers User Business Services & Legacy Wrapping Data/Operating System Services Workflow and Process Control Solution Component Designers Business Component Designers Data/Infrastructure Component Designers Supply Consume Supply Consume

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 23 Agenda  Component Based Software Engineering  Definitions  Component Infrastructure  Component Model  Tasks and Responsibilities

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 24 Component Model  Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Specification of component behavior and properties Definition of Interface Description Language (IDL)

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 25 Component Model Interfaces  Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Global unique names for interfaces and components Interface Y Component X

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 26 Component Model Interfaces Naming  Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Information about components, interfaces, and their relationships Interfaces to services providing such information Interface Y Component X X Meta data Y Meta data

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 27 Component Model Interfaces Naming Meta data  Composition Customization Interoperability Evolution Support Packaging & Deployment Interfaces and rules for combining components to create larger structures and for substituting and adding components to existing structures Interface Y Component X Component Z ???

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 28 Component Model Interfaces Naming Meta data Composition  Customization Interoperability Evolution Support Packaging & Deployment Interfaces for customizing components User-friendly customization tools will use these interfaces Interface Y Component X CustomizationAPI Interface Y Component X’

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 29 Component Model Interfaces Naming Meta data Composition Customization  Interoperability Evolution Support Packaging & Deployment Communication and data exchange among components from different vendors, implemented in different languages Interface Y Component X VB Impl. Component Z Java Impl. ???

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 30 Component Model Interfaces Naming Meta data Composition Customization Interoperability  Evolution Support Packaging & Deployment Rules and services for replacing components or interfaces by newer versions Interface Y Component X X Meta data Version 1 Version 1.1 Y Meta data Version 1.0 Version 2.0

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 31 Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support  Packaging & Deployment Packaging implementation and resources needed for installing and configuring a component Interface Y Component X X Meta data Y Meta data

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 32 Agenda  Component Based Software Engineering  Definitions  Component Infrastructure  Component Model  Tasks and Responsibilities

Fourth Lecture on September 26, 2005COP-4009: Component-Based Software Engineering 33 Tasks and Responsibilities  Component Factory – Three primary groups (AD, CD, CMID) Tasks and Responsibilities Application Development Provides CD with component requests and designs Provides CMID with requirements for infrastructure services Component Development Builds components to specification and provides to AD Provides feedback on CMI and its services Component Model Implementation Development Provides AD with a component model implementation that satisfies application criteria Provides CD with suitable tools and an environment for component development Tasks and Responsibilities Application Development Provides CD with component requests and designs Provides CMID with requirements for infrastructure services Component Development Builds components to specification and provides to AD Provides feedback on CMI and its services Component Model Implementation Development Provides AD with a component model implementation that satisfies application criteria Provides CD with suitable tools and an environment for component development