comp9321 web application engineeringcs9321/17s1/lectures/lec08/lec-08.pdf · cohesion is defined as...

62
COMP9321 Web Application Engineering Semester 1, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 8 1 COMP9321, 17s1, Week 8 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid= 2457

Upload: others

Post on 12-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

COMP9321 Web Application EngineeringSemester 1, 2017

Dr. Amin BeheshtiService Oriented Computing Group, CSE, UNSW Australia

Week 8

1COMP9321, 17s1, Week 8

http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid= 2457

Page 2: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Assignment 1

Marks on GradeBook

Assignment 2

is due end of Week 9: Sunday, 7 May 2017, 23:59:59

2COMP9321, 17s1, Week 8

Page 3: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

J2EE Design Patterns

3COMP9321, 17s1, Week 8

Last Week, Design Pattern Part I:

Model View Controller: • MVC is the J2EE BluePrints recommended architectural design pattern for

interactive applications.

Front Controller (Command): • For providing a central dispatch point to handle all incoming requests.

Page 4: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

J2EE Design Patterns

4COMP9321, 17s1, Week 8

This Week, Design Pattern Part II:

Service Locator: • Typically used in business layer for locating resources (such as database

connection)

Data Access Object: • A typical pattern for data access layer (linking the data storage layer with

the application)

Business Delegate: • A pattern to reduce coupling between presentation-tier clients and

business services.

Page 5: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

First..

What is Cohesion & Coupling?

5COMP9321, 17s1, Week 8

Page 6: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

6COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Page 7: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

7COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Coincidental: module performs multiple, completely unrelated actions

(degrades maintainability & modules are not reusable)

Page 8: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

8COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Logical: module performs series of related actions, one of which is selected by calling module.(interface difficult to understand & module difficult to reuse)

Page 9: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

9COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Temporal : module performs series of actions related in time.

(code spread out -> not maintainable or reusable)

Page 10: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

10COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Procedural : module performs series of actions related by procedure to be followed by product.

(not reusable)

Page 11: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

11COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Communicational : A communicationally cohesive module is one which performs several functions on the same input or output data. For example, obtain author, title, or price of book from bibliographic record, based on a passed flag (not reusable)

Page 12: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

12COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional 6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Informational : module performs a number of actions, each with its own entry point, with independent code for each action, all performed on the same data structure

(This is an ADT!)

Page 13: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Cohesion

13COMP9321, 17s1, Week 8

Cohesion is defined as the ‘degree of interaction within a module’.

Seven levels of Cohesion:

7. Functional6. Informational5. Communicational4. Procedural3. Temporal2. Logical1. Coincidental

Worst

Best

Functional : module performs exactly one action

(more reusable, corrective maintenance easier, easier to extend product )

Page 14: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

14COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Page 15: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

15COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Content : one module directly references contents of the other module. e.g., accessing local data of another module.

(almost any change to M1 requires changes to M2 )

Page 16: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

16COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Common : two modules have write access to the same global data.

(difficult to reuse + module exposed to more data than necessary )

Page 17: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

17COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Control : one module passes an element of control to the other.

(modules are not independent)

Page 18: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

18COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Stamp : data structure is passed as parameter, but called module operates on only some of individual components.

(affects understanding + unlikely to be reusable + passes more data than necessary)

Page 19: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Coupling

19COMP9321, 17s1, Week 8

Coupling is defined as the ‘degree of interaction between two modules’.

Seven levels of Coupling:

5. Data4. Stamp3. Control2. Common1. Content Worst

Best

Data : every argument is either a simple argument or a data structure in which all elements are used by the called module.

Each datum is an elementary piece, and these are the only data shared; e.g., passing an integer to a function that computes a square root.

(maintenance is easier) <good design has high cohesion & weak coupling>

Page 20: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

20COMP9321, 17s1, Week 8

Page 21: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

21COMP9321, 17s1, Week 8

ContextService lookup and creation involves complex interfaces and network operations.

Problem• The service locator pattern is a design pattern used in software development to

encapsulate the processes involved in obtaining a service with a strongabstraction layer.

• When J2EE clients interact with the server side components (EJB: EnterpriseJava Beans) or DataSources, clients must locate the service component, whichreferred to as a lookup operation in JNDI: Java Naming and Directory Interface.

