0% found this document useful (0 votes)
22 views36 pages

Overview of Software Engineering

Software engineering is the application of engineering principles to the design, development, and maintenance of software. It introduces software and explains its importance. Software is everywhere and costs are often greater than hardware costs. Software engineering aims to develop software economically and reliably through processes like specification, development, validation, and evolution. It addresses issues like changing needs, security, and building quality software within budget and timeline constraints.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views36 pages

Overview of Software Engineering

Software engineering is the application of engineering principles to the design, development, and maintenance of software. It introduces software and explains its importance. Software is everywhere and costs are often greater than hardware costs. Software engineering aims to develop software economically and reliably through processes like specification, development, validation, and evolution. It addresses issues like changing needs, security, and building quality software within budget and timeline constraints.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

SOFTWARE

ENGINEERING

Prepared by:
Ms. Rose Ann Malaborbor
OBJECTIVES:
 To introduce software engineering and to
explain its importance
 To set out the answers to key questions
about software engineering
WHAT IS SOFTWARE?
 Computer programs and associated
documentation such as
requirements, design models and
user manuals.
 Software products may be developed
for a particular customer or may be
developed for a general market.
IMPORTANCE OF SOFTWARE
IMPORTANCE OF SOFTWARE
 It is embedded in system of all kinds :
transportation, medical,
telecommunications, military, industrial
process, entertainment, office products,
… the list is almost endless.

 Software is virtually inescapable in a


modern world. it becomes the driver for
new advances in everything from
elementary education to genetic
engineering.
SOFTWARE

 Software are everywhere


SOFTWARE COSTS
 1950-1965 : Batch orientation, limited
distribution, custom software
 1964-1974 : Multi user, Real-time,
Database, Product Software
 1973-1988 : Distributed System,
Embedded “Intelligence”, Low Cost
Hardware, Consumer Impact
 1985-2000 : Powerful desktop system,
Object Oriented Technology, Expert
System, Artificial Neural Network,
Parallel Computing, Internet (Global
Network), Multimedia
SOFTWARE COSTS
 Software costs often dominate computer
system costs. The costs of software on a PC
are often greater than the hardware cost.
 Software costs more to maintain than it does
to develop. For systems with a long life,
maintenance costs may be several times
development costs.
 Software engineering is concerned with cost-
effective software development.
SOFTWARE PRODUCTS
 Generic products
 Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
 Examples – PC software such as graphics programs,
project management tools; CAD software; software for
specific markets such as appointments systems for
dentists.
 Customized products (bespoke)
 Software that is commissioned by a specific customer to
meet their own needs.
 Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
PRODUCT SPECIFICATION
 Generic products
 The specification of what the software should
do is owned by the software developer and
decisions on software change are made by the
developer.
 Customized products
 The specification of what the software should
do is owned by the customer for the software
and they make decisions on software changes
that are required.
SOFTWARE’S DUAL ROLE
[Link] is a vehicle for delivering a product
 Supports or directly provides system
functionality
 Controls other programs (operating system)
 Effects communications (networking software)
 Helps build other software (software tools)

2. Software is a product
 Deliverscomputing potential
 Produces, manages, acquires, modifies, displays,
or transmits information
SOME POPULAR ONES
SOME POPULAR ONES
SOME POPULAR ONES
SOME POPULAR ONES
SOFTWARE TYPES
1. System Software- enables the application software
to interact with the computer hardware.
Examples: Operating Systems, Utilities and Device
Drivers.
2. Real-time Software- enables the user to execute
various task and activities all at the same time, as
long as the programs are kept open. Some of these
software programs are also designed to fulfill
scheduled tasks, thus, even if not opened, they
automatically respond to the computer’s time
clock and do the tasks given to them.
Examples: Anti Virus
SOFTWARE TYPES
3. Business Software – or  business application is
any software or set of computer programs that
are used by business users to perform various
business functions.
Examples:  accounting software, and office
suites such as [Link] or Microsoft
Office.
4. Engineering & Scientific Software - help with
acquisition and analysis of beam line data. 
Examples: Time-Resolved EXAFS, Visualization /
Data Processing, Detector Controls
SOFTWARE TYPES
5. Embedded Software - is computer software, written to
control machines or devices that are not typically
thought of as computers. It is typically specialized for
the particular hardware that it runs on and has time and
memory constraints.
Examples: electronics in cars, telephones,
modems, robots, appliances, toys, security systems,
televisions, and digital watches
[Link]-based Software -  is an application that is accessed
by users over a network such as the Internet or
an intranet.
Examples:  webmail, online retail sales, online
auctions, wikis 
SOFTWARE TYPES
7. Artificial Intelligence Software -is an
advance branch of science that studies
the process of human thinking and
attempts to apply the knowledge to
simulate the same process in machines. 
Examples: computer games, expert systems
robots
NEW - SOFTWARE TYPES
 Ubiquitous computing—wireless networks
 Net sourcing—the Web as a computing engine
 Open source—”free” source code open to the
computing community.
 Also …
 Data mining
 Grid computing
 Cognitive machines
 Software for nanotechnologies
SOFTWARE ISSUES
 The final Software doesn´t fulfill the
needs of the customer.
 Hard to extend and improve: if you
want to add a functionality later is
mission impossible.
 Bad documentation.
 Bad quality: frequent errors, hard to
