IB Computer Science Syllabus Notes
with notes by Dave Mulkey, Germany, 2015
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.1
Identify
the context for which a new system is planned.
Planning (analysis) starts with an investigation
of the current problem.
The analyst must consult all the stakeholders,
including:
- end users (who will use the
system)
- technicians (who maintain the
system)
- administrators (who manage the
money)
Planning must clearly define the context for
the system, including:
- sample data (required
information)
- extent (size) of the system
(required features)
- limitations of the system
(unnecessary features)
- available technologies
- organizational requirements (such
as laws and business rules)
Planning must end with a list of specific
goals that can
be used by designers and developers to guide
the project to a successful conclusion.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.2
Describe
the need for change management.
A company cannot simply buy a new computer system and install it.
It is probably replacing or supplementing an existing system.
Installing new hardware and software results in changes that require:
- training the end users
- uninterrupted continuation of business and services
- ensuring compatibility with
other systems
The actual change-over process can be managed in 3 standard ways
- direct-changeover (turning off
the old system and turning on the new one)
- phased implementation (changing
slowly from the old system to the new one)
- parallel running (running the old
and new systems simultaneously)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.3
Outline
compatibility issues resulting from
situations
including legacy systems or business mergers.
Legacy issues result from things
left over from the past.
In computer systems, we need to support old standards
even if they are no longer very useful - because some
people are still using that old technology.
During a business merger, there are
likely to be
two different sets of hardware and two different
sets of software that must work together successfully.
Compatibility refers the issue of
whether two
computer systems can function together successfully.
The most significant issue is often
DATA compatibility.
Companies store lots of data (many terabytes) containing
customer data,
financial records, business documents, etc. Merging
companies probably
want to keep all the data from both companies, but not in two
different formats.
International differences are
especially difficult, as they continue even after a merger.
Time differences in different continents don't disappear, so
continual data conversion
is required. Language differences may require two copies
of data to be stored,
or two versions of applications to
run. Different character sets may
be required
for the two languages.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.4
Compare the implementation of systems
using a client’s hardware with hosting systems remotely.
Remote access is always slower than
local access.
Remote operations do have the
advantage that they are centralized in a server.
Hence any updates are very
convenient as they must be installed
only at the server, rather than distributing
them to all the client machines.
"Thin clients" are simple
keyboard+screen installations that don't store data
or run software locally. Instead, all storage and processing
happen at the server,
and only input and output happen on the "thin client"
machine.
This allows very inexpensive and simple hardware to be purchased
by the client.
It's currently popular to run applications as "web-based apps".
That means the software is stored and executed on a web-server,
and the client browser behaves like a thin-client.
"Browser-based" software often runs
on a large variety of browsers
and hardware, for example on PCs as well as smartphones and
tablets.
Software-as-a-Service (SAS)
refers to "renting" software on a temporary basis,
rather than selling the software or the software license.
Since browser-based software can be so easily distributed,
it is often provide for free, without no license cost,
and the users pay for other things like content
(e.g. music, videos, etc)
that can only be downloaded with the SAS software.
A typical example is Apple's iTunes - free software
for buying music titles.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.5
Evaluate alternative installation processes.
The cheapest changeover approach is Direct
Changeover,
shutting down the old system before turning on the new system.
This is simple and cheap, but prone to failure.
Phased-implementation
gradually
reduce the use of the old system
while gradually increasing use of the new system. For
example,
if a school installs a new web-site, they might start by placing
all new information in the new web-site, but keep the old
web-site
running with all the old information. Then they can gradually
transfer
old info from the old to the new system.
Parallel Running uses both the old and
the new system simultaneously.
That means that all information and changes are done in both
systems.
This is double work for the users and hence quite expensive.
However, this method is very safe. If the new system
fails, we still have the old one.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.6
Discuss problems that may arise as a
part of data migration
"Data" includes not only values stored
in databases (name, phone,
address)
but also pictures, documents and any other files that are
important to a business.
Small data items like dates may be
quite different in various countries,
so they require conversion before
use in another country.
Validation rules are used to check dates
and other data items to avoid conversion errors.
For example, a month number must be smaller than 13, a day number
must be smaller than 32.
Data-migration refers to copying,
converting or moving data from one system to another.
Data-structures refer to collections
of data such as arrays, objects, lists, files, etc.
Data migration from an old system to
a new system is often a complex task.
It must be done carefully to avoid data errors, especially if it
involves money.
For example, 1000 Rupees is not the same as 1000 Euros. A
good validation check
might reject a price of 1000 in Euros, but accept a price of 1000
in Rupees.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.7
Suggest various types of testing
During development, programmers probably spend considerably
more time testing and debugging than the time they spend actually
writing code.
Testing methodologies include:
- black-box testing, which means
running a program and typing in sample data without reading the
programming code
- white-box testing, which means
reading the code before and after running the program
- automated testing, which means that
the computer generates it's own test data
(or reads it from a file) and simulates user input, and then checks
whether
the results match the actual correct results
A program that does automatic testing is sometimes called a "test harness".
Debugging refers to finding errors in a
program and correcting them by changing the program code.
This is done by programmers during development.
Beta-testing is when an almost finished
application is given to a small set of knowledgeable users,
who then test the program "in the real world". This is done by
users.
The users report back problems to the programmers, who fix them.
Acceptance testing is done once the
software is finished.
Users install and test the software to ensure that it meets their
needs.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.8
Describe the importance of user documentation
User documentation includes
pop-up instructions, books, tutorials,
help menus, telephone support call centers, etc.
In the old days, software was delivered on disks, accompanied by a
MANUAL -
that was a thick paper book. The modern approach is to
distribute the software
by downloading from a server.
User documentation is on-line -
presented in a web-site or a digital
document.
Thanks
to new graphics technology, we can provide video
tutorials
that users can view whenever it is convenient, as well as interactive tutorials
where the user is actually using the software at the same time
they are viewing instructions.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.9
Evaluate different methods of providing user documentation
User documentation methods include :
- help files that pop-up while the
software is running
- online support accessible via
phone calls or e-mail
- printed manuals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.10
Evaluate
different methods of delivering user training
Common methods include :
-
self instruction via video tutorials
and pop-up help
- formal classes offered by trained
instructors in a local classroom
- remote/online training offered by a
remote instructor
Self instruction can be frustrating
and ineffective for some employees,
as there is no guarantee of success.
Formal classes (local) probably
occur during work time,
taking employees away from work.
Online training is often cheaper
than formal local classes, as it can be
offered to a larger number of participants, without the instructor
needing to travel.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.11 (L2)
Identify a range of causes of data loss
Data loss is when data goes
missing (deleted or lost),
or gets changed to be incorrect, or is saved
in a place where it cannot be found.
The most common cause of data loss is accidental
user mistakes.
This can be avoided by thorough training, as well as warnings from
the
computer system when something bad is about to happen.
But the best safeguard against data loss is backups.
Malicious destruction means
destroying or breaking something on purpose,
either to hurt someone else or to gain advantage, e.g. when a
politician
hires hackers to destroy another politicians web-site.
Natural disasters include
flood,
fire, earthquake, etc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.12 (L2)
Outline the consequences of data loss in a specified
situation
Lost medical records ==> incorrect treatment
This is especially a problem in a hospital with
many
doctors and nurses who don't know the patient
personally.
Also problematic if a badly injured person cannot
talk.
Cancelled hotel reservation ==> a tourist has no place to stay
We rely on many services that are managed by computers.
Without the correct data in the computer, we get no service or
incorrect service.
- no
bank records ==> no money
- incorrect password ==> you cannot log in, no access
- incorrect birth date ==> can affect credit rating,
medical treatment
- wrong email address ==> you get email that is for
someone else
and you don't receive your email
- lost purchase order ==> items do not get delivered
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.13 (L2)
Describe a range of methods that can prevent data loss.
Failover means backup hardware
automatically starts working when an error occurs (fails).
Redundancy means extra copies -
backup copies of a file, entire hard-disks copied onto an
external hard-disk, tape backups of hard-disks stored in a safe
place.
Removable media includes
external
hard-disks, USB sticks, writable DVDs, tapes.
Restore is the process of retrieving
data from the backup and "fixing" incorrect data.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.1.14
Describe
strategies for managing releases and updates.
Releases are when an application or system achieves a new
version. This usually requires manual installation and makes
large changes and improvement - for example, going from Windows 7 to
Windows 8.
Updates smaller changes than
releases. This usually fixes bugs or adds small improvements
like security changes. This is often managed by automatic
downloads and installation. For example, changing from Java 1.6.2 to
1.6.3
Patches are very small changes, usually
fixing bugs. Usually installed automatically. This is
not a version change, and does not add any new features. For
example, OS patches.
Releases, updates and patches are usually deployed
(distributed)
by downloading, sometimes automatically.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~