You are on page 1of 16

Chapter 1: Introduction

1
Software
 Computer programs and associated documentation.

 Software products may be developed for a particular customer or may be


developed for a general market.
 Software products may be

– Generic - developed to be sold to a range of different customers.


Examples, for PCs such as databases, word processors, drawing packages,
and project-management tools.

- Custom (Bespoke) - developed for a single customer according to their


specification. Examples ,control systems for electronic devices, systems written
to support a particular business process, and air traffic control systems

2
SE History
 Software Engineering was first introduced in 1968 during a
conference about the “software crisis” when the introduction of third
generation computer hardware led to more complex software systems
than before
 Early approaches were based on informal methodologies leading to

• Delays in software delivery

• Higher costs than initially estimated

• Unreliable, difficult to maintain software

 Need for new methods and techniques to manage the production of


complex software.
3
Software Engineering
 Software Engineering is a systematic approach to the design, development,
operation, and maintenance of a software system.
 Software engineering is concerned with theories, methods and tools for
professional software development.
 Software engineering is an engineering discipline which is concerned with all
aspects of software production
 Software engineers should adopt a systematic and organised approach to their
work,
 Software engineering is not just concerned with the technical processes of software
development. It also includes activities such as software project management and
the development of tools, methods, and theories to support software production.

4
Types of application:
Stand-alone applications: These are application systems that run on a local
computer, such as a PC. Eg. office applications on a PC, matlab etc.
Interactive transaction-based application: These are applications that execute
on a remote computer and that are accessed by users from their own PCs or
terminals . Eg.e-commerce application etc.
Embedded control systems: These are software control systems that control and
manage hardware devices. Eg. the software in a mobile (cell) phone, software in a
microwave oven to control the cooking process etc.
Batch processing systems: These are business systems that are designed to
process data in large batches. Eg. Phone billing systems, and salary payment
systems.
5
 Entertainment systems: These are systems that are primarily for
personal use and which are intended to entertain the user.
 Systems for modeling and simulation: These are systems that are
developed by scientists and engineers to model physical processes or
situations, which include many separate, interacting objects. Eg.
maya, simul8 professional etc.
 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. Eg. Percon's Falcon 325 and Falcon 315 etc.
 Systems of systems: These are systems that are composed of a
number of other software systems. Eg. spreadsheet
6
Computer Science (CS) focuses on understanding, designing, and
developing programs and computers. At its core, Computer Science
concentrates on data transformation, Algorithms, date structures,
complexity theory, and numerical methods.
System Engineering(SE) is concerned with all aspects of the
development and evolution of complex systems, System engineering is
therefore concerned with hardware development, policy and process
design and system deployment, as well as software engineering.
Software Engineering (SE) Software engineering is a systematic
approach to the production of software that takes into account practical
cost, schedule, and dependability issues, as well as the needs of software
customers and producers also deals with practical problems in complex
software products. 7
What is a Software Process?
 A Software Process is a set of activities whose goal is the development
or evolution of software
 Fundamental activities in all software processes are:

• Specification - what the system should do and its development


constraints.
• Development - production of the software system (design and
implementation)
• Validation - checking that the software is what the customer wants

• Evolution - changing the software in response to changing demands

8
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.

9
Attributes of Good Software
 Maintainability
• Software must evolve to meet changing needs
 Dependability
• Software must be trustworthy
• should not cause physical or economic damage in the event of
system failure
 Efficiency
• Software should not make wasteful use of system resources
• (responsiveness, processing time, memory utilization, etc)
 Acceptability
• Software must be usable by the users for which it was designed
• understandable, usable, and compatible with other systems
 Security
• Malicious users should not be able to access or damage the system.
10
Key Challenges facing Modern Software
Engineering
 Legacy systems
• Old, valuable systems must be maintained and updated
 Heterogeneity
• Systems are distributed and include a mix of hardware and
software
 Delivery
• There is increasing pressure for faster delivery of software
 Trust
• Developing techniques that demonstrate that software can
be trusted by its users

11
Software Engineering Diversity
There are many different types of software system and there is no
universal set of software techniques that is applicable for all systems and
all companies.
The software engineering methods and tools used to depend on the type
of application being developed, the requirements of the customer and the
background of the development team.

Software engineering for Internet computing involves the


architecting, development, deployment, management, and quality
assurance of software supporting Internet-based systems.

12
Professional and Ethical Responsibility

 Software engineering involves wider responsibilities than


simply the application of technical skills.
 Software engineers must behave in an honest and ethically
responsible way if they are to be respected as professionals.
 Ethical behaviour is more than simply verify the law.

13
Issues of Professional Responsibility
 Confidentiality

• Engineers should normally respect the confidentiality of their


employers or clients even without a formal confidentiality
(being kept secret or private ) agreement.
 Competence

• Engineers should not misrepresent their level of


competence(capability). They should not knowingly accept
work which is beyond their competence.

14
Continue....

 Intellectual property rights

• Engineers should be careful to ensure that the intellectual


property of employers and clients is protected and know the
local laws governing .
• should be aware of local laws governing the use of intellectual
property such as patents and copyright.
 Computer misuse

• Software engineers should not use their technical skills to


misuse other people’s computers.

15
Thank you

16

You might also like