Functional Design of Web Applications. (partially, Chapter 7)

Similar documents
Topic 11. WebE - Functional Design

Lab # 1. Structuring System Requirements: Diagrams

Analysis Modeling Week 5

06. Analysis Modeling

Topic # 03. Requirements to Software System: An Overview (Ch. 5 and partially Ch. 6)

Chapter : Analysis Modeling

CS487 Midterm Exam Summer 2005

Topic 10. WebE - Information Design

CS485/540 Software Engineering Requirements Modeling (Ch. 6)

Software Service Engineering

Enterprise Architect Training Courses

Modeling. Slides by: Ms. Shree Jaswal. Slides by:ms. Shree Jaswal 1

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

R.S. Pressman & Associates, Inc. For University Use Only

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

Detailed Design. Java Problem Repository & Education Platform JPREP

Requirements Modeling (Ch. 6)

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Hippo Software BPMN and UML Training

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

CHAPTER 5 GENERAL OOP CONCEPTS

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

CHAPTER 9 DESIGN ENGINEERING. Overview

Chapter 1. Software and Software Engineering. What is this course about?

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

Introduction to Software Engineering

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Qlik Sense Desktop. Data, Discovery, Collaboration in minutes. Qlik Sense Desktop. Qlik Associative Model. Get Started for Free

Object-Oriented Systems Analysis and Design Using UML

UNIT 5 - UML STATE DIAGRAMS AND MODELING

Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Architectural Design

Objectives. Object-Oriented Analysis and Design with the Unified Process 2

Requests Charges. Librarian. University affiliated patrons students, faculty, staff. Media Center Staff

Systems Analysis and Design in a Changing World, Fourth Edition

Design Concepts and Principles

Lecture 8: Chapter 8!

Beginner Level. Adobe Connect Pro

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key

ITM DEVELOPMENT (ITMD)

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

Comparative analyses for the performance of Rational Rose and Visio in software engineering teaching

Systems Analysis and Design

Chapter 5: Planning in Web Engineering

Architectural Blueprint

Lab 01 Assignment. Diagramming Software Systems for Analysis and Design Modeling

Activities Radovan Cervenka

Interaction Design. Task Analysis & Modelling

Software Development Methodologies

Powered By. Student Guide

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 4 Entity Relationship (ER) Modeling

Topic : Object Oriented Design Principles

User Interface Design. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

UNIT-II: Requirements Engineering

Collaborate Ultra. Presenter Guide for D2L Brightspace. University Information Technology Services

The Virtual Classroom

Appendix A - Glossary(of OO software term s)

Chapter 7 Desain Rekayasa Perangkat Lunak Analysis Modeling. Software Engineering: A Practitioner s Approach by Roger S. Pressman

CASE TOOLS LAB VIVA QUESTION

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

SE 1: Software Requirements Specification and Analysis

Elluminate Introduction & Handbook

Getting Started with Moodle Virtual Learning Environment. Student User Guide

Introduction to Object Oriented Analysis and Design

Chapter 12 (revised by JAS)

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Textbook Charles Petzold, Programming Windows, 5th edition, Microsoft Press. References - other textbooks or materials none

Software Design. Software design is a blueprint or a plan for a computerbased solution for system

Software Architecture and Design I

SEEKING THE ACTUAL REASONS FOR THE "NEW PARADIGM" IN THE AREA OF IS ANALYSIS 2. GENERAL CHARACTERISTICS OF THE "STRUCTURED APPROACH" IN IS DEVELOPMENT

SEEM4570 System Design and Implementation Lecture 11 UML

Systems Analysis and Design in a Changing World, Fourth Edition

The Alice Scene Editor

Moodle is a virtual learning environment that allows you to access learning materials required for your module.

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 4 Entity Relationship (ER) Modeling

Requirements and Design Overview

BP-VA Quick Start. Last update: 29 th January, Copyright Visual Paradigm International Ltd.

Enterprise Architect basic usage

Topic 02. Web Generations. Web Engineering. Web Systems Characteristics

Interactions A link message

Test and Measurements System Modeling: Addressing the Root of the Problem

My Courses: Displays courses the user has self-enrolled in as well as courses that have been assigned to the user when available.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

CS 490 Design Exhibition Fall 2010

Getting Started with TurningPoint

WHAT IS SOFTWARE ARCHITECTURE?

Answer: D. Answer: B. Answer: B

What is Software Architecture

SEEM4570 System Design and Implementation. Lecture 10 UML

Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman. Slides copyright 1996, 2001, 2005, 2009 by Roger S.

