Topic X – Topic Title Module Title
Module Title: Computer Systems
Topic: 8
Topic Title: Computer Systems Software
© NCC Education Limited
Computer Systems Software Topic 8 - 8.2
Scope and Coverage
This topic will cover:
• Software hierarchy
• Systems software
• Interpreters
• Compilers
• Databases
• Networking software
• Program development environments
Computer Systems Software Topic 8 - 8.3
Learning Outcomes
By the end of this topic students will be able to:
• Describe system software’s role in modern computer
systems.
• Compare and contrast functions of compilers and
interpreters.
• Describe fundamentals of relational databases
• Describe basic networking services available on
computer systems
V0.0 Visuals Handout – Page 1
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.4
Computer systems - roadmap
Although an operating system is the most
important software, there are others that
Advanced topics are just important that support programs.
Computer networks
System software are not part of an
Embedded systems
Digital logic
operating system. They are not directly
Computer systems software responsible for managing computer
Computer programs resources but support applications.
Numbers and logic
All user applications require specialist
Operating systems 2
support that they cannot provide. These
Computer systems hardware
Computer systems
include database, communications and
application library supports as well as
compilers and interpreters.
Computer Systems Software Topic 8 - 8.5
Databases
The following are covered:
• MS Access database
• Fundamentals of relational databases
• Structured Query Language (SQL)
• Examples of SQL
Computer Systems Software Topic 8 - 8.6
Database manager – MS Access
A tool to create Access databases and database tables,
maintain and repair databases and provides macros to create
forms to enter and present database data. The following
features are available:
• Create Access databases (uses .mdb extension)
• Create database tables (multiple fields of various types)
• Populate database tables with data
• Analyse relationships
• Repair databases
• Perform queries
• Create forms and reports
V0.0 Visuals Handout – Page 2
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.7
Relational databases
Fundamentals of Relational Databases
• Primary unit of storage is the table.
• Each table may be accessed independently, or joins may be used
to combine tables into new tables.
• Relationships defined using primary and foreign keys.
• Easily defined integrity constraints.
Examples:
• Microsoft SQL server databases
• IBM DB2 databases
• ORACLE databases
Computer Systems Software Topic 8 - 8.8
Relational databases
Entities and Relationships
In "Relational Data Model" terminology
• Entity: something about which data is kept
• Attributes: properties of an entity
• Relationships: connections between entities
In the "Real World"
• Entity Table
• Entity instance Row entry
• Attribute Column heading/entry
• Entity identifier Primary key
Computer Systems Software Topic 8 - 8.9
Relational databases - ERD
Entity Relationship Diagrams (ERD)
A Factory makes
Name Components.
FACTORY Given a factory, we
Country can tell which
components it
Size
makes.
Factory A Component is
COMPONENT made in a Factory.
One-to-Many (1:M) Code Given a component,
we can tell which
Type Description factory it is made in.
V0.0 Visuals Handout – Page 3
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.10
Relational databases - SQL
Structured Query Language (SQL)
SQL is a full language for manipulating and querying relational
databases.
• Querying
• Inserting (new records, can create databases)
• Updating (existing records)
• Deleting
SQL statements: SELECT, INSERT, UPDATE, DELETE
Computer Systems Software Topic 8 - 8.11
Did you know?
Edgar F. Codd, father of relational database
model was an English computer scientist who
invented the relational model for database
management while working for IBM in USA. This
became the theoretical basis for relational
databases and relational database management
systems. He made other valuable contributions to
computer science, but the relational model remains
his most mentioned, analysed and celebrated
achievement as a very influential general theory of
Re: data management. In the 1960s and 1970s, he
[Link]
i/Edgar_F._Codd developed his theories of data arrangement
resulting in his paper "A Relational Model of Data
for Large Shared Data Banks" in 1970.
Computer Systems Software Topic 8 - 8.12
Program development tools
The following development tools are available:
• Text editors (programming language specific)
• Compilers (language processors/translators)
• Assemblers (language processors/translators)
• Integrated Development Environments (IDE)
V0.0 Visuals Handout – Page 4
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.13
Compilers – language processors
executable
binary code
in a file
Language
Compiler 10110011100…
11100010011...
source save
code
executable
binary code
on disc
Computer Systems Software Topic 8 - 8.14
Executing compiled code
executable
binary code
on disc
Loader (e.g. OS file manager)
10110011100… CPU
11100010011...
fetch
executable
binary code decode
in RAM
execute
Computer Systems Software Topic 8 - 8.15
Interpreting compiled pseudo code
pseudo
code
on disc
Loader Virtual Machine Interpreter
mimics (or emulates) the
10110011100… behaviour of a CPU in
11100010011...
software
pseudo
code
in RAM
V0.0 Visuals Handout – Page 5
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.16
Native code or interpreted code?
L1
Lang. L1
Compiler
(e.g. C#)
Lang. L2 L2 Pseudo
(e.g. VB) Compiler Code
Lang. L3 L3 Computer
(e.g. C++) Compiler
L4 Native
Lang. L4 Code
Compiler
(e.g. C)
Computer Systems Software Topic 8 - 8.17
Runtime environments
Java [Link]
Pseudo Pseudo
Code Code C C++
Virtual Machine Native Native
Code Code
Operating System
Hardware
Computer Systems Software Topic 8 - 8.18
Compilers as development tools
Compilers are programming language specific.
Structured high-level languages:
• C (Systems implementation)
• Pascal (Teaching language)
• Cobol (Commercial language)
• Fortran (Scientific language)
Object-oriented languages:
• C++ (Systems implementation language)
• Java (Web and embedded applications)
• [Link] (Windows and commercial applications)
V0.0 Visuals Handout – Page 6
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.19
Development environment
IDE's are development tools with integrated functions, i.e.,
kind of all-in-one packages. Examples are JBuilder, Delphi
and Visual Studio. Standard functions offered are:
• Create a development project
• Add project files
• Capture and edit program statements
• Capture and edit user interfaces (GUI)
• Build the project
• Run the project
• Debug the project
Computer Systems Software Topic 8 - 8.20
Integrated development
environment, e.g., Visual Studio
Menu Bar
General Work Area Project Files
Components Library
(Source Text Edit)
(Toolbox)
(User Interface Design)
Component
(Debug Support) Attributes
(Help Text) and Events
List
Status, Output display Window(s)
Computer Systems Software Topic 8 - 8.21
Networking services
The following networking services are available:
• Web browser
• Mail server
• Domain Name Server (DNS)
• Dynamic Host Configuration Protocol (DHCP)
server
• Ping test
• File Transfer Protocol (FTP)
• Remote Services (Distributed computing)
V0.0 Visuals Handout – Page 7
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.22
Web browsers
Application software for presenting and navigating hypertext
formatted (HTML) Web pages of text and images. Also used
to download files from remote sites. The main functions are:
• Interpret HTML mark-up language
• Navigate Web sites (hyperlinks, back, forward, etc.)
• Download files (images, text, binary code, etc.)
• View HTML source in text form
• Store and recall favourites list
• Support international language encoding
Computer Systems Software Topic 8 - 8.23
Mail applications, e.g., MS Outlook
Application software used for sending and receiving
electronic mail via dial-up and/or network connections. The
main functions are:
• Send and receive mail
• Add attachments (text files, image files, etc.)
• Spell check mail text and grammar support
• Maintain contacts list
• Calendar, notes, alarm, meeting planning support
• Organise mail via structured folders
Computer Systems Software Topic 8 - 8.24
Mail application
Mail clients use the services of the mail servers for receiving
and sending mail over the network (using TCP/IP) on
specific network server ports.
POP POP: Post
Receive Server Office Protocol
mail
Mail
Client SMTP SMTP: Simple
Send Server Mail Transport
e.g. MS
Outlook
mail Protocol
Mail Server
V0.0 Visuals Handout – Page 8
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.25
Networking software - DNS
Resolving domain names to network addresses
Domain Name Server (DNS) looks up databases of names
and locates corresponding network address
Multiple DNS servers can cooperate to resolve a name
[Link]?
Mail
Database DNS
Program
[Link]
Database DNS
Computer Systems Software Topic 8 - 8.26
Networking software - DHCP
Assigning dynamic IP address to client computers
The client requests an IP address from Dynamic Host
Configuration Protocol (DHCP) server
DHCP allocates an IP address from a pool of IP addresses
IP addresses are leased for a limited time
"Give me an IP address"
DHCP Host
“Borrow this IP address:
[Link]
for 7 days only"
Computer Systems Software Topic 8 - 8.27
Networking software – Ping test
Testing basic connection with ping command
ping [<IP address> | <host name>]
Sends test packets and times response times
Also detects connection problems:
• Unknown host: cannot resolve IP, bad IP, etc
• Network unreachable: cannot find a route to the specified
host
• No answer: remote host not responded (timeout)
V0.0 Visuals Handout – Page 9
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.28
Networking software - FTP
File Transfer Protocol (FTP) transfers files between remote hosts.
• The client starts an FTP session that requires authentication by
the server
• The client requests single or multiple files (binary or ascii) from
the server.
• The server host locates the files and sends to the requesting
client.
FTP FTP
Client Server
file transfer
local remote
filestore filestore
Computer Systems Software Topic 8 - 8.29
Networking software - Popular
Popular Internet applications and their underlying transport protocols.
Application App. Protocol Based on
E-mail SMTP/POP TCP
File transfer FTP TCP
Web HTTP TCP
Remote file serv. NFS TCP
Network mgmt. SNMP UDP
Routing protocol RIP Typically UDP
Name server DNS Typically UDP
Echo ICMP Typically UDP
File transfer TFTP UDP
Networking software – Remote
Computer Systems Software Topic 8 - 8.30
services
Distributed systems support
‘virtual’ application’s code is on a remote system
‘virtual’ application is run as if it is on the local system
‘virtual’ ‘real’
Application A Application A
Middleware Middleware
Operating System X Operating System Y
Hardware A Hardware B
V0.0 Visuals Handout – Page 10
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.31
Operating systems
• An operating system is the most important system software on
computer systems capable of virtual memory and multi-
tasking. The most notable amongst many operating systems
are
o Microsoft’s Windows
o Linux
o Android
• We covered the principles of operating systems in previous
topics. Although there many more operating systems, some for
specialised purposes, they all make use of the same basic
principles.
Computer Systems Software Topic 8 - 8.32
Operating systems - comparison
Windows Linux Android
Owner Microsoft Inc. Developed as open Google Inc.
source under the GNU
project
Development Developed and
and distributed by
Open source and
distributed by various
Google, OHA (Open
Handset Alliance)
On the left, the table
Distribution Microsoft vendors
compares various
Architecture
Supported
x86, x86-64, ARM,
Alpha, MIPS,
x86, x86-64, PowerPC,
SPARC, Alpha, ARM
ARMv7, ARMv8-A,
Intel x86, x86-64
selected aspects of
Target
PowerPC
Workstation, Desktop/Server Mobile phones, smart
the popular three
System Type Personal Computer,
Media Centre,
Embedded watches, tablets, TV,
cars
operating systems
Tablet PC,
Embedded that have most user
User
Friendly
Uses user-friendly
GUI, voice
Uses user-friendly GUIs
are available, command
Uses user-friendly
GUI, voice visibility and reach.
commands lines, batch processing commands, hand
gestures
Security High Medium Medium
Threats
Reliability High High Can be unstable
Computer Systems Software Topic 8 - 8.33
Quiz time!
1. In a bank database, suggest an entity and its three attributes.
2. In a student database, what entity relationships describe "A student
has one department, a department has many students".
3. What does SQL "Select * from student where age < 21" do?
4. Interpreters can run code across multiple computer platforms
without re-compiling. How is this possible?
5. Web browsers are able to locate remote hosts by domain name
alone. How does this work?
6. Mail servers use two different network protocols. Identify these and
state what they do.
7. Explain how programs can be run remotely across different types of
computer platforms.
8. I have 20 computers in my lab. Suggest an easy way of
automatically assigning IP addresses to all.
V0.0 Visuals Handout – Page 11
Topic X – Topic Title Module Title
Computer Systems Software Topic 8 - 8.34
Discussion Session
Integrated development environments (IDEs), such
as MS Visual Studio or Eclipse, are an efficient and
rapid way of producing and releasing quality
software.
Discuss, in some detail, what aspects of a typical IDE
make it such a useful tool.
(If you have not previously used one, you should
carry out some literature research to find out about
IDEs)
(May be presented in small groups using 3/4 slides)
Computer Systems Software Topic 8 - 8.35
Topic Summary
An important constituent of system software are the database
services such as the popular relational databases which are
widely used in business computing.
An essential addition to system software are the computer
language compilers and interpreters. Compilers are necessary
to create computer programs and interpreters are used to run
them conveniently across multiple platforms.
Other valuable additions are the remote services that rely on
fast and reliable networking technology. These are used to
provide services such as electronic mail, file transfer, web
browsing, distributed computing and dynamic internet-based
enablers.
Topic 8 – Computer Systems Software
Any Questions?
V0.0 Visuals Handout – Page 12