Page 22: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

22COMP9321, 17s1, Week 8

Solution

• Using a central registry known as the "service locator", which on request returnsthe information necessary to perform a certain task.

• Service Locator object will abstract all JNDI usage to hide the complexities ofinitial context creation and lookup operations

• Multiple clients can reuse the Service Locator object to reduce code complexity,provide a single point of control

msdn.microsoft.com

Page 23: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

23COMP9321, 17s1, Week 8

Service Locator:The Service Locator abstracts the API lookup services, vendor dependencies,lookup complexities, and business object creation, and provides a simple interfaceto clients.

Page 24: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

24COMP9321, 17s1, Week 8

InitialContext:The InitialContext object is the start point in the lookup and creation process.

Page 25: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

25COMP9321, 17s1, Week 8

ServiceFactory:The ServiceFactory object represents an object that provides life cyclemanagement for the BusinessService objects. eg., The ServiceFactory object forenterprise beans is an EJBHome object.

Page 26: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

26COMP9321, 17s1, Week 8

BusinessService: is a role that is fulled by the service that the client is seeking toaccess. The BusinessService object :

• is created or looked up or removed by the ServiceFactory.• in the context of an EJB application is an enterprise bean.• the context of JDBC is a DataSource.

Page 27: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

27COMP9321, 17s1, Week 8

Page 28: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Service Locator Pattern

28COMP9321, 17s1, Week 8

To build a service locator pattern, we need:

https://www.tutorialspoint.com/design_pattern/service_locator_pattern.htm

Page 29: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Dependency Injection

29COMP9321, 17s1, Week 8

Page 30: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Dependency

30COMP9321, 17s1, Week 8

Page 31: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

SAX Books Parser Example

31COMP9321, 17s1, Week 8

Page 32: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

What is "dependency injection" ?

32COMP9321, 17s1, Week 8

• In software engineering, dependency injection is a software designpattern that implements inversion of control forresolving dependencies.

• Dependency injection means giving an object its instance variables.

• Dependency injection provides the ability to pass by reference (or"inject"), service objects into a client (a class or a delegate) atdeployment time.

• This is a top-down approach, in contrast to a bottom-up one whereinthe clients discover or create service objects on their own.

Page 33: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Benefits of "dependency injection" …

33COMP9321, 17s1, Week 8

Page 34: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Data Access Object

34COMP9321, 17s1, Week 8

Page 35: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Data Access Object

35COMP9321, 17s1, Week 8

Context

• Access to data varies depending on the source of the data. Access to persistentstorage, such as to a database, varies greatly depending on the type of storage(relational databases, object-oriented databases, flat files, and so forth) and thevendor implementation.

Problem

• For many applications, persistent storage is implemented with differentmechanisms, and there are marked differences in the APIs used to access thesedifferent persistent storage mechanisms. Other applications may need to access datathat resides on separate systems.

• An example is where data is provided by services through external systems such asbusiness-to-business (B2B) integration systems, credit card bureau service, and soforth.

http://www.oracle.com/technetwork/java/dataaccessobject-138824.html

Page 36: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Data Access Object

36COMP9321, 17s1, Week 8

Solution

• Use a Data Access Object (DAO) to abstract and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data.

http://www.oracle.com/technetwork/java/dataaccessobject-138824.html

Page 37: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Data Access Object: Sequence Diagram

37COMP9321, 17s1, Week 8

http://www.oracle.com/technetwork/java/dataaccessobject-138824.html

Page 38: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Business Delegate

38COMP9321, 17s1, Week 8

Page 39: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Business Delegate

39COMP9321, 17s1, Week 8

Context

• A multi-tiered, distributed system requires remote method invocations to send andreceive data across tiers. Clients are exposed to the complexity of dealing withdistributed components.

Problem

• Presentation-tier components interact directly with business services. This directinteraction exposes the underlying implementation details of the business serviceapplication program interface (API) to the presentation tier.

• As a result, the presentation-tier components are vulnerable to changes in theimplementation of the business services: When the implementation of the businessservices change, the exposed implementation code in the presentation tier mustchange too.

http://www.oracle.com/technetwork/java/businessdelegate-137562.html

Page 40: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Business Delegate

40COMP9321, 17s1, Week 8

Solution

• Use a Business Delegate to reduce coupling between presentation-tier clients andbusiness services.

