Componentes de. Resumido e Adaptado dos apontamentos do Prof. José Tavares (Ambientes de Desenvolvimento Avaçados)
|
|
- Lynne McCoy
- 6 years ago
- Views:
Transcription
1 Componentes de Software Resumido e Adaptado dos apontamentos do Prof. José Tavares (Ambientes de Desenvolvimento Avaçados)
2 Software Components mean? The main driver behind software components is reuse. That means we must modularise applications if they are to have potentially reusable parts. The expectation is that if the parts (often collections of classes) can be reused then costs will be reduced (in the long run ). Easily maintaining and customizing those parts to produce new features Goals (user s demands) Build more reliable software Less time between versions 1
3 Why use Software Component? Components are the way to go because all other engineering disciplines introduced components as they became mature - and still use them. Use component paradigm to simulate Software Integrated Circuit to resolve software crisis. Component software represents the maturation (industrialization) of software development practices. 2
4 Some traditional software problems large software systems are extremely complex large, monolithic systems are difficult to design and build and even harder to maintain. Reliability and robustness is a major problem. It is difficult to reuse assets-- e.g. design knowledge, software--across multiple projects. Tailoring of software products for different user requirements is difficult. 3
5 Two traditional software development extremes. Custom-Made Software - develop from scratch Advantages: Flexible, competitive edge Optimally adapted to client s business model Take advantage of any in-house proprietary knowledge or practice Disadvantages: Burden of maintenance, product evolution, and interoperability Expensive undertaking In a world of rapidly changing business requirements is often too late to be productive before becoming obsolete Lead to project fail partially or completely 4
6 Bought and parameterized software Advantages: Limit financial risk Minimize time-to-market risk Burden of maintenance, product evolution, and interoperability is left to vendor Disadvantages: May necessitate a greater reorganization of business processes No competitive edge using a standard software that is also available to competitor Not nimble enough to adapt to changing needs 5
7 Benefits of Using Components Provides a middle path between the 2 extremes of traditional software development Although each bought component is a standardized product, the process of component assembly allows significant customization. Individual component can be custom-made to suit specific requirements or to foster strategic advantages. Puts an end of massive upgrade cycles since evolution replace revolution. Individual upgrading of components as needed and out of phase can allow for smoother operations. 6
8 Drivers for CBD The development of the WWW and Internet Systems of loosely coordinated services Object-oriented design techniques and languages Move from Mainframe to client-server based computing Rapid pace of technological change Economic necessity of maximizing reuse Utility computing 7
9 So what s new? Modularisation of software is not new. What we want of a component is that l It may be used by other program elements (clients) (encapsulation and low coupling good strategies for any modular design) The clients and their authors do not need to be known to the component s authors This is a little bit new, and only works if all the respective authors work to a common standard 8
10 Are Components New? Subroutines Turing, 1949, Checking a Large Routine Structured Programming Dijkstra, 1968 Libraries, Packages NAG, 1971 Information Hiding, Encapsulation Parnas,
11 10
12 Num contexto Service Oriented Architecture 11
13 Software Components Components are for composition Already existing things can be reused by rearranging them to make a new composite So components are about reuse This drives many of the engineering requirements for software components 12
14 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 European Conference on Object-Oriented Programming 13
15 Definition A self-contained piece of software that can be independently deployed and plugged into an environment that provides a compatible socket. It has well-defined run-time interfaces, and it can cooperate out of the box with other components (Peter Herzum, Olivier Sims, "Business Component Factory") 14
16 Definition An independently deliverable unit of software that encapsulates its design and implementation and offers interfaces to the outside, by which it may be composed with other components to form a larger whole. (From: Objects, Components, and Frameworks with UML--The Catalysis Approach, by D. D Souza and A. Wills, Addison Wesley, 1998.) 15
17 Characteristic properties (1) Independent Deployment Separated from its environment and other components Encapsulate its constituent features Cannot be partially deployed Hide the construction details 16
18 Characteristic properties (2) Third-party composition Self-contained Must have clear specifications of what it requires, as well as what it provides Needs to encapsulate its implementation Interact with its environment by means of well-defined interfaces 17
19 Interfaces Define component s access points - allow the clients of a component to access the services provided by a component Interfaces specifies signature and behavior Interface nominally consists of a set of named operations (methods). The semantics (behavior) of each operation must be precisely specified. 18
20 Interfaces Each interface specification could be viewed as a contract between the component and a client Since the component and its clients are developed in mutual ignorance, the standardized contract must form a common ground for successful interaction Different interfaces will normally provide access to different services 19
21 Explicit context dependencies Components must also specify their needs i.e. the context of composition and deployment This means both The component s requires interfaces, and The component world it is prepared for OMG CORBA Microsoft COM, CLR Sun s Java Interoperability 20
22 Interfaces as contracts Provider (supplier): The entity (component) that implements the operations of an interface. Client (user): An entity that uses (invokes) the services provided by an interface. Can view an interface specification as a contract between the client and a provider So the interface specification must state: What the client needs to do What a provider can rely on What a provider must promise in return What the client can rely on 21
23 Interfaces: A contract is an apropriate aproach, with pre- and pos- conditions atached to every operation decouple clients and providers The same interface may be used by large numbers of different clients also be supported by large numbers of providers 22
24 Pre- and Post-Conditions Pre-conditions: What the client must establish before calling the operation The provider can rely on this condition being true whenever the operation is called Post-conditions: What the provider must establish before returning to the client The client can rely on this condition being true whenever the call to the operation returns 23
25 Pre- and Post-Conditions 24
26 Documentation - JAVA as special tags for preconditions and post-conditions: /** precondition postcondition **/ public void method1(...) { // } 25
27 Documentation CLR (.NET) Use <pre> and <post> as special tags for preconditions and post-conditions if XML comments are used: /// <pre> pre-condition </pre> /// <post> post-condition </post> /// public void method1(...) { // } 26
28 Example - JAVA /** * Returns the i-th element in the list * i >= 0 && i < size( */ public Object element(int i); 27
29 Example C# /// <summary> /// Returns the i-th element in the list /// </summary> /// <pre> i >= 0 && i < size( ) </pre> /// </post> /// public Object element(int i); 28
30 Other logical expressions Example - Object Constraint Language (OCL) ==> logical implication <==> logical x : Expression Universally quantified x : Expression [m n] Integer range from m to n 29
31 An example /** * Inserts a new element into a list * at the i-th position * item!= null && i >= 0 && i <= size( ) size( ) == size( )@pre + k : [0.. size( ) - * (k < i ==> element(k)@pre == element(k)) && * (k == i ==> item@pre == element(k)) && * (k > i ==> element(k-1)@pre == element(k) */ public void insert(object item, int i); 30
32 An exercise Use this method to specify the interface to a method that inserts a new element to the head of a list 31
33 Solution /** * Inserts a new element at the head of a list * item!= null size( ) == size( )@pre + 1 item@pre == k : [1.. size( ) - element(k-1)@pre == element(k) */ public void inserthead(object item); 32
34 How does this help? This separation between what a function does and how the function works is extremely important As this stands, the comments provide guidance only They prescribe what should be done, but are agnostic about whether a specific implementation satisfies them We can, however, provide run-time checks through the use of Assertions 33
35 Example for a Use Case: Purchase Goods Goal of Use Case: A Consumer goes to the Retailer website with the intent of purchasing Consumer electronic products. Preconditions: 1. Product Catalog Exists 2. All state (warehouse levels etc) set back to predefined values 3. Payment and address details for Consumer are known 34
36 Success Post Conditions: 1. At least one product is shipped 2. The Consumer is returned a Confirmation page outlining which products will be shipped 3. The Retailer has requested the warehouses to ship the available goods. 4. Payment from the Consumer s credit card is triggered. Failed Post Conditions: The Consumer is returned an error stating that none of the items in the order can be fulfilled. 35
37 OO Interface Sometimes we may find two or more different subclasses share some common behaviour In this case, they are not strictly kinds of some common parent Rather, they behave like some common pattern (under certain circumstances) We say that they both implement a common interface 36
38 Interfaces public interface Cashier { public void deposit( int id, double amount); public boolean withdraw( int id, double amount); } An interface is pure specification - it contains no implementation Identical in C# 37
39 38
40 Abstract class An abstract class is one whose main purpose is to define a common interface for its subclasses 39
41 public abstract class EllipticalShape { public abstract double area( ); public abstract double circumference( ); } public interface Cashier { } public void deposit(int id, double amount); public boolean withdraw(int id, double amount); 40
42 Abstract Class Can include class and instance fields May include concrete implementations of methods A concrete class can only extend a single abstract class Interface Can only include static final fields All methods must be abstract declarations - no implementation A class can implement multiple interfaces 41
43 Interface / Abstract class public abstract class EllipticalShape { public abstract double area( ); public abstract double circumference( ); } public interface Cashier { public void deposit(int id, double amount); public boolean withdraw(int id, double amount); } 42
44 Design Guideline: When the functionality supported by a class can be implemented in different ways, it is advisable to separate the interface from the implementation Xiaoping Jia Object-Oriented Software Development Using Java 43
45 Class V Interface Uma classe define o estado interno do objecto e a implementação das suas operações. Um tipo de objectos apenas se refere à sua interface conjunto de pedidos a que pode responder Um objecto pode ter vários tipos e objectos de várias classes podem ser do mesmo tipo. Herança de classes define uma implementação do objecto baseada na implementação de outro objecto super Herança de interface ( subtyping) descreve quando um objecto pode ser usado no lugar de outro 44
46 List as an example public interface List { public int size( ); public boolean isempty( ); public Object element(int i); public Object head( ); public Object last( ); public void insert(object item, int i); public void inserthead(object item); public void insertlast(object item); // more } 45
47 Implementations of List We can have several different implementations of the List interface: public class LinkedList implements List { <body of Linked List here> } or: public class DynamicArray implements List { <body of DynamicArray here> } 46
48 Interfaces (cont) Separar a interface da implementação permite múltiplas implementações da mesma ideia. Para manter o código genérico, deve-se trabalhar com a interface e não com o tipo de uma implementação particular Separar a interface da implementação permite alterar a implementação sem afectar a interface Permite alterar a implementação sem afectar os clientes dessa interface Clientes não estão ligados às classes de implementação 47
49 As interfaces devem ser imutáveis de modo a não quebrar o contracto estabelecido com os clientes Herança de interfaces permite o upgrade de uma interface. Novas funcionalidades devem ser colocadas noutra interface derivada Uma variável do tipo interface pode fazer referência a qualquer objecto que implemente essa interface Programming to an Interface, not an Implementation [ GOF Design Patterns: Elements of Reusable Object-Oriented Software.] 48
50 More on Components (Bertrand Meyer) Components are client oriented software The two basic conditions for a software element to be considered a component are that it be: Usable by other software elements. This excludes a program in the traditional sense that is meant to be used by humans or non-software triggers unless it has been componentized, meaning precisely adapted for use by other software. Usable by software elements whose authors are unknown to the component's authors. This excludes the case of routines, classes and other software elements used by other parts of the same software. A component must be of interest to a broad range of "clients" not directly connected to the original authors. 49
51 "Seven Criteria for Components May be used by other software elements (clients). May be used by clients without the intervention of the component's developers. Includes a specification of all dependencies (hardware and software platform, versions, other components). Includes a precise specification of the functionalities it offers. Is usable on the sole basis of that specification. Is composable with other components. Can be integrated into a system quickly and smoothly. [What to Compose Bertrand Meyer] 50
52 Design by Contract DBC was first introduced by Bertrand Meyer as part of the Eiffel Project. Under the DBC theory, a software system is viewed as a set of communicating components whose interaction is based on precisely defined specifications of the mutual obligations contracts. DBC provides a formal way to incorporate specification information, which is obtained from comments, into the code. By doing this, the code s implicit contracts are transformed into explicit requirements that must be satisfied. 51
Ambientes de Desenvolvimento Avançados
Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav/adav.htm Aula 6 Engenharia Informática 2006/2007 José António Tavares jrt@isep.ipp.pt 1 Components and Interfaces Part 2
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationComponent-based Architecture Buy, don t build Fred Broks
Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should
More informationComponent-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1
Component-based software engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 Objectives To explain that CBSE is concerned with developing standardised components and
More informationΗΜΥ 317 Τεχνολογία Υπολογισμού
ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 16-17: Component-Based Software Engineering ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 15 October 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 1: Issues of software quality Agenda for today 3 Introduction Some statistics
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationChapter 8: Class and Method Design
Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined
More informationReference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003
CS551: Advanced Software Engineering Service-Oriented Architecture Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003 Yugi Lee STB #560D (816)
More informationDesign by Contract in Eiffel
Design by Contract in Eiffel 2002/04/15 ctchen@canthink.com.com.tw.tw Reference & Resource Bertrand Meyer, Object-Oriented Oriented Software Construction 2nd,, 1997, PH. Bertrand Meyer, Eiffel: The Language,,
More informationSoftware Architectures
Software Architectures 2 SWS Lecture 1 SWS Lab Classes Hans-Werner Sehring Miguel Garcia Arbeitsbereich Softwaresysteme (STS) TU Hamburg-Harburg HW.Sehring@tuhh.de Miguel.Garcia@tuhh.de http://www.sts.tu-harburg.de/teaching/ss-05/swarch/entry.html
More informationGoals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming
Goals of Lecture Lecture 27: OO Design Patterns Cover OO Design Patterns Background Examples Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2001 April 24, 2001 Kenneth
More informationThe Contract Pattern. Design by contract
The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,
More informationAn Approach to Software Component Specification
Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationBusiness Object Modeling Framework for Distributed Enterprise
INFORMATICA, 1999, Vol. 10, No. 2, 189 202 189 1999 Institute of Mathematics and Informatics, Vilnius Business Object Modeling Framework for Distributed Enterprise Lina NEMURAITĖ Kaunas University of Technology
More informationObject Oriented Program Correctness with OOSimL
Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu
More informationFortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming)
2014-03-07 Preface Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) Coordinates: Lecturer: Web: Studies: Requirements: No. 185.211, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/foop.html
More informationAN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT
AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT Zoran Stojanovic, Ajantha Dahanayake Faculty of Information Technology and Systems, Delft University of Technology,
More informationMotivation. ! Stop reinventing the wheel, try to reuse code! ! How do you organize code reuse? History: " Copy & Paste. " Collect useful files
Motivation 08 - Object-Oriented Libraries and Extensions! When you several systems, you notice that much of their code is similar.! Stop reinventing the wheel, try to reuse code!! How do you organize code
More informationProgramming II. Modularity 2017/18
Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How
More informationAutomatic Code Generation for Non-Functional Aspects in the CORBALC Component Model
Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and
More informationOO Frameworks. Introduction. Using Frameworks
OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationDesigning Robust Classes
Designing Robust Classes Learning Goals You must be able to:! specify a robust data abstraction! implement a robust class! design robust software! use Java exceptions Specifications and Implementations
More informationCS 307: Software Engineering. Lecture 10: Software Design and Architecture
CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office
More informationInheritance (Chapter 7)
Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance
More informationObject-Oriented Design
Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed
More informationAssertions. Assertions - Example
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More informationObject-Oriented Concepts and Design Principles
Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation
More informationa correct statement? You need to know what the statement is supposed to do.
Using assertions for correctness How can we know that software is correct? It is only correct if it does what it is supposed to do. But how do we know what it is supposed to do? We need a specification.
More informationLECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge
LECTURE 3: SOFTWARE DESIGN Mike Wooldridge 1 Design Computer systems are not monolithic: they are usually composed of multiple, interacting modules. Modularity has long been seen as a key to cheap, high
More informationCONTRACTUAL SPECIFICATION OF COMPONENT USING VIRTUAL INTERFACE
CONTRACTUAL SPECIFICATION OF COMPONENT USING VIRTUAL INTERFACE Eustache MUTEBA Ayumba Researcher/Lecturer Correspondent of IMIA, NEM and EASST in Democratic Republic of Congo Email: emuteba@hotmail.fr
More informationHospitality Industry Technology Integration Standards Glossary of Terminology
Hospitality Industry Technology Integration Standards Glossary of Terminology Abstract Class Account API Application Architecture Association Attribute Bandwidth Base Class Behavior Binding Blind Post
More informationObject-oriented basics. Object Class vs object Inheritance Overloading Interface
Object-oriented basics Object Class vs object Inheritance Overloading Interface 1 The object concept Object Encapsulation abstraction Entity with state and behaviour state -> variables behaviour -> methods
More informationMigration to Service Oriented Architecture Using Web Services Whitepaper
WHITE PAPER Migration to Service Oriented Architecture Using Web Services Whitepaper Copyright 2004-2006, HCL Technologies Limited All Rights Reserved. cross platform GUI for web services Table of Contents
More informationCommunication Protocol Decomposition and Component-based Protocol Submodule
Communication Protocol Decomposition and Component-based Protocol Submodule Tianzhou Chen 1, Quan Gan 2, Zhaohui Wu 1 College of Computer Science, Zhejiang University, Hangzhou, P.R.CHINA, 310027 1 {tzchen,
More informationIndex. business modeling syntax 181 business process modeling 57 business rule 40
OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity
More informationIn this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks
In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and
More informationSpecification and Analysis of Contracts Tutorial
Specification and Analysis of Contracts Tutorial Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo Gerardo Schneider (UiO) Specification and
More informationAvancier Methods (AM) Software Architecture Modularity and OO presumptions
Methods (AM) Software Architecture Modularity and OO presumptions It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission
More informationDesign Patterns Application with MDE
Design Patterns Application with MDE Prof. Jean-Marc Jézéquel (Univ. Rennes 1 & INRIA) Triskell Team @ IRISA Campus de Beaulieu F-35042 Rennes Cedex Tel : +33 299 847 192 Fax : +33 299 847 171 e-mail :
More informationelements) and on the structure and representation of the information (i.e. the message format).
Introduction to MDMI The global financial industry exchanges huge amounts of electronic information. Differences in understanding and interpretation of exchanged electronic information form an important
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationTutorial: Functions and Functional Abstraction. Nathaniel Osgood CMPT
Tutorial: Functions and Functional Abstraction Nathaniel Osgood CMPT 858 2-8-2011 Building the Model Right: Some Principles of Software Engineering Technical guidelines Try to avoid needless complexity
More informationSelf-checking software insert specifications about the intent of a system
Assertions Reading assignment A. J. Offutt, A Practical System for Mutation Testing: Help for the Common Programmer, Proceedings of the 12th International Conference on Testing Computer Software, Washington,
More informationThe Open Group SOA Ontology Technical Standard. Clive Hatton
The Open Group SOA Ontology Technical Standard Clive Hatton The Open Group Releases SOA Ontology Standard To Increase SOA Adoption and Success Rates Ontology Fosters Common Understanding of SOA Concepts
More informationMSO Lecture Design by Contract"
1 MSO Lecture Design by Contract" Wouter Swierstra (adapted by HP, AL) October 8, 2018 2 MSO SO FAR Recap Abstract Classes UP & Requirements Analysis & UML OO & GRASP principles Design Patterns (Facade,
More informationDesign Patterns Design patterns advantages:
Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 12: Componentization Agenda for today 3 Componentization Componentizability
More informationSoftware Reuse and Component-Based Software Engineering
Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering
More informationCapturing the Essential: Use Case and Service Specification Modelling in UML
Capturing the Essential: Use Case and Service Specification Modelling in UML Introduction Software modelling practices need to evolve to keep pace with new paradigms. For example, traditional system-oriented
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationAdvances in Programming Languages
T O Y H Advances in Programming Languages APL4: JML The Java Modeling Language David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Thursday 21 January 2010
More informationAssigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)
Subsystem design basics Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP) Dept. of Computer Science Baylor University Focus on modeling how subsystems accomplish goals
More informationIncorporating applications to a Service Oriented Architecture
Proceedings of the 5th WSEAS Int. Conf. on System Science and Simulation in Engineering, Tenerife, Canary Islands, Spain, December 16-18, 2006 401 Incorporating applications to a Service Oriented Architecture
More informationStudy of Component Based Software Engineering
Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the
More informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
More informationToday's Agenda. References. Open Closed Principle. CS 247: Software Engineering Principles. Object-Oriented Design Principles
CS 247: Software Engineering Principles Reading: none Object-Oriented Design Principles Today's Agenda Object-Oriented Design Principles - characteristics, properties, and advice for making decisions that
More informationWhat is CBSE and Why? Component-Based Software Engineering. But why not in Software engineering? Component Everywhere
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 1 Basic Concepts (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo What is CBSE and
More informationComponent-Based Software Engineering
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 1 Basic Concepts (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo What is CBSE and
More informationObject-Oriented Programming
Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented
More informationReferences: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More informationSOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines.
SOFTWARE ENGINEERING DESIGN WITH COMPONENTS Design with reuse designs and develops a system from reusable software. Reusing software allows achieving better products at low cost and time. LEARNING OBJECTIVES
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationChapter 17 - Component-based software engineering. Chapter 17 So-ware reuse
Chapter 17 - Component-based software engineering 1 Topics covered ² Components and component models ² CBSE processes ² Component composition 2 Component-based development ² Component-based software engineering
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationUsing JBI for Service-Oriented Integration (SOI)
Using JBI for -Oriented Integration (SOI) Ron Ten-Hove, Sun Microsystems January 27, 2006 2006, Sun Microsystems Inc. Introduction How do you use a service-oriented architecture (SOA)? This is an important
More informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationUNIT 5 - UML STATE DIAGRAMS AND MODELING
UNIT 5 - UML STATE DIAGRAMS AND MODELING UML state diagrams and modeling - Operation contracts- Mapping design to code UML deployment and component diagrams UML state diagrams: State diagrams are used
More informationDistributed Objects. Object-Oriented Application Development
Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming
More informationAdding Contracts to C#
Adding Contracts to C# Peter Lagace ABSTRACT Design by contract is a software engineering technique used to promote software reliability. In order to use design by contract the selected programming language
More informationReflective Java and A Reflective Component-Based Transaction Architecture
Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,
More informationAssertions & Design-by-Contract using JML Erik Poll University of Nijmegen
Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen Erik Poll - JML p.1/39 Overview Assertions Design-by-Contract for Java using JML Contracts and Inheritance Tools for JML Demo
More informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationPC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. Programming Paradigms Software Engineering Exploratory Programming
More informationFor 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,
Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationPatterns for polymorphic operations
Patterns for polymorphic operations Three small object structural patterns for dealing with polymorphism Alexander A. Horoshilov hor@epsylontech.com Abstract Polymorphism is one of the main elements of
More informationHierarchical vs. Flat Component Models
Hierarchical vs. Flat Component Models František Plášil, Petr Hnětynka DISTRIBUTED SYSTEMS RESEARCH GROUP http://nenya.ms.mff.cuni.cz Outline Component models (CM) Desired Features Flat vers. hierarchical
More informationBasic Properties of Styles
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic
More information21) Functional and Modular Design
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - 21) Functional and Modular Design Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software-
More informationUC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara
CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Design by Contract Design by Contract and the language that implements the Design by Contract principles
More informationChapter 8 Web Services Objectives
Chapter 8 Web Services Objectives Describe the Web services approach to the Service- Oriented Architecture concept Describe the WSDL specification and how it is used to define Web services Describe the
More informationChapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,
Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations
More informationDesign Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman
CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process
More informationOO Technology: Properties and Limitations for Component-Based Design
TDDD05 Component-Based Software OO Technology: Properties and Limitations for Component-Based Design Interfaces Design by by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base
More informationA comparative study of Programming by Contract and Programming with Exceptions
Computer Science Jimmy Byström Leo Wentzel A comparative study of Programming by Contract and Programming with Exceptions Master s Thesis 2003:02 A comparative study of Programming by Contract and Programming
More informationOpen Verification Methodology (OVM)
Open Verification Methodology (OVM) Built on the success of the Advanced Verification Methodology (AVM) from Mentor Graphics and the Universal Reuse Methodology (URM) from Cadence, the OVM brings the combined
More informationModularity Guidelines for design in any programming language
Modularity Guidelines for design in any programming language 14-1 Modular Software Software constructed as assemblies of small pieces» Each piece encompasses the data and operations necessary to do one
More informationUNIT-II Introduction to UML
UNIT-II Introduction to UML - P. P. Mahale UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development
More informationC-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS
C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS Soo Dong Kim, Ji Hwan Park Department of Computer Science Soongsil University 1-1 Sangdo-5-Dong, Dongjak-Ku, Seoul South Korea, 156-743 want
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationLethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6
Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.
More informationLecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005
Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson 1 of 25 Introduction Chapter 1 of Object Design covers topics that aid understanding of Responsibility-Driven Design Object
More informationDEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN 1. What is Object-Oriented Analysis? Unit-I Introduction to OOAD PART-A (UML Notations has to be used wherever necessary)
More informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /
More informationChapter 1: Principles of Programming and Software Engineering
Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without
More information