Trường Đại học Công nghiệp Tp.HCM
Khoa Công nghệ Thông tin
Introduction of Software Engineering
Introduction of Software Engineering
GV: Lê Ngọc Tiến
Email: 
Blog: 
2
What is Software Engineering (SE)
What is Software Engineering (SE)
•
Software has become 
Software has become 
critical
critical
 to advancement in 
 to advancement in 
almost areas of human endeavour. However, there are 
almost areas of human endeavour. However, there are 
serious problems
serious problems
 in 
 in 
cost
cost
, 
, 
timelines
timelines
, 
, 
maintenance
maintenance
 and 
 and 
quality
quality
 of many software 
 of many software 
products. 
products. 
•
Software engineering has the 
Software engineering has the 
objective
objective
 of solving the 
 of solving the 
problems of software by producing 
problems of software by producing 
good
good  
quality
quality
, 
, 
maintainable
maintainable
 software, 
 software, 
on time
on time
, 
, 
within budget
within budget
.
.  
3
Definition of Software Engineering
Definition of Software Engineering
•
Software engineering is the establishment and use of 
Software engineering is the establishment and use of 
sound 
sound 
engineering
engineering  
principles
principles
 in order to obtain 
 in order to obtain 
economically software that is reliable and works 
economically software that is reliable and works 
efficiently on real machines
efficiently on real machines
•
A discipline whose aim is the production of 
A discipline whose aim is the production of 
quality
quality  
software, software that is delivered 
software, software that is delivered 
on time
on time
, 
, 
within 
within 
budget
budget
, and that 
, and that 
satisfies its requirements.
satisfies its requirements.  
4
Software
Software
Consist of:
• Programs
• Documents
•
Procedures used to setup and operate the software 
system 
 (
Program is a subset of software, 
 or Software is a superset of programs
)
5
Software applications
Software applications
•
System Software:
System Software:
 a collection of programs which 
 a collection of programs which 
provide service to another programs (compilers, 
provide service to another programs (compilers, 
operating systems, drivers…)
operating systems, drivers…)
•
Real Time Software:
Real Time Software:
 used to monitor, control and 
 used to monitor, control and 
analyze real world events as they occur (weather 
analyze real world events as they occur (weather 
forecasting) 
forecasting) 
•
Embedded Software:
Embedded Software:
 placed in ROM of the 
 placed in ROM of the 
product and control various functions of product 
product and control various functions of product 
•
Business Software:
Business Software:
 designed to process business 
 designed to process business 
applications (employee management, account 
applications (employee management, account 
management…)
management…)
6
Software applications (cont)
Software applications (cont)
•
Artificial Intelligence Software
Artificial Intelligence Software
:
:
 used to solve 
 used to solve 
complex problems that are not amenable to 
complex problems that are not amenable to 
computation (artificial neural network, signal 
computation (artificial neural network, signal 
processing…) 
processing…) 
•
Web based Software
Web based Software
:
:
 the software related to web 
 the software related to web 
applications (HTML, DHTML…)
applications (HTML, DHTML…)
•
Engineering and Scientific Software:
Engineering and Scientific Software:
 Huge 
 Huge 
computing is required to process data (CAD/CAM 
computing is required to process data (CAD/CAM 
package, MATLAB…) 
package, MATLAB…) 
7
The Attributes of Good Software
The Attributes of Good Software
•
Maintainability
Maintainability
Software must evolve to meet changing needs
Software must evolve to meet changing needs
•
Dependability
Dependability
Software must be trustworthy
Software must be trustworthy
•
Efficiency
Efficiency
Software should not make wasteful use of
Software should not make wasteful use of
system resources
system resources
•
Usability
Usability
Software must be usable by the users for which 
Software must be usable by the users for which 
it was designed
it was designed
8
Terminologies
Terminologies
•
Product:
Product: what is delivered to customer, it may 
include: source code, specification document, 
user manual…
•
Process:
Process: is the way we produce software. It is a 
collection of activities that leads to (a part of) a 
product. An efficient is required to produce good 
quality products.
9
Terminologies (cont)
Terminologies (cont)
•
Deliverable:
Deliverable: What are generated during 
software development, example: source code, 
user manual… 
•
Milestone:
Milestone: the events that are used to ascertain 
the status of the project, example completion of 
design documentation is milestone.
10
Terminologies (cont)
Terminologies (cont)
•
Generic and Customized Software products:
Generic and Customized Software products:
–
Generic products: developed for anonymous 
customers, example operating system… 
–
Customized products: developed for 
particular customers. 
11
Role of Management in Software Development
Role of Management in Software Development
•
The management of software development is 
dependent on four factors:
People
People
Product
Product
Project
Project
Process
Process
Dependency
Dependency
Order
Order
1
2
3
4
12
1 - PEOPLE
1 - PEOPLE
•
Require good manager: A good manager can not 
ensure the success of the project but increase the 
probability of success.
•
Manager face challenges:
– Plan for the best.
–
Be prepared for worst, expect surprises, but 
continue to move forward anyway. 
• The responsibility of manager: Motivate, 
encourage, guide and control the people of 
his/her team. 
13
2 - PRODUCT
2 - PRODUCT
•
Product is what we want to deliver to customers. 
So the objective and scope of work should be 
defined clearly. 
•
It may help the manager to select the best 
solution within constraints imposed by delivery 
deadlines, budgetary restrictions, personnel 
availability.
14
3 - PROCESS
3 - PROCESS
•
The process is the way in which we produce 
software.
• If the process is weak, the end product will 
undoubtedly suffer.
• There are many life cycle models process improve 
models. Depending on the type of project, a 
suitable model is selected. 
15
4 - PROJECT
4 - PROJECT
•
A proper planning is required to monitor the 
status and to control the complexity.
• In order to manage a successful project, we must 
understand what can go wrong and how to do it 
right.
•
We should define concrete requirements and 
freeze them.
Trường Đại học Công nghiệp Tp.HCM
Khoa Công nghệ Thông tin
Thank You 
Thank You 
GV: Lê Ngọc Tiến
Email: 
Blog: