Tải bản đầy đủ (.docx) (227 trang)

giáo trình công nghệ phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 227 trang )

Trường

Đại

Học

Bách

Khoa

Tp.

Hồ

Chí

Minh
Khoa

Công

Nghệ

Thông

Tin
Môn học
CÔNG

NGHỆ


PHẦN

MỀM
- Trang 1 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần M
ềm
GIỚI

THIỆU

MÔN

HỌC
Đặ c đi ểm
Ma õ số: 501095 Số tín chỉ: 2 Phân
phối giờ: 2(2.1.4)
Mô n họ c trước: Toán Ti n Học (501302)
Tó m tắt nội dung
Các khái niệm cơ bả n củ a Cô ng Nghệ Phần Mềm: các mo â hình pha ùt triển
phần mềm, phân tích yêu cầu, thiết k ế, k iểm tra…
2 trường phái c hính: c ó cấu trúc (cổ đi ển) & hướ ng đối tượng
Chuẩ n UML v à v iệc áp dụ ng n ó trong phương pháp hướng đối tượng
Thực hành tại phòng Lab: là m quen với co âng cu ï Rational Rose
- Trang 2 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mề
m
GIỚI

THIỆU


MÔN

HỌC

(t.t)
Tài li ệu tham khảo
[1] Software Engineering - A practitioner’s a pproach, R.S.
Pressman, McGraw-Hill, 1997
[2] OMG Unified Modeling La nguage Specification, version
1.3,
Object Management Group (www.omg.org), 1999
[3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998
[4] Object-Oriented Software Engineering, A U se-Case
Driven
Approach, I. Jacobson, ACM Press/Addison-Wesley, 199 2
[5] Object-Oriented Analysis and Design with App lications,
G.
Booch, The Benjamin Cummings Pub lishing Company, 1994
- Trang 3 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần
Mềm
GIỚI

THIỆU

MÔN

HỌC

(t.t)

Hình

thức

đánh

giá
Thi g iữa kỳ: trắc nghiệm kho âng s ử dụng
tài liệu , chiếm 20 % kết quả cuo ái c ùng
Thi cu ối kỳ: trắc nghiệm không sử dụng
tài liệu , chiếm 80 % kết quả cuo ái c ùng
- Trang 4 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
ĐỀ

CƯƠNG
Chương 1
:

Giới

thiệu

về

Công

Nghệ

Phần


Mềm
Chương 2
:

Phân

tích

yêu

cầu

theo

phương

pháp

cổ

điển
Chương 3
:

Các

khái

niệm




bản

của



hình

hướng

đối

tượng
Chương 4
:



hình

nghiệp

vụ



thu


thập

yêu

cầu
Chương 5
:

Phân

tích

yêu

cầu

hướng

đối

tượng
Chương 6
:



sở

của


thiết

kế

phần

mềm



phương

pháp

thiết

kế

cổ

điển
Chương 7
:

Thiết

kế

hướng


đối

tượng
Chương 8
:

Hiện

thực



triển

khai

hệ

thống
Chương 9
:

Kỹ

thuật

kiểm

tra


phần

mềm
Chương 10
:

Chiến

thuật

kiểm

tra

phần

mềm
- Trang 5 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần
Mềm
Trường

Đại

Học

Bách

Khoa


Tp.

Hồ

Chí

Minh
Khoa

Công

Nghệ

Thông

Tin
Chương 1
GIỚI

THIỆU

VỀ
CÔNG

NGHỆ

PHẦN

MỀM



Một

số

khái

niệm


Các



hình

phát

triển

phần

mềm
- Trang 6 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
NỘI

DUNG

1.1.

Một

số

khái

niệm
1.1.1.

Khủng

hoảng

phần

mềm
1.1.2.

Đònh

nghóa
1.1.3.

Chu

trình

(process),


phương

pháp

(method),

công

cụ

(tool)
1.1.4.

Một

cách

nhìn

tổng

quan

về

công

nghệ


phần

mềm
1.1.5.



hình

CMM
1.2.

Các



hình

phát

triển

phần

mềm
1.2.1.



hình


tuần

tự

tuyến

tính
1.2.2.



hình

prototype
1.2.3.



hình

xoắn

ốc
1.2.4.



hình


tăng

dần
1.2.3.



hình

RAD
- Trang 7 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
KHỦNG

HOẢNG

PHẦN

MỀM
Phần me àm được viết ngay t ừ khi
xuất hiện các h ệ máy tính và n gôn
ngữ lậ ïp trình đầu tiên
Trên thực tế s ản xuất phầ n m ềm
không đa ùp ứng kòp yêu ca àu của
người s ử dụng
- Trang 8 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới th
iệu về CNPM
KHỦNG


HOẢNG

PHẦN

MỀM

(t.t)
Cá c dữ liệu quan sát đươ ïc
Cứ

6 đe à a ùn t riển khai thì có 2 bò huỷ bỏ
Trung bình th ời gian thực hiện th ực t ế bò kéo da øi 50 % (cá biệt 200-
300%)
Cá c đe à án lớn d ễ thất bại
3/4 ca ùc hệ thống lớn có lỗi khi thực thi
Qua ù trình phân tích ye âu cầu (5 % co âng sức): đe å lạ i 55 % lo ãi, c ó 18 %
phát hiện được
Qua ù trình thiết kế (25 % công sức): đ ể lại 30 % lo ãi, co ù 10 % p hát h iện
được
Qua ù trình mã hoá, kiểm tra và bảo trì: để lại 15 % lỗi, có 72 % phát hiện
được
- Trang 9 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
KHỦNG

HOẢNG

PHẦN


MỀM

(t.t)
Nguyê n nh ân
Phát triển phầ n mềm giống như một nghệ thuật, chưa được xem như một
ngành khoa h ọc
Qua ù trình phát triển p hần m ềm chưa được thống nhất
Phải viết lạ i s/w mỗi khi có s ự thay đổi về ngo ân ngữ , h/w hoặc o/s
Chưa đạ t đượ c 1 chuẩn cho việc đo lư ờng hiệu su ất và sản phẩm
Đo ä p hức ta ïp của phần me àm qua ù cao đố i v ới 1 “kie án t rúc sư”
Kỹ thuật đặc tả đe å la ïi s ự nhập nh ằng trong cá c ye âu cầu pha àn m ềm
Làm việ c nhóm kho âng đu ùng kỷ lu ật g ây ra các lỗi
- Trang 10 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
KHỦNG

HOẢNG

PHẦN

MỀM

(t.t)
Hướng

tới

công


nghệ

sản

xuất

phần

mềm

chuyên

nghiệp
product
ion
cr
aft
science
commercialization
professional
engineering
- Trang 11 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
ĐỊNH

NGHĨA
Đònh


nghóa

cổ

điển

(của

Fritz

Bauer)
Công Nghệ Phần Mềm là sự th iết lập và s ử dụng ca ùc nguyên tắc
khoa học nha èm mu ïc đích tạo ra ca ùc phần m ềm một cách kinh tế mà
cá c phần mềm đo ù hoạt độ ng h iệu quả và tin cậy trên các m áy tính.
- Trang 12 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1
: Giới thiệu về CNPM
ĐỊNH

NGHĨA

(t.t)
Đònh

nghóa

khác:
Công Nghệ Phần Mềm
Là c ác quy trình đúng k ỷ luật v à có đònh lượng được áp dụng
cho s ự phát triển, thực thi và bảo trì c ác hệ thố ng thiên về phầ n

mềm
Tập trung vào quy trình, s ự đo lư ờng, sản phẩm, tính đú ng
thời gian v à chất lươ ïng
- Trang 13 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
CHU

TRÌNH
Chu trình ( process) đònh nghóa một bo ä khung các tiêu
chuẩn pha ûi được thiết lập để triển khai công nghệ phần
mềm.
- Trang 14 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
PHƯƠNG

PHÁP
Phương pháp (method) chỉ ra cách thực hiện những công
việc c ụ thể (“how to”):
phân tích yêu cầu
thiết ke á
xâ y dựng chương trình
kiểm tra
sử a lo ãi

- Trang 15 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
CÔNG


CỤ
Công cụ (tool) cung ca áp các hỗ trơ ï tự
động hay b án t ự động đố i v ới chu trình và
phương pháp
Các co âng c ụ được tích hợ p t ạo thàn h
CASE ( Computer Aided Software
Engineering)
- Trang 16 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới t
hiệu về CNPM
MỘT

CÁCH

NHÌN

TỔNG

QUAN

VỀ

CNPM
Gồm 3 giai đoạn lớn
Giai đoạn đònh nghóa: Ph ân tích h ệ t hống ( system engineering), Hoạc h
đònh đề tài (software project management), Phâ n tích yêu cầu (requirement
analysis).
Giai đoạn phát triển: Thiết kế phần mềm (software design), sinh ma õ
(code generation), kiểm tra pha àn mềm (software testing)

Giai đoạn bảo trì: Sử a lỗi (correction), thay đổ i môi trường thực thi
(adaptation), ta êng cường (enhancement)
- Trang 17 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chươn
g 1: Giới thiệu về CNPM


HÌNH

CMM
Opti
mize
d
(Le
vel 5
)
Risk
Managed
(Level 4)
Defined
(Level 3)
Repeatable
(Level 2)
Initial
Competitiveness
(Level 1)
- Trang 18 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới th
iệu về CNPM
CÁC




HÌNH

PHÁT

TRIỂN

PHẦN

MỀM
Mô hình tu ần tự tuyến tính: c ổ điển
Mô hình prototyping: prototype
Mô hình xo ắn ốc: đánh giá rủi ro
Mô hình t ăng dần: ca ùc bước la ëp
Mô hình RAD: thời gian phát t riển ngắn
- Trang 19 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM


HÌNH

TUẦN

TỰ

TUYẾN


TÍNH
System

Engineering
Requirement
An
alysis
Software
Design

Coding

Test


Maintenance
Mô hình p hát triển p hần me àm đầu tiên
Các co âng vi ệc tiếp nối nhau một cách tuầ n t ự
Đặt n ền móng cho c ác phương pháp p hân tích, thiết k ế, kiểm
tra…
- Trang 20 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM


HÌNH

TUẦN

TỰ


TUYẾN

TÍNH

(t.t)
Bộ c lộ một so á khuyết điểm
Bả n c hất của pha ùt triển phần mềm là quá trình la ëp đi lặp lại chứ k hông
phải tuần tự
Bắ t buộc khác h hàng đa ëc tả tất cả yêu cầu m ột cách chính xác và đầ y đu û
ngay t ừ ban đầu
Khách hàng thường phải chờ đợi rất lâu để thấy đư ợc ph iên bản đầu tie ân
của sản p hẩm
Tồ n ta ïi “delay” trong nhóm làm việc
- Trang 21 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM


HÌNH

PROTOTYPING
Xây

dựn
g
prototyp
e
Prototype như l à một cơ chế để
nhận diện chính xa ùc yêu ca àu của

khách hàn g
Thảo

luận

với
khách

hàng
Prototype c ó thể bò “throw-away”
Một so á khuyết điểm
Khách hàng hố i thúc nhà
phát triển hoàn thành sản phẩm
Đánh

giá

của
khách

hàng
mộ t khi t hấy được ca ùc prototype
đầu tiên
Các protot
ype thường không
hoạt động hiệu
quả
- Trang 22 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM



HÌNH

XOẮN

ỐC
R
Đònh
nghó
a
trình
ch
nh

Đánh giá
rủi ro
Phát triển sản p
hẩm
ở lần lặp tiếp th
eo
R
R
Được thư ïc hie än theo m ột chuỗi lặ p kiểu xoắn ốc, mỗi la àn lặp cải
thiện sả n phẩm
Có phương pháp đánh gia ù rủi ro
Có thể áp dụn g prototype
Mỗ i lần lặp đượ c c ải thiện cho thích nghi vơ ùi bản chất củ a đ ề án
- Trang 23 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:

Giới thiệu về CNPM
Phân tích yêu cầ
u
1
2


HÌNH

TĂNG

DẦN
hiết kế kiến trúc
Phát t
riển module
T
ích hợp
3
4
Kiểm tra hệ thống
- Trang 24 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: G
iới thiệu về CNPM


HÌNH

TĂNG

DẦN


(t.t)
Các b ước ( iteration) đầu tậ p trung vào yêu ca àu của phầ n m ềm và
thiết lậ p một kiến trúc ổn đònh cho hệ thốn g (ít phải thay đổi sau
này)
Các b ước sau tập trung vào việc xâ y dựng sản pha åm đe å cuối
cùng chuyển sang giai đoa ïn k iểm tra hệ thống
Mỗi b ước hi ện thực một phần cụ thể trong toàn bộ yêu cầu củ a
hệ tho áng
Qua ù trình x ây dựng và c hiến thuật kiểm tra theo kiểu tăng dần
và d ựa trên phương pháp kiểm tra h ồi quy.
- Trang 25 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM


HÌNH

RAD
Business

modeling
Data

modeling Process

modeling
Application
T
urnover

Rapid Ap plication Development l à m ô hình tuầ n t ự tuyến tính co ù
thời gian phát triển rấ t ng ắn
Sử dụ ng các thà nh phần có sa ün càng nhiều càng tốt
Sử dụ ng công cụ lậ p trình ở dạng tự động sinh mã chứ khô ng
phải các ngô n ng ữ truyền thống

generation
Testing

&
- Trang 26 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1
: Giới thiệu về CNPM
Trường

Đại

Học

Bách

Khoa

Tp.

Hồ

Chí

Minh

Khoa

Công

Nghệ

Thông

Tin
Chương 2
PHÂN

TÍCH

YÊU

CẦU

THEO
PHƯƠNG

PHÁP

CỔ

ĐIỂN





hình

phân

tích


DFD

&

STD


Từ

điển

dữ

liệu
- Trang 27 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển
GIỚI

THIỆU
Khác h hà ng v à nhà phát triển gặp nhau để thả o
luận về yêu cầu của he ä thống phần mềm cần xây
dựng

Nha ø phát triển kiểm chứng lại (validate) ye âu cầ
u
và b iểu di ễn nó bằng mô hình phân tích
Mo â hình p hân tích (WHAT?): các chức nă ng, dữ
liệu input & output, ca ùc trạng t hái khác nhau
- Trang 28 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển
NỘI

DUNG
2.1.

Các

yếu

tố

căn

bản

của



hình

phân


tích
2.2.



hình

chức

năng



dòng

thông

tin
2.2.1.

Lược

đồ

dòng

chảy

dữ


liệu

với

các



hiệu



bản
2.2.2.

Mở

rộng

của

Ward



Mellor
2.2.3.

Mở


rộng

của

Hatley

&

Pirbhai
2.3.



hình

hành

vi

phần

mềm
2.4.

Kỹ

thuật

phân


tích

yêu

cầu
2.4.1.

Xây

dựng

DFD
2.4.2.

Viết

PSPEC
2.5.

Từ

điển

dữ

liệu
- Trang 29 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển

CÁC

YẾU

TỐ

CĂN

BẢN

CỦA



HÌNH

PHÂN

TÍCH
Đặc tả
đối tượng
dữ liệu
Process Specification (PSPEC)
Mo â hình c hức năng và

u đ

qua
n h


thự
c th

Từ điển
dữ liệu
Lưu đồ
dòng chảy
dữ liệu
dòng thông tin: DFD, PSPEC
Mô hình d ữ liệu: ERD,
Lưu đồ
dòch chuyển
trạ
ng thái
Control Specification (CSPE
C)
đặ c t ả đối tượng dữ li ệu
Mo â hình ha ønh vi: STD,
CSPEC
- Trang 30 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển


HÌNH

CHỨC

NĂNG




DÒNG

THÔNG

TIN
Mô tả dòng thông tin di chuyển (flow) xuyên qua ca ùc hệ thống
thiê n ve à phần mềm.
Thông tin input cũng như output có th ể ở nhiều dạng khác nhau:
file, bàn phím, trên mạng, t ừ thiết bò, kế t xu ất ra màn hình v à máy
in…
Các giả i t huật xử lý cũ ng ra át đa dạng
- Trang 31 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển


HÌNH

CHỨC

NĂNG



DÒNG

THÔNG


TIN

(t.t)
Lưu đồ dòng chảy dữ liệu DFD (Data Flow Diagram) cung c ấp 4
ky ù hiệu cơ bản để mo â hình s ự di c huyển của dòng thô ng tin
DFD được mơ û rộng để mô hình ca ùc hệ tho áng thời gian thực
Mở rộ ng của Ward và Mellor (tự đo ïc: [ 1], trang 312)
Mở rộ ng của Hatley & Pirbhai (tự đo ïc: [1], trang 315)
- Trang 32 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển
LƯC

ĐỒ

DÒNG

CHẢY

DỮ

LIỆU

(DFD)
4 phần t ử chính
Thực thể: tạo ra hoặc tiêu t hụ tho âng tin, nằm bên ngoài biê n giớ i cu ûa

×