Tải bản đầy đủ (.pdf) (213 trang)

Bài giảng công nghệ phần mềm , đại học Hải Phòng

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 (36.92 MB, 213 trang )


Khi đọc qua tài liệu này, nếu phát hiện sai sót hoặc nội dung kém chất lượng
xin hãy thông báo để chúng tôi sửa chữa hoặc thay thế bằng một tài liệu cùng
chủ đề của tác giả khác.
Tài li󰗈u này bao g󰗔m nhi󰗂u tài li󰗈u nh󰗐 có cùng ch󰗨
đ󰗂 bên trong nó. Ph󰖨n
n󰗚i dung
b󰖢n c󰖨n có th󰗄 n󰖲m 󰗠 gi󰗰a ho󰖸c 󰗠 c
u󰗒i tài li󰗈u
này, hãy s󰗮 d󰗦ng ch󰗪c năng Search đ󰗄 tìm chúng.

Bạn có thể tham khảo nguồn tài liệu được dịch từ tiếng Anh tại

đây:
/>Thông tin liên hệ:
Yahoo mail:
Gmail:
PhnPhn
I: I:
GiiGii
thiuthiu
chungchung
vv
CNPMCNPM
PhnPhn
I: I:
GiiGii
thiuthiu
chungchung
vv
CNPMCNPM


ChngChng
1: 1:
BnBn
chtcht
phnphn
mmmm
ChngChng
1: 1:
BnBn
chtcht
phnphn
mmmm
1.1 nh ngha chung v phn mm
1.2
Kin
trúc
phn
mm
1.2
Kin
trúc
phn
mm
1.3 Các khái nim
1.4 c tính chung ca phn mm
1.5 Th nào là phn mm tt?
1.6 Các ng dng phn mm
Nhuongld. Software Engineering, 2007

1.1. 1.1.

nhnh
nghangha
chungchung
vv
phnphn
mmmm
1.1. 1.1.
nhnh
nghangha
chungchung
vv
phnphn
mmmm

Phn
mm
(Software
-
SW)
nh
mt
khái
nim
i
ngha

Phn
mm
(Software
-

SW)
nh
mt
khái
nim
i
ngha
vi phn cng (Hardware-HW), tuy nhiên, ây là 2 khái
nim
tng
i
nim
tng
i
 T xa, SW nh th c cho không hoc bán kèm
theo
máy
(HW)
theo
máy
(HW)
 Dn dn, giá thành phn mm ngày càng cao và nay cao
hn phn cng
Nhuongld. Software Engineering, 2007

CácCác
cc
tínhtính
caca
SW SW

vàvà
HWHW
CácCác
cc
tínhtính
caca
SW SW
vàvà
HWHW
HardwareHardware SoftwareSoftware
 Vt “cng”
 Kim loi
Vt
cht
 Vt “mm”
 K thut s dng
Tru
tng

Vt
cht
 Hu hình

Sn
xut
công
nghip
bi

Tru

tng
 Vô hình

Sn
xut
bi
con
ngi

Sn
xut
công
nghip
bi
máy móc là chính

nh
lng

chính

Sn
xut
bi
con
ngi
là chính

nh
tính


chính

nh
lng

chính
 Hng hóc, hao mòn

nh
tính

chính
 Không hao mòn
Nhuongld. Software Engineering, 2007

nhnh
nghangha
1: 1:
PhnPhn
mmmm
làlà
nhnh
nghangha
1: 1:
PhnPhn
mmmm
làlà

Các

lnh
(chng
trình
máy
tính)
khi
c
thc
hin
thì

Các
lnh
(chng
trình
máy
tính)
khi
c
thc
hin
thì
cung cp nhng chc nng và kt qu mong mun

Các
cu
trúc
d
liu
làm

cho
chng
trình
thao
tác
thông

Các
cu
trúc
d
liu
làm
cho
chng
trình
thao
tác
thông
tin thích hp
 Các t liu mô t thao tác và cách s dng chng trình
Nhuongld. Software Engineering, 2007

SW SW
ii
nghangha
vivi
HWHW
SW SW
ii

nghangha
vivi
HWHW

Vai
trò
SW
ngày
càng
th
hin
tri

Vai
trò
SW
ngày
càng
th
hin
tri
 Máy tính là . . . chic hp không có SW

