Component-based software engineering



Vergelijkbare documenten
Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

MyDHL+ Van Non-Corporate naar Corporate

Chapter 4 Understanding Families. In this chapter, you will learn

CTI SUITE TSP DETAILS

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

General info on using shopping carts with Ingenico epayments

2010 Integrated reporting

Interaction Design for the Semantic Web

Systeem modellen. Topics covered

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

L.Net s88sd16-n aansluitingen en programmering.

NCTS - INFORMATIE INZAKE NIEUWIGHEDEN VOOR 2010

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Toegang tot overheidsinformatie: de gevolgen van Europese ontwikkelingen voor Nederland

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

Socio-technisch systemen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 2 Slide 1

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven

MyDHL+ ProView activeren in MyDHL+

Continuous Delivery. Sander Aernouts

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

L.Net s88sd16-n aansluitingen en programmering.

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Intermax backup exclusion files

Handleiding Installatie ADS

Nieuwsbrief NRGD. Editie 11 Newsletter NRGD. Edition 11. pagina 1 van 5.

en DMS koppelvlak Utrecht, 14 april 2011

(Big) Data in het sociaal domein

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

CBSOData Documentation

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

My Benefits My Choice applicatie. Registratie & inlogprocedure

CHROMA STANDAARDREEKS

Ervaringen met begeleiding FTA cursus Deployment of Free Software Systems

Daylight saving time. Assignment

MyDHL+ Uw accountnummer(s) delen

NMOZTMKUDLVDKECVLKBVESBKHWIDKPDF-WWUS Page File Size 9,952 KB 29 May, 2016

De Baseline Informatiebeveiliging En Kleine Gemeenten

ETS 4.1 Beveiliging & ETS app concept

Zelftest Java EE Architectuur

Taco Schallenberg Acorel

Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

Value based healthcare door een quality improvement bril

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Firewall van de Speedtouch 789wl volledig uitschakelen?

E-learning maturity model. Hilde Van Laer

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Introductie in flowcharts

[BP-ebMS-H-000] Welke versie van Hermes moet er gebruikt worden?

GS1 Data Source. Guide to the Management of Digital Files for Suppliers

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

Ius Commune Training Programme Amsterdam Masterclass 15 June 2018

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security

Installatie van Windows 10 op laptops. Windows 10 installation on laptops

