S1 Informatic Engineering

Similar documents
S1 Informatic Engineering

Pearson Education 2005 Chapter 7 (Maciaszek - RASD 2/e) 2

Topics. From UI prototype... About user interfaces. ... via design to implementation. Pearson Education 2005 Chapter 7 (Maciaszek - RASD 2/e) 6

Pearson Education 2007 Chapter 7 (RASD 3/e)

index_ qxd 7/18/02 11:48 AM Page 259 Index

Module 3 Web Component

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation

Distributed Multitiered Application

Index. Symbols and Numbers

3. UML Class Diagrams Page 1 of 15

Appendix A - Glossary(of OO software term s)

Advanced Java Programming

Chapter 10 Web-based Information Systems

Experiment no 4 Study of Class Diagram in Rational Rose

Basic Structural Modeling. Copyright Joey Paquet,

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management

Java EE 6: Develop Web Applications with JSF

A Conceptual Model of the UML

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Oracle Developer Day

Enterprise Java Unit 1-Chapter 2 Prof. Sujata Rizal Java EE 6 Architecture, Server and Containers

Building JSP based MDDB viewers with webaf 2.0

Building Web Applications With The Struts Framework

Index. Add Diagram > Sequence Diagram command,

NetBeans IDE Field Guide

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets

Classloader J2EE rakendusserveris (Bea Weblogic Server, IBM WebSphere)

One application has servlet context(s).

UNIT V *********************************************************************************************

UML Unified Modeling Language

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

PLATFORM TECHNOLOGY UNIT-5

J2EE Interview Questions

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Research Report. Developing Highly-Responsive User Interfaces with DHTML and Servlets. Katherine Betz, Avraham Leff, James T.

All Adobe Digital Design Vocabulary Absolute Div Tag Allows you to place any page element exactly where you want it Absolute Link Includes the

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

Object-Oriented Design

Java E-Commerce Martin Cooke,

Enterprise Software Architecture & Design

SESM Components and Techniques

CS WEB TECHNOLOGY

COURSE 9 DESIGN PATTERNS

UNIT-IV BASIC BEHAVIORAL MODELING-I

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

CRAWLING THE CLIENT-SIDE HIDDEN WEB

Creating your first JavaServer Faces Web application

BEAWebLogic. Portal. Overview

Java SE7 Fundamentals

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Architecture and the UML

Enterprise Java and Rational Rose - Part II

A component-centric UML based approach for modeling the architecture of web applications.

Introduction to componentbased software development

Java EE Patterns. Student Guide - Volume 1. SL-500 Rev C.0.1. D61856GC10 Edition 1.0 D62465

Big Java Late Objects

Java Programming Course Overview. Duration: 35 hours. Price: $900

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

Chapter 3. J2EE Best Practices. Complete Reference / J2EE: TCR / Keogh / x / Chapter 3

Software Architecture

/ / JAVA TRAINING

UML REFERENCE SHEETS. 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site:

Java EE Patterns 176

Enterprise Web based Software Architecture & Design

Angular 2 Programming

Session E118011: Best practices for developing WebSphere based applications

Developing Applications with Java EE 6 on WebLogic Server 12c

extensible Markup Language

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Introduction to UML p. 1 Introduction to the Object-Oriented Paradigm p. 1 What Is Visual Modeling? p. 6 Systems of Graphical Notation p.

PRIMIX SOLUTIONS. Core Labs. Tapestry : Java Web Components Whitepaper

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Enterprise Java Security Fundamentals

IBM Workplace Collaboration Services API Toolkit

Unraveling the Mysteries of J2EE Web Application Communications

JAVA+ANDROID CURRICULUM 6 WEEKS. INTRODUCTION TO JAVA Understanding Requirement: Why Java Why Java is important to the Internet JAVA on LINUX Platform

Software Design and Analysis CSCI 2040

Oracle Fusion Middleware 11g: Build Applications with ADF I

Oracle 10g: Build J2EE Applications

Hypertext Markup Language, or HTML, is a markup

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

Experiment No: Group B_2

Object-Oriented Design

SECTION II: JAVA SERVLETS

IBM Workplace Software Development Kit

