System Development Techniques Individual Assignment

profileTubekbay001
Lesson8.pdf

System Development Techniques

Diploma in Information Technology

Lesson 8

Learning outcomes After studying this chapter and the recommended reading, you should be able to:

1. Explain system architecture 2. Discuss the design for environment: • Design for internal deployment (stand-alone software

systems, internal network-based systems, three-layer client-server architecture)

• Design for external deployment (configuration for Internet deployment, hosting alternative for internet deployment, diversity of client devices with internet deployment)

• Design for remote, distributed environment (demote deployment via Virtual Private Network(VPN))

Introduction

• Requirements defined during analysis activities are – stated in a technologically and architecturally

neutral way. – stated in a way that enables designers to choose

from a variety of technologies and architectures

• However, system implementers develop and deploy software using specific technologies

Introduction

• An important part of design is – choosing appropriate technologies, – adapting those technologies and software to an

organization’s existing technology architecture, – modifying existing architecture to support new

technologies and systems.

Anatomy of a Modern System

• Web-based system – A simplified architectural diagram for the

Amazon.com shopping application.

Anatomy of a Modern System

• Amazon.com shopping application. – Users interact with the application via a Web

browser running on a personal computing device. – Those devices normally connect to the Internet

over wireless network connections and from there to one or more servers that host the Amazon.com shopping application.

– Other servers host additional software components to process payment and schedule shipments.

Server

• Server – a computer or group of computers that manages

shared resources such as file systems, databases, and Web sites,

– enables users and other computers to access those resources over a network.

Server

• Smaller organizations may own a handful of servers or may “rent” server capacity from larger organizations.

• Large computing-intensive organizations owns server “farms” that fill entire buildings and are interconnected and replicated on a global scale

Networks

• The true power of modern computing lies in the ability to interconnect them.

• Computer network: – a collection of hardware, software, and

transmission media that enables computing devices to communicate with one another and to share resources.

• Networks of all sizes interconnect with one another to form the Internet

Networks

• Internet backbone networks. – provide the high-capacity, high transmission

speeds, and reliability needed to carry billions of messages across regions, countries, and continents.

– Owned and operated by governments or large telecommunications companies.

Networks

• Local area networks (LANs) – typically span a single home, small office, or one

floor of a building. – Servers and personal computing devices connect

wirelessly or via cables to LANs. – LANs connect to the Internet via larger networks

spanning groups of buildings, cities, or regions.

World Wide Web

• The World Wide Web ( WWW or Web) – an interconnected set of resources accessed via the

Internet. – Internet and Web are used interchangeably – The distinction between them is important for system

designers. • The Internet is the “highway” over which messages and

information travel from network to network, server to personal computing device, and service provider to end user.

• The Web is the set of resources and services that can be accessed via that highway.

World Wide Web

• Web resources – static documents: web pages, images, videos, – e-mail and other messages, – software-based services such as shopping sites

and online games.

World Wide Web

• Uniform Resource Locator (URL) – To identify Web resources – composed of three parts:

World Wide Web

• Hyperlink. – Embed the URL of one Web resource within

another Web resource. – Documents, embedded hyperlinks, and the

resources pointed to by those hyperlinks form a connection network that resembles a large spider web when diagrammed • Thus the name World Wide Web.

Software

• Two types. – Application software – System software

• Application software – software that performs user or business-specific

tasks – App : installed once on a computer or cell phone’s

storage device. – Web-based: applications that run within a Web

browser.

Software

• System software – software that works behind the scenes to support

application software and to control or interact with hardware or software resources. • operating systems (OSs)

– controls what a device can and can’t do, thus enabling or limiting the application software that can be used on the device.

• database management systems, • Web browsers • Web server software

Software

Web-Based Applications

• Characteristics of Web-based applications: – Use of a Web browser as the primary user

interface on personal computing devices – User access to the Web application via a URL – Server-side software components that execute on

or are called from a Web server – Use of Web standards for communication

between Web browser and server

Web-Based Applications

• Web applications are common because of ease of access and use of widely adopted Web standards.

• However, those benefits come at a cost. – Web applications are a well-defined target for

security breaches because URLs and Web standards are open and widely known.

– Application performance can suffer when networks are congested

Embedded Software

• The OS has embedded software that provides functions for – graphical display, touch screen and gesture-based

input, voice recognition, speech generation, music and video playback, and access to the Internet and Web resources.

• Able to reuse the all those embedded software across different application.

Embedded Software

• Reuse benefits, – a similar look and feel across applications – application development toolkits for software

developers that automate many programming tasks

– provide a direct interface to software already embedded in the device.

Protocols

• Protocol – is a set of languages, rules, and procedures that

ensure accurate and efficient data exchange and coordination among hardware and software components.

– Hardware, software, and network components operate on common protocols for communication.

Protocols

• .

Network Protocols

• Network protocols – enable accurate message transmission among the

various computers and software components. – enables messages to find their way from sender to

recipient, enable multiple devices to efficiently share wireless and wired connections, and handle tasks such as identifying and retransmitting lost messages.

– implemented within all computers and network hardware devices.

Network Protocols

• Firewalls – examine incoming and outgoing packets and block

those arriving from or sent to “dangerous” URLs or network address.

– Thus, an information system designer must ensure that network messages among software components won’t be blocked by a firewall at either end.

Network Protocols

• Virtual private network (VPN) – isolate sensitive communications between servers

or between an organization’s own employees and servers.

– incorporates technologies Secure Sockets Layers, Transport Layer Security, and secure IP,

– reliably identify senders and recipients, and encrypt network messages sent among them.

Web Protocols

• Hypertext Transfer Protocol (HTTP). – Defines the format and content of requests for Web

documents and resources, – includes some simple commands for other types of

requests, such as uploading a file or page. – Web browsers normally request that a Web page be

transmitted for display via the HTTP GET command. – Data entered by a user in an HTML form is normally

transmitted back to a Web server using the HTTP POST command

Web Protocols

• Hypertext Transfer Protocol Secure (HTTPS). – Extension of HTTP that employs secure network

protocols to reliably identify senders and recipients and encrypt network messages sent among them

Architectural Concepts

• Technology architecture. – The set of computing hardware, network hardware and

topology, and system software employed by an organization

– defines the infrastructure that supports application software and the services it provides.

• Application architecture. – The set of information systems (the software applications)

the organization needs to support its strategic plan. – deployed on a technology architecture by distributing

application components to specific hardware devices and connecting them via networks and protocols.

Architectural Concepts

• Technology and application architecture are interdependent. – Poor technology architecture provides a weak foundation

for application software and can comprise its performance, reliability, and other characteristics.

– Good technology architecture enhances those characteristics and provides other benefits, such as minimal operating cost and flexible updating.

– High-quality technology architecture can’t make up for poor application architecture.

– Application software must be designed to ensure ease of construction, deployment, operation, and future updates.

Software as a Service

• Software as a service (SaaS) – Software distribution model in which a third-party

provider hosts applications and makes them available to customers over the Internet.

– Little or no application software is installed on the user’s device.

– User data is stored on servers, though copies may be stored on the user’s device for improved performance.

Web Services

• Web service – a software service accessed over the Internet

using Web protocols. – commonly refers to smaller and more focused

applications, such as transmitting shipping information from seller to shipper, or single functions, such as looking up the zip code that matches a shipping address.

Web Services

• Web Services meets the following criteria: – Is “called” from one application via a URL or other

Web protocol – Accepts input data embedded within the URL or

via another protocol – Executes on the Web service owner’s servers – Returns processing results encoded within a Web

page or document

Web Services

• Web services enable software functions developed by organizations to be embedded within the information system of another organization.

• For example: – Amazon web application passes shipment details

to shipper (e.g. Fedex or UPS) web services.

Web Services

• Knowledge of Web services are important for system design – Scan the range of available Web services and decide which

to incorporate into their software. – expand the functions of their own software with minimal

related development cost. – Decide which (if any) functions of their own software

should be implemented as Web services and made available to other systems. • increase the potential base of software users, but also commit to

making those services available in a reliable and secure fashion over a long time period.

Distributed Architectures

• Client/Server Architecture – divides software into two classes: client and

server. – A server manages system resources and provides

access to these resources through a well-defined communication interface.

– A client uses the communication interface to request resources, and the server responds to these requests.

Distributed Architectures

• Three-Layer Architecture – a variant of client/server architecture that is used for all

types of systems, from internally deployed desktop applications to globally distributed Web-based applications.

– divides the application software into three layers that interact, as shown

Distributed Architectures

• Three-Layer Architecture – The user interface or view layer, which accepts user input

and formats and displays processing results – The business logic layer or domain layer, which

implements the rules and procedures of business processing