Lecture 13 Introduction to Software Architecture

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition. Chapter 7 Data Modeling with Entity Relationship Diagrams

Ch 1: The Architecture Business Cycle

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

S2 NetBox v4.8 Basic End-User Admin Training

Software Modeling & Analysis

Software Design Description Report

Transcription:

Functional Design of Web Applications (partially, Chapter 7)

Functional Design: An Overview Users of modern WebApps expect that robust content will be coupled with sophisticated functionality The advanced functionality will allow users to 1) magnify their understanding of WebApp content, 2) characterize (see) content in different ways, 3) personalize their interaction with WebApp, and 4) provide added value to their website visit. Functional design of WebApps is almost always component-based and compartmentalized (tagged, labeled). The designer must consider the substantial constraints imposed by the Web infrastructure such as a 1) distributed model (which complicates aspects like information handling and user responsiveness), 2) security issues, and 3) the limited interface model inherent (incompatibility) in Web browsers.

Security of Web Applications: Statistics http://projects.webappsec.org/web-application-security-statistics#overalldata

WebApp Functional Design: Functionality Levels and Design Tasks Functional design is not a discrete task that is performed at just one point in the design process. Rather, it is interwoven with other design activities. To support user: User-level functionality is the expression of the WebApp capabilities that support users in achieving their goals; it has strong relations with interaction design To support application: Applicationlevel functionality represents a lowerlevel design of internal functionality that may not be directly visible to users; it has strong relations with information design (content object design) Application-level functionality is more deeply embedded within the structure of the WebApp and will often emerge out of the progressive design of the user-level functionality

WebApp Functionality Categories (1) Group 1: User-Level (External) Functionality These categories include functionality that directly affects users experience of the WebApp Category 1A: User Interaction Support (e.g. highlighting link(s) on mouse-over) Category 1B: User Information Support (e.g. presentation of constantly updated weather forecast) Category 1C: User Task Support (e.g. dynamic checking and feedback on user-provided information; for example, Webster system)

WebApp Functionality Categories (2) Group 1: User-Level (External) Functionality These categories include functionality that directly affects users experience of the WebApp Category 1A: User Interaction Support (e.g. highlighting link(s) on mouse-over) Category 1B: User Information Support (e.g. presentation of constantly updated weather forecast) Category 1C: User Task Support (e.g. dynamic checking and feedback on user-provided information; for example, Webster system)

WebApp Functionality Categories (3) Group 2: Application-Level (Internal) Functionality. These categories relate to functionality that is necessary to support the WebApp, but which will only be visible to users as a second-order effect. Category 2A: Application Interaction Support (e.g. logging of user navigation behaviours) Category 2B: Application Information Support (e.g. database content maintenance) Category 2C: Application Task Support (e.g. download new virus definitions, etc.) http://www.smartwebby.com/web_site_design/dreamweaver_behaviors.asp

WebApp Functionality Categories (4) Group 2: Application-Level (Internal) Functionality. These categories relate to functionality that is necessary to support the WebApp, but which will only be visible to users as a second-order effect. Category 2A: Application Interaction Support (e.g. logging of user navigation behaviours) Category 2B: Application Information Support (e.g. database content maintenance) Category 2C: Application Task Support (e.g. download new virus definitions, scan the entire computer, reboot the computer, go-to-sleep)

Functional Design of Web Applications: General Approaches

SE: Functional Design is based on Analysis Model Analysis Model 1. Scenario-based models: - use-cases text; - use-cases diagrams. 2. Class models: - class diagrams; - analysis packages; - collaboration diagrams. 3. Behavioral models: - state transition diagrams; - sequence diagrams, - activity diagrams, - swim lane diagrams. 4. Data-flow models: - data-flow diagrams; - ERD diagrams; - control-flow diagrams; - processing narratives;

Functional Design: A Modular Approach Functional design is a paradigm used to simplify the design of software applications. A functional design assures that each modular part of software application has only one responsibility (one function) and performs that responsibility with the minimum of side effects on other parts. In other words, functionally-designed modules tend to have low coupling.

Vertical Partitioning of WebApp 1. define separate branches of the module hierarchy for each major function 2. use control modules to coordinate communication between functions function 2 (for ex: online database) function 1 (for ex: GUI) function 3 (for ex: security login, password)

Functional Design of Web Applications: Main Components

Functional Design: Main Components

Functional Design: Main Components

