Software Architecture



Similar documents
Eclectic Computing. Time Tracking Tool Software Architecture Document. Version <1.3>

Course Name: Course in JSP Course Code: P5

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

Building Java Servlets with Oracle JDeveloper

Client-server 3-tier N-tier

Web Pages. Static Web Pages SHTML

New Web Application Development Tool and Its MDA-Based Support Methodology

Client/server is a network architecture that divides functions into client and server

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Glassfish, JAVA EE, Servlets, JSP, EJB

Japan Communication India Skill Development Center

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Customer Bank Account Management System Technical Specification Document

Detailed Table of Contents

Title Page. Hosted Payment Page Guide ACI Commerce Gateway

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Link Analysis Tool Design Description Final Version

CS Developing Web Applications with Java Technologies

Modeling Web Applications Using Java And XML Related Technologies

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Apache Jakarta Tomcat

1. Introduction 1.1 Methodology

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Japan Communication India Skill Development Center

Specialized Programme on Web Application Development using Open Source Tools

-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*

Design Approaches of Web Application with Efficient Performance in JAVA

Japan Communication India Skill Development Center

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

A DIAGRAM APPROACH TO AUTOMATIC GENERATION OF JSP/SERVLET WEB APPLICATIONS

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Applets, RMI, JDBC Exam Review

MULTICULTURAL CONTENT MANAGEMENT SYSTEM

Stock Trader System. Architecture Description

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

JAVA/J2EE DEVELOPER RESUME

UML other structural. diagrams. (Implementation Diagrams UML 1.5) Università di Padova. Facoltà di Scienze MM.FF.NN. Informatica - anno

Lecture 2. Internet: who talks with whom?

Java the UML Way: Integrating Object-Oriented Design and Programming

Oracle WebLogic Server 11g: Administration Essentials

What Is the Java TM 2 Platform, Enterprise Edition?

Web Application Architecture (based J2EE 1.4 Tutorial)

JReport Server Deployment Scenarios

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Specialized Programme on Web Application Development using Open Source Tools

Enterprise Application Development In Java with AJAX and ORM

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Designing Real-Time and Embedded Systems with the COMET/UML method

IT6503 WEB PROGRAMMING. Unit-I

i-flow Architecture White Paper

Business Process Management

Outline. CIW Web Design Specialist. Course Content

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Time Monitoring Tool Software Requirements Specifications. Version <1.0>

Java-technology based projects

ORM IN WEB PROGRAMMING. Course project report for 6WW Erik Wang

A framework for web-based product data management using J2EE

BHARATHIAR UNIVERSITY COIMBATORE SCHOOL OF DISTANCE EDUCATION

Agenda. Summary of Previous Session. Application Servers G Session 3 - Main Theme Page-Based Application Servers (Part II)

Constructing Control-Flow-Based Testing Tools for Web Application

Understanding Application Servers

Managing Complexity in Mobile Application Deployment Using the OSGi Service Platform

Chap 1. Introduction to Software Architecture

Object-Oriented Systems Analysis and Design

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

Building Web Applications, Servlets, JSP and JDBC

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Online College Magazine

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Java Application Developer Certificate Program Competencies

Rational Software White Paper

Red Hat Enterprise Portal Server: Architecture and Features

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS

Java EE Introduction, Content. Component Architecture: Why and How Java EE: Enterprise Java

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

This document gives an outline of Tim Ward s work on mobile phone systems

This presentation will provide a brief introduction to Rational Application Developer V7.5.

Turning ClearPath MCP Data into Information with Business Information Server. White Paper

A Comparison of Software Architectures for E-Business Applications

Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms

Transcription:

Software Architecture Definitions http://www.sei.cmu.edu/architecture/published_definiti ons.html ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software- Intensive Systems Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

Architecture and Design Software design is often divided into two categories: Software architecture design Top-level design, high-level software structure and organization of components Software detailed design Describing each component sufficiently to allow for its construction

Testing V Requirements -> Acceptance Testing Architecture -> System Testing Design -> Integration Testing Construction -> Unit Testing

Design Strategies Divide-and-conquer/stepwise refinement Top-down vs. bottom-up Data abstraction and information hiding Use of heuristics Use of patterns and pattern languages Iterative and incremental approach

Design Methods Function-Oriented (Structured) Object-Oriented Data-structure-centered Component-based

Architectural Styles Sequential Layered/Multitier Client-Server Event-driven Pipe-and-Filter Parallel State-Machine

