Sub Phase: High-Level Design. From Requirements Analysis to User Manual. System Design

Similar documents
Software Engineering (CSC 4350/6350) Rao Casturi

Map of design phase DESIGN LOW LEVEL DESIGN HIGH LEVEL. DESIGN Data Persistance Subsystem. Classes Class Interfaces Interaction Diagrams

7. System Design: Addressing Design Goals

Database Management Systems MIT Introduction By S. Sabraz Nawaz

i2b2 Software Architecture Project Management (PM) Cell Document Version: i2b2 Software Version:

CS352 Lecture: Database System Architectures last revised 11/22/06

Chapter 7 Addressing Design Goals

CSC 261/461 Database Systems Lecture 20. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

Milestone 1.1 Ethan Kang and Peter Crossman. 2. Sequence of Events. Requirement 1: Clerk / manager Check out more copies to patron

CMPT 354 Database Systems I

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

CPS352 Lecture: Database System Architectures last revised 3/27/2017

CS275 Intro to Databases. File Systems vs. DBMS. Why is a DBMS so important? 4/6/2012. How does a DBMS work? -Chap. 1-2

***** Archive and Backup your Data before updating***** ****Ensure that you are running a minimum version of before updating****

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

The functions performed by a typical DBMS are the following:

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70

BIS Database Management Systems.

MIS Database Systems.

Chapter 10 Web-based Information Systems

Chapter 2: Operating-System Structures. Operating System Concepts 8 th Edition

Computer Principles and Components 1

Distributed KIDS Labs 1

Database Management Systems

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

Chapter : Analysis Modeling

CPSC 421 Database Management Systems. Lecture 11: Storage and File Organization

Database Server. 2. Allow client request to the database server (using SQL requests) over the network.

Software Development Methodologies

Operating- System Structures

Chapter 6, System Design Lecture 2

Lecture 23 Database System Architectures

VETtrak Canvas LMS Integration User Guide

(C) Global Journal of Engineering Science and Research Management

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Chapter 7, System Design: Addressing Design Goals

Client/Server-Architecture

Data Base Concepts. Course Guide 2

Introduction to Databases

SENIOR DESIGN PROJECT. Project name: Sharewood. High-Level Design Report. Project Group Member Names: Merve Sezer. Evrim Şay.

Extended Search Administration

Appendix A - Glossary(of OO software term s)

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact:

Distributed Databases

Chapter 18: Database System Architectures.! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems!

Information Management (IM)

Chapter 20: Database System Architectures

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

1.264 Lecture 8. SQL continued Connecting to database servers

CS511 Design of Database Management Systems

CSE 303: Database. Teaching Staff. Lecture 01. Lectures: 1 st half - from a user s perspective. Lectures: 2 nd half - understanding how it works

CS 245 Midterm Exam Winter 2014

Architectural Blueprint

Masking Engine User Guide. October, 2017

Element: Relations: Topology: no constraints.

Connecting BioNumerics to MySQL

Setting up a database for multi-user access

ADVANCED DATABASES ; Spring 2015 Prof. Sang-goo Lee (11:00pm: Mon & Wed: Room ) Advanced DB Copyright by S.-g.

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved.

Scott Meder Senior Regional Sales Manager

Files & I/O. Today. Comp 104: Operating Systems Concepts. Operating System An Abstract View. Files and Filestore Allocation

National College of Ireland BSc in Computing 2015/2016. Mahmoud Azzam LocalDeal. Final Report

CSE 544 Principles of Database Management Systems

A database management system (DBMS) is a software package with computer

Relational model continued. Understanding how to use the relational model. Summary of board example: with Copies as weak entity

Chapter 7, System Design: Addressing Design Goals

COMMUNICATION PROTOCOLS

JDBC. Sun Microsystems has included JDBC API as a part of J2SDK to develop Java applications that can communicate with databases.

Systems Analysis and Design in a Changing World, Fourth Edition. Chapter 12: Designing Databases

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

CPSC 421 Database Management Systems. Lecture 19: Physical Database Design Concurrency Control and Recovery

Introduction. Example Databases

FACULTY OF ENGINEERING B.E. 4/4 (CSE) II Semester (Old) Examination, June Subject : Information Retrieval Systems (Elective III) Estelar

