CBSD – Component Based Software Development - Introduction -

Slides:



Advertisements
Similar presentations
P SATel Institute for Information Processing University of Pisa SantAnna school Pisa Today trends in Software Engineering 1. Distributed Objects 2. Component.
Advertisements

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
10 maart 2000SEESCOA Components Programming Technology Lab (PROG) System & Software Engineering Lab (SSEL) Dept. of Computer Sciences (DINF) Vrije Universiteit.
Components Alexey Golubev, What is a component? What is a component? The father of components? The father of components? Components and their.
Component Oriented Programming 1 Chapter 2 Theory of Components.
Software Engineering 2003 Jyrki Nummenmaa 1 OBJECT ARCHITECTURE DESIGN These slides continue with our example application, based on the simplified.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Basic Concepts in Component-Based Software Engineering
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
1 Introduction The Database Environment. 2 Web Links Google General Database Search Database News Access Forums Google Database Books O’Reilly Books Oracle.
Introduction to Databases Transparencies
Concurrent & Distributed Systems Lecture 6: Simulation (WWCH) What? –The use of an abstract model of a real engineering system, which can be implemented.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen-Bolzano Lesson 1 – Component-Based.
Reuse Activities Selecting Design Patterns and Components
Chapter 1: The Database Environment
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Component-Based Software Engineering CSM-15 Paul Krause.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
BAPIs within SAP’s Business Framework. What is SAP’s Business Framework? Business Framework is SAP’s strategic product architecture on which R/3 is developed.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Managing Software Quality
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Component-based software architecture Overview Divides the problem into sub-problems each associated with component partitions. The interfaces of the components.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CSE 219 Computer Science III Program Design Principles.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software component evaluation A developer’s perspective Sony Corporation’s presentation for the 6 th International Common Criteria Conference.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
CSC 532 Term Paper Presentation Hybrid approach to component based Engineering  Introduction.  Component based development (CBD).  Pros and Cons of.
Component-Based Software Engineering(CBSE) Xingui Tang CS532, Fall /6/2015.
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.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
HNDIT Rapid Application Development
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.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Module 4. Component Software 4.2 Introduction
An assessment framework for Intrusion Prevention System (IPS)
Distribution and components
Component-Based Software Engineering
Introduction to Databases Transparencies
Component--based development
Architecture Description Languages
An Introduction to Software Architecture
CS310 Software Engineering Lecturer Dr.Doaa Sami
ISpec: A Compositional Approach to Interface Specification
The Current State of CBSE
Presentation transcript:

CBSD – Component Based Software Development - Introduction -

Current Challenges of the Software Industry Constant innovation in hard- and software Applications are growing larger and more complex Many applications tend to be monolithic Programming models are not consistent Knowledge is wasted by tedious programming routines

Goals Components that can be easily taken out of one context and be put into another Reuse of existing code and expertise Easier maintenance of existing programs Changing / Updating of parts of the program without interfering with other parts

Analogies Lego Game Analogy Components bought for a specific use (e.g. building a castle) can be used to build ships, airplanes etc. House Building Analogy Plumbers, Masons, etc all have their very well defined roles, not having to bother with other problems.

Components – Definition - –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. (Szyperski)

Characteristics of a Component Well defined purpose Context free Portability Self descriptive “Plug and play” Reusable Reliability Modular Interface and Implementation are independent

Components vs Objects Components and Objects are related, Components CAN be made of objects. Components have one instance only in a system. Components can be easily taken out of their context, whereas objects generally can not

Interfaces Abstract definition of services the compontent offers, (e.g. public variables, methods); input and output. Interface definitions should be separate from implementation. Provided Interfaces a component offers Required Interfaces a component depends on

Interfaces II Interfaces should require only what is essential for solving the problem A well defined Interface is crucial, especially as component design can be completely independent. Two (or more) components can rely on each other while having completely different developers.

Design by Contracts Interfaces as “Contracts” between the interface provider and the client Formal specification of the Interface Functional requirements Precondition, Postcondition etc Non functional requirements Performance, resources Components (further revisons e.g) can only require less or deliver more once the contract is in place

Distributed Components Components can be purchased from the developer and are made available e.g. over the internet Transparency: The client does not need to know where a component is, it always functions the same. Client can use the component wherever he or the component may be Components can be run on specialized Hardware that the client can profit from without having to purchase the hardware himself

Composition and Reuse Frameworks Collection of Interface specifications and rules to specify and enforce the interaction of components Architectures Blackbox reuse Re-user knows only the specified interfaces. The possible reuse of a component is thus dependent on a clear specification Glass box reuse Re-user can “look inside” the component and inspect the Implementation, he can however not alter it. White box reuse Re-user can modify the component

Outlook… Components Sold, rented, “Pay per use” Tools Component design, testing, composition visual tools, maintenance Services Component System Architects, Assembly Consultants