Web Architecture Overview Static html text file containing html tags created manually may include some client-side scripts (e.g. JavaScript) Dynamically generated html html file produced at time of request cgi, php, asp, jsp, Servlets Html with active content html contains a program that runs at the client inside a web browser Java applets, javascript

Static HTML web server web browser request URL response HTML.html

Dynamically-generated HTML RMI Sockets CORBA EJB application JDBC DBMS web server web browser request URL response HTML.class.jsp.html

HTML with Active Content web server web browser.class request URL response HTML.html

Dynamically- application generated and Active-content HTML RMI Sockets CORBA EJB JDBC DBMS web server web browser.class request URL response HTML.class.jsp.html

Sample Web Architecture with Spring Framework hello.htm web.xml Dispatcher Servlet springapp-servlet.xml ProductManager.java Model Product.java Controller TestProductManager.java SpringappController.java View hello.jsp TestSpringappController.java springapp-servlet.xml build.xml build.properties

4+1 Architecture Views from the Unified Process Classes, interfaces, collaborations End-user Functionality Logical View Use cases Use Case View Implementation View Components Programmers Software management Active classes System integrators Performance Scalability Throughput Process View Conceptual Deployment View Physical Nodes System engineering System topology Delivery, installation Communication

Modeling CASE Model->code-generation->source code Source code->object code Reverse engineering

UML Diagrams Structural Class, Object, Component, Deployment Diagrams Behavioral Use-Case, Activity, Sequence, Communication/Collaboration, Statechart Diagrams

Architecturally Significant Classes Organized by Package

Architecturally Significant Classes TimeTrackerApplet submitelapsedtime() savelocal() readlocal() 1 1 Timer start() pause() resume() stop() getelapsedtime() <<Servlet>> TMTPageController dopost() doget() <<Servlet>> TimerController dopost() doget() submittimeentry() DBMSInterface submitquery() insert() ReportGenerator generatetaskdurationbyworker() Worker Fullname SSN Address ID Position <<JSP>> ReportResults returnreport() Each report type will correspond to one JSP Most Use Cases will have a corresponding operation here Item Name Description Assignments TimeEntry PerformDate Time W orkorder Task gettaskiterator() : Iterator addtask(t : Task) removetask(t : Task) 1 0..*

Class Diagrams Classes, attributes, operations Associations, aggregation, composition Inheritance/generalization

Architecturally Significant Interactions : Worker Menu (JSP) 1: Create Report Reports Menu (JSP) TMT Page Controller (Servlet) Report Generator (Servlet) DBMS Interface (JDBC) Report Results (JSP) 2: 3: 4: setworker 5: setproject 6: settask 7: getreport 8: 9: 10: submitquery 11: 12:

Communication Diagrams 3: Display Time Sheet( ) 7: Display Time Sheet( ) 1: Get Time Sheet( ) 4: Add Time Entry( ) 8: Submit Time Sheet( ) : Employee : User Interface 2: Get Time Sheet(String) 5: Add Time Entry( ) 9: Submit( ) : Time Sheet Server : Time Sheet 6: create : Time Entry

State Diagrams Initial Empty Create Assign Owner and Dates Assigned do/ Add Time Entry do/ Remove Time Entry entry/ Retrieve from DB Submit Submitted Approve Approved Delete Time Sheet Deleted do/ Remove Time Entry [ All Time Entries Removed ] Final Persist / Store in DB

Select Wallpaper Activity Diagrams Order Wallpaper Receive Wallpaper [ paneling ] Remove paneling Prepare Walls [ else ] [ old wallpaper ] Remove old wallpaper Patch and Sand Walls Paint Sizing Put Up Wallpaper

Logical View Describes an architecturally significant subset of the design model Contains a subset of classes, packages, and use-case realizations Concerns the functionality, behavior, use of frameworks and patterns Uses Class, Interaction, and State Diagrams

Process View Describes threads of control and communication between them Concerns the availability, reliability, scalability, performance, synchronization Uses Component, Class, and Collaboration Diagrams TimeTracking Server

Implementation View Describes software component organization Concerns team organization and configuration management Uses Component Diagrams TimeTracking Server Database

Deployment View Describes physical network configurations Concerns the performance, throughput, fault-tolerance, availability, installation, and maintenance Uses Deployment Diagrams UNIX Server TimeTracking Server Client PC GUI Database