Software Engineering
Overview of a software
Hardware vs. Software
• Hardware consists of the parts of the
computer you can touch
– keyboard, mouse, monitor, printer, drives,
motherboard, CPU and so on
• Software is simply a set of instructions
(a.k.a. a program), it tells the hardware what
to do and when to do it
Software
• Computer software, or just software, is a
collection of computer programs and related data
that provides the instructions for telling a
computer what to do and how to do it. Software
refers to one or more computer programs and data
held in the storage of the computer for some
reasons. In other words, software is a set of
programs, procedures, algorithms and its
documentation concerned with the operation of a
data processing system.
Generic Software/Off the Shelf Software
• can be purchased, installed & used immediately
• written to solve a specific problem,
• designed to do one particular task,
• e.g. order entry, payroll, stock control, appointments.
Advantages of buying an off-the-
shelf package
• generally less expensive than custom-written
• readily available
• large, established user-base
• software is tried and tested
• software runs on a wide range of hardware
• standard file format
Disadvantages of buying an off-
the-shelf package
• total cost of ownership can be high
– annual subscription
– upgrades may be expensive
• non-specific software
• may have too many additional, unwanted
extras
• larger memory footprint than custom-written
– higher specification computers required?
Dr Tingkai Wang ASE slides
Bespoke /Customer Build
Software
• tailor-made, bespoke software
• designed and written specifically for a
company
• written especially for them
• using a programming language or a DBMS
• tested by the developers before installation
Advantages in buying Bespoke
Software
• designed to do exactly what the user wants
• end-user owns the software
• can be written to run on user-specified hardware
• can be integrated with existing software
Disadvantages in buying tailor-
made software
• time consuming to have developed
• expensive
• limited support
• new staff unlikely to be familiar with software
The major types of software
System Software
Application software
Operating Systems
System software Schedules computer events
Allocates computer
Hardware resources
Monitor events
Language translators
Users Interpreters
Compilers
Application Software Utility programs
Routine operations (print)
Manage data (e.g. create files,
merge files
System Software
• Manages the fundamental operations of the
computer, such as
- loading programs and data into memory,
executing programs, saving data to
disks, displaying information on the
monitor, and transmitting data
through a port to a peripheral
device.
• System software: operating systems, utilities,
device drivers.
Operating System
• Collection of computer programs that control the
interaction of the user and the computer
hardware.
• Responsible for directing all computer operations
and managing all computer resources.
• Controls basic input and output, allocates system
resources, manages storage space, maintains
security, and detects equipment failure.
• Loading the operating system into memory is
called booting the computer.
Operating Systems
• A collection of programs that handle technical
tasks
– Manage resources
– Provide user interface
– Run applications
• Examples:
– Windows 7
– Mac OS X
• Also called the software environment or
platform
13
Functions of an OS
• Manages computer resources
– Coordinate memory, processing, storage, printers
and monitors
– Schedule tasks
– Provide security
– Start-up the computer
• Provides user interface
– Graphical user interface (GUI)
• Runs applications
– Multitasking
Utilities
• File Conversion: takes in one format and it
into a another
• File Compression: shrinks the size of stored
files
• Backup: makes a copy of your files in case
of a system crash
Utilities (Cont.)
• Uninstaller: gets rid of applications you no
longer want
• Anti-virus: seek and destroy virus,
protection too
• Screen Saver: it used to be that it literally
saved the screen, now mostly entertainment,
sometimes security
Device driver
• A computer program that can establish
communication because it contains
information about the characteristics of your
computer and of the device.
• Each peripheral device requires a device
driver.
• Helps the computer communicate with that
particular device.
• When we add a device to an existing
computer, part of its installation includes
adding its device driver to the configuration.
Translators
• Compilers
• Interpreters
• Assembler
Application Software
• Serves user requirements
• Real time software
• Business software
• Engineering and Scientific software
• Embedded software
• Personal software
• Web based software
• AI software
Word Processing Software
• You can store text data electronically as a computer file
rather than on paper.
• It allows you to make changes in your document
electronically in memory.
• Most word processing software has advanced features:
spell checking, grammar checking, and punctuation
checking.
• Besides these, it has thesaurus programs, and mail merge
programs ( which link letters or other text documents with
names and addresses in a mailing list).
Spreadsheet Software
• Spreadsheet software is a numerical analysis tool.
• Spreadsheet software creates a worksheet, composed of a
grid of columns and rows.
• The intersection of a column and row is called a cell. Each
cell has a unique address (cell reference).
• Using spreadsheet you can create graph (summary of data)
Database Management Software
• A database is a collection of information stored in one or
more computers.
• A structured database is organized in a uniform format
of records and fields.
• A structured database contains data that describes a
collection of similar entities. For examples,
• - student academic records, medical records.
Name:
Student#
# of courses taken Spring 1999 Student
GPA
Graphics and Presentation Software
• Graphics and presentation software allow us to create
illustrations, diagrams, graphs, and charts that you also
can print and transmit to remote computers.
• Most application software allows you to include
graphics created by graphics software (Microsoft Paint
or Adobe PhotoShop).
• MS PowerPoint is a popular presentation software. You
can create colorful presentations and transparencies.
Software Attributes
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet
the changing needs of customers. This is a critical attribute because
software change is an inevitable requirement of a changing business
environment.
Dependability and security Software dependability includes a range of characteristics including
reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious
users should not be able to access or damage the system.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
24
Chapter 1 Introduction 4
What is software Engineering?
• Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software; that is, the application of engineering to
software.
Question
• What are the differences between Software
Engineering and Software Development?