You are on page 1of 42

Tng quan v

Cng ngh phn mm (1)


L Th M Hnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng

Ni dung

Lch s pht trin phn mm v khng hong


phn mm
Phn loi phn mm
Cht lng phn mm
c trng ca phn mm
Cng ngh phn mm

Khi nim
Mc ch
Nguyn tc
c trng

L Th M Hnh - Khoa CNTT

Lch s pht trin phn mm

1946, my tnh in t ra i
1950, my tnh c thng mi ha

Phn mm bt u c pht trin

Nhng nm 1960

Nhng tht bi v pht trin phn mm

Sn phm phn mm phc tp


Nhiu li
T chc sn xut: gi thnh, tin , ...

Ngi ta ni n Khng hong phn mm


L Th M Hnh - Khoa CNTT

Lch s pht trin phn mm

T th cng n cng ngh

Chng trnh nh

khng chuyn nghip


1 ngi lm
Ngi s dng = ngi pht trin
1 sn phm = m ngun
Tin trnh pht trin n gin

D n ln

chuyn nghip
Nhiu ngi lm
khch hng & nh cung cp
Nhiu sn phm
Tin trnh pht trin phc tp

Nm 1968, hi tho u tin v Cng ngh phn mm


L Th M Hnh - Khoa CNTT

Khng hong phn mm

V mt qun l

K hoch

V mt php l

Hp ng khng r rng, khng cht ch

Nhn lc

Khng nh gi ng gi thnh
Khng ng tin
Chi ph pht trin/chi ph bo tr

o to
Giao tip

Thiu tiu chun nh gi sn phm


Thiu qui trnh qun l
L Th M Hnh - Khoa CNTT

Khng hong phn mm

iu tra ca General Acounting Office


(1982) trn nhiu d n vi tng vn
u t $68.000.000

Khng giao sn phm: 29%


Khng c s dng: 47%
B cuc: 19%
c s dng sau khi chnh sa: 3%
Tt: 2%
L Th M Hnh - Khoa CNTT

Khng hong phn mm

L Th M Hnh - Khoa CNTT

Kh khn v thch thc

Pht trin phn mm thc t l lnh vc y


kh khn, thch thc (ri ro cao):

Nhiu d n ln tht bi
Chi ph pht trin cao
Khng t c mc ch

(khng c a vo s dng, hiu qu thp)

L Th M Hnh - Khoa CNTT

V d: cc d n tht bi

OS 360

> 1M dng lnh


T 1963->1966 (gp i d kin)
5000 nhn cng
200 M USDOS/MVS

(IBM 370) 7M dng lnh

L Th M Hnh - Khoa CNTT

V d: tn tht do li phn mm

1978: v tinh phng ln sao Kim b hng


do li ca phn mm

li ca cu lnh FOR (Fortran)

1996: v tinh Ariane 5 hng do li phn


mm gy thit hi 500M$

li php ton s thc (Ada)

L Th M Hnh - Khoa CNTT

10

Bn cht ca vn

Tnh phc tp l bn cht ca phn mm

Yu cu s dng phn mm khng ngng thay


i
S tin b nhanh ca phn mm v phn cng
(h tng -phn nn): thay i

Yu cu tin ha phn mm l tt yu

L Th M Hnh - Khoa CNTT

11

Tin ha ca phn mm

Chi ph cho phn mm cao

Phn mm tr thnh ngnh cng nghip khng l

Ph pht trin OS 360 (1963~1966) :


Chi ph phn mm nm 1985 :
Chi ph cho phn mm nm 2000 :
(mc tng 12%/nm)

200M$
70B$
770B$

Nng sut lp trnh vn thp

pht trin phn mm mang tnh th cng


gi thnh cao
L Th M Hnh - Khoa CNTT

12

Thch thc i vi phn mm

Kh nng xy dng phn mm khng p ng kp


nhu cu tng nhanh (c internet, mi lnh vc x
hi)
Qui m v phc tp ngy cng tng khin chi
ph pht trin, bo tr cng ngy cng tn km
S tinh vi ca phn cng vt xa kh nng to ra
phn mm khai thc n

