01 - Introduction
01 - Introduction
01 - Introduction
Lecture 1
Introduction
to
Software Engineering
Fall 2024
1
Are you looking for this key?
❑ The specification of what the software should do is owned by the software developer and they make
decisions on software changes that are required.
❑ Software that is tailored for a specific customer to meet their own needs.
Examples: Embedded software for Tesla full self-driving, website of University of Prince Mugrin, and etc.
❑ The specification of what the software should do is owned by the customer and they make decisions
on software changes that are required.
Software Development
Hardware
8
Source: adapted from Ian Sommerville's lecture notes: SE9
Importance of Software Engineering
delivered fast.
Software Maintenance
Software Development
Hardware 11
Source: adapted from Ian Sommerville's lecture notes: SE9 11
https://www.selasoftware.com/14-reasons-software-projectszfail/
Solution?
❑ Concerned with theories, methods and tools for professional and cost-
effective software development.
❑ Concerned with all aspects of software production from the early stages of
software specification through to maintaining the software after users start
using it. i.e. Not just technical process of development. Also project
management and the development of tools, methods etc. to support software
production.
Software Engineering?
A systematic approach concerned with all aspects of software production.
15
Software Process Activities
S/W specification, where customers and engineers define the
software that is to be produced and the constraints on its operation.
Software Engineering?
To create good software to solve problems or make tasks easier.
Functionality Good software should deliver the required functionality to solve problems or
make tasks easier.
Performance Software should not make wasteful use of system resources such as
memory and processor cycles. Performance includes responsiveness,
processing time, memory utilisation, etc.
Maintainability Software is evolve to meet the changing needs of customers or business
environment.
Question Answer
What is software? Software is a computer program with the associated documentation.
Software products may be developed for a particular customer or may be
developed for a general market.
What are the attributes of good Good software should deliver the required functionality, performance,
software? maintainability, dependability and acceptability.
20
Software Engineering Vs Computer Science
Computer science focuses on theory and fundamentals.
https://www.researchgate.net/figure/Body-sensor-
Source: adapted from Ian Sommerville's lecture notes: SE9 data-collection-and-query-service- 23
scenario_fig1_292673365
Software Types – Cont.
❑ 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.
❑ Entertainment systems
Primarily for personal use and are intended to entertain the user.
❑ Systems of systems
These are systems that are composed of a number of other software
systems.
Source: adapted from Ian Sommerville's lecture notes: SE9 24
Software Engineering Diversity
There are many different types of software systems and there is no universal set of
software engineering method that is applicable to all of these. The software
engineering methods and tools used depend on:
1) the type of software being developed
For example, real-time software in an aircraft has to be completely specified before development begins. In e-
commerce systems, the specification and the program are usually developed together.
4. Where appropriate, you should reuse software that has already been developed rather than
write new software.
* For more information about Web Services see Chapter 19 in the textbook
Competence
Computer misuse
Software engineers should not misrepresent their level
of competence. They should not knowingly accept Software engineers should not use their technical
skills to misuse other people’s computers. Computer
work which is out with their competence. misuse ranges from relatively trivial (game playing on
an employer’s machine, say) to extremely serious
(dissemination of viruses).
So far….
We continued with the introduction to software engineering and professional software
development. Particularly:
▪ Attributes of good software