Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

64
Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014

Transcript of Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Page 1: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Chapter 7: Moving into Design Chapter 8: Architecture Design

December 14, 2014

Page 2: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Moving into Design

Chapter 8

Page 3: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Key Definitions

• Design phase– Decide how to build the system– Create system requirements that describe technical details

for building the system

• System specification– Final deliverable from design phase– Conveys exactly what system the design team will

implement during the implementation phase

Page 4: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

System Specification Outline

• Recommended System Acquisition Strategy• System Acquisition Weighted Alternative

Matrix• Architecture Design• Hardware and Software Specification• Interface Design• Updated CASE Repository Entries

Page 5: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

System Specification Outline (Cont…)

• Physical Process Model• Program Design Specifications• Physical Data Model• Data Storage Design• Updated CRUD Matrix

Page 6: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Classical Design Mistakes

• Reducing design time• Silver Bullet Syndrome• Feature creep:• Switching tools in mid-project

Page 7: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Ways to Approach a New System

(1) Develop a custom application in-house; (2) Buy a packaged system and (possibly)

customize it; and (3) Rely on an external vendor, developer, or

service provider to build or provide the system.

Page 8: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Design Strategies

1) Custom development (build from scratch) in-house

2) Purchase software package (and customize it)

3) Outsource development to third party

Page 9: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Custom Development

PROS

Allows flexibilityand creativity

Consistent with existingtechnology and standards

Builds technical skills and functional knowledge in-house

CONS

Requires significant timeand effort

May exacerbate existingbacklogs

May require missing skills

Often costs more

Often takes more calendartime

Risk of project failure

Page 10: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Packaged Software• Available for many common business needs• Tested, proven; cost and time savings• Rarely a perfect fit with business needs• May allow for customization– Manipulation of system parameters– Changing way features work– Synchronizing with other application interfaces

• May require workarounds

Page 11: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Systems Integration

• Building systems by combining packages, legacy systems, and custom pieces

• Integrating data is the key

Page 12: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Outsourcing• Hiring an external vendor, developer, or service

provider• Outsourcing firms called application service

providers (ASPs) supply software applications and/or software-related services over wide area networks or the Internet. May reduce costs or add value

• Risks include possibly– Losing confidential information– Losing control over future development– Losing learning opportunities

Page 13: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

SaaS

• Software as a Service (SaaS) is a popular term that is essentially an extension of the ASP model.

• This term is commonly used to describe situations in which SaaS vendors develop and manage their own software rather than managing and hosting a third-party independent software vendor’s software (the more traditional ASP model).

• Example: Salesforce.com

Page 14: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Outsourcing Contracts

• Time and arrangements• Fixed-price• Value-added

Page 15: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

INFLUENCES ON THE ACQUISTION STRATEGY

Page 16: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Selecting a Design Strategy

• Consider each of the following when deciding what strategy to use:– Business need– In-house experience– Project skills– Project management– Time frame

Page 17: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

SELECTING AN ACQUISITION STRATEGY

Page 18: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Request For Information (RFP)• Project teams employ several approaches to

gather additional information that is needed. • One helpful tool is the request for proposal (RFP),

a document that solicits a formal proposal from a potential vendor, developer, or service provider.

• RFPs describe in detail the system or service that is needed, and vendors respond by describing in detail how they could supply those needs.

Page 19: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Request For Information (RFI)

• For smaller projects with smaller budgets, the request for information (RFI) may be sufficient.

• An RFI is a shorter, less detailed request that is sent to potential vendors to obtain general information about their products and services.

Page 20: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Developing an Alternative Matrix

• What tools and technologies are needed for a custom development project?

• What vendors make products that address the project needs?

• What service providers would be able to build this application if outsourced?

Page 21: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Developing an Alternative Matrix

• Combine several feasibility analyses into one matrix

• Include technical, budget, and organizational feasibilities

• Assign weights to indicate the relative importance of the criteria

• Assign scores to indicate how well the alternative meets the criteria

Page 22: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Developing an Alternative Matrix

Page 23: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.
Page 24: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Summary Slide• System Design Phase – transitioning from requirements to design• Design all the elements of the system• First Task – determine the system acquisition strategy

– Custom development– Purchase software package– Outsource

• Use Alternatives Matrix to structure the system acquisition decision

Page 25: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Chapter 8: Architecture Design

Page 26: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Objective

• The objective of architecture design is to determine how the software components of the information system will be assigned to the hardware devices of the system

Page 27: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Key Definitions

• Architecture design– Plans for how the system will be distributed across

computers and what the hardware and software will be used for each computer

• Hardware and software specification– Describes the hardware/software components in detail to

aid those responsible for purchasing those products.

Page 28: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

ELEMENTS OF AN ARCHITECTURE DESIGN

Page 29: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

• the plan for how the information system components will be distributed across multiple computers and what hardware, operating system software, and application software will be used on each computer

• (e.g., Windows or Linux operating system software).

Page 30: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Architectural Components (Functions) of Software

1. Data storage: a small file/ a database management system

2. Data access logic Processing required to access stored data (SQL)