use, …
 More time and costs than expected
ATTRIBUTES OF GOOD
SOFTWARE
 The software should deliver the required
functionality and performance to the user and
should be maintainable, dependable and
acceptable.
 Maintainability
 Software must evolve to meet changing needs;
 Dependability
 Software must be trustworthy;
 Efficiency
 Software should not make wasteful use of system resources;
 Acceptability
 Software must accepted by the users for which it was designed.
This means it must be understandable, usable and compatible
with other systems.
WHAT IS SOFTWARE
ENGINEERING?
 Software engineering is an engineering
discipline that is concerned with all aspects
of software production from the early stages
of system specification through to
maintaining the system after it has gone into
use.
SOFTWARE ENGINEERING
 An engineering discipline that provides
knowledge, tools, and methods for:
− Defining software requirements
− Performing software design
− Software construction
− Software testing
− Software maintenance tasks
− Software project management
SE VS CS
1. Computer science is concerned with
theory and fundamentals; software
engineering is concerned with the
practicalities of developing and
delivering useful software.
2. Computer science theories are still
insufficient to act as a complete
foundation for software engineering
SE VS CS
COMPUTER
CUSTOMER
SCIENCE

Computer
Theories
Functions Problem

SOFTWARE
ENGINEERING

Tools and
Techniques to
Solve Problem
IMPORTANCE OF SOFTWARE
ENGINEERING
1. More and more, individuals and society rely on
advanced software systems. We need to be
able to produce reliable and trustworthy
systems economically and quickly.
2. It is usually cheaper, in the long run, to use
software engineering methods and techniques
for software systems rather than just write the
programs as if it was a personal programming
project. For most types of system, the
majority of costs are the costs of changing the
software after it has gone into use.
GENERAL ISSUES THAT AFFECT
MOST SOFTWARE
 Heterogeneity
 Increasingly,systems are required to operate as
distributed systems across networks that include
different types of computer and mobile devices.
 Business and social change
 Business and society are changing incredibly quickly as
emerging economies develop and new technologies
become available. They need to be able to change their
existing software and to rapidly develop new software.
 Security and trust
 As software is intertwined with all aspects of our lives,
it is essential that we can trust that software.
PROBLEMS OF SOFTWARE
ENGINEERING
 Ability to build new programs cannot meet
demand for new programs, nor do we build
fast enough to meet business and market
needs.
 Widespread use of computers has made
society increasingly dependent.
 Struggle to build software with high
reliability & quality
 Ability to support and enhance programs is
threatened by poor design and few resources
SOFTWARE PROCESS
 A set of activities whose goal is the
development or evolution of software.
 Generic activities in all software
processes are:
Specification - what the system should do and
its development constraints
Development - production of the software
system
Validation - checking that the software is what
the customer wants
Evolution - changing the software in response
to changing demands.
WHAT ARE THE COSTS OF SOFTWARE
ENGINEERING?
 Roughly 60% of costs are development costs,
40% are testing costs. For custom software,
evolution costs often exceed development
costs.
 Costs vary depending on the type of system
being developed and the requirements of
system attributes such as performance and
system reliability.
 Distribution of costs depends on the
development model that is used.
WHAT ARE SOFTWARE ENGINEERING
METHODS?
 Structured approaches to software
development which include system models,
notations, rules, design advice and process
guidance.
 Model descriptions
 Descriptions of graphical models which should be
produced;
 Rules
 Constraints applied to system models;
 Recommendations
 Advice on good design practice;
 Process guidance
 What activities to follow.
APPLICATION TYPES
 Stand-alone applications
 These are application systems that run on a local computer,
such as a PC. They include all necessary functionality and do
not need to be connected to a network.
 Interactive transaction-based applications
 Applications that execute on a remote computer and are
accessed by users from their own PCs or terminals. These
include web applications such as e-commerce applications.
 Embedded control systems
 These are software control systems that control and manage
hardware devices.
 Examples:telecom,smartcard,missiles,computer networking,
software in mobile phones, software in microwave oven that
control the cooking process.
APPLICATION TYPES
 Batch processing systems
 These are business systems that are designed to process
data in large batches. They process large numbers of
individual inputs to create corresponding outputs.
 Examples: billing system such as credit card, phone
billing system and salary payment.
 Entertainment systems
 Theseare systems that are primarily for personal use
and which are intended to entertain the user.
 Example: games
 Systems for modelling and simulation
 Theseare systems that are developed by scientists and
engineers to model physical processes or situations,
which include many, separate, interacting objects.
APPLICATION TYPES
 Data collection systems
 These are systems that collect data from their
environment using a set of sensors and send
that data to other systems for processing.
 Systems of systems
 These are systems that are composed of a
number of other software systems.
 Example: An airplane is an example of a large-scale, complex
system. Many systems, operate various parts of the plane, but
the plane flies when all its systems work in tandem and
doesn’t fly if the systems work independently of each other.
 Generic software: Spreadsheet
SOFTWARE PROCESS MODEL
 A simplified representation of a software
process, presented from a specific perspective.
 Examples of process perspectives are
 Workflow perspective - sequence of activities;
 Data-flow perspective - information flow;
 Role/action perspective - who does what.
 Generic process models
 Waterfall;
 Iterative development;
 Component-based software engineering.

You might also like