• The Business Delegate hides the underlying implementation details of the businessservice, such as lookup and access details of the EJB architecture.

• Another benefit is that the delegate may cache results and references to remotebusiness services. Caching can significantly improve performance, because it limitsunnecessary and potentially costly round trips over the network.

http://www.oracle.com/technetwork/java/businessdelegate-137562.html

Page 41: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Business Delegate

41COMP9321, 17s1, Week 8

http://www.oracle.com/technetwork/java/businessdelegate-137562.html

• Client: requests the BusinessDelegate to provide access to theunderlying business service.

• BusinessDelegate: uses a LookupService to locate the requiredBusinessService component.

Page 42: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Business Delegate Sequence Diagrams

42COMP9321, 17s1, Week 8

http://www.oracle.com/technetwork/java/businessdelegate-137562.html

Page 43: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

API and API Engineering

43COMP9321, 17s1, Week 8

Page 44: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

API and API Engineering

44COMP9321, 17s1, Week 8

What is API?• Application programming interface (API) is a set of routines, protocols, and tools

for building software applications.

• An API expresses a software component in terms of its operations, inputs, outputs, and underlying types.

• An API defines functionalities that are independent of their respective implementations.

• A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together.

What is API Engineering?

• API engineering is an application of engineering to the design, development, and maintenance of APIs.

Page 45: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

API and API Engineering

45COMP9321, 17s1, Week 8

Web APIs?• Web APIs are the defined interfaces through which interactions happen

between an enterprise and applications that use its assets.

• When used in the context of web development, an API is typically defined as a set of HTTP request messages, along with a definition of the structure of response messages, which is usually in an XML or JSON (JavaScript Object Notation) format.

Microservice

e.g. Microservices in IBM Bluemix

https://developer.ibm.com/bluemix/2015/01/19/microservices-bluemix/

Page 46: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

API and API Engineering

46COMP9321, 17s1, Week 8

Web APIs?• While "web API" historically has been virtually synonymous for web service,

the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA).

• Part of this trend is related to the Semantic Web movement toward Resource Description Framework (RDF).

• Web APIs allow the combination of multiple APIs into new applications known as mashups.

http://www.programmableweb.com/

Page 47: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

More Patterns

47COMP9321, 17s1, Week 8

Core J2EE Patterns Catalog:

http://www.oracle.com/technetwork/java/index-138725.html

On this site, you will find the entire Java 2 Platform, Enterprise Edition (J2EE) Pattern catalog from the book Core J2EE Patterns: Best Practices and Design Strategies

authored by architects from the Sun Java Center.

Page 48: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

A few more things to consider

48COMP9321, 17s1, Week 8

Page 49: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Guarding a View

49COMP9321, 17s1, Week 8

Page 50: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Guarding a View

50COMP9321, 17s1, Week 8

Page 51: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Guarding a View

51COMP9321, 17s1, Week 8

Page 52: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Guarding a View

52COMP9321, 17s1, Week 8

Page 53: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Guarding a View

53COMP9321, 17s1, Week 8

Page 54: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Duplicate Form Submissions

54COMP9321, 17s1, Week 8

Page 55: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Duplicate Form Submissions

55COMP9321, 17s1, Week 8

Page 56: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Duplicate Form Submissions

56COMP9321, 17s1, Week 8

Page 57: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Synchronizer Token

57COMP9321, 17s1, Week 8

Page 58: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Synchronizer Token

58COMP9321, 17s1, Week 8

Page 59: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Background Tasks

59COMP9321, 17s1, Week 8

Page 60: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

Background Tasks

60COMP9321, 17s1, Week 8

Page 61: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

References

61COMP9321, 17s1, Week 8

• Core J2EE patterns, Deepak Alur, John Crupi and Dan Marlks, Prentice Hall• http://www.oracle.com/technetwork/java/index-138725.html• Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley• http://java.sun.com/blueprints/patterns/• http://www.oracle.com/technetwork/articles/javase/index-142890.html• From Modules to Objects, Professor James Landay, Software Engineering Lecture

Page 62: COMP9321 Web Application Engineeringcs9321/17s1/lectures/lec08/Lec-08.pdf · Cohesion is defined as the ‘degree of interaction withina module’. Seven levels of Cohesion: 7. Functional

62COMP9321, 17s1, Week 8