(9A05803) WEB SERVICES (ELECTIVE - III)

1.264 Lecture 12. HTML Introduction to FrontPage

Borland Application Server Certification. Study Guide. Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved.

Oracle9i Application Server Architecture and Com

112. Introduction to JSP

Component-based Architecture Buy, don t build Fred Broks

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests

Unit 4. CRM - Web Marketing 4-1

In previous episodes In next episodes

Java 2 Platform, Enterprise Edition: Platform and Component Specifications

IT6503 WEB PROGRAMMING. Unit-I

Transcription:

S1 Informatic Engineering Advanced Software Engineering WebE Design By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988

SYLLABUS 8. Web App. Process and Architecture 9. WebE Design (1) 10. WebE Design (2) 11. Real Time Software 12. Testing Web App. 13. Present Final Project 14. Present Final Project

Design Design starts with the analysis model, the user experience model, and the software architecture document as the major inputs The principal activity of design is to refine the analysis model such that it can be implemented with the components that obey the rules of the architecture o Even though this sounds straightforward, it can be the most complex phase of a development project, especially when significant advances in software technology are happening so quickly 3 September 2008 IF3037

Web Application Extension to UML Enables us to represent Web pages and other architecturally significant elements in the model alongside the "normal" classes of the model An extension to UML is expressed in terms of stereotypes, tagged values, and constraints o These mechanisms enable us to extend the notation of UML, enabling us to create new types of building blocks that we can use in the model 4 September 2008 IF3037

WAE to UML (2) Stereotype, an extension to the vocabulary of the language, allows us to attach a new semantic meaning to a model element o Can be applied to nearly every model element and are usually represented as a string between a pair of guillemets:. However, they can also be rendered by a new icon 5 September 2008 IF3037

WAE to UML (2) Tagged value, an extension to a property of a model element, is the definition of a new property that can be associated with a model element o Most model elements have properties associated with them o Classes, for instance, have names, visibility, persistence, and other attributes associated with them o A tagged value is rendered on a diagram as a string enclosed by brackets 6 September 2008 IF3037

WAE to UML (2) Constraint, an extension to the semantics of the language, specifies the conditions under which the model can be considered well formed o A rule that defines how the model can be put together o Rendered as strings between a pair of braces: { } 7 September 2008 IF3037

WAE - Logical View The logical view of a UML model consists mostly of classes, their relationships, and their collaborations Some stereotyped classes define multiple icons For practical reasons, the decoration icon is more manageable for modeling tools like Rose The WAE defines three core class stereotypes and various association stereotypes: o Server page o Client page o HTML form 8 September 2008 IF3037

Server Page Represents a dynamic Web page that contains content assembled on the server each time it is requested Typically, contains scripts that are executed by the server that interacts with server-side resources: o databases, o business logic components, o external systems, o and so on. The object's operations represent the functions in the script The object s attributes represent the variables that are visible in the page's scope, accessible by all functions in the page Constraints: o Server pages can have only normal relationships with objects on the server 9 September 2008 IF3037

Server Page (2) 10 September 2008 IF3037

Client Page A client page instance is an HTML-formatted Web page with a mix of data, presentation, and even logic Rendered by client browsers and may contain scripts that are interpreted by the browser Client page functions map to functions in tags in the page Client page attributes map to variables declared in the page's script tags that are accessible by any function in the page, or page scoped Client pages can have associations with other client or server pages Tagged values: o TitleTag, the title of the page as displayed by the browser o BaseTag, the base URL for dereferencing relative URLs o BodyTag, the set of attributes for the <body> tag, which sets background and default text attributes 11 September 2008 IF3037

Client Page (2) 12 September 2008 IF3037

HTML Form A class stereotyped as a «form» is a collection of input fields that are part of a client page. o This class maps directly to the HTML <form> tag. o Its attributes represent the HTML form's input fields: input boxes, text areas, radio buttons, check boxes, and hidden fields. A «form» has no operations, as they can't be encapsulated in a form. o Any operations that interact with the form would be the property of the page that contains the form Tagged values: o GET or POST: the method used to submit data to the action URL 13 September 2008 IF3037

HTML Form (2) 14 September 2008 IF3037

