0% found this document useful (0 votes)
112 views

Topic 1 - System Fundamentals - Revise Notes

This document discusses key concepts in system fundamentals, including: 1. Planning a new system requires identifying stakeholders, such as users, IT administrators, and finance teams, and understanding their different needs through consultation. Stakeholder groups within an organization often have similar needs that must be accounted for. 2. Implementing a new system also requires managing change, handling legacy systems, testing the system, choosing implementation methods like phased or parallel deployment, and migrating data to the new system. 3. Ensuring user focus involves creating user documentation that explains how to use the system, providing training to users, and gathering feedback to evaluate the documentation and training.

Uploaded by

N
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
112 views

Topic 1 - System Fundamentals - Revise Notes

This document discusses key concepts in system fundamentals, including: 1. Planning a new system requires identifying stakeholders, such as users, IT administrators, and finance teams, and understanding their different needs through consultation. Stakeholder groups within an organization often have similar needs that must be accounted for. 2. Implementing a new system also requires managing change, handling legacy systems, testing the system, choosing implementation methods like phased or parallel deployment, and migrating data to the new system. 3. Ensuring user focus involves creating user documentation that explains how to use the system, providing training to users, and gathering feedback to evaluate the documentation and training.

Uploaded by

N
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

TOPIC 1

SYSTEM FUNDAMENTALS
REVISE NOTES
CONTENTS
Systems in Organizations .......................................................................................................... 3
Planning and system installation ............................................................................................... 3
System planning .................................................................................................................... 3
Real-world practical advice ............................................................................................... 3
Change management ............................................................................................................. 3
Real-world practical advice ............................................................................................... 4
Legacy system ....................................................................................................................... 4
Real-world practical advice ............................................................................................ 5
Testing ................................................................................................................................... 5
What the IB wants you to know about testing ................................................................... 5
Types of Testing ................................................................................................................ 5
Implementation methods ....................................................................................................... 7
Four common methods to implement a system............................................................. 7
Real-world practical advice ............................................................................................ 8
Data migration ....................................................................................................................... 8
User Focus ................................................................................................................................. 9
User documentation ............................................................................................................... 9
What does user documentation usually include? ............................................................... 9
Real-world practical advice ............................................................................................... 9
Evaluating user documentation ....................................................................................... 10
User training ........................................................................................................................ 11
Evaluating user training................................................................................................... 11
Real-world advice .......................................................................................................... 12
System Backup ........................................................................................................................ 12
Data loss and preventing data loss....................................................................................... 12
Causes of data loss ......................................................................................................... 12
Consequences of data loss ............................................................................................. 12
Preventing data loss ....................................................................................................... 13
Real-world practical advice .......................................................................................... 13
Software Deployment .............................................................................................................. 13
Managing releases and updates ........................................................................................... 13
Manual updates ............................................................................................................. 13
Automatic updates ......................................................................................................... 13
Strategies ........................................................................................................................ 13
Real-world practical advice .......................................................................................... 14
System Design ......................................................................................................................... 14
Components of a computer system.......................................................................................... 14
Hardware, software, peripheral, network, human resources ............................................... 14

1
Real-world practical advice .......................................................................................... 14
Computers in a networked world ........................................................................................ 14
Roles................................................................................................................................ 14
Real-world practical advice .......................................................................................... 15
Ethics ................................................................................................................................... 15
System Design and analysis .................................................................................................... 15
Planning and stakeholder involvement ................................................................................ 15
Real-world practical advice .......................................................................................... 16
Getting requirements from stakeholders.............................................................................. 17
Real-world practical advice .......................................................................................... 18
Gathering information for solutions .................................................................................... 18
Real-world practical advice .......................................................................................... 18
Illustrate system requirements ............................................................................................. 18
About system requirements ............................................................................................. 18
Real-world practical advice .......................................................................................... 19
Prototypes ............................................................................................................................ 19
The purpose of prototypes ............................................................................................... 19
Iteration .......................................................................................................................... 19
Real-world practical advice .......................................................................................... 19
Human interaction with the system ......................................................................................... 20
Usability .............................................................................................................................. 20
Problems with usability ....................................................................................................... 20
Improve the accessibility of a system .................................................................................. 21
Moral, ethical, social, economic and environmental implications of the interaction between
humans and machines .......................................................................................................... 21
Standards ................................................................................................................................. 22

2
TOPIC 1-SYSTEM FUNDAMENTALS
THE BIG IDEAS IN SYSTEM FUNDAMENTALS
SYSTEMS IN ORGANIZATIONS
A computer program or computer system is used by people who work in organizations. It is
very helpful to understand how people, computers, and organizations work together.

PLANNING AND SYSTEM INSTALLATION


SYSTEM PLANNING
How are systems planned? Are systems just thrown into the users face without any planning?
Who should we talk with as we plan a new system? What questions should we ask users, IT
administrators, and finance stakeholders as we plan a new system?
A stakeholder is a person with an interest or concern in something especially a business. A
stakeholder is someone who might be:
• Using a system
• Supporting a system
• Realizing benefits from a system.
You must be careful to identify all the possible relevant stakeholders. Stakeholders will have
different needs and desires. When you are planning a system, you need to account for the
different needs and desires of different stakeholders.