Cn c nhng phng php, cng c hin i


pht trin phn mm
L Th M Hnh - Khoa CNTT

13

Kh khn ca pht trin phn mm

"Kh sn xut c phn mm c cht lng theo


ng lch trnh & kinh ph cho trc"
Phn mm l phn t logic: khng kim sot c
theo phng php thng thng
trong sn xut(ri ro, tnh th cng)

trong bo tr (ln, phc tp, thay i nhanh)


trong kim sot cht lng( lm th cng, nhiu ngi,
nhiu cng on)
L Th M Hnh - Khoa CNTT

14

nh ngha v phn mm
Phn mm bao gm:
Chng trnh my tnh

Cc cu trc d liu

Phn vn hnh c: m my
Khng vn hnh: m ngun
Cu trc lm vic (b nh trong)
Cu trc lu tr

Ti liu s dng

Hng dn s dng
Tham kho k thut
Ti liu c t, phn tch, thit k, kim th
L Th M Hnh - Khoa CNTT

15

Phn loi phn mm


(trn mc ch s dng)

Phn mm h thng

Tp cc chng trnh phc v cho cc chng trnh


Tng tc trc tip vi phn cng
Phc v nhiu ngi dng

Phn mm thi gian thc

Thu thp, xl cc d kin th gii thc


p ng yu cu cht chv thi gian
kim sot, iu khin
thu thp d liu

iu phi
phn tch d liu

L Th M Hnh - Khoa CNTT

16

Phn loi phn mm (tt)

Phn mm nghip v

Phn mm khoa hc kthut

X l cc thng tin nghip v, thng gn vi CSDL


X l cc giao tc (mng my tnh bn hng...)
Lnh vc ng dng rt ln
c trng bi thut ton (tnh ton vt l, mphng)
i hi nng lc tnh ton cao

Phn mm nhng (embeded software)

Ch c ra khi thit b khi ng,


Thc hin chc nng hn ch (iu khin sn phm)
L s kt hp gia h thng v thi gian thc
L Th M Hnh - Khoa CNTT

17

Phn loi phn mm (tt)

Phn mm my tnh c nhn

Phn mm tr tu nhn to

Cc bi ton nghip v nh(ng dng vn phng)


Giao din ha pht trin
C nhu cu rt cao
Dng cc thut ton phi s(logic): suy lun, tm kim
H chuyn gia, nhn dng, trchi...

Phn mm cng c cho Cng ngh phn mm

compiler, cc cng c CASE...


L Th M Hnh - Khoa CNTT

18

Phn loi phn mm


(trn quan im ca ngi pht trin)

Sn phm t hng

sn xut theo n t hng (HTTT qun l...)


n chic, yu cu c th

Sn phm chung

bn rng ri
tha mn yu cu chung ca s ln users

Mi loi c cch thc tip cn ring, nht l


cc bc phn tch, bo tr
L Th M Hnh - Khoa CNTT

19

Cht lng phn mm

Tnh ng n (correctness)

Tnh tin cy (reliability)

Thc hin ng cc c t v chc nng


(functional specification)
p ng c nhng yu cu t ra

Tnh bn vng (robustness)

Hat ng tt trong nhng iu kin s


dng khc nhau
L Th M Hnh - Khoa CNTT

20

Cht lng phn mm

Tnh hiu qu (efficiency)

Tnh thn thin (user friendlyness)

S dng hiu qu cc ngun ti nguyn


(b nh, CPU, ...)
D s dng

Tnh d kim tra (verifiability)

D kim tra cht lng


L Th M Hnh - Khoa CNTT

21

Cht lng phn mm

Tnh d hiu (understandability)

Tnh hp tc (interoperability)

D hiu i vi ngi s dng cng nh vi


ngi pht trin
D hp tc vi cc phn mm khc

Sn xut hiu qu (productivity)

Tin trnh sn xut phn mm phi hiu qu


L Th M Hnh - Khoa CNTT

22

Cht lng phn mm

S tha hip gia cc tiu ch cht


lng

tnh thn thin / tnh bn vng


tnh kh chuyn / tnh hiu qu

L Th M Hnh - Khoa CNTT

23

c trng ca phn mm

Pht trin phn mm khc ch to phn cng

Sn xut mang tnh th cng (sng to, khng theo khun


mu)
Kh kim sot cht lng cc bc trung gian
Kh d on trc v hiu nng

p dng cc phng php tin tin


T ng nhng khu c th
L Th M Hnh - Khoa CNTT

24

c trng ca phn mm (tip)

Phn mm thoi ha theo thi gian

Mi trng s dng, nhu cu thay i


Li sinh ra tng do nng cp

Phn mm khng c lp rp theo mu

Khng c danh mc chi tit cho trc


c t hng theo tng yu cu ring

"bo tr phn mm phc tp hn hn so vi bo tr


phn cng"
L Th M Hnh - Khoa CNTT

25

Tm tt

Phn mm c tm quan trng c bit: to nn s khc bit


ca t chc, ca h thng
Pht trin phn mm l cng vic phc tp, ri ro

l phn t logic, khng c o trc quan, kh kim sot cht lng


khi pht trin
khng c nh hnh trc, kh d on hiu nng khi cha c sn
phm
mang tnh th cng, ph thuc vo con ngi
b nh hng ln t mi trng->nhiu ri ro

Cn p dng cc phng php tin tin (k ngh phn mm)


L Th M Hnh - Khoa CNTT

26

Cng ngh phn mm


Khi nim

Cng ngh phn mm (Software Engineering-SE)

nghin cu v pht trin cc phng php, k thut v


cng c nhm xy dng cc phn mm mt cch kinh
t, c tin cy cao v hot ng hiu qu

Thit k, xy dng v bo tr cc phn mm phc


tp, bn vng v cht lng.

L Th M Hnh - Khoa CNTT

27

Cng ngh phn mm


Cc khi nim

Bauer [1969]:SE l vic thit lp v s dng cc


nguyn l cng ngh ng n thu c phn
mm 1 cch kinh t va tin cy va lm vic hiu
qu trn cc my thc
Parnas [1987]:SE l vic xy dng phn mm nhiu
phin bn bi nhiu ngi
Sommerville [1995]:SE l mt nguyn l k ngh
lin quan n tt c cc mt (l thuyt, phng
php v cng c) ca sn phn mm
L Th M Hnh - Khoa CNTT

28

Cng ngh phn mm


Mc ch

Mc ch

p dng thc t

Cc
Cc
Cc
Cc

kin thc khoa hc


nguyn tc kinh t
nguyn tc qun l
k thut v cng c thch hp

sn xut v bo tr cc phn mm nhm bo m 4 yu


cu (FQCD):

Phn mm to ra phi p ng c yu cu ngi s dng


Phn mm phi t c cc tiu chun v cht lng
Gi thnh phi nm trong gii hn t ra
Tin xy dng phn mm phi m bo

L Th M Hnh - Khoa CNTT

29

Cng ngh phn mm


Nguyn tc

Cc nguyn tc c bn

Cht ch (rigor and formality)


Chia nh (separation of concerns)
M-un ha (modularity)
Tru tng (abstraction)
Phng nga s thay i (anticipation of change)
Tng qut ha (generality)
Gii quyt tng bc (incrementality)

L Th M Hnh - Khoa CNTT

30

Cng ngh phn mm


Nguyn tc

Cht ch (rigor and formality)

S dng m hnh l thuyt v ton hc


p dng cho tt c cc bc, tt c cc
sn phm
V d

chn z l gi tr ln nht ca x v y
z = max(x, y)

L Th M Hnh - Khoa CNTT

31

Cng ngh phn mm


Nguyn tc

Chia nh (separation of concerns)

Lm ch phc tp

Chia vn thnh cc phn nh hn

Ch tp trung mt lnh vc cng mt lc


Gii quyt mt phn nh s n gin hn
chia tr (divide and conquer)

C th chia nh theo

thi gian: lp k hoch