Ngày
nay,
SW
quyt
nh
cht
lng

mt
h
thng
máy

Ngày
nay,
SW
quyt
nh
cht
lng
mt
h
thng
máy
tính (HTMT), là ch  ct lõi, trung tâm ca HTMT
 H thng máy tính g!m HW và SW
Nhuongld. Software Engineering, 2007

nhnh
nghangha
22
nhnh
nghangha
22
Trong mt h thng máy tính, nu tr b i các thit b
và các loi ph kin thì phn còn li chính là phn mm

Ngha

h"p
:
SW

dch
v
chng
trình

tng
kh

Ngha
h"p
:
SW

dch
v
chng
trình

tng
kh
nng x lý ca phn cng ca máy tính (nh h iu
hành
-
OS)
hành
-

OS)
 Ngha rng: SW là tt c các k thut ng dng  thc
hin
nhng
dch
v
chc
nng
cho
mc
ích
nào
ó
hin
nhng
dch
v
chc
nng
cho
mc
ích
nào
ó
b#ng phn cng
Nhuongld. Software Engineering, 2007

SW SW
theotheo
nghangha

rngrng
SW SW
theotheo
nghangha
rngrng
 Không ch$ SW c bn và SW ng dng
 Phi g!m c kh nng, kinh nghim thc ti%n và k nng
ca
k
s
(
ngi
ch
ra
phn
mm
)
:
ca
k
s
(
ngi
ch
ra
phn
mm
)
:
KnowKnow how how of Software Engineerof Software Engineer

 Là tt c các k thut làm cho s dng phn cng máy
tính t hiu qu cao
Nhuongld. Software Engineering, 2007

PhnPhn
mmmm
làlà
gìgì
??
PhnPhn
mmmm
làlà
gìgì
??
Nhóm
các
Nhóm
các
K thut
Phng pháp
lun
lun
Nhóm
các
Nhóm
các
Nhóm
các
chng trình
Nhóm

các
t liu
Kinh nghim k s
knowhow
Nhuongld. Software Engineering, 2007

NhómNhóm
cáccác
kk
thutthut
, ,
phngphng
pháppháp
lunlun
NhómNhóm
cáccác
kk
thutthut
, ,
phngphng
pháppháp
lunlun

Các
khái
nim

trình
t
c

th
hóa
mt
h
thng

Các
khái
nim

trình
t
c
th
hóa
mt
h
thng
 Các phng pháp tip cn gii quyt vn 

Các
trình
t
thit
k

phát
tri n
c
chu&n

hóa

Các
trình
t
thit
k

phát
tri n
c
chu&n
hóa
 Các phng pháp c t yêu cu, thit k h thng, thit
k chng trình, ki m th, toàn b quy trình qun lý phát
tri n
phn
mm
tri n
phn
mm
Nhuongld. Software Engineering, 2007

NhómNhóm
cáccác
chngchng
trìnhtrình
NhómNhóm
cáccác
chngchng

trìnhtrình
 Là phn giao din vi phn cng, to thành t các nhóm lnh
ch$ th cho máy tính bit trình t thao tác x lý d liu

Phn
mm
c
bn
:
vi
chc
nng
cung
cp
môi
trng
thao

Phn
mm
c
bn
:
vi
chc
nng
cung
cp
môi
trng

thao
tác d% dàng cho ngi s dng nh#m tng hiu nng x lý
ca
phn
cng
(

d
nh
OS

chng
trình
h
thng
)
ca
phn
cng
(

d
nh
OS

chng
trình
h
thng
)

 Phn mm ng dng: dùng  x lý nghip v thích hp nào
ó
(
qun

,
k
toán
,
.
.
.
),
phn
mm
óng
gói
,
phn
mm
ó
(
qun

,
k
toán
,
.
.

.
),
phn
mm
óng
gói
,
phn
mm
ca ngi dùng, . . .
Nhuongld. Software Engineering, 2007

NhómNhóm
cáccác
tt
liuliu
NhómNhóm
cáccác
tt
liuliu

Nhng
t
liu
hu
ích,

giá
tr
cao


rt
cn
thit


Nhng
t
liu
hu
ích,

giá
tr
cao

rt
cn
thit

phát tri n, vn hành và bo trì phn mm


ch
ra
phn
mm
vi

tin

cy
cao
cn
to
ra
các
t