WebApp Design: Models and Diagrams Analysis Models Interaction model (GUI) Information model Functional model Configuration model Goal Describes the manner in which users interact with the WebApp. Identifies the full spectrum of content to be provided by the WebApp. Content includes text, graphics and images, and video and audio data. Defines the operations that will be applied to WebApp content and describes other processing functions that are independent of content but necessary to the end user. Describes the environment and infrastructure in which the WebApp resides. Models or Diagrams Use Cases (UCs) User interface prototypes Data Trees Hierarchical GUI Design Model Content Objects (including, Data Objects) Data Flow Diagrams (DFDs) Content Model Trees (CMTs) State Transition Diagrams (STDs) Activity Diagrams (ADs) Swim Lane Diagrams (SLDs) Components: o Hardware, operating systems o Software o Internet, browsers o Data Protocols o Security considerations etc.

Behavioral Modeling (a part of Functional Design) The behavioral model indicates how WebApp will respond to external events. To create the model, the Web engineer must perform the following steps: Identify events that drive the interaction sequence and understand how these events relate to specific objects. Create a sequence of events for each use-case. Build a state transition diagram (STD) for the system. Review the behavioral model to verify accuracy and consistency. State transition diagrams (STD) - one of possible means of representing WebApp s Functional Model.

Stable States of the WebApp state event(s) causing transition (click of a mouse, timer, etc.) State - a set of observable circumstances that characterizes the behavior of a system at a given time State transition - the movement from one state to another new state action(s) Event - an occurrence that causes the system to exhibit some predictable form of behavior Action - process that occurs as a consequence of making a transition

Identify Main Desired Functions first Example: Online University web site and Web applications: View University Details View Available degree details View Course Details Applying for admission Taking the courses online Taking exams online Can view the grades Login Validation Can Register for the Courses Faculty can upload materials Faculty can post exams Faculty can post grades

Context Data Flow Diagram (with one MAIN processing unit = main function only)

Level 0 Data Flow Diagram (with several processing sub-units = sub-functions)

A fragment of State Transition Diagram of Online University: An Example

An Example of Webster s State Transition Diagram

User Functionality Design: a set of inter-related detailed - Interaction (collaboration) Diagrams (during last class) - Activity Diagrams, - Swim lane Diagrams, - Sequence Diagrams, - State Transition Diagrams

User Interaction Support: Interaction (collaboration) diagram to provide information about designated interaction functions

Application Functionality Design: a set of inter-related detailed - Detailed Activity (Swimlane, Sequence) Diagrams - Class Diagrams - Detailed State Diagrams

Activity and Swim lane Diagrams

Activity Diagram: An Example (Online Library) Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. An activity diagram shows the overall flow of control.

Webster s Detailed Swim lane Diagram: Page 1

Webster s Detailed Swim lane Diagram: Page 2

Webster s Detailed Swim lane Diagram: Page 3

Functional Architecture (Functional Model) as an Outcome of Functional design

Functional Architecture Design: a set of inter-related detailed - Component Diagrams - Deployment Diagrams

