Transcript Softwarex

Software
•
•
•
•
Software essential is coded programs that perform a serious of algorithms.
Instructions loaded into primary memory (RAM) from secondary storage
FDE Cycle performed on instructions as software is running.
CPU runs software from machine code. However Most software is written in
higher level languages.
Software
Is written in
High level
language (C++ VB
Python)
Is translated by
Compiler
Object code
(Machine Code)
And turned into..
Software
• Types of software
Operating Systems
Device Drivers
Firmware
Systems Software
Servers
Utilities
Interfaces
Development tools
Software - Systems
• Operating Systems
• Early computers could only run one program at a time.
• Code was fed into a computer through punch cards or tape
• Program then ran until completed or crashed.
• OS developed to make the hardware transparent.
• Developed further into multitasking.
Software - Systems
• Operating Systems
Multitasking
Security
Interfaces
OS
Peripheral
Management
File Management
Process
Management
Software - Systems
• Operating Systems
• Multitasking
• Allows processes to be attended to in the most efficient way.
• Mutliple processes are loaded into RAM and can be switched between
• Processes can be either:
Runnable
Waiting
Running
Software - Systems
• Operating Systems
• Security
• Prevents overwriting of date. Divides memory into pages and keeps tabs
on which processes are using which pages to prevent conflicts.
• Manages user profiles and access rights for multiuser networks.
• OS Firewalls.
Software - Systems
• Operating Systems
• Interfaces
DOS
Command Line
Unix
Windows
Mac OS
Interfaces
Xfce
GUI
KDE
Voice Input
GNOME
Menu Driven
Android
iOS
Software - Systems
• Device Drivers
• Software to inform the OS how to control the Devices attached to a computer
• One for each peripheral and written by the device manufacturers.
• Occasionally there are generic device drivers – USB
• Requests are passed onto the device drivers and these are translated into
code necessary for the device to perform the request.
• Works on Interrupts to the OS.
• Comes with User settings.
Software - Systems
• Firmware
• Usually required for smaller devices that do not have much RAM
• Stored on ROM
• Can provide simple functionality such as in a remote control up to a fully
fledged operating system like on DVD players
Software - Systems
• Server
• Software that responds to requests from “Clients”
• Web server software (e.g. Apache) responds to web browser requests
• Also used in running Networks. Print Servers, File Servers.
Software - Systems
• Utility Software
Utility
Software
Security
Virus Detection
Spyware
Malware
Firewalls
Maintenance
Disk organisation
Defragmenters
Common
Utilities
Free space management
Calendars
Clock
Email
Search Facilities
Software – Systems
• Development Software
Writing Programs
Development Software
Editors
Text IDEs
GUI IDES
Compilers
Convert High level language
to Object code
Interpreters
Convert high level code to
machine code a line at a
time
Assemblers
Linkers
Links many object codes to
from an executable.
Software - Applications
• Application software
Word Processing
Spreadsheet
Presentation
Application Software
Graphics
Database
Stock Control
Enterprise
Payroll
Email
Customer
Management
Cloud Software
Browsers
Educational
Media
Games
VLE’s
Software - Applications
• Procurement
• Off the shelf
• Adobe CS Suite, MS Office etc..
• Readily available
• Good development process – most bugs discovered and fixed.
• Good communities and forums for help.
• Custom
• Specifically written for specific client
• Fits requirements of client
• Bug fixing part of service contract
• Development costs borne by customer – can be expensive
• Limited testing
Software - Applications
• Proprietary and open source software
• Proprietary Software
• Clients are licensed to use it. Developer owns the intellectual property
• Source code hidden
• Quality for software covered by developers
• Can be expensive
• Open Source
• Developed by a community
• Source code publically available
• Anyone can adapt it.
• No guarantees or contract
• Developer community is quick to spot errors
• Free
• Examples – Linux, Libre Office, Mozilla Firefox, Apache.