Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
1,86 MB
Nội dung
Trường Đại học Công nghiệp Tp.HCM
Khoa Công nghệ Thông tin
Introduction ofSoftware Engineering
Introduction ofSoftware Engineering
GV: Lê Ngọc Tiến
Email: letien.dhcn@gmail.com
Blog: http://tienhuong.wordpress.com
2
What is SoftwareEngineering (SE)
What is SoftwareEngineering (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 softwareof many software
products.
products.
•
Software engineering has the
Software engineering has the
objective
objective
of solving the
of solving the
problems ofsoftware by producing
problems ofsoftware by producing
good
good
quality
quality
,
,
maintainable
maintainable
software,
software,
on time
on time
,
,
within budget
within budget
.
.
3
Definition ofSoftware Engineering
Definition ofSoftware 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.
[...]...Role of Management in Software Development • The management of software development is dependent on four factors: People 1 Project 4 Dependency Order 2 Product 3 Process 11 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... • 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 12 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 13 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 14 4 - PROJECT • A proper planning is required to monitor the status and to control .
quality
quality
of many software
of many software
products.
products.
•
Software engineering has the
Software engineering has the
objective
objective
of solving. software,
software,
on time
on time
,
,
within budget
within budget
.
.
3
Definition of Software Engineering
Definition of Software Engineering
•
Software