System Development Techniques Individual Assignment
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