Yes/No (if not you pay an additional EUR 75 fee to be a member in 2020

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

Ius Commune Training Programme Amsterdam Masterclass 16 June 2016

Een Inleiding tot Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

ISO/IEC 20000, van standaardkwaliteit naar kwaliteitsstandaard. NGI Limburg 30 mei 2007

Data Handling Ron van Lammeren - Wageningen UR

Open Onderwijs API. De open standaard voor het delen van onderwijs data. 23 juni 2016 Frans Ward - SURFnet Architectuurraad - Utrecht

Distributed Systems Architectures

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

Enterprisearchitectuur

Enterprise Portfolio Management

Oefeningen Bij Rug Nek En Schouderklachten

Preschool Kindergarten

Over dit boek. Richtlijnen voor gebruik

Usage guidelines. About Google Book Search

Engels op Niveau A2 Workshops Woordkennis 1

Instructions assembly Decoderprintje 2


Ius Commune Training Programme Amsterdam Masterclass 22 June 2017

This appendix lists all the messages that the DRS may send to a registrant's administrative contact.

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

NETWORK CHARTER. #ResourceEfficiency

Pluk Van De Petteflet Annie M G Schmidt

PRIVACYVERKLARING KLANT- EN LEVERANCIERSADMINISTRATIE

Uitbreiding Op De Handleiding Voor De Installateur V2 1

CSRQ Center Rapport over onderwijsondersteunende organisaties: Samenvatting voor onderwijsgevenden

Full disclosure clausule in de overnameovereenkomst. International Law Firm Amsterdam Brussels London Luxembourg New York Rotterdam

Begin Bij Het Eind Met Smart Requirements Synergio

RESEARCH DATA MANAGEMENT INNOVATIE & SURF

CBSOData Documentation

Voorkom pijnlijke verrassingen Nieuwe Controleaanpak Belastingdienst. Presentator: Remko Geveke

150 ECG-problemen (Dutch Edition)

In te vullen door Gemeente/ To be filled out by Municipality

In te vullen door Gemeente/ To be filled out by Municipality

Building the next economy met Blockchain en real estate. Lelystad Airport, 2 november 2017 BT Event

Transcriptie:

Component-based software engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 CBSE essentials Independent components gespecificeerd door hun interfaces. Component standards om integratie van componenten te vereenvoudigen. Middleware voorziet ondersteuning voor de onderlinge samenwerking van de componenten. A development process dat geriht is op hergebruik. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 2

CBSE and design principles Los van de voordelen van hergebruik, is CBSE gesteund op: Componenten zijn onafhankelijk dus geen onderlinge interferentie; De implementatie van de componenten is verborgen; Communicatie gebeurt via goed gedefinieerde interfaces; Component platforms zijn shared en reduceren de ontwikkelingskosten. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 3 Components Componenten bieden een service zonder vraag waar de component wordt uitgevoerd of zijn programmeertaal Een component is een onafhankelijk uitvoerbare entiteit die kan opgebouwd zijn uit meerdere uitvoerbare objecten; De component interface is publiek en alle interacties gaan via de publieke interface; Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 4

Component characteristics 1 Standardised Independen t Composable Component standardisation means that a component that is used in a CBSE process has to conform to some standardised component model. This model may define component interfaces, component meta-data, documentation, composition and deployment. A component should be independen t Š it should be possible to compose and deploy it without having to use other specific components. In situations where the component needs externally provided services, these should be explicitly set out in a ŌrequiresÕ interface specification. For a component to be composable, all external interactions must take place through publicly defined interfaces. In addition, it must provide external access to information about itself such as its methods and attributes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 5 Component characteristics 2 Deployable Documented To be deployable, a component has to be se lf-contained and must be able to operate as a stand-alone entity on some component platform that implements the component model. This usually means that the component is a binary component that does not have to be compiled before it is deployed. Components have to be fully documented so that potential users of the component can decide whether or not they meet their needs. The syntax and, ideally, the semantics of all component interfaces have to be specified. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 6

Component interfaces Provides interface Definieert de services die door de component worden geboden aan andere componenten. Requires interface Definieert de services die specificeren welke services moeten beschikbaar worden gesteld aan de component opdat hij zou werken zoals voorzien. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 7 Component interfaces Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 8

A data collector component Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 9 Components and objects Componenten zijn entiteiten georganiseerd voor effectief gebruik. Components definieren geen types. Component implementaties zijn ondoorzichtig. Componenten zijn taal-onafhankelijk. Componenten zijn gestandaardiseerd. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 10

Component models Een component model is een definitie van een standdard van een component implementatie, documentatie en verspreiding. Voorbeelden van component models EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model Het component model specificeert hoe interfaces moeten worden gedefinieerd en specificeert de elementen die moeten worden opgenomen in een interface definitie. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 11 Elements of a component model Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 12

Middleware support Component models zijn de basis voor middleware die ondersteuning biedt voor het uitvoeren van componenten. Component model implementaties bieden: Platform services die de componenten laten communiceren; Horizontale services: applicatie-onafhankelijke services gebruikt door verschillende componenten.. Om van de services voorzien door een model gebruik te kunnen maken, worden componenten verspreid in een container. Dit is een set van interfaces die worden gebruikt om toegang te krijgen tot de service implementaties. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 13 Component model services Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 14

Component development for reuse Componenten ontwikkeld voor een specifieke applicatie moeten meestal worden veralgemeend om ze herbruikbaar e maken. Een component is meestal herbruikbaar als het geassocieerd is met een stabiele domain abstraction (business object). Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 15 The CBSE process Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 16

The component identification process Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 17 Component composition Het proces van het assembleren van componenten om een systeem te creëren. Compositie houdt in: Integratie van componenten met mekaar en met de component infrastructure. Normaliter moet glue code worden geschreven om componenten te integreren. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 18

Types of composition Sequential composition waar de samengestelde componenten uitgevoerd worden in sequentiele volgorde. Hierarchical composition waarbij een component beroep doet op de services van een andere. De provides interface van de ene component is samengevoegd met de requires interface van de andere. Additive composition waar de interfaces van twee componenten worden samengevoegd om een nieuwe component te creëren. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 19 Types of composition Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 20

Interface incompatibility Parameter incompatibility waar operaties dezelfde naam hebben maar van verschillende types zijn. Operation incompatibility waar de namen van de operaties in de provides interface en de requires interfaces verschillend zijn. Operation incompleteness waar de provides interface van de ene component een subset is van de requires interface van een ander. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 21 Incompatible components Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 22

Adaptor components Een probleem van incompatibiliteit wordt in elk geval opgelost door het schrijven van een ADAPTOR component. De interfaces van de samen te stellen componenten worden compatible gemaakt. De types van adaptor kunnen van verschillende types zijn. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 23 Composition through an adaptor De component postcodestripper is de adaptor die de sequentiele compositie van addressfinder en mapper componenten mogelijk maakt. address = addressfinder.location (phonenumber) ; postcode = postcodestripper.getpostcode (address) ; mapper.displaymap(postcode, 10000) Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 24

Adaptor for data collector Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 25 Photo library composition Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 26

Photo Library documentation This method adds a photograph to the library and associates the photograph identifier and catalogue descriptor with the photograph. what happens if the photograph identifier is already associated with a photograph in the library? is the photograph descriptor associated with the catalogue entry as well as the photograph i.e. if I delete the photograph, do I also delete the catalogue information? Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 27 The Object Constraint Language De Object Constraint Language (OCL) werd ontworpen om constraints te definieren geassocieerd met UML models. Ze is gesteund op de notatie van de pre en post conditie specificatie. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 28

Formal description of photo library -- The context keyword names the component to which the conditions apply context additem -- The preconditions specify what must be true before execution of additem pre: PhotoLibrary.libSize() > 0 PhotoLibrary.retrieve(pid) = null -- The postconditions specify what is true after execution post: libsize () = libsize()@pre + 1 PhotoLibrary.retrieve(pid) = p PhotoLibrary.catEntry(pid) = photodesc context delete pre: PhotoLibrary.retrieve(pid) <> null ; post: PhotoLibrary.retrieve(pid) = null PhotoLibrary.catEntry(pid) = PhotoLibrary.catEntry(pid)@pre PhotoLibrary.libSize() = libsize()@pre - 1 Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 29 Photo library conditions As specified, the OCL associated with the Photo Library component states that: There must not be a photograph in the library with the same identifier as the photograph to be entered; The library must exist - assume that creating a library adds a single item to it; Each new entry increases the size of the library by 1; If you retrieve using the same identifier then you get back the photo that you added; If you look up the catalogue using that identifier, then you get back the catalogue entry that you made. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 30

Data collection and report generation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 31