Introduction to Architecture. Introduction to Architecture 1

Similar documents
Software Architecture. Definition of Software Architecture. The importance of software architecture. Contents of a good architectural model

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

DESIGN TIME PRO. RGSR Software Inc. Design Time Pro Support Guide

UNIT II Requirements Analysis and Specification & Software Design

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors

NMU EduCat Course Settings

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures

User requirements document. PMoC 14/04/2003 Version 1.7

Systems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels:

Registering for classes Help

Architectural Styles II

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Software processes, quality, and standards Non-functional testing

How Parallels RAS Enhances Microsoft RDS. White Paper Parallels Remote Application Server

<Project Name> Software Requirements Specification <Version> <Date> <Team Members>

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

SOFTWARE PRODUCT QUALITY SOFTWARE ENGINEERING SOFTWARE QUALITY SOFTWARE QUALITIES - PRODUCT AND PROCESS SOFTWARE QUALITY - QUALITY COMPONENTS

Software Design. Levels in Design Process. Design Methodologies. Levels..

Ch 1: The Architecture Business Cycle

Ryan Parsons Chad Price Jia Reese Alex Vassallo

Topics in Object-Oriented Design Patterns

Technical Metrics for OO Systems

Architectural Documentation 1

CAS 703 Software Design

Table of Contents. Cisco How NAT Works

Chapter 8: Class and Method Design

QoS-aware model-driven SOA using SoaML

Software Requirements Specification (SRS) Software Requirements Specification for <Name of Project>

Lab - Remote Desktop in Windows 8

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

Our Three Usability Tests

Erlang and Node.JS or, better, Criteria for evaluating technology. Lev Walkin, CTO

Learning objectives. Documenting Analysis and Test. Why Produce Quality Documentation? Major categories of documents

Ch 1: The Architecture Business Cycle

Programming II. Modularity 2017/18

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 9 Database Design

IBM Software Group. Mastering Requirements Management with Use Cases Module 8: Refine the System Definition

Improving Your Network Defense. Joel M Snyder Senior Partner Opus One

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Architectural Styles I

MaintScape Training Course Table of Contents

10. Software Testing Fundamental Concepts

Object-Oriented Design

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

Chapter 6 Architectural Design. Chapter 6 Architectural design

Working Together In Communities of Practice with Metadata Standards

<Name of the project> Software Requirement Specification

Advanced Excel Reporting

Architectural Styles I

Identifiers. Identifiers are the words a programmer uses in a program Some identifiers are already defined. Some are made up by the programmer:

Operating Systems. read the warning about the size of the project make sure you get the 6 th edition (or later) of the book

<Insert Picture Here> Oracle Policy Automation Connector For Siebel Features and Benefits

IPv6 investigation within Informatics. George Ross

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

How to build a UML model

ADVANCED CUSTOMER SERVICES ORACLE TRANSITION SERVICE EXHIBIT

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Unlocking Office 365 without a password. How to Secure Access to Your Business Information in the Cloud without needing to remember another password.

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

Testing System Qualities

Write perfect C code to solve the three problems below.

ONLINE VOTING SYSTEM

Sample Exam. Advanced Test Automation - Engineer

Software specification and modelling. Requirements engineering

How to Secure SSH with Google Two-Factor Authentication

Java EE Architecture, Part Three. Java EE architecture, part three 1(24)

WebSphere Application Server, Version 5. What s New?

INTRODUCTION TO VHDL. Lecture 5 & 6 Dr. Tayab Din Memon Assistant Professor Department of Electronic Engineering, MUET

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Java EE Architecture, Part Two. Java EE architecture, part two 1

Cindy Fan, Rick Huang, Maggie Liu, Ethan Zhang November 6, c: Usability Testing Check-In

Software Quality. Richard Harris

Service-Oriented Architecture (SOA)

IntForex demonstration bank account list IntForex demonstration rates IntForex demonstration rates... 22

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

3d: Usability Testing Review

Survivable Remote Site Telephony Configuration

Architectural Design

InsightUnlimited Upgrades Best Practices. July 2014

Exam Questions. Object-Oriented Design, IV1350. Maximum exam score is 100, grade limits are as follows. Score Grade 90 A 80 B 70 C 60 D 50 E

STUDENT LESSON A5 Designing and Using Classes

Web Services for Relational Data Access

Modularity Guidelines for design in any programming language

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011

Evolutionary Architecture and Design

Architecture and Design Evolution

TeamViewer Manual Manager

CS 153 Design of Operating Systems

Software quality Texts and Readings

The Analysis and Design of the Object-oriented System Li Xin 1, a