There are often stakeholder groups, or group of people within an organization who have similar
needs and desires. A system must meet the need of the stakeholders who use it. We will
work through two different examples to help you understand this idea. The role of an end-user
must be considered when planning a new system

REAL-WORLD PRACTICAL ADVICE


You should always be nervous when there is more than one person in charge of a project. We
call this double-headed management, and it is very dangerous because you may get two very
different specifications about the system. It is always a good idea to have only one single
person who describes what a system should do. In project management, we call this a "senior
customer" or a "senior user".

CHANGE MANAGEMENT
Change management tries to manage:
1. Workforce issues, such as redundancy/retraining
2. The time frame involved in merging the two systems
3. Testing of the combined systems/new data
4. Data entry if migration not possible
5. Costs involved in the aligning of the two systems
6. Changeover decisions such as parallel running etc

When you have a system that is working, it is common to get requests to change the
system. There is a difference between a feature request, and a bug report. If something if
isn't working, a user should file a bug report and report it needs to be fixed. If everything is
working and the user wants to change it, we begin the change management process.

The important thing to understand about change management is you MUST carefully consider
all the possible ramifications of the change. Changes must be carefully planned,
implemented, tested and then refined. We don't just make a change without thinking because
this could create unintended problem later on. We could also create technical debt that we will

3
need to pay later. Changes should follow the same process as building software (that is,
the design cycle).

Change requests usually originate from:


• system enhancement requests from users
• events in the development of other systems
• changes in underlying structure and or standards (e.g. in software development this
could be a new operating system)
• demands from senior management (Dennis, Wixom & Tegarden, 2002).

REAL-WORLD PRACTICAL ADVICE


"Hey can you change this one little thing for me?". This is a very common request. Here's the
thing: users think a request is minimal, "no big deal" or "just a little thing". But because end-
users don't have a full picture of a system, they do not have information to evaluate if a change
is minimal or if it is more involved.

When a user asks you to change something, you should smile and take a deep breath. You
should then spend time carefully understanding exactly what functionality the user wants and
how you can best plan and implement the functionality.

In larger organizations, there is a well-established Request For Change process which uses a
change request form. Always think before you make a change.

LEGACY SYSTEM
In computing, a legacy system is an old method, technology, computer system, or application
program, "of, relating to, or being a previous or outdated computer system." Often a pejorative
term, referencing a system as "legacy" often implies that the system is out of date or in need of
replacement.

Legacy systems are usually still in use as opposed to retired (or archived) systems, which are
no longer in use. Please remember this distinction.

Systems must be compatible with other systems if they are going to be useful. Legacy systems
are not always compatible with newer systems. Compatibility is a state in which two things are
able to exist or occur together without problems or conflict. When you are planning a new
system, you should be aware of compatibility issues with older systems. Frequently, the way a
legacy system stores data is the most frequent source of compatibility issues. Please also
understand the range of possible problems legacy systems can have:
1. Maintaining old systems often includes old application programs
2. Legacy systems can be hard to understand and expensive to change because
programs might be disorganized
3. Documentation might be missing
4. Poor maintenance might introduce security problems
5. It may be difficult to find people who have the knowledge and skills to work
with old systems
6. Legacy system is typically quite large and complex

A few hypothetical examples may help you understand this:


1. A new system accepts input for a date as 11 November 2017, but the legacy
system only accept input as 11 November 17
2. A new system is web-based, but an older system is not web-based
3. A new system allows UTF-8 (Unicode Transformation Format-8) characters
but the legacy system does not.

4
4. A new system assumes all currencies are in US dollars, while the legacy
system does not.
5. A new system stores time as HH:MM:SS:MS (HH: hour, MM: minute, SS:
second, MS: millisecond) but the legacy system stores time as HH:MM:SS.
6. A new system assumes all numbers can have 4 decimal places, while a legacy
system assumes all numbers only have 2 decimal places.
7. A new system stores data in XML while a legacy system stores data in plain
text.

REAL-WORLD PRACTICAL ADVICE


When you are planning a new system, you should include compatibility planning as part of
your new system. If you are a system administrator, programmer, network administrator, much
of your work will involve getting different systems to be compatible. It's always nice when you
have a new system, new company, and a new process, but this isn't the norm.

There is a lot more to say about this, but my advice is to assume any system you are involved
with needs to be compatible with other systems and legacy systems.

TESTING
Software testing is an investigation conducted to provide stakeholders with information about
the quality of the product or service under test. Software testing can also provide an objective,
independent view of the software to allow the business to appreciate and understand the risks
of software implementation. Test techniques include the process of executing a program or
application with the intent of finding software bugs (errors or other defects).

Software testing involves the execution of a software component or system component


