Introduction
Chapter 1: Objectives
To introduce software engineering and to explain its
importance.
To set out the answers to key questions about software
engineering.
To introduce ethical and professional issues and to explain
why they are of concern to software engineers.
1-2
3.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-3
4.
Introduction
1.1 Overview
Softwareengineering
The economies of ALL developed nations are dependent on
software.
More and more systems are software controlled.
Software engineering is concerned with theories, methods and
tools for professional software development.
1-4
5.
Introduction
Cont’d
Software costs
Softwarecosts often dominate computer system costs.
The costs of software on a PC are greater than hardware
cost.
Software costs more to maintain than it does to develop.
Software engineering is concerned with cost effective
software development.
1-5
6.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-6
Introduction
1.2 what issoftware?
Computer programs and associated documentation such as requirements,
design models and user manuals.
Software may be developed for a particular customer or for a general market.
Software products may be
Generic- developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
Bespoke (custom)- developed for a single customer according to their
specification.
e.g. control systems for electronic devices,
air traffic control systems.
1-8
9.
Introduction
cont’d…
New softwarecan be created by:
developing new programs, configuring generic software or reusing existing
software.
Types of software based on potential application
System software. (ex: operating system,…)
Real-time Software. (ex: Browser,…)
Business Software
Artificial intelligence (adding extra functionality to computers)
1-9
10.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-10
Introduction
1.3 What issoftware engineering?
Is an engineering discipline that is concerned with all aspects of
software production.
Software engineers should
Adopt a systematic and organized approach to their work.
Use appropriate tools and techniques depending on the problem to be
solved, the development constraints and the resources available.
Not only concerned with the technical processes of software development
but also with activities such as software project management and with the
development of tools, methods and theories to support software production.
1-12
13.
Introduction
Well-Engineered Software
isone that has the following characteristics:
It is reliable / consistent
It has good user-interface
It has acceptable performance
It is of good quality
It is cost-effective
1-13
14.
Introduction
Stake holders insoftware engineering
Users: The end user of the software.
Customers: Those who pay for the software.
Software developer: Software engineer.
Development managers: manage production
process-
Planning
Timing(delivery)
Budgeting
Human resource, etc.
1-14
15.
Introduction
Quality of softwareengineer
Problem solving skill quality.
Programming skill (for coding).
Design approach: - translation of requirements into
prototype.
Software technologies: - update themselves with new
technologies.
Project management quality:
Modeling: - application of software modeling tools.
1-15
16.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-16
17.
Introduction
1.4 What isthe difference between software
engineering and computer science?
Computer science is concerned with theory and fundamentals;
Software engineering is concerned with the practicalities of
developing and delivering useful software.
Some knowledge of computer science is essential for software
engineers in the same way that some knowledge of physics is
essential for electrical engineers
1-17
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-19
20.
Introduction
1.5 What isthe difference between software
engineering and system engineering?
System engineering is concerned with all aspects of computer-
based systems development including hardware, software and
process engineering.
Software engineering is part of this process concerned with
developing the software infrastructure, control, applications and
databases in the system.
1-20
21.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-21
22.
Introduction
1.6 What isa 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
1-22
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-24
25.
Introduction
1.7 What isa 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 along with their input,
output and dependencies;
Data-flow perspective - information flow: represents the process as set of
activities;
Role/action perspective – who does what.
Generic process models
Waterfall, Iterative development, Component-based software engineering
1-25
26.
Introduction
What are thecosts of software engineering?
Roughly 60% of costs are development costs, 40% are testing costs.
Costs vary depending on the type of system being developed and
the requirements of system attributes.
Distribution of costs depends on the development model that is
used.
Product development cost:
1-26
27.
Introduction
What are softwareengineering 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
1-27
28.
Introduction
What are theattributes 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.
1-28
29.
Introduction
What are thekey challenges facing software
engineering?
Heterogeneity
Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
Delivery
Developing techniques that lead to faster delivery of software;
Trust
Developing techniques that demonstrate that software can be trusted by its
users.
1-29
30.
Introduction
Chapter 1: roadmap
1.1Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-30
31.
Introduction
Professional and ethicalresponsibility
Software engineers must behave in an honest and ethically responsible way if
they are to be respected as professionals.
Issues of professional responsibility:
Confidentiality
Engineers should respect the confidentiality of their employers or clients.
Competence
Engineers should not misrepresent their level of competence.
Intellectual property rights
They should be aware of laws of intellectual property such as patents, copyright.
Computer misuse
Should not use their technical skills to misuse other people’s computers.
1-31