khi nim: giao din / thut ton
X l: chia cc x l con
L Th M Hnh - Khoa CNTT

32

Cng ngh phn mm


Nguyn tc

M-un ha (modularity)

Chia nh phc tp

Quan h mt thit vi nguyn tc chia nh


Cc phng php m-un ha

D hiu
D qun l cc h thng phc tp

Chin lc t trn xung (top-down)


Chin lc t di ln (bottom-up)

Cht lng ca m-un ha

lin kt lng lo (low coupling)


Kt c cao (high cohesion)
L Th M Hnh - Khoa CNTT

33

Cng ngh phn mm


Nguyn tc

Tru tng (abstraction)

Loi b nhng g khng quan trng


Ch xem xt cc yu t quan trng
S dng cc m hnh

m hnh cho ngi s dng


m hnh cho ngi pht trin

V d

Ngn ng lp trnh/cu truc phn cng


Xy dng ti liu
c t bi iu kin trc/sau
L Th M Hnh - Khoa CNTT

34

Cng ngh phn mm


Nguyn tc

Phng nga s thay i (anticipation of


change)

Phn mm l sn phm thng xuyn thay i


D bo cc yu t c th thay i

nh hng c th

cc thay i thng gp

Trong c t yu cu
Trong ng cnh s dng
Kh nng v cng ng

L Th M Hnh - Khoa CNTT

35

Cng ngh phn mm


Nguyn tc

Tng qut ha (generality)

xem xt vn trong ng cnh tng qut


Gii quyt vn ln hn
Mc ch

Ti s dng d dng
C th s dng cc cng c c sn

S dng design patterns

Chi ph c th tng cao


L Th M Hnh - Khoa CNTT

36

Cng ngh phn mm


Nguyn tc

Gii quyt tng bc (incrementality)

Nguyn tc

xc nh mt phn (tp con)


Pht trin
nh gi
Bt u li

p dng cho

Pht trin mt sn phm

Mt c t/mt kin trc/

M hnh pht trin

M hnh lp
L Th M Hnh - Khoa CNTT

37

Cng ngh phn mm


Cc c trng c bn

L mt qu trnh k ngh gm ba mt:

Th tc (procedures)
Phng php (methods)
Cng c (tools)

Nhm to ra phn mm hiu qu, vi cc


gii hn cho trc

L Th M Hnh - Khoa CNTT

38

Cng ngh phn mm


Cc c trng c bn

Cc th tc (procedures)

qui trnh qun l:

Xc nh trnh t thc hin cc cng vic


Xc nh cc ti liu, sn phm cn bn giao, v
cch thc thc hin
nh cc mc thi gian (millestones) v sn
phm bn giao

L Th M Hnh - Khoa CNTT

39

Cng ngh phn mm


Cc c trng c bn

Cc phng php (methods)

Cch lm c th xy dng phn mm


Mi cng on lm phn mm c cc phng php
ring

Phng php phn tch (xc nh, c t)


Phng php thit k (m hnh, thut ton, d liu...)
Phng php lp trnh (hng i tng)
Phng php kim th (chc nng, cu trc)
L Th M Hnh - Khoa CNTT

40

Cng ngh phn mm


Cc c trng c bn

Cc phng php (methods)

Phng php hng cu trc thng bao gm:

M hnh v h thng: thng m t bng th


Cc k php: gip m t cc m hnh
Cc quy tc: cc rng buc t ln m hnh
Cc xut: cc li khuyn cho thit k tt
Hng dn v tin trnh: cc hot ng cn thc
hin

L Th M Hnh - Khoa CNTT

41

Cng ngh phn mm


Cc c trng c bn

Cc cng c - tools

Cung cp s tr gip t ng / bn t ng cho tng phng


php
Computer Aided Software Engineering CASEcc cng c
phn mm c chun ha tr gipcc cng on khc
nhau trong qu trnh pht trin
V d:

compiler, debugger
cng c sinh giao din (C Builder,...)
h tr phn tch, thit k (Rwin,Modeler(Oracle Designer, Rational
Rose,...)
L Th M Hnh - Khoa CNTT

42

You might also like