to evaluate one or more properties of interest. In general, these properties indicate the extent to
which the component or system under test:
• meets the requirements that guided its design and development,
• responds correctly to all kinds of inputs,
• performs its functions within an acceptable time,
• is sufficiently usable,
• can be installed and run in its intended environments, and
• achieves the general result its stakeholder’s desire.

WHAT THE IB WANTS YOU TO KNOW ABOUT TESTING

The crucial importance of testing at all stages of implementation should be emphasized, with
the stages clearly defined. Types of testing can include: user acceptance testing, debugging,
beta testing. Students should be aware that there are programs that can test other programs,
thereby automating parts of the testing process and reducing costs.

TYPES OF TESTING
It will be helpful to understand these distinctions:

Software Testing
Software testing is the process of evaluation a software item to detect differences between given
input and expected output. Also, to assess the feature of A software item. Testing assesses the
quality of the product. Software testing is a process that should be done during the development
process. In other words, software testing is a verification and validation process.

5
Verification
Verification is the process to make sure the product satisfies the conditions imposed at the start
of the development phase. In other words, to make sure the product behaves the way we want
it to.

Validation
Validation is the process to make sure the product satisfies the specified requirements at the
end of the development phase. In other words, to make sure the product is built as per customer
requirements.

There are different types of testing. You should be able to recognize different types of
testing, describe the purpose of each type of testing, and given a scenario, suggest appropriate
testing approaches.
ACCEPTANCE TESTING

Acceptance testing performed by the customer, often in their lab environment on their own
hardware, is known as user acceptance testing (UAT). Acceptance testing may be performed
as part of the hand-off process between any two phases of development.

BETA TESTING

Beta testing comes after alpha testing and can be considered a form of external user acceptance
testing. Versions of the software, known as beta versions, are released to a limited audience
outside of the programming team known as beta testers. The software is released to groups of
people so that further testing can ensure the product has few faults or bugs. Beta versions can
be made available to the open public to increase the feedback field to a maximal number of
future users and to deliver value earlier, for an extended or even indefinite period of time
(perpetual beta).

DEBUGGING

In computers, debugging is the process of locating and fixing or bypassing bugs (errors) in
computer program code or the engineering of a hardware device. To debug a program or
hardware device is to start with a problem, isolate the source of the problem, and then fix it. A
user of a program that does not know how to fix the problem may learn enough about the
problem to be able to avoid it until it is permanently fixed. When someone says they've debugged
a program or "worked the bugs out" of a program, they imply that they fixed it so that the bugs
no longer exist. Debugging is the process of finding and resolving of defects that prevent
correct operation of computer software or a system. Debugging tends to be harder when
various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another.

6
IMPLEMENTATION METHODS
• Implementing can be defined as putting (a decision, plan, agreement, etc.) into effect.
Systems implementation is the delivery of that system into production (that is, the day-
to-day business or organization operation). It is important you understand this topic
isn't about BUILDING or PROGRAMMING a system, but rather making the system
live. We use the word implementation differently here than we use it when
we discuss the design process.

FOUR COMMON METHODS TO IMPLEMENT A SYSTE M


PARALLEL
When the new system is used at the same time as the old system the two systems are said to be
running in parallel.
Advantages:
• Users can can compare the output of the old system with the output of the new
system, to ensure correctness
• There is little risk of data loss because the known-good system is running
Disadvantages:
• Users must take more time to enter data into two different systems
• Data could be different in two different systems if there is intensive data entry.
Example:
1. A medical system that tracks patient heart rates is being replaced. A new
system is attached while the old system is still working. The two systems are
used in parallel to ensure the new system produces the exact same data as the
old system.
PHASED
When small parts of the new system gradually replace small parts of the old system, the
implementation method is said to be phased.
Advantages:
• Training can be completed in small parts
• A failure of the new system has minimal impact because it is only one small part
• Issues around scale can be addressed without major impact.
Disadvantages:
• This implementation method takes more time to get the new system fully online
than other methods.
• There is a possibility of data loss if part of the new system fails.
Example:
1. A school has a new system to manage student athletics. The old system is
paper and pencil. Slowly, over time, a new system is introduced to manage
students, their teams, seasons, and their coaches. At first, the new system
simply manages teams. Then the new system manages seasons (and school
years), slowly, the new system is increased to manage coaches, players and
finally events. At the end of implementation, the new system is managing
everything related to student athletics and the old paper and pencil system isn't
being used any longer.
PILOT
When a small group of users within an organization uses a new system prior to wider use, the
system is said to be piloted.
Advantages:
• Training can be supported by pilot group
• Failure or problems can be identified and addressed without wide-spread impact
to the organization
Disadvantages:

7
• In a pilot, issues of scale can cause problems. For example, the system might work
well for 10 users, but not for 1000.
Example:
1. A bakery is implementing a new system for customers to order online. They
choose 50 customers and ask them to try the new system, and provide
feedback. The bakery can can then identify issues and address them prior to
implementing systems for thousands of users.
DIRECT
When a new system is implemented without any phased or pilot implementation, it is said to
be direct. The old system is retired, and the new system goes live.
Advantages:
• If the system is not critical, this can be a good method for implementation
Disadvantages:
• If you are not sure the system will work, this method of implementation may not
be a good idea
Example:
1. A store is implementing a new electronic system for employees to leave
suggestions for improvement. There is no existing system. The store uses
direct method because they are very sure the new system will work, there is a
low cost if the system fails, and the store wants to make a "big splash" with
the new system.