Basic relationships among WAE stereotyped elements 15 September 2008 IF3037

Association Stereotypes << link>> is an abstraction of the HTML anchor element, when the href attribute is defined <<build>> a directional relationship between a server page and a client page <<submit>> a directional relationship between an «HTML form» and a server page <<redirect>> indicates a command to the client to request another resource 16 September 2008 IF3037

Association Stereotypes (2) <<forward>> represents the delegation of processing a client's request for a resource to another server-side page <<object>> a containment relationship drawn from a client page to another logical class, typically one that represents an applet, ActiveX control, or other embeddable component <<include>> indicates that the included page gets processed, if dynamic, and that its contents or by-products are used by the parent 17 September 2008 IF3037

Association Stereotypes 18 September 2008 IF3037

Multiple forms in client pages 19 September 2008 IF3037

Simple client page «link» associations 20 September 2008 IF3037

Stereotyped «link» associations originating from client pages 21 September 2008 IF3037

The «link» associations pointing to «screen» elements when screens are compartmentalized 22 September 2008 IF3037

WAE Component View Static Page Dynamic Page Physical Root Static Page Dynamic Page Physical Root 23 September 2008 IF3037

Static Page Metamodel: Component A resource that can be directly requested by a client browser Performs no server-side execute and is delivered directly from the file system to the client intact Constraint: Cannot realize logical components that execute on the server, that is, server pages. Static pages can realize only client pages 24 September 2008 IF3037

Metamodel: Component Dynamic Page A resource that can be requested by a client browser When requested or delegated to via a «forward» relationship, server-side processing takes place The results of this processing can change the state of the server and be used to construct some of the HTML that is streamed out to the requesting client Can accept user input submitted by forms Constraints: Must realize a single server page 25 September 2008 IF3037

Physical Root Metamodel: component package An abstraction of a file hierarchy that contains requestable resources o Clients request static or dynamic files directly from this hierarchy o Maps directly to a Web server file system directory Tagged values: o Host name, the name of the host of the Web server, such as www.mycompany.com. o Context, the application context. The context appears as a top-level directory, such as www.myco.com/appcontext. 26 September 2008 IF3037

Logical-view classes realized by dynamic page component 27 September 2008 IF3037

Client pages realized by static page components 28 September 2008 IF3037

Designing Web App Most of the activities are the same as for any client/server system: o partitioning the objects into the system's tiers and developing the necessary infrastructure and helper classes to add to the analysis model In Web-centric systems, Web pages are first-class objects, and the WAE gives us a notation for including them in our design models Proper partitioning of the business objects in a Web application is critical and depends on the architecture o Objects may reside exclusively on the server, the client, or both o Thin Web client applications place all objects behind the server, running either on the Web server or on another tier associated with the server. o Thick Web client applications allow some objects to execute on the client. o Web delivery applications have the most freedom in the placement of objects, being essentially distributed object systems that happen to use a browser. 29 September 2008 IF3037

Thick Web client Web applications When designing thick Web client Web applications, a large number of the objects discovered during analysis can be easily partitioned in the first pass For the most part, persistent objects, container objects, shared objects, and complex objects all belong on the server o Objects with associations to server resources, such as databases and legacy systems, also belong in the server tier o Objects that maintain static associations or dependencies with any of these objects must also exist on the server An object can exist on the client if it has no associations or dependencies with objects on the server and has associations and dependencies only with other client resources, such as browsers and Java applets o Candidate objects for the partitioning on the client are field validation objects, user interface controls, and navigation assisting controls o Client objects can be implemented with JavaScript, JavaBeans, applets, ActiveX (COM), or even plug-ins 30 September 2008 IF3037

Web Delivery Web Applications One of the primary reasons for distributing objects to the client is to take some of the load off the server. It is also natural to place objects in the part of the system where they will be most effective As a general rule, place objects where they have the easiest access to the data and the collaborations they require to perform their responsibilities If an object can exist on the client and if most, if not all, its associations are on client objects, that object is a likely candidate for placement on the client 31 September 2008 IF3037