ch
ra
phn
mm
vi

tin
cy
cao
cn
to
ra
các
t
liu cht lng cao: c t yêu cu, mô t thit k tng
loi,
iu
kin
ki m
th,
th

tc
vn
hành,
hng
d'n
loi,
iu
kin
ki m
th,
th
tc
vn
hành,
hng
d'n
thao tác
Nhuongld. Software Engineering, 2007

NhngNhng
yuyu
tt
kháckhác
NhngNhng
yuyu
tt
kháckhác

Sn
xut

phn
mm
ph
thuc
rt
nhiu
vào
con
ngi

Sn
xut
phn
mm
ph
thuc
rt
nhiu
vào
con
ngi
(k s phn mm). Kh nng h thng hóa tru tng,
kh
nng
lp
trình,
k
nng
công
ngh,

kinh
nghim
làm
kh
nng
lp
trình,
k
nng
công
ngh,
kinh
nghim
làm
vic, tm bao quát, . . .: khác nhau  tng ngi
Phn
mm
ph
thuc
nhiu
vào
ý
tng
(
Idea
)

k

Phn

mm
ph
thuc
nhiu
vào
ý
tng
(
Idea
)

k
nng (know-how) ca ngi/nhóm tác gi
Nhuongld. Software Engineering, 2007

1.2 1.2
KinKin
trúctrúc
phnphn
mmmm
1.2 1.2
KinKin
trúctrúc
phnphn
mmmm
1.2.1 1.2.1
PhnPhn
mmmm
nhìnnhìn
tt

cucu
trúctrúc
phânphân
cpcp
1.2.1 1.2.1
PhnPhn
mmmm
nhìnnhìn
tt
cucu
trúctrúc
phânphân
cpcp
 Cu trúc phn mm là cu trúc phân cp (Hierarchical
Structure
):
mc
trên

h
thng
(System
),
di

các
h
Structure
):
mc

trên

h
thng
(System
),
di

các
h
thng con (Subsystems)
 Di h thng con là các chng trình (Program)

Di
chng
trình

các
Modules
hoc
Subroutines
vi

Di
chng
trình

các
Modules
hoc

Subroutines
vi
các i s (Arguments)
Nhuongld. Software Engineering, 2007

KinKin
trúctrúc
phnphn
mmmm
KinKin
trúctrúc
phnphn
mmmm
System
Subsystem Subsystem
Master
files
Job unit
Program
Program
Master
files
Jobstep
unit

Program
Program
Temporary
files
Jobstep

unit

Module Module Subroutine
Arguments
Arguments
Member unit
Common Module
Nhuongld. Software Engineering, 2007

1.2.2 1.2.2
PhnPhn
mmmm
nhìnnhìn
tt
cucu
trúctrúc
vàvà
thth
tctc
1.2.2 1.2.2
PhnPhn
mmmm
nhìnnhìn
tt
cucu
trúctrúc
vàvà
thth
tctc
 Hai yu t cu thành ca phn mm

 Phng din cu trúc
 Phng din th tc
 Cu trúc phn mm: bi u th kin trúc các chc nng mà phn
mm ó có và iu kin phân cp các chc nng (thit k cu
trúc)

Thit
k
chc
nng
:
theo
chiu
ng
(
càng
sâu
càng
phc
tp
)
Thit
k
chc
nng
:
theo
chiu
ng
(

càng
sâu
càng
phc
tp
)
và chiu ngang (càng rng càng nhiu chc nng, qui mô càng
ln)
Nhuongld. Software Engineering, 2007

CuCu
trúctrúc
phnphn
mmmm
CuCu
trúctrúc
phnphn
mmmm
Fuction
A
Cu

Fuction
A
Function B
Function C
Cu
trúc

Vertical

Function B
Function C
trúc
chiu
ng
Vertical
structure
Function D Function E
Function F
Cu
trúc
chiu
ngang
ng
structure

Cu
trúc
chiu
ngang
Horizontal structure
Nhuongld. Software Engineering, 2007

Th tc (procedure) phn mmTh tc (procedure) phn mm
Th tc (procedure) phn mmTh tc (procedure) phn mm
 Là nhng quan h gia các trình t mà phn mm ó có
 Thut toán vi nhng phép lp, r( nhánh, iu khi n lu!ng
x

(quay

lui
hay
b
qua)
x

(quay
lui
hay
b
qua)
 Là cu trúc lôgic bi u th tng chc nng có trong phn
mm

trình
t
thc
hin
chúng
mm

trình
t
thc
hin
chúng
 Thit k cu trúc trc r!i sang chc nng]