Component Diagram: Webster WebApp Components System System Level (Webster System) A subsystem Databases GUI Security Level of Subsystems (Domains) (Databases, GUI, Security, HELP, etc.) A component Functions A detail (attribute) Dialog boxes Icons Links Check boxes Level of Elements or Components (menu items, dialog boxes, check boxes, messages, radio buttons, etc.) Level of Sub-elements, Details (for ex., attributes) (Font type, size, appearance,

GUI: Component Diagram (to provide required GUI functionality)

WebML

WAE

Required Models and Diagrams (as a part of Midterm)

Midterm Assignment (partial)

Models and Diagrams Analysis Models Interaction model (GUI) Information model Functional model Configuration model Goal Describes the manner in which users interact with the WebApp. Identifies the full spectrum of content to be provided by the WebApp. Content includes text, graphics and images, and video and audio data. Defines the operations that will be applied to WebApp content and describes other processing functions that are independent of content but necessary to the end user. Describes the environment and infrastructure in which the WebApp resides. Models or Diagrams Use Cases (UCs) User interface prototypes Data Trees Hierarchical GUI Design Model Content Objects (including, Data Objects) Data Flow Diagrams (DFDs) Content Model Trees (CMTs) State Transition Diagrams (STDs) Activity Diagrams (ADs) Swim Lane Diagrams (SLDs) Components: o Hardware, operating systems o Software o Internet, browsers o Data Protocols o Security considerations etc.

State Transition Diagram: An Example of Webster

Swim lane diagram: an example of Webster

Activity Diagram: An Example

Functional Design of Web Applications (partially, Chapter 7) Additional (optional) Information

Web Browser Incompatibility: An Example with InterLabs Web-Lecturing Technology Video/ Audio Text PPT slides Pictures Email Bulletin B. Chat Whiteboard Video-conf. Audio-conf. Web-based Animation Web-based programming and simulation

Partitioning the WebApp Motto: Divide and Concur Horizontal and vertical partitioning are required

Vertical Partitioning 1. define separate branches of the module hierarchy for each major function 2. use control modules to coordinate communication between functions function 2 (for ex: online database) function 1 (for ex: GUI) function 3 (for ex: security login, password)

Horizontal Partitioning: Factoring 1. decision making and work are stratified (or, separated by levels) 2. decision making modules reside at the top of the architecture decision-makers (WebApp engineers) Workers (WebApp developers)

Getting Started: SafeHomeAssured.com Example SafeHomeAssured.com has an interesting mix of information-focused and functionally focused components. In the initial communication activity (Chapter 4), we identified an initial set of informational and applicative goals for SafeHomeAssured.com reproduced in part here: To provide users with requested product specs. To provide tools that will enable users to represent the layout of a space (i.e., house, office/retail space) that is to be protected. To make customized recommendations about security and monitoring products that can be used within the user space. To enable users to obtain a quote for product cost. To allow users to place an order for security hardware. To allow users to control monitoring equipment (e.g., cameras, microphones) with their space. To enable users to sign up for monitoring services. To allow monitoring customers to query the monitoring database about their account activity.

Getting Started (1): Webster s Use-Case Diagram (use case scenarios)

Getting Started -- Outcomes (2): Webster s Sequence (Swim lane) Diagrams

Developing the Architecture Consider both the WebApp analysis model (along with any specifications that accompany it) and the initial information architecture Decompose use cases into the following generic component categories: Information selection (i.e., functionality associated with the identification and/or selection of information to be presented to the user). Information compilation (i.e., functionality associated with merging information together into a composite to be presented to the user). Information processing (i.e., the analysis or calculation of data). System interaction (i.e., functionality associated with interactions with other systems external to the WebApp). Consider whether the specific scenario component should be invoked dynamically on user request, dynamically on event initiation, or manually.

Class Diagrams Class Diagrams are actively used on Class-based Modeling Represents objects system manipulates, operations applied to objects, and collaborations occurring between classes Elements of class model include: classes, data objects, attributes, operations, collaboration diagrams, packages, etc. Examine the problem statement and try to find nouns that fit the following categories and produce or consume information (i.e. grammatical parse) External entities (systems, devices, people) Things (e.g. reports, displays, letters, signals) Events occurring during system operation Roles (e.g. manager, engineer, salesperson) Organizational units (e.g. division, group, team) Places Structures (e.g. sensors, vehicles, computers)

Class Diagrams: Examples The upper part holds the name of the class. The middle part contains the attributes of the class. The bottom part gives the methods or operations the class can take or undertake Source: http://www.agilemodeling.com/artifacts/classdiagram.htm

Class Diagram Student Class: An example of the initial conceptual class diagram Classes (data objects, Ch.6) Attributes Operations Associations: enrolled, on waiting list, etc. Source: http://www.agilemodeling.com/artifacts/classdiagram.htm

Webster s Class Diagrams

Getting Started -- Outcomes (4): Webster s Data Flow Diagram (Context Diagram)

Getting Started Outcomes (4): Online Banking Level-0 Data Flow Diagram (Context Diagram)

Detailed hierarchical structure of a GUI to provide designated functions

Component Diagrams Components are wired together by using an assembly connector to connect the required interface of one component with the provided interface of another component. This illustrates the service consumer - service provider relationship between the two components.

Detailed Functional Design Detailed functional modeling for WebApps is usually only carried out for those components that are extremely complex or extremely critical WAE establishes a set of extensions to UML that facilitate the modeling of WebApp low-level design Particularly useful for connecting the information architecture to the functional components which generate the information views WebML has been adapted to model workflow-oriented applications.

Functional Architecture (Functional Model): Outcomes We got answers for 2 key questions: 1. How do we partition the functionality into components that have clearly defined roles and interfaces? 2. Where does each functional component exist, and what does it interact with?

Deployment Diagrams (Physical Architecture Model) Deployment diagram depicts a static view of the run-time WebApp configuration of network processing nodes and the components that run on those nodes. In other words, deployment diagrams show the hardware for your WebApp, the software that is installed on that hardware, and the middleware used to connect the disparate machines to one another.