Welcome!: HDSE 113 - Software Engineering Theories and Practices
Welcome!: HDSE 113 - Software Engineering Theories and Practices
Chapter 1 Introduction 1
Intended Learning Outcomes
Chapter 1 Introduction 2
Course Outline
Chapter 1 Introduction 3
Course Outline…
Chapter 1 Introduction 4
Evaluation
Assessment Criteria
Continuous Assessment (Mid Semester
Exam/Tutorials/Quizzes/Presentations) 30%
Project Presentation 20%
Final Examination (Theory) 50%
Chapter 1 Introduction 5
Chapter 1- Introduction
Lecture 1
Topics covered
Chapter 1 Introduction 7
Software engineering
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
▪ Software that is commissioned by a specific customer to meet
their own needs.
▪ Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
Chapter 1 Introduction 10
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.
Chapter 1 Introduction 11
Frequently asked questions about software
engineering
Question Answer
Chapter 1 Introduction 12
Frequently asked questions about software
engineering
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering? and the possibility of developing highly distributed service-
based systems. Web-based systems development has led
to important advances in programming languages and
software reuse.
Chapter 1 Introduction 13
Essential attributes of good software
Chapter 1 Introduction 14
Software engineering
Chapter 1 Introduction 15
Importance of software engineering
Chapter 1 Introduction 16
Software process activities
Chapter 1 Introduction 17
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.
Chapter 1 Introduction 18
Software engineering diversity
Chapter 1 Introduction 19
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. Numerically, there are probably more
embedded systems than any other type of system.
Chapter 1 Introduction 20
Application types
Chapter 1 Introduction 21
Application types
Chapter 1 Introduction 22
Software engineering fundamentals
Chapter 1 Introduction 23
Software engineering and the web
Chapter 1 Introduction 24
Web software engineering
Chapter 1 Introduction 26
Key points
Chapter 1 Introduction 27
Key points
Chapter 1 Introduction 28