Component-Based Engineering - Principles of Software Development - Lecture Notes, Study notes of Software Engineering

Main points of this lecture are: Component-Based Engineering, Component Correctness, Component-Based Strategies, Service-Oriented Architecture, Kind of Access Control, Simple Object Access Protocol, Picture Changing, Guard Clauses, Xml Document

Typology: Study notes

2012/2013

Uploaded on 04/23/2013

ashakiran
ashakiran ๐Ÿ‡ฎ๐Ÿ‡ณ

4.5

(27)

261 documents

1 / 45

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Formulate problem in terms of software
components with well-defined cohesive
properties.
Each software component is an
independent program.
Connect components via message-passing:
send requests and receive responses.
To the extent possible, construct a
situation in which correctness of
components implies correctness of the
total application.
Component-based engineering
Component-based Engineering
Monday, November 19, 2012
1:27 PM
Components Page 1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d

Partial preview of the text

Download Component-Based Engineering - Principles of Software Development - Lecture Notes and more Study notes Software Engineering in PDF only on Docsity!

Formulate problem in terms of software components with well-defined cohesive properties. Each software component is an independent program. Connect components via message-passing: send requests and receive responses. To the extent possible, construct a situation in which correctness of components implies correctness of the total application. Component-based engineering Component-based Engineering Monday, November 19, 2012 1:27 PM Docsity.com

Example: mashup Monday, November 19, 2012 4:38 PM Docsity.com

Components operate in an open world : any other process (on the internet(!)) can request services. (Subroutines operate in a closed world ; the source code of the current program completely defines how they are used) Thus, security (and integrity) become significant problems. Disadvantages of component-based engineering Disadvantages of component-based engineering Monday, November 19, 2012 1:42 PM Docsity.com

Designed for distributed network deployment... to optimize performance... No rule against running all services on the same machine. Service-Oriented Architecture (SOA): create "services" that perform parts of a computation. Designed to run on an individual Windows machine... To make writing an application easier... No rule against contacting components on other machines. Windows .NET: create "components" that interoperate to create an entire computation. Similar strengths and weaknesses. Similar architectures(!) Two component-centered strategies Two component-based strategies Monday, November 19, 2012 1:46 PM Docsity.com

Service request and response are XML documents. Clients convert subroutine calls to XML text. Basic security/integrity model: guard clauses based upon XPATH and Xschemas SOAP: Simple Object Access Protocol SOAP Monday, November 19, 2012 1:50 PM Docsity.com

Simple development

SOA

Wrote guard clauses into the code guard clauses are external, in a different language. The code functions in a closed world We have to guard against grevious input errors. How is the picture changing? Monday, November 19, 2012 4:50 PM Docsity.com

XPATH: a language for specifying parts of XML documents. Xschemas: a language for specifying the appropriate form for an XML document. Constructing SOAP Guard Clauses Constructing SOAP Guard Clauses Monday, November 19, 2012 1:55 PM Docsity.com

How SOAP guard clauses work Monday, November 19, 2012 1:57 PM Docsity.com

morris sylvester There is only one top level element. Element opens () and closes () must balance. This is a context- free grammar. Convention: = The basics of XML Xschema and XML concepts Monday, November 19, 2012 3:01 PM Docsity.com

  • Allow specification of parts of an XML document. โ—‹ A node: one XML element. โ—‹ A nodeset: a sequence of nodes. A condition: an empty nodeset is FALSE; a nodeset with at least one element is TRUE.
  • Can specify three kinds of things: An XPATH pattern that matches nothing is thought of as selecting the "empty nodeset".

The idea of XPATH Part 1: XPATH Monday, November 19, 2012 1:59 PM Docsity.com

cats/cat Docsity.com

foo/bar[@title='cat'] matches a tag inside a tag , that happens to have an attribute 'title' whose value is 'cat'

bar[@title and @publisher] matches a tag that has both 'title' and'publisher' attributes.

bar[what] matches a tag that contains a tag .

  • conditions : select locations that satisfy tests. โ—‹ candy[name='chocolate'] โ—‹ candy[name] โ—‹ candy[2]
  • Examples: default is child : interpret names as children of current node.

โ—‹ self:: - current node. โ—‹ parent:: - parent of current node. โ—‹ preceding-sibling:: - siblings before current node. โ—‹ following-sibling:: - siblings after current node. โ—‹ descendant-or-self:: - current node or descendants.

  • axes : qualify how to interpret a name. โ—‹ name[.='chocolate']/following-sibling::* โ—‹ candy[name='chocolate']/following-sibling::candy
  • Examples: Advanced XPATH syntax Monday, November 19, 2012 2:06 PM Docsity.com

-. means self::node()

  • .. means parent::node()
  • // means /descendant-or-self::node()/
  • foo/bar is the same as foo/child::bar
  • foo//bar is the same as foo/descendant-or-self::bar.
  • @thing is the same as attribute::thing.
  • foo[] is a foo that contains . XPATH shorthands: Monday, November 19, 2012 2:05 PM Docsity.com
  • [...] - apply a condition to a pattern.
  • child::[2] - second child of context node. child::[@name and @address] - children with name and address attributes.

Example: preceding-sibling::[position()= 1] (or preceding-sibling::[1]) matches the node before the current one. Preceding indices count up as one moves backward.

Example: following-sibling::[position()= 1] (or following-sibling::[1]) matches the node following the current one at the same level.

Example: child::[count(@)=2]: matches all children with exactly two attributes!

Functions in conditions Monday, November 19, 2012 2:04 PM Docsity.com