Optimizing Performance for Partitioned Mappings

Introduction and Overview

Database System Concepts and Architecture. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Database Management Systems. Chapter 1

Syslog Technologies Innovative Thoughts

IT Service Delivery and Support Week Three. IT Auditing and Cyber Security Fall 2016 Instructor: Liang Yao

FUSION REGISTRY COMMUNITY EDITION SETUP GUIDE VERSION 9. Setup Guide. This guide explains how to install and configure the Fusion Registry.

Database Applications

SMD149 - Operating Systems - File systems

Create A Relational Database Schema For The Following Library System

Rajiv GandhiCollegeof Engineering& Technology, Kirumampakkam.Page 1 of 10

CLIENT SERVER ARCHITECTURE:

What are Transactions? Transaction Management: Introduction (Chap. 16) Major Example: the web app. Concurrent Execution. Web app in execution (CS636)

DBMS (FYCS) Unit - 1. A database management system stores data in such a way that it becomes easier to retrieve, manipulate, and produce information.

Introduction to Database Management Systems

; Spring 2008 Prof. Sang-goo Lee (14:30pm: Mon & Wed: Room ) ADVANCED DATABASES

Information Security for Mail Processing/Mail Handling Equipment

Introduction to Database Systems. Chapter 1. Instructor: . Database Management Systems, R. Ramakrishnan and J. Gehrke 1

Java Enterprise Edition

Part I: Exploring Business Reports in Home and Specialty Infusion

Real Application Security Administration

Introduction and Overview

Transaction Management: Introduction (Chap. 16)

Database Systems Management

Security, Monitoring, and Control of the Re-engineered Hubble Space Telescope Control Center System

Destiny Library Manager

Transcription:

Sub Phase: High-Level Design 1 From Requirements Analysis to User Manual System Design 2 1

Map of design phase HIGH LEVEL DESIGN Module Interfaces Modularization architecture DESIGN Data Persistance Subsystem LOW LEVEL DESIGN Classes Class Interfaces Interaction Diagrams User Interface User Manual Implementation Janice Regan, 2008 3 Activities for high level design Decide on an architecture model to work with Modularize Divide your application into subsystems/modules Design your user interface If data persistence is required Determine which data needs to be persistent Decide on a solution for dealing with that persistent data. Refine your use cases Add User interface interaction details Add Database solution interaction details Describe the interfaces between subsystems Janice Regan, 2008 4 2

Objectives of System Design The design phase produces a system model That is based on specific design goals for the designers That defines architecture and Subsystem design Identifying subsystems/modules (manageable parts) Identifying architecture (hardware/software) Data management / mapping Access control, flow control (sequencing operations) That describes boundary use cases: Initialization, termination, configuration, exception handling Janice Regan, 2008 5 Design goals When assessing design goals consider Selection of existing components (off the shelf modules or components ) Hardware / software mapping, Are there multiple nodes or systems What is each node responsible for selecting solutions for managing persistent data Access control policies Control flow on a solution wide basis Boundary conditions (startup, error, shutdown) Janice Regan, 2008 6 3

Design goals, System decomposition Identify design goals (choose aspects of the system to be optimized) Design goals are often derived from non-functional requirements. Guide designers in assessing trade offs Develop and refine a subsystem decomposition that satisfies the maximum number of design goals and or the most critical design goals Refine the decomposition to better satisfy the design goals Janice Regan, 2008 7 Selecting platform (mapping 1) First need to decide if the system resides on one computer or on multiple computers (in the same location or separated and connected through the Internet) Next need to select an appropriate hardware configuration, and operating system (virtual machine) Next need to select any other external software components (database package, communication package ) Janice Regan, 2008 8 4

Allocating subsystems (mapping 2) Next we consider the subsystems (modules) in our system and allocate modules to appropriate p nodes (virtual machines) If objects belong to more than one module then they may need to communicate between modules or even between virtual machines This communication can often be supported and made more efficient using the proxy design pattern Janice Regan, 2008 9 Proxy Pattern object Proxy object 1 0..1 Real object Protection or Image proxy: enhances efficiency. Proxy object is similar (same interface) to real object, only contains items like checks for permission to use methods, or specifications of image Only when permission is allowed or the actual image is accessed is the real object used Janice Regan, 2008 10 5

Access Control In a multi user system it is common for different users (actors) to have access to different functions of the system or different parts of the data In most general case need to identify which methods of any shared object can be accessed by each sharing user Have a matrix of access information (class or method on one axis, user type on the other Janice Regan, 2008 11 Access Control: representation Depending on the amount and type of flexibility (generality) needed we can represent the access matrix as 1. A global access table, explicitly list access (or no access) for each operation, class, user tuple 2. An access control list to control if an object (method in an object) can be accessed by a particular user (e.g. Guest List) 3. A capability to indicate if a user may access a particular method or object (e.g. Invitation) Janice Regan, 2008 12 6

Access Control: representation Depending on the amount and type of flexibility (generality) needed we can represent the access matrix as 4. When the number of actors or objects is large methods 1, 2, 3 may not be practical. In such a case set of rules can be used to control access (e.g a firewall) Before using the access control the user must be authenticated to the system. Usually use username and password known only by the user themselves. Login over an unsecured network may also need encryption to assure security and prevent forging of login packets Janice Regan, 2008 13 Design of Control Flow Three approaches Procedure driven Procedures wait for input from user Not generally compatible with OO languages Event driven Threads Main loop waits for events, sends them to objects Concurrent (multiple processes at one time) version of procedure driven Janice Regan, 2008 14 7

Identify boundary conditions Configuration: when is each object created or destroyed? How is each component of the system started? How is each component of the system shut down? How does the system deal with error conditions / exceptions? Janice Regan, 2008 15 Is data persistence required? Are there pieces of information that need to be remembered when the application is not actually in use? Persistent data outlive a single execution of the software system What data need to be persistent? We know some of our data should be persistent. How to we assure the data is persistent? Store data between executions of the software system. How? Janice Regan, 2008 16 8

Example: 1 data persistence You are designing an application which supports users in writing documents (a word processor) Users do not wish to type their entire document each time they use the word processor The word processor creates a file The file is saved when the user leaves the word processor The file is loaded into the word processor when a user wishes to continue with editing the document. The data (file containing document) is persistent. It is not necessary for the word processor to be running for the file to exist. Janice Regan, 2008 17 Data Persistence Persistent data outlive a single execution of the software system Done by storing data In files on external storage medium In database. Janice Regan, 2008 18 9

Data Persistence Does our application need data persistence? Which data need to be persistent? How should this data be stored? How is this external storage medium managed? What tools are to be used to manage the persistent data? Can all data reside in memory at once? Janice Regan, 2008 19 LMS example: Data persistence What data need to be persistent? Patron Resource Librarian What data do not need to be persistent? Overdue fine information Overdue letters Search results Janice Regan, 2008 20 10

Flat Files Storage abstractions provided by OS Application stores data as sequence of bytes defines how and when data is retrieved/updated Low level data storage Advantage: give application control over data storage (e.g., size) Disadvantage: application must take care of many issues: concurrent accesses, recovery from system crash. Janice Regan, 2008 21 Database Management System DBMS Security (hacker proof) Recovery from crash Information growth Solution still works with increased data volume Concurrency Concurrency solution allows for increased users Software systems that operate on data can do so in a consistent fashion Efficient queries on large data set Janice Regan, 2008 22 11

Context of a database Self Implemented Data Storage Solution (Part of application) Subsystem 2 Subsystem 1 DBMS filestore Subsystem 3 Janice Regan, 2008 23 Context of a database Commercial DBMS (Used by application, not directly part of application) Subsystem 1 Subsystem 2 DB interface DBMS filestore Subsystem 3 Janice Regan, 2008 24 12

Relational DBMS Data stored in structured tables (called relations) Each row is a record (called a tuple), each tuple contains the values of a list of attributes t Each column, (called an attribute) contains the value of that particular attribute for each tuple in the relation Several tuples in diff. tables may contain attributes of individual object (not object based) E.g. Patron s Name AddressLibrary # Age June Smith 123456 45 1 tuple 1 relation Jo Zhang 987655 17 1 attribute Advantage: mature technology, stable application Disadvantage: high cost, performance bottleneck, not object Janice Regan, 2008 oriented 25 M Object Persistence Problem: How to go back and forth between objects held in memory and storage entities on disk when these storage entities are not object-oriented? COURSE 2010101 J Doe 3 Ace St Eng 10 2010111 K Lu 88 B Rd Math 101 objects STUDENT STUDENT-COURSE Std # Course # 201011 1 201010 1 Math 101 Eng 10 # Title credits # Title address Math 101 Calculus 3 2010101 J Doe 3 Ace St Eng 10 ESL 3 2010111 K Lu 88 B Rd Janice Regan, 2008 26 13

Object-Oriented DBMS Provides services similar to relational DB Stores data as objects and associations Higher level of abstraction no need to translate between objects and relations (advantage) provides inheritance and abstract data types Disadvantages: slower than relational DB, less mature technology Janice Regan, 2008 27 What solution is appropriate? Choose a file when Voluminous data (e.g. images) Low information density (e.g. archives, logs) Choose a database when Concurrent access Multiple applications over same data Choose a relational database when Large data set Complex queries over attributes t Choose OO database when Medium size data set Irregular associations among objects Based on p 269 of Bruege & Dutoit Janice Regan, 2008 28 14

LMS Case Study: Object Persistence LMS may contain 1000 s of resources These records cannot all live in memory A DBMS is called for to provide Concurrent access by multiple users Security enforcement of different access levels for various user categories Allow for increased data capacity Janice Regan, 2008 29 LMS Case Study: Relational Representation of Data Book Relational Tables Resource List Patron Patron Address Janice Regan, 2008 30 15

Encapsulating Data Storage Once storage mechanism is selected, encapsulate it into a module, then define interface between that module and the storage mechanism Open Database Connectivity (ODBC) application programming interface (API) Java Database Connectivity (JDBC) application programming interface (API) Both use Structured Query Language (SQL) as their database access language Janice Regan, 2008 31 Context of a database Commercial DBMS (Used by application, not directly part of application) Subsystem 1 Subsystem 2 DB interface DBMS filestore Subsystem 3 Janice Regan, 2008 32 16

Encapsulating Data Storage Advantage: Increase changeability Allows easy substitution of different data stores Makes your solution vendor independent Disadvantage: Reduce performance Janice Regan, 2008 33 High Level Design : Summary Divide your software system into subsystems Design your user interface Decide on data persistence solution Refine your use cases by adding UI details DB details Describe inter-subsystems interfaces Janice Regan, 2008 34 17

Janice Regan, 2008 35 Data Persistence: Solution 1 Build DB subsystem (classes) that encapsulates disk files Random access file I/O library -> file handle Tutorial: Binary Random-Access I/O in Java on Course Web Site File contains unsorted records of fixed length why? Build public interface for that class Must provide adequate functionality (get, add, remove, ) Janice Regan, 2008 36 18

Data Persistence: Solution 2 Advantage: can change file format and organization e.g. could use sorted records or B+ Tree rest of software system unaffected by this change How to transform objects into relational records of fixed length Normalization 1 st normal form: fixed length records 2 nd normal form: remove partial dependencies 3 rd normal form: remove transitive dependencies Janice Regan, 2008 37 Why fixed length records? Minimizes fragmentation of the file. If record 2 is removed, a unused space in the file will be created Any new record may be put in that unused space, because all records have the same length the new record completely fills the space created by removal of the previous record Fragmentation is not a problem. Record 1 Record 2 Record 3 Record 4 Record 5 Record 6 Janice Regan, 2008 38 19

Why fixed length records? No need to have special support to find the beginning of the next record. If you know the record length you know where each record begins. Can easily find any record (record n starts a n- 1*length) Record 1 Record 2 Record 3 Record 4 Record 5 Record 6 Janice Regan, 2008 39 Without fixed length records Fragmentation becomes a problem. Record 1 Record 2 If record 2 is removed, a Record 3 unused space in the file will be Record 4 created Record 5 The next new record may be Record 6 put in that unused space if it is small enough, the new record may not fill the gap. Gaps are created between records fragmentation Janice Regan, 2008 40 20

Without fixed length records Special support to find the beginning of the next record. Record 1 You must keep track of where each record begins and ends. Need a table of contents, or must step through all records Record 2 Record 3 Record 4 Record 5 Record 6 Janice Regan, 2008 41 21