– The data layer, which manages stored data, usually in one or more databases

Distributed Architectures

Interoperability

• Interoperability – is the ability of a component or system to interact

with other components or systems. – Allows hardware and software components that

make up a modern information system must work together

Interoperability

• To ensure interoperability, system designers must: – Understand and describe the current environment in

which the system will operate. • That environment includes existing hardware and software

components, networks, and the protocols and APIs already in use.

– Look for existing software components and services that can provide needed functions for the new system. Those functions must be interoperable with the existing environment and with components that will be built.

Architectural Diagrams

• Location diagrams – Used to show the geographic placement of

various system components, including hardware, buildings, and users.

Architectural Diagrams

• Network diagram – shows how locations and hardware components

are interconnected with network devices and wiring.

Architectural Diagrams

• Deployment Diagrams – describes how software components are

distributed across hardware and system software components.

Architectural Diagrams

• On the left, an application server hosts Microsoft Internet Information Server, which in turn hosts multiple CSMS subsystems. The subsystems and their dependencies are represented as embedded package diagrams.

Architectural Diagrams

• On the right, a database server hosts Microsoft SQL Server 2013 as the database management system (DBMS). In turn, the DBMS hosts three database schemas that provide permanent storage of customer, order, and product data.

Architectural Diagrams

• Software components in the application server communicate with the DBMS using SQL as the primary protocol and database access language.

Describing the Environment

• Describing the environment is the first design activity.

• Two key elements: – External systems – Technology architecture

• Covered in previous lecture

Designing Application Components

• Application component – a well-defined unit of software that performs one

or more specific tasks. – self-contained unit of functionality. – modular, deployable, and replaceable part of a

software system that encapsulates its behaviour and data and exposes these through a set of interfaces.

Designing Application Components

• The designer thinks of the entire system as a single component performing all of the functions described during analysis activities.

• The designer then breaks this large component into smaller components in a generic process called factoring.

• The designer considers each function separately and looks for similarities as a basis for grouping software that implements the functions into larger application components.

Designing Application Components

• Designer looks for similarities among system functions to guide factoring or grouping.

• Focus on specific analysis activity descriptions like events and use cases. – Actors. Each use case identifies one or more specific actors. Software

for use cases that interact with the same actors is a candidate for grouping into a single application component.

– Shared data. Use cases that interact with the same domain class(es) are candidates for grouping into a single application component.

– Events. Use cases that are triggered by the same external, temporal, or state event are candidates for grouping into a single application component

Application Component Boundaries

Group similar uses cases together into a group to identify the application components boundaries In the example we have the following group: • Group A – Phone sales • Group B – Store sales • Group C – online sales – shipment and tracking • Group D – online sales – shopping cart • Group E – Customer account

Application Component Boundaries

• Group A – Phone sales • Group B – Store sales • Group C – online sales – shipment and tracking

Application Component Boundaries

• Group D – online sales – shopping cart

Application Component Boundaries

• Group E – Customer account

Deployment diagram

• Consider that five different actors will interact with the use cases – Phone sales representative. Interacts with the customer by phone

while using a desktop computer to perform sale and return functions – Store sales representative. Interacts with the customer in person

while using a point-of-sale terminal or tablet computer – Customer. Performs functions using a smartphone, tablet, laptop,

desktop computer, or other device (e.g., an Internet-capable television)

– Shipping. Performs return functions using a tablet or desktop computer

– Management. Performs order and shipment functions using a tablet, laptop, or desktop computer

Deployment diagram

• Design the View layer Application Component

Deployment diagram

• Deployment diagram describing the three- layer architecture for the use cases

Deployment diagram

• The deployment diagram business layer can be further divided into many packages – Group A and B - Phone sales and Store sales – Group C – online sales – shipment and tracking – Group D – online sales – shopping cart – Group E – Customer account

• Feedback • Friends • Mountain bucks

• Note group A and B is merge into one package because it is very similar. • Group E can be split into three sub packages

Summary

• Requirements defined during analysis activities are stated in a technologically and architecturally neutral way.

• The system designer needs to choose appropriate technologies, adapt those technologies and software to an organization’s existing technology architecture and modify existing architecture to support new technologies and systems.

Summary

• Architectural Diagrams consists of Location diagrams, Network diagram and Deployment Diagrams

• Deployment Diagrams describes how software components are distributed across hardware and system software components.

Read

Textbook:

• Satzinger, Robert & Stephen Chapter 7