Topic 1 - System Fundamentals - Revise Notes
Topic 1 - System Fundamentals - Revise Notes
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.
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
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).
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
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.
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).
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.
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.
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.
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
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.
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.).
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.
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.
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
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.
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?".
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.
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.
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
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
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.
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.
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.
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.
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