Identifying web pages While the objects are being partitioned, Web pages are also being defined o Involves the discovery of Web pages and their relationships with one another and with the objects of the system Web page design elements client and server pages are discovered by first looking at the UX model and understanding the software architecture document In the early generations of Web applications, Web pages mapped one to one to what we now refer to as UX model screens. o Each page was responsible for preparing its output by interacting with server-side objects Today's development environments and frameworks enable us to build more robust, sophisticated Web applications with the same effort we used to create simple ones just four years ago o The two predominant Web architecture frameworks available today are J2EE and.net. 32 September 2008 IF3037

JavaServer Page Model 2 Architecture JavaServer Pages Model 2 Architecture describes the general philosophy of separating the two mechanisms for accepting and processing input and building output. The general strategy is to use servlets for accepting all usersupplied input. A servlet is a completely Javawritten component. With the submitted data accepted and processed, the servlet delegates the building of the response page to a JSP. JavaServer pages are more appropriate for building HTML output since the majority of the code in the component is often HTML. 33 September 2008 IF3037

.NET paradigm for handling user input The ASPX file mypage.aspx is modeled with a «server page» stereotyped class. The C# code behind class mypage.cs is a superclass to the ASPX class and contains the majority of the event-handling code. The general strategy is: to leave the ASPX file to focus on building the output page. 34 September 2008 IF3037

Design model fragment of catalog search functionality The Web page with the search form is not built by a server page, so there is the option of using a «static page» component for its implementation. The search form submits its data to the Search «server page», which is responsible for accepting the search request and processing Building the response page is the job of the Listing «server page». When the Search page has completed the search, control is forwarded to the Listing page, which uses the built-in session management mechanism for J2EE applications (HttpSession). The SearchResults client page implements a page-scrolling mechanism Paged Dynamic List, Page-by-Page Iterator and has two «link» relationships to itself. The parameter tag value for each of these links has a value to indicate which direction to scroll: { parameters="scroll=next" } and { parameters="scroll=prev" }. 35 September 2008 IF3037

Search catalog sequence diagram using stereotyped elements 36 September 2008 IF3037

Build Listing sequence diagram 37 September 2008 IF3037

Component view realizations of logical-view classes The components are all under the physical root at the same level. The physical root is named /store, which also happens to be the context. A client browser would request the search page by using the URL: http://localhost/store/searchfor m.html. 38 September 2008 IF3037

Client-Side Scripting Designing Web applications that have dynamic client pages requires careful attention to the partitioning of the objects Thick Web client applications can have all sorts of objects and activity on the client 39 September 2008 IF3037

Modeling applets and other embedded A simple class diagram with a «client page» that has two defined JavaScript functions. Shows an «object» stereotyped association to the PolynomialView applet class. The client page also has an HTML form included controls 40 September 2008 IF3037

Mapping to the UX Model To establish and to maintain mappings directly between use case and design models to the UX model The mappings are captured in class diagrams that contain UX screens and design model classes with dependency relationships connecting them o show which Web page classes realize which UX model screens o simple architectures have a one-to-one mapping between a Web page class client or server page and the screen o in more complex architectures, Web page classes are responsible for delivering multiple screens 41 September 2008 IF3037

Design model mapping with UX model 42 September 2008 IF3037

Design model mappings with UX model, including «screen compartment» mappings 43 September 2008 IF3037

Design model implementing UX model contract 44 September 2008 IF3037

Guidelines for Web Application Design Be wary of using the latest capabilities of browsers o The browser wars continue, and it is difficult to predict which features will eventually become standard Think about how the page is going to be tested o Don't use visual cues to let the actor know when the page is safe to interact with unless these same cues are accessible by an automated testing tool Avoid the temptation to use multiple browser windows simultaneously o Although a useful feature for some applications, designing and maintaining two client interfaces requires more than double the effort Keep the focus of server pages on the construction of the user interface o Avoid placing business logic code in the server page. Use external objects to encapsulate this type of logic 45 September 2008 IF3037

For Next Week 1. Collect Report of Analysis (Use Case Diagram, Class Diagram, etc.) - Revision 2. Collect Report of Design (Format of report attached) New 3. Print report without binding 4. Collected into Miss Annisa in TU Fasilkom (D building) + Absence

THANK YOU