REAL-WORLD PRACTICAL ADVICE


When a system implementation is poorly planned, there is an increased chance the system will
fail. Don't just think "hey, I'll just make sure the system works". You must be responsible for
ensuring there is a good plan for implementation. I have seen perfectly good systems fail
because implementation was done poorly. It comes down to good planning.

There is another real-world issue you should be aware of. There is a wide range of emotional
reactions to change. Some users will welcome change, others will be uncertain, some will be
openly hostile whilst others will attempt to sabotage it. Training issues may require
organizations to restructure their workforce. New systems often accompany a wide range of
emotional reactions. Communication about the change, and sensitivity about user’s change
should be well-managed.

DATA MIGRATION
When we move data from one system to another, we transfer it. However, when you aim to
permanently move data (most commonly when you are building a new system), we can say you
are migrating data. Please know this is almost always a deliberate process.

The list below is used with gratitude from the Dartford Grammar School.
The list represents types of problems we can encounter when we migrate data:
• Incompatible file formats
• Data structure differences
• Validation rules
• Incomplete data transfers
• International conventions on dates
• Currencies & character set

8
USER FOCUS
USER DOCUMENTATION
Technical documentation refers to the documentation that describes how a product or service
operates. For example, software code documentation, technical specifications and API
documentation. Technical documentation can also describe how to install software.

User documentation refers to the documentation for a product or service provided to the end
users. The user documentation is designed to assist end users to use the product or service. This
is often referred to as user assistance. The user documentation is a part of the overall product
delivered to the customer.

Traditionally user documentation was provided as a user guide, instruction manual or online
help. However, user documentation is increasingly being delivered online today. This has
enabled technical writers to be more imaginative in how they assist users.

User documentation is important because it provides a avenue for users to learn:


1. how to use your software
2. features of your software
3. tips and tricks of your software
4. how to resolve common problems with your software

Without user documentation, a user may not know how to do the above things. Users expect
the user documentation to include:
• FAQs
• Video tutorials
• Embedded assistance (for example, tool tips and dynamic page content)
• Support Portals

WHAT DOES USER DOCUMENTATION USUALLY INCLUDE?


The list below is used with gratitude from the Dartford computer science department
• Minimum hardware and software requirements
• Installation guide
• How to start the system
• How to use different features of the system
• Screenshots explaining main features of the system
• Example inputs and outputs
• Explanations of error messages and troubleshooting guides
• Information to contact the developer of the system if an undocumented question
arises
The quality of user documentation can affect the rate of implementation of the new system.
Examples should include methods such as: help files, online support and printed manuals.

REAL-WORLD PRACTICAL ADVICE


I once heard a rumor about Steve Jobs. According to this rumor, he said "if you need to write a
manual for your software, you have done something wrong". I think the point of this rumor is
to design your software to be as clear as easy as possible to use. However, good user
documentation can make or break the success of your product. The design, presentation, and
evaluation of your user documentation is really important part of developing software. Sadly,
it is also an area much-neglected, as software developers might think it is boring.

9
EVALUATING USER DOCUMENTATION
Method Advantages Disadvantages
• you might not get
• User friendly level of detail you
• really fast want
help files • easy to use • the user might not
• can be accessed know what to search
offline for
• Might be hard to find
• larger amount of
• can't be accessed
information
offline
• easier to update
online support • if you have slow
• can access from any
internet connection,
device
it's bad.
• can be faster
• slower
• if you lose it, you're
• easy to find
going to have a bad
• you can browse
day
printed manuals through them
• harder to search
• work without a
• cannot be updated
computer
• prone to physical
destruction

10
USER TRAINING
Especially for complex systems, the relationship between training and the success of a
system is clear. Types of user training include self-instruction, formal classes, remote/online
training. The quality of the delivery of user training can affect the rate of implementation of the
new system.

EVALUATING USER TRAINING


Method Advantages Disadvantages
• You might not learn
everything the product has to
• inexpensive offer
• lower time investment • Users may focus on
self-
• very flexible the absolute minimum
instruction
• start using the • You don't have an expert to
software very quickly help you learn the system
• You learn to use the program
the wrong
• provides in-depth
knowledge and skills
• you are learning the
everything in the right
order
• expensive
• you can grasp the
• takes a long time, often a full
concepts
formal classes week
• you can ask questions
• if you get a bad teacher it
• highly trained (well-
might not be effective
trained) it saves time
in the long run
• formal classes often
have marketable
certificates
• the training bespoke,
highly individualized
• provides in-depth
knowledge and skills
• you are learning the
everything in the right
order
• you can grasp the
concepts
• if your internet dies you are
• you can ask questions
remote/online going to have a bad day
• highly trained (well-
training • expensive
trained) it saves time
• time consuming
in the long run
• formal classes often
have marketable
certificates
• the cost might be
lower, as you are not
paying for a hotel or
flights, just the
training

11
REAL-WORLD ADVICE
Sometimes people don't know what they don't know. Face to face classes is probably the highest
quality. Obstinate users who do not want to learn are impossible to teach.
We can evaluate different types of training by asking ourselves:
• how much money does it cost?
• how much time does it take?
• how effective is the training?

SYSTEM BACKUP
DATA LOSS AND PREVENTING DATA LOSS
Data loss is the unplanned or unintended or accidental or purposeful corruption of data. Data is
any stored information (user data, operating system data, etc.).

CAUSES OF DATA LOSS


There are hundreds of reasons we can experience data loss. However, these can broadly fit into
the categories below.
cause of
for example
data loss
• External malicious actor who is deliberately causing data loss
• Internal malicious actor who is deliberately causing data loss
malicious • Innocent user tricked into running malicious program which causes
activities data loss
• Deliberate sabotage by an actor (unplugging power, causing physical
damage to the system
• Flood, lightning, storm, earthquake, tornado (also called an Act of
God)
• For something to be qualified as an act of God:
o (i) which involve no human agency
Natural
o (ii) which is not realistically possible to guard against
disaster
o (iii) which is due directly and exclusively to natural
causes and
o (iv) which could not have been prevented by any amount
of foresight, plans, and care
• Loss of ANY computer component (power supply, NIC card,
system temporary or permanent storage)
failure • Loss of HVAC (Heating, ventilation, and air conditioning) leading to
heating / cooling issues

CONSEQUENCES OF DATA LOSS


The list below is an example to spur your thinking:
• email is lost / gone
• bank balance is wrong / gone
• loss of your grades
• loss of all your pictures
• your music is gone

12
PREVENTING DATA LOSS
Strategy for
Description
prevention
a failover system is a standby/ redundant system which is used to eliminate or
reduce downtime on users by automatically taking over if the primary system
failover systems
suddenly becomes unavailable. A failover system does not have to be on the
same physical server.
when we have duplicate subsystems. For example, 2 power supplies, extra
redundancy memory (unused), 2 network interface cards, etc... This is VERY common in
servers, as if one system fails another is immediately available.
removable when we can remove data on a CD or tape drive we reduce the chance that a
media failure on the system will damage data, because the data isn't on the system.
offsite/online moving data to another physical location helps to protect it from problems in
storage the original location. Online storage works the same way.

REAL-WORLD PRACTICAL ADVICE


I'm happy to report that data loss is rarer today than it was 10 years ago. However, without
careful planning, we can be assured a data loss will occur. Whenever you design a system, you
should include fault-tolerance, redundancy, offline/ online storage, and failover into
your design.

SOFTWARE DEPLOYMENT
MANAGING RELEASES AND UPDATES
A variety of ways in which updates and patches are made available and deployed. This includes
automatic updates received on a regular basis online and manual updates, which a user must
download and install.

MANUAL UPDATES
Manual updates are downloaded and installed by the end user. The main characteristics of a
manual update are:
• The user is notified about an update
• The user must decide if they want to download the update
• If the user updates, the user must install the update, although some applications
make this process automatic

AUTOMATIC UPDATES
Automatic updates are downloaded and installed without the user needing to intervene. Many
times, users must deliberately select automatic updates. The main characteristics of automatic
updates are:
• The application polls (regularly checks) to see if there are updates
• If there is an update, the application downloads and installs the update.
Performance issues related to the inability to install updates may hinder end-users and
reduce compatibility between systems in geographically diverse locations. Or put another way,
if you have bad internet, automatic updates might not be the best choice.

STRATEGIES
So the actual strategies for updates are fairly simple. Manual or automatic. We must keep in
mind the relative advantages and disadvantages of both strategies. Forcing automatic updates
should not be done without considering possible consequences.

13
REAL-WORLD PRACTICAL ADVICE
There is a difference between operating system updates (and other core-system software) and
application updates. There is a difference between your operating system and a computer game
you play. Security updates should be automatic, but all other updates should be manual.
Forcing updates on your users is probably a bad idea.

SYSTEM DESIGN
COMPONENTS OF A COMPUTER SYSTEM
HARDWARE, SOFTWARE, PERIPHERAL, NETWORK, HUMAN RESOURCES
In the context of designing a system, define the following terms:
• Hardware: Component devices that are building blocks of computing device.
• Software: Any set of machine-readable instructions which directs a computer's processor
to perform specific operations.
• Peripheral: Is a device connected to a host computer, but is not a part of it.
• Network: A computer network or data network is a telecommunications network which
allows computers to exchange data.
• Human Resources: Is the set of individuals who make up the workforce of an
organization.

REAL-WORLD PRACTICAL ADVICE


It is important you have a common definition when talking with other developers. YOU might
think human resources means a department within an organization, however, SOMEONE
ELSE might think differently. It's important to spend some time and come to a common
understanding of terms in ANY project.

COMPUTERS IN A NETWORKED WORLD


A computer can have different roles when we think about networks. You can think of a role as
a "service a computer provides". Computers can provide multiple services, and can be both a
client and provide a service.

ROLES
Roles can include client, server, email server, DNS server, DHCP server, router and firewall.
Role Description
A client is a piece of computer hardware that accesses a service made
available by a server. The server is often (but not always) on another computer
Client
system, in which case the client accesses the service by way of a network. The
term applies to the role that programs or devices play in the client–server model
In computing, a server is a computer program or a device that provides
functionality for other programs or devices, called "clients". Often, the server
Server
provides a "service" for clients, beit DNS, web, mail, DHCP, or even a game
server. This is called the client–server model
A name server is a computer Hardware or software server that implements
a network service for providing responses to queries against a directory service. It
translates an often humanly-meaningful, text-based identifier to a system-
internal, often numeric identification or addressing component like an IP
DNS
address. This service is performed by the server in response to a service protocol
server
request.
An example of a name server is the server component of the Domain Name System
(DNS), one of the two principal namespaces of the Internet. The most important
function of DNS servers is the translation (resolution) of human-memorable

14
domain names and hostnames into the corresponding numeric Internet Protocol
(IP) addresses, the second principal name space of the Internet which is used
to identify and locate computer systems and resources on the Internet.
The Dynamic Host Configuration Protocol (DHCP) is a
standardized network protocol used on Internet Protocol (IP) networks. The
DHCP is controlled by a DHCP server that dynamically
distributes network configuration parameters, such as IP addresses, for interfaces
DHCP and services. A router or a residential gateway can be enabled to act as a DHCP
server server. A DHCP server enables computers to request IP addresses and
networking parameters automatically, reducing the need for
a network administrator or a user to configure these settings manually. In the
absence of a DHCP server, each computer or other device (e.g., a printer) on
the network needs to be statically (i.e., manually) assigned to an IP address.
Within Internet message handling services (MHS), a message transfer agent or
mail transfer agent (MTA) or mail relay is software that transfers electronic
mail messages from one computer to another using a client–server application
architecture. An MTA implements both the client (sending) and server (receiving)
Email
portions of the Simple Mail Transfer Protocol.
server
The terms mail server, mail exchanger, and MX host may also refer to a computer
performing the MTA function. The Domain Name System (DNS) associates a mail
server to a domain with an MX record containing the domain name of the host(s)
providing MTA services
A router is a networking device that forwards data packets between
computer networks. Routers perform the traffic directing functions on the
Router
Internet. A data packet is typically forwarded from one router to another through
the networks that constitute the internetwork until it reaches its destination node
In computing, a firewall is a network security system that monitors and
Firewall controls the incoming and outgoing network traffic based on predetermined
security rules

REAL-WORLD PRACTICAL ADVICE


If you work with any professional computer scientist or IT professional, they will assume you
understand the different roles a computer can have in a networked world.

ETHICS
Ethics is about right and wrong. Ethics isn't about right and wrong. Ethics is complicated. If
someone tells you ethics are simple, they are trying to be simple about something that isn't.

SYSTEM DESIGN AND ANALYSIS


PLANNING AND STAKEHOLDER INVOLVEMENT
How are systems planned? Are systems just thrown into the users face without any planning?
Who should we talk with as we plan a new system? What questions should we ask users, IT
administrators, and finance stakeholders as we plan a new system?

A stakeholder is a person with an interest or concern in something especially a business A


stakeholder is someone who might be:
• Using a system
• Supporting a system
• Realizing benefits from a system.

15
Students get confused here: a stakeholder is someone who actually uses a specific system. You
should ask yourself "if I was designing a new system, who has the best knowledge of how the
system should work". You should ask yourself "if a stakeholder is who you get the requirements
from, who has the best understanding of the system?".

The role of an end-user must be considered when planning a new system

REAL-WORLD PRACTICAL ADVICE


You will not be tested on this material, but you should know it
You should always be nervous when there is more than one person in charge of a project. We
call this double-headed management, and it is very dangerous because you may get two very
different specifications about the system. It is always a good idea to have only one single
person who describes what a system should do. In project management, we call this a "senior
customer" or a "senior user".

16
GETTING REQUIREMENTS FROM STAKEHOLDERS
Understanding what your users want is very important. Your goal is to build software which
meets the needs of users. There are different, complementary ways of gathering information
from stakeholders. Different ways of collecting information can include surveys, interviews,
and direct observations. There are other methods of gathering information but this is what you
should minimally understand. You should understand each method for gathering requirements
provides a different view (or lens, if you will) of client requirements. It is critical you
understand the requirements prior to building a system.

Method Definition Advantages Disadvantages


You can easily provides less information
A survey is a list of questions reach many than direct contact or
Surveys
aimed at extracting specific data people, good to interviews. Interpreting
(questionnaires)
from a particular group of people reach people in the meaning of a question
remote locations or answer can be difficult.
An interview is a conversation
where questions are asked and
answers are given. In common
parlance, the word "interview"
refers to a one-on-one
You can gather in- You are usually limited to
conversation with one person
depth information few people, not many
acting in the role of the interviewer
and explore topics people. If an interview
and the other in the role of the
which are isn't structured, you may
interviewee. The interviewer asks
Interviews tangentially get fragmented
questions, the interviewee
related to the information. It can be
responds, with participants taking
system. There is harder to quantify
turns talking. Interviews usually
flexibility in requirements from an
involve a transfer of information
information interview.
from interviewee to interviewer,
which is usually the primary
purpose of the interview, although
information transfers can happen
in both directions simultaneously.
observational
research tends to
be less reliable but
often more valid.
The main
The problem with this
advantage of
approach is subjects may
observational
modify their behaviour
Direct observation is a social research is
when they know they are
Direct research technique that involves flexibility. The
being watched. They
observations the direct observation of researchers can
portray their “ideal self”
phenomena in their natural setting. change their
rather than their true self in
approach as
what is called the
needed. Also it
Hawthorne Effect.
measures
behavior directly,
not reports of
behavior or
intentions.

17
REAL-WORLD PRACTICAL ADVICE
Make sure you are talking to the right people about system requirements. Many software
projects have been doomed to fail because they were built on faulty requirements or poorly
understood requirements.

GATHERING INFORMATION FOR SOLUTIONS


Once you understand what a user wants (their requirements), you must begin researching
possible solutions. This page describes different techniques you might use to research a suitable
system. These research techniques should be used in conjunction with each other. Please don't
use one single method for finding a suitable system.

Once you know a customer’s requirements, it's time to investigate solutions. Below is a list of
different techniques you might use to look for a system which meets the customer’s needs.
• Examining current systems
• Examining competing products
• Organizational capabilities (Does the company have people who could make this
solution? This is different than current systems, which is just a "thing".
Organizational capability is the capacity to use (or leverage) that existing system
for a solution).
• Literature searches

REAL-WORLD PRACTICAL ADVICE


I've seen a system administrator take a look at the requirements and get exactly the wrong
system.

ILLUSTRATE SYSTEM REQUIREMENTS


• Once you have understood and chosen a system, you must diagram how the system
works. This works prevents problems in the future by ensuring you understand all
inputs and outputs, AND how a system is organized.
• A flowchart is a type of diagram that represents a workflow or process. A flowchart
can also be defined as a diagrammatic representation of an algorithm, a step-by-step
approach to solving a task.
• The flowchart shows the steps as boxes of various kinds, and their order by connecting
the boxes with arrows. This diagrammatic representation illustrates a solution model to
a given problem. Flowcharts are used in analyzing, designing, documenting or
managing a process or program in various fields.

ABOUT SYSTEM REQUIREMENTS


Once you have selected a system you should map how the system will interface with other
systems in the organization, how data will flow into and out of the system (the inputs and
outputs), and how the system is organized. We use the three techniques below to understand
this.
Method Definition
System flowcharts are a way of displaying how data flows in a
system flow charts
system and how decisions are made to control events.
A data flow diagram (DFD) is a graphical representation of the
"flow" of data through an information system, modelling its
process aspects. A DFD is often used as a preliminary step to
data flow diagrams
create an overview of the system, which can later be
elaborated. DFDs can also be used for the visualization of data
processing (structured design). Diagrams representing how

18
information is moving through the system together with
identifying all relevant inputs and outputs to the system.
A Structure Chart (SC) in software engineering and
structure chart organizational theory, is a chart which shows the breakdown
of a system to its lowest manageable levels

REAL-WORLD PRACTICAL ADVICE


This step is especially important when you are working with many different interdependent
systems.

PROTOTYPES
A prototype is an early sample, model, or release of a product built to test a concept or process
or to act as a thing to be replicated or learned from. It is a term used in a variety of contexts,
including semantics, design, electronics, and software programming. A prototype is generally
used to evaluate a new design to enhance precision by system analysts and users. Prototyping
serves to provide specifications for a real, working system rather than a theoretical one.

THE PURPOSE OF PROTOTYPES


• Prototypes are abstract representations of a system, often focusing on only one or
two key aspects of the system.
• They are important in testing as each component of the system can be tested before
implementing, and to illustrate the working of the future system to the client
• Prototypes can be developed inexpensively and quickly.
• System designers and developers can very quickly adjust design based on client
feedback. It is more difficult (and expensive) to change a system once it is done.
• Prototype is used to ensure all essential functions/operations of the system
are present/meets the needs of the users
• Prototype is used to speed up development process
• Positive user’s feedback helps in refining the acceptable prototype in order to
develop the complete system/product
• Or else a further prototype should be created in order to develop the satisfactory
system/product

ITERATION
In iteration we try different versions of a design again and again until we find a suitable solution
or product. Iteration is the act of repeating a process, to generate a (possibly unbounded)
sequence of outcomes, with the aim of approaching a desired goal, target or result. Each
repetition of the process is also called an "iteration", and the results of one iteration are used as
the starting point for the next iteration.

REAL-WORLD PRACTICAL ADVICE


There is almost always a gap between what the client wants and what the designer THINKS the
client wants. Prototypes help narrow the gap quickly and cheaply.

19
HUMAN INTERACTION WITH THE SYSTEM
USABILITY
• In software engineering, usability is the degree to which a software can be used by
specified consumers to achieve quantified objectives with effectiveness, efficiency, and
satisfaction in a quantified context of use
• Any discussion of usability must include the idea of ergonomics and accessibility.

The word "usability" has become a catch-phrase for products that work better for their users,
but it is difficult to pin down just what people mean by it. Is ‘usability’
1. a result – software that is usable;
2. a process, also called user-centered design, for creating usable software;
3. a set of techniques, such as contextual observation and usability testing, used to achieve
that result; or
4.
5. a philosophy of designing to meet user needs?
These different meanings can be described in four key requirements:
• Usability means thinking about how and why people use a product.
Good technical writing, like good interaction design, focuses on user’s goals. The first
step in creating a usable product is understanding those goals in the context of the user’s
environment, task or work flow, and letting these needs inform the design.
• Usability means evaluation.
• Usability relies on user-feedback through evaluation rather than simply trusting the
experience and expertise of the designer. Unlike conventional software acceptance
testing, usability evaluation involves watching real people use a product (or prototype),
and using what is learned to improve the product.
• Usability means more than just "ease of use"
• The 5 Es – efficient, effective, engaging, error tolerant and easy to learn – describe the
multi-faceted characteristics of usability. Interfaces are evaluated against the
combination of these characteristics which best describe the user’s requirements for
success and satisfaction.
• Usability means user-centered design
• Users are satisfied when an interface is user-centered – when their goals, mental
models, tasks and requirements are all met. The combination of analysis, design and
evaluation all approached starting from the user’s point of view creates usable products.

PROBLEMS WITH USABILITY


You should be aware of usability issues in a range of devices including PCs, digital cameras,
cell phones, games consoles, MP3 players and other commonly used digital devices.

Example:
Consider the following digital devices and identify 5 usability problems for each device.
1. your cellphone (or a cellphone)
2. the TV in your house
3. your school computer

Please keep in mind there probably isn't a perfect answer. The purpose of this activity is to get
you to think about usability problems.

20
IMPROVE THE ACCESSIBILITY OF A SYSTEM
Where usability is concerned with normal use, accessibility is concerned with with how
people with disabilities interact with a system. Common cases of disbaility are hearing loss,
diminished sight, poor sensory ability, etc...

Examples of how we might improve accessibility include touch screen, voice recognition, text-
to-speech, and Braille keyboard.

MORAL, ETHICAL, SOCIAL, EC ONOMIC AND ENVIRONMENTAL


IMPLICATIONS OF THE INTERACTION BETWEEN HUMANS AND
MACHINES
Key Ideas
• Social - relating to society or its organization.
• Economic - pertaining to the production, distribution, and use of income, wealth,
and commodities
• Environmental - relating to the natural world and the impact of human activity on
its condition

Key Idea Definition


Moral right and wrong
Ethical recommending concepts of right and wrong conduct
Social relating to society or its organization.
pertaining to the production, distribution, and use of income, wealth, and
Economic
commodities
Environmental relating to the natural world and the impact of human activity on its condition

21
STANDARDS
• Identify the context for which a new system is planned.
• Describe the need for change management.
• Outline compatibility issues resulting from situations including legacy systems or
business mergers.
• Compare the implementation of systems using a client’s hardware with hosting
systems remotely.
• Evaluate alternative installation processes.
• Discuss problems that may arise as a part of data migration.
• Suggest various types of testing.
• Describe the importance of user documentation.
• Evaluate different methods of providing user documentation.
• Evaluate different methods of delivering user training.
• Identify a range of causes of data loss.
• Outline the consequences of data loss in a specified situation.
• Describe a range of methods that can be used to prevent data loss.
• Describe strategies for managing releases and updates.
• Define the terms: hardware, software, peripheral, network, human resources.
• Describe the roles that a computer can take in a networked world.
• Discuss the social and ethical issues associated with a networked world.
• Identify the relevant stakeholders when planning a new system.
• Describe methods of obtaining requirements from stakeholders.
• Describe appropriate techniques for gathering the information needed to arrive at
a workable solution.
• Construct suitable representations to illustrate system requirements.
• Describe the purpose of prototypes to demonstrate the proposed system to the
client.
• Discuss the importance of iteration during the design process.
• Explain the possible consequences of failing to involve the end-user in
the design process.
• Discuss the social and ethical issues associated with the introduction of new IT
systems
• Define the term usability.
• Identify a range of usability problems with commonly used digital devices.
• Identify methods that can be used to improve the accessibility of systems.
• Identify a range of usability problems that can occur in a system.
• Discuss the moral, ethical, social, economic and environmental implications of the
interaction between humans and machines.

22

You might also like