Nhuongld. Software Engineering, 2007

1.3 1.3

CácCác
kháikhái
nimnim
1.3 1.3
CácCác
kháikhái
nimnim
Khi
ch
tác
phn
mm
cn
nhiu
k
thut
:
Khi
ch
tác
phn
mm
cn
nhiu
k
thut
:
 Phng pháp lun (Methodology): nhng chu&n mc c bn

ch

to
phn
mm
vi
các
ch$
tiêu
nh
tính

ch
to
phn
mm
vi
các
ch$
tiêu
nh
tính
 Các phng pháp k thut (Techniques): nhng trình t c th

ch to phn mm và là cách tip cn khoa h)c mang tính nh
lng
T
 phng pháp lun tri n khai n k thut
Nhuongld. Software Engineering, 2007

CácCác
kháikhái

nimnim
((
Software concepts)Software concepts)
CácCác
kháikhái
nimnim
((
Software concepts)Software concepts)
 Khái nim tính môun (modularity concept)
 Khái nim chi tit hóa dn tng bc (stepwise refinement
concept
)
concept
)
 Khái nim tru tng hóa (abstraction concept): v th tc,
iu khi n, d liu
iu khi n, d liu
 Khái nim che giu thông tin (information hiding concept)
 Khái nim hng i tng (object oriented)
Nhuongld. Software Engineering, 2007

TT phngphng pháppháp lunlun phnphn mmmm
sang sang
kk
thutthut
phnphn
mmmm
sang sang
kk
thutthut

phnphn
mmmm
Tính Môun
Phân tích cu trúc
Thit k cu trúc
Chi tit hóa dn
Thit k cu trúc
Lp trình cu trúc
Tru tng hóa
(Che giu t.tin)
D liu tru tng
Hng i tng
Hng i tng
Khái nim phn mm
Nhuongld. Software Engineering, 2007

1.3.1 1.3.1
TínhTính
môunmôun
(Modularity)(Modularity)
1.3.1 1.3.1
TínhTính
môunmôun
(Modularity)(Modularity)
 Là kh nng phân chia phn mm thành các môun ng
vi các chc nng, !ng thi cho phép qun lý t*ng th :
khái
nim
phân
chia


trn
(
partion
and
merge)
khái
nim
phân
chia

trn
(
partion
and
merge)
 Hai phng pháp phân chia môun theo chiu

SâuSâu
(depth,(depth,
thngthng
ngng
))
::
iu
khi n
phc
tp
dn


SâuSâu
(depth,(depth,
thngthng
ngng
))
::
iu
khi n
phc
tp
dn
 RngRng (width,(width, nmnm ngangngang)):: môun ph thuc dn
 Quan h gia các môun: qua các i s (arguments)
Nhuongld. Software Engineering, 2007

ChunChun
phânphân
chiachia
môunmôun
ChunChun
phânphân
chiachia
môunmôun
Cu
trúc
rng
chiu
ngang
Tính c
lp kém

dn
SW
Phân chia chiu rng
Cu
trúc
rng
chiu
ngang
Phân
chia
Cu
trúc
chia
chiu
sâu
trúc
sâu
chiu
iu khin
phc tp
dn
sâu
chiu
ng
dn
Nhuongld. Software Engineering, 2007

1.3.2 Chi 1.3.2 Chi
tittit
hóahóa

tngtng
bcbc
1.3.2 Chi 1.3.2 Chi
tittit
hóahóa
tngtng
bcbc
Cách tip cn t trên xung (top-down approach)
Th gii bên ngoài
Tru tng hóa mc cao:
Th gii bên ngoài,
trng thái cha rõ ràng
Chi
tit
hóa
Tru tng hóa mc trung gian:
Xác nh yêu cu và c t
tng
bc
c t yêu cu
Xác nh yêu cu và c t
nhng nh ngha yêu cu
Ngôn ng
chng trình
Tru tng hóa mc thp:
Tng lnh ca chng trình c
vit bi ngôn ng th tc nào ó
Nhuongld. Software Engineering, 2007


×