System Analysis & design

Administrivia. CMSC 216 Introduction to Computer Systems Lecture 24 Data Representation and Libraries. Representing characters DATA REPRESENTATION

Implementation Architecture

Mobile Banking User s Guide

09. Component-Level Design

Transcription:

Introduction to Architecture Introduction to Architecture 1

Content What is architecture? Motivation for architecture Non-functional requirements Introduction to Architecture 2

What is architecture? The system's skeleton. What is left when you have removed everything possible and still are able to tell how the system works. Tells which problems are solved and where they are solved. Introduction to Architecture 3

What is architecture? (cont) Shall guarantee that all requirements, both functional and non-functional, can be solved. Non-functional requirements are a very important part of the architecture. Involves choosing what hardware and software to use, which means that the architecture is very platform dependant. Introduction to Architecture 4

What is architecture? (cont) What is a good architecture depends very much on the purpose of the application. Architecture is not as generic as design. Introduction to Architecture 5

What is architecture? (cont) This course presents good architectures for distributed applications consisting of view, business logic and data. Focus on web based view. Assumes Java EE is used. The course does not give you knowledge to chose between different architectures for other kinds of applications. Introduction to Architecture 6

Organization Why Architecture? Reflect, decide, document Do not make decisions by coincidence Conflicting requirements from users, customers, system administrators and developers. Balance functionality, cost, quality and time. Introduction to Architecture 7

Benefits of a Good Architecture Understanding of the system's structure and its limitations. Common vocabulary Reuse Code: objects and components Code style: code conventions, patterns, documentation etc Introduction to Architecture 8

Benefits of a Good Architecture (cont) Better organization of the project. Divide the resources after components, subsystems, functionality etc Makes it easier to divide the application and maintain low coupling and high cohesion. Introduction to Architecture 9

Non-Functional Requirements All requirements that do not concern what the program should do, but how it should work. performance, reliability, maintainability, security etc Very important to specify before development starts. Very important to implement from the start. DO NOT try to add them when the program works. Introduction to Architecture 10

Be realistic, do not write a wish list. It must be possible to verify that they are fulfilled. Do not write fast enough, but rather first visible sign of response within 1 second in 99% of the calls measured from the outer firewall. Introduction to Architecture 11

Availability The application can be reached often enough by as many users as required, for example available 98% of the time and/or unavailable at most four minutes per week. Reliability To what extent the application shall behave as expected, for example at most 1 of 1000 sessions fails. Introduction to Architecture 12

Response time for example first visible sign of response within 1 second in 99% of the calls measured from the outer firewall. Capacity Measures how much load can be handled concurrently, for example 10 concurrent transactions while maintaining other non-functional requirements. Introduction to Architecture 13

Scalability To what extent the application can maintain its performance with higher load if additional hardware is added. Vertical scaling means to add hardware (cpu, memory) to the servers. Horizontal scaling means to add more servers. For example Maintain all nonfunctional requirements at 90% load increase if the number of servers are doubled. Introduction to Architecture 14

Manageability How complex the system administrator's work may be, for example at most two work hours a month may be spent to install upgrades. Configurability For example which changes can be made to the system without having to recompile anything. Introduction to Architecture 15

Packaging In what format should the product be delivered. Standards What standards must the application follow Requirement to use certain software and/or hardware. Introduction to Architecture 16

Usability The screen should be visible at a distance of one meter or eight out of ten persons chosen by the customer should consider the application easy to use. Security There are lots of different security aspects. Criteria could be 30 minutes using the best known techniques to change the balance of an account or three failed log in attempts in a row should be logged. Introduction to Architecture 17

Security Requirements: authentication, to prove ones identity. authorization, which rights do different users have? non-repudiation, users can not deny what they have done. integrity, data can not be modified in any unallowed manner. privacy, data can not be read in any unallowed manner. logging, what should be logged and where? Introduction to Architecture 18

Design goals Non-functional requirements that are not really observable to the users, but rather to the developers. Affects the possibility (and cost) to maintain functional and non-functional requirements during the application's life time. Hard to measure. Can be evaluated with code reviews or by performing the task that should be made easy (for example to add or change functionality). Introduction to Architecture 19

Some design goals: Adaptability or extensibility, how easy it is to extend or change the application. Portability, how much work is required to adapt the application to other hardware, operating system, user interface etc. Interoperability, how easy it is for other applications to communicate with this application. Introduction to Architecture 20

Testability, to what extent the system facilitates testing, for example by giving informative error messages or being able to unit test. Reusability, both to use existing components in this application and to use newly developed components in other applications. Introduction to Architecture 21