3. Application logic Processing logic of the application (the logic documented

in DFD, use cases, functional requirements)

4. Presentation logic Information display and user command processing (the

user interface)

Page 31: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Architectural Design Purpose

• Determine what parts of the application software will be assigned to what hardware.

• Hardware options:– Clients

• Input/output devices employed by users• PCs, laptops, handheld devices, smartphones, special-purpose

terminals, and so on. – Servers• typically are larger multi-user computers used to store

software and data that can be accessed by anyone who has permission.

– Networks

Page 32: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Architecture Choices

• Client-server based Architecture• Server-based Architecture• Client-based Architecture

Page 33: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Client-server architecture

• The client is responsible for the presentation logic,

• The server is responsible for the data access logic and data storage.

• The application logic may reside on the client, reside on the server, or be split between both

Page 34: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Client-server architecture

Two-Tier Architecture

Page 35: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

• Thin clients, containing just a small portion of the application logic, are popular because of lower overhead and easier maintenance.

• Thick or fat clients, handling presentation / application logic

Page 36: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Benefits of Client-server architecture

1. Scalable - easy to increase or decrease the storage and processing capabilities of the servers.

2. can support many different types of clients and servers. - It is possible to connect computers that use different operating systems so that you are not locked into one vendor

Page 37: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

3. for thin client–server architectures that use Internet standards, it is simple to clearly separate the presentation logic, the application logic, and the data access logic and design each to be somewhat independent.

4. if a server fails in a client–server architecture, only the applications requiring that server will fail.

Benefits of Client-server architecture (Cont…)

Page 38: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Disadvantage

• Client–server architectures also have some critical limitations, the most important of which is their complexity.

• All applications in client–server computing have two parts, the software on the client side and the software on the server side.

Page 39: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Three-Tier Client-Server Architecture

Page 40: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

N-Tier Client-Server Architecture

Page 41: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

• There are two primary disadvantages to an n-tiered architecture compared with a two-tiered architecture (or a three-tiered with a two-tiered).

• First, the configuration puts a greater load on the network.

• Second, it is much more difficult to program and test software in n-tiered architectures than in two-tiered architectures, because more devices have to communicate properly to complete a user’s transaction.

Page 42: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Less Common Architectures

Server-based Architectures (Zero Client)…Desktop applications

Client-based Architectures

Page 43: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Advances in Architecture Design

• Virtualization: refers to the creation of a virtual device or resource, such as a server or storage device.

• Server virtualization involves partitioning a physical server into smaller virtual

• servers. Software is used to divide the physical server into multiple virtual environments, called virtual or private servers.

Page 44: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

• Storage virtualization involves combining multiple network storage devices into what appears to be single storage unit.

• A storage area network (SAN) uses storage virtualization to create a high-speed subnetwork of shared storage devices.

• In this environment, tasks such as backup, archiving, and recovery are easier and faster.

Page 45: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Cloud Computing

Page 46: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

• The “cloud” in cloud computing can be defined as the set of hardware, networks, storage, services, and interfaces that combine to deliver aspects of computing as a service.

• Cloud services include the delivery of software, infrastructure, and storage over the Internet (either as separate components or a complete platform) based on user demand.

Page 47: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

CREATING AN ARCHITECTURE DESIGN

Page 48: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Nonfunctional Requirements and their Implications for Architecture Design

Page 49: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Operational Requirements Type of Requirement Definition Examples

Page 50: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Performance Requirements

Page 51: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Security Requirements

Page 52: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Cultural/Political Requirements Type of Requirement Definition Examples

Page 53: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

HARDWARE AND SOFTWARE SPECIFICATION

Page 54: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Hardware and Software Specification

• Used if new hardware or software must be purchased

• Communicates project needs• Actual acquisition of hardware and software

usually left to a purchasing department -- especially in larger firms

Page 55: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Hardware and Software Specification

• Determine software needs– OS, special purpose– Training, warranty, maintenance, licensing needs

• Determine hardware needs– Server(s), clients, peripherals, backup devices,

storage components– Minimum configuration needs

Page 56: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Sample Hardware and Software Specification

Standard Standard Standard Standard Client Web Server Application Server Database Server

Page 57: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Factors in Hardware and Software Selection

Page 58: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

11 - 58

Program Design

Chapter 11

Page 59: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

11 - 59

MOVING FROM LOGICAL TO PHYSICAL PROCESS MODELS

• Analysis phase – focus on logical processes and data flows

• Design phase – create physical process models showing “how” the final system will work

• Physical process models convey the “system view” of the new system

Page 60: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

11 - 60

The Physical Data Flow Diagram

• The physical DFD contains the same components as the logical DFD, and the same rules apply

• There are five steps to perform to make the transition to the physical DFD

Page 61: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

11 - 61

Steps to Create the Physical Data Flow Diagram

Page 62: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

11 - 62

The Physical Data Flow Diagram (The How)

Page 63: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.

Final Exam

• 6 questions you will choose five only (70 points)

• Cases as the project

Page 64: Chapter 7: Moving into Design Chapter 8: Architecture Design December 14, 2014.