Вы находитесь на странице: 1из 64

Cng ngh Phn mm (software engineering)

Ti liu tham kho


Software Engineering - A practitioners approach, R.S. Pressman, McGraw-Hill (ebook) KK Aggarwal, Yogesh Singh, Software Engineering, 2nd Ed. New Age Publications, 2005 Ian Sommervilles , Software Engineering 7th Ed. Nhp mn k ngh phn mm; Ng Trung Vit, Nguyn kim nh; NXB Khoa hc v k thut http://www.mhhe.com/pressman

CNPM/NN

Mc tiu
Nhng lung cng vic v s kin trong n lc pht trin phn mm Vai tr ca k s phn mm trong vic xy dng phn mm Cung cp nhng nn tng to iu kin cn thit sinh vin vn dng trong thc t sn xut phn mm: phn tch, thit k, to code, kim th v bo tr, cng nh cc cng vic h tr nh: Qun l cht lng, qun l d n

CNPM/NN

K hoch hc
Thi gian: 60 tit (12 tun x 5, 15 tun x4 ) Kim tra
im gia hc k c tnh 20% (tun 7, tun 8) im tiu lun c tnh 30% im thi kt thc hc phn c tnh 50%

CNPM/NN

Yu cu
C kin thc v ngn ng lp trnh v tng lp trnh cc ng dng c bn C kh nng p dng nhng cu trc d liu v gii thut. C hiu bit v kin trc my tnh, mng my tnh.

CNPM/NN

TRNG I HC CNG NGHIP TP.HCM


MN HC CNG NGH PHN MM

Chng 1

Tng quan

CNPM/NN

Ni dung
Phn mm v Cng ngh Phn mm Lch s pht trin ca Cng ngh Phn mm Nhng thch thc trong Cng ngh phn mm Mt s khi nim trong Cng ngh Phn mm Nhng vn thc t trong xy dng phn mm

CNPM/NN

Phn mm (Software)?
Sn phm phn mm l nhng chng trnh iu khin my tnh thc hin cc chc nng hu ch, n thng bao gm cc ti liu hng dn Trong sn xut phn mm, cc ti liu i theo vi phn mm l ht sc cn thit. Cc ti liu l: ti liu phn tch, ti liu v kin trc phn mm, cc d liu kim th (testing), cc ti liu v cc thnh phn s dng li, ti liu theo di cc phin bn Ngoi vic cung cp phn mm thng km theo cc cng vic nh: ci t, bo tr, nng cp, hun luyn

CNPM/NN

Phn mm dng lm g?
Phn mm l mt sn phm
Dng cho tnh ton To, qun l, thu nhn, bin i, th hin hay l truyn thng tin

Phn mm l mt phng tin to sn phm


H tr hay cung cp trc tip cc chc nng cho h thng iu khin nhng chng trnh khc (HH) Thc hin truyn thng (PM Mng) Gip cho vic to cc chng trnh khc (Tool, Framework)

CNPM/NN

Phn mm gm nhng g?
Phn mm l tp hp nhng mc hay l i tng m hnh thnh mt cu hnh bao gm:
Chng trnh Ti liu D liu

CNPM/NN

Phn mm gm nhng g?

source source codes codes

documents documents reports reports manuals manuals plans plans data data test results test results prototypes prototypes

object object codes codes

test suites test suites

CNPM/NN

10

c im ca phn mm?
Phn mm phi c to bng cch pht trin (develop or engineer) ch khng phi n thun l sn xut (manufacture) Phn mm khng hao mn Phn mm th phc tp, chi ph cho nhng thay i (change) nhng giai on sau rt cao

CNPM/NN

11

Li theo thi gian

increased failure rate due to side effects

Failure rate

change actual curve

idealized curve Time


CNPM/NN 12

The Nature of SW...


SW is intangible (khng th thy c)
Hard to understand development effort (n lc)

SW is easy to reproduce (ti sn xut)


Cost is in its development
In other engineering products, manufacturing is the costly stage

Quality problems are hard to notice

CNPM/NN

13

The Nature of SW...


SW is easy to modify
People make changes without fully understanding it

SW does not wear out


It deteriorates (h hng) by having its design changed:
Erroneously (sai), or In ways that were not anticipated (thy trc), thus making it complex (phc tp)

CNPM/NN

14

The Nature of SW
Conclusions (kt lun)
Much SW has poor design and is getting worse Demand for SW is high and rising We are in a perpetual (khng dng) SW crisis We have to learn to engineer SW

CNPM/NN

15

Hai loi sn phm phn mm


Cc sn phm phn mm c chia thnh 2 loi:
Sn phm i tr (Generic Product) Sn phm theo n t hng (Bespoke Product hoc Customised Product)

Mt phn mm mi c th c to ra bng cch pht trin cc chng trnh mi, thay i v iu chnh cc h thng phn mm i tr hoc ti s dng li cc phn mm tn ti

CNPM/NN

16

Nhng loi phn mm


Phn mm h thng Phn mm ng dng Phn mm khoa hc k thut Phn mm nhng Phn mm my tnh c nhn ng dng Web Phn mm AI (Artificial Intelligence)

CNPM/NN

17

1.18 1.18
CNPM/NN 18

Software Engineering?
Software engineering is the establishment and use of sound engineering principles in order to obtain economically (v mt kinh t) software that is reliable and works efficiently on real machines Software engineering is the application of a systematic (c h thng), disciplined (c k lut), quantifiable approach to the development, operation and maintenance of software, that is , the application of engineering to software [IEEE90a]

CNPM/NN

19

Cng ngh phn mm?


Cng ngh phn mm l s thit lp v s dng nhng nguyn l cng ngh ng n (sound) nhm t c phn mm c tnh kinh t tc l phn mm c tnh tin cy v lm vic hiu qu trn nhng my mc thc Cng Ngh Phn Mm (software engineering): l s p dng nhng phng php c tnh h thng, c k lut v c th nh lng c nhm pht trin, vn hnh v bo tr phn mm, tc l p dng nhng kin thc cng ngh vo phn mm (theo IEEE)

CNPM/NN

20

Why Software Engineering?


Nn kinh t ca tt c cc quc gia pht trin ph thuc vo phn mm Ngy cng nhiu h thng c phn mm iu khin Chi tiu cho phn mm chim t l ng k trong nhng quc gia pht trin
Ideas and technological discoveries (khm ph) are the driving engines of economic growth The Wall Street Journal In Modern Society (x hi), the role of engineering is to provide systems and products that enhance (lm tng) the material aspect (v b ngoi) of human life, thus making life easier, safer, more secure (an tm) and more Richard Fairley and Mary Willshire enjoyable
CNPM/NN 21

Why Software Engineering?


Chi ph phn mm chim phn ln trong nhng h thng da vo phn mm i vi nhng h thng c chu k sng di chi ph bo tr c th cao hn ch ph pht trin nhiu ln Cng ngh phn mm th b chi phi bi li nhun

CNPM/NN

22

Cng ngh hc trong CNPM ?


Nh cc ngnh cng ngh hc khc, CNPM cng ly cc phng php khoa hc lm c s Cc k thut v thit k, ch to, kim th v bo tr phn mm c h thng ha ha thnh phng php lun v hnh thnh nn CNPM Ton b qui trnh pht trin phn mm gn lin vi khi nim chu k sng ca phn mm (Software Life Cycle)

CNPM/NN

23

Lch s tin trin ca CNPM


Na u 1960: t quan tm n phn mm, ch yu tp trung nng cao tnh nng v tin cy ca phn cng Gia nhng nm 1960: Pht trin h iu hnh nh phn mm ln (IBM OS/360, EC OS). Xut hin nhu cu v quy trnh pht trin phn mm ln v quy trnh g li, kim th trong phm vi gii hn Nm 1968: Ti Ty c, Hi ngh khoa hc ca NATO a ra t Software Engineering. Bt u bn lun v khng khong phn mm v xu hng hnh thnh CNPM nh mt ngnh ring Na u nhng nm 1970: Nhm nng cao cht lng phn mm, khng ch c cc nghin cu v lp trnh, kim th, m c c nhng nghin cu m bo tnh tin cy trong quy trnh sn xut phn mm. K thut: lp trnh cu trc ha, lp trnh mun, thit k cu trc ha
CNPM/NN 24

Lch s tin trin ca CNPM


Gia nhng nm 1970: Hi ngh quc t u tin v CNHPM c t chc (1975): International Conference on SE (ICSE) Na sau nhng nm 1970: Quan tm n mi giai on trong quy trnh pht trin phn mm, nhng tp trung chnh nhng giai on u. Cuc cch tn sn xut phn mm bt u trn phm vi cc nc cng nghip Na u nhng nm 1980: Trnh hc vn v ng dng CNPM c nng cao, cc cng ngh c chuyn vo thc t. Xut hin cc sn phm phn mm v cc cng c khc nhau lm tng nng sut sn xut phn mm ng k, pht trin cc k thut bo tr
CNPM/NN 25

Lch s tin trin ca CNPM


Na cui nhng nm 1980 n nay: T hc vn sang nghip v! Cht lng phn mm tp trung ch yu nng sut, tin cy v vic bo tr. Nghin cu h tr t ng ha sn xut phn mm. Nhiu trung tm, vin nghin cu CNPM ra i. Cc trng a vo ging dy SE Hin nay
Cng nghip ha sn xut phn mm bng cch a nhng k thut cng ngh hc (Engineering techniques) thnh c s khoa hc ca CNPM Vn dng nhng l lun trong sn xut phn mm v p dng cc phng php lun mt cch nht qun Tng cng nghin cu v to cng c tr gip sn xut phn mm
CNPM/NN 26

S tin trin ca cc phng php pht trin PM


S khi: na u 1970
Khi nim v tnh mun, c th ha tng bc trong phng php lun thit k N. Wirth: Chi tit ha tng giai on. Thit k t trn xung. Lp trnh mun

Trng thnh: na cui 1970


Phng php lun v quy trnh thit k phn mm vi phng php phn chia mun v thit k trong tng mun. L.L. Constantine, 1974: Thit k cu trc ha (phn chia mun); E.W. Dijkstra, 1972: Lp trnh cu trc ha (trong mun) . Phng php M.A. Jackson (1975) v J.D. Warnier (1974) Tru tng ha d liu: B.H. Liskov (1974);D.L. Parnas (1972)
CNPM/NN 27

S tin trin ca cc phng php pht trin PM


Pht trin: na u 1980 Trin khai cc cng c h tr pht trin phn mm da trn cc phng php v k thut a ra nhng nm 1970 B to chng trnh (program generators; graphics-input editors, etc.) Ngn ng i thoi n gin (4GL, DB SQL) H tr gip: H tr gip kim th; H tr gip qun l th vin; H tr gip ti s dng Bin i: na cui 1980 n nay a ra cc mi trng mi v pht trin phn mm. Trin khai mi v kt hp gia CNPM v CN Tri thc (Knowledge Engineering) Trin khai nhng mi trng bc cao v pht trin phn mm; T ng ha sn xut phn mm; To bn mu (Prototyping); Lp trnh hng i tng - OOP; Hng s dng thnh phn (component); H tr pht trin phn mm t cc h chuyn gia

CNPM/NN

28

Nhng thch thc i vi CNPM


C 6 n trin khai th c 2 b hu b Trung bnh thi gian thc hin thc t b ko di 50% (c bit 200-300%) Cc n ln d tht bi 3/4 cc h thng ln c li khi thc thi Qu trnh phn tch yu cu (5% cng sc): li 55% li, c 18% pht hin c Qu trnh thit k (25% cng sc): li 30% li, c 10% pht hin c Qu trnh m ho, kim tra v bo tr: li 15% li, c 72% pht hin c

CNPM/NN

29

Nhng thch thc i vi CNPM


Nguyn nhn
Pht trin phn mm ging nh mt ngh thut, cha c xem nh mt ngnh khoa hc Qu trnh pht trin phn mm cha c thng nht Phi vit li s/w mi khi c s thay i v ngn ng, h/w hoc o/s Cha t c 1 chun cho vic o lng hiu sut v sn phm phc tp ca phn mm qu cao i vi 1 kin trc s K thut c t li s nhp nhng trong cc yu cu phn mm Lm vic nhm khng ng k lut gy ra cc li

CNPM/NN

30

Nhng cu hi v phn mm?


Why does it take so long to get software finished? Why are development costs so high? Why cant we find all the errors before we give the software to customers? Why do we continue to have difficulty in measuring progress as software is being developed?

CNPM/NN

31

Nhng thch thc chnh phi i mt


Thch thc v h thng c (The Legacy Challenge) Thch thc v tnh khng ng nht (The Heterogeneity Challenge) Thch thc v pht hnh (The Delivery Challenge) v tin cy

CNPM/NN

32

Thch thc v h thng c


The challenge is the challenge of maintaining and updating legacy software in such a way that excessive (qu mc, tha) cost are avoided and essential (cn thit) business services continue to be delivered

CNPM/NN

33

Thch thc v tnh khng ng nht


Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and with different kinds of support systems. The heterogeneity (khng ng nht) challenge is the challenge of developing techniques to build dependable (ng tin cy, c cn c) software which is flexible (mm do) enough to cope (ng u) with this heterogeneity

CNPM/NN

34

Thch thc v pht hnh v tin cy


Many traditional software engineering techniques are timeconsuming. The time they take is required to achieve (t c) software quality. However, businesses today must be responsive (tr li, p li) and change very rapidly. Their supporting software must change equally rapidly. The delivery challenge is the challenge of shortening delivery times of large and complex systems without compromising (lm hi) system quality

CNPM/NN

35

Ariane 5

CNPM/NN

36

Cc tng trong cng ngh phn mm


Software Engineering
tools methods process model a quality focus

CNPM/NN

37

Qui trnh phn mm


Qui trnh (process) phn mm gm mt tp hp cc hot ng c t chc m mc ch ca n l xy dng v pht trin phn mm. Quy trnh phn mm xc nh mt b khung v tiu chun trin khai cng ngh phn mm Tt c cc qui trnh u c nhng bc 5 c s: phn tch; thit k; hin thc m; kim th; trin khai v bo tr, tin ha (evolve) Qui trnh Phi thc hin nhng cng vic g? Phng php (method) Ch ra cch thc hin nhng cng vic c th (how to)

CNPM/NN

38

CASE (Computer Aided Software Engneering)


Cc cng c CASE thng c s dng h tr cc hot ng trong quy trnh xy dng phn mm. C hai loi cng c CASE:
Upper-CASE: cng c h tr cc hot ng u tin nh c t yu cu v thit k. Lower-CASE: cng c h tr cc hot ng sau nh lp trnh, g li v kim th.

CNPM/NN

39

Hn ch ca cng c CASE
Cng ngh phn mm i hi kh nng suy ngh sng to iu ny hu nh khng th c to t ng Cng ngh phn mm l hot ng nhm, tn nhiu thi gian cho nhng tng tc nhm m k thut CASE khng th h tr tt

CNPM/NN

40

Nhng yu cu i vi phn mm
Phn mm phi p ng
Kh nng bo tr (Maintainability): phn mm c th duy tr hot ng, c th iu chnh v m rng tho mn nhng yu cu lun thay i. Mc tin cy (Reliability-Dependability): phn mm phi c tin cy, bo mt v chnh xc. Hiu qu (efficiency): phn mm khng nn s dng lng ph ti nguyn ca h thng. Kh nng c chp nhn (acceptability-Usability): ngi s dng phi chp nhn phn mm. iu c ngha l n phi d hiu, s dng c v tng thch vi cc h thng khc.

CNPM/NN

41

Cc nhn t cht lng

CNPM/NN

42

Cht lng v Stakeholder


Customer: solves problems at an acceptable cost in terms of money paid and resources used QUALITY SOFTWARE Developer: easy to design; easy to maintain; easy to reuse its parts Development manager: sells more and pleases customers while costing less to develop and maintain User: easy to learn; efficient to use; helps get work done

CNPM/NN

43

CNPM v Khoa hc my tnh, Cng ngh h thng


Khoa hc my tnh cp ti l thuyt v nhng vn c bn; cn cng ngh phn mm cp ti cc hot ng xy dng v a ra mt phn mm hu ch. Khi s pht trin ca phn mm tr ln mnh m th cc l thuyt ca khoa hc my tnh vn khng ng vai tr l nn tng hon thin cho cng ngh phn mm. Cng ngh h thng lin quan ti tt c cc kha cnh ca qu trnh pht trin h thng da my tnh bao gm: phn cng, phn mm, v cng ngh x l. Cng ngh phn mm ch l mt phn ca Cng ngh h thng, n c lin quan ti vic pht trin h tng phn mm (software infrastructure), vic iu khin cc ng dng v c s d liu trong h thng.
CNPM/NN 44

Bn cng ngh phn mm

CNPM/NN

45

K s phn mm
Cc k s phn mm nn tun theo mt phng php lun c h thng v c t chc trong cng vic ca h. ng thi, h nn s dng cc cng c v k thut thch hp vi vn cn gii quyt, cc rng buc v ti nguyn sn c.

CNPM/NN

46

K nng
Phn tch thit k h thng, m hnh ha S dng bn mu (prototype) Chn phn cng, phn mm Qun l cu hnh, lp s v kim sot tin trnh La chn ngn ng v pht trin chng trnh nh danh, nh gi, ci t, chn phng php, cng c CASE Kim tra, kim Th (testing) La chn v s dng k thut bo tr phn mm nh gi v quyt nh khi no loi b v nng cp cc ng dng

CNPM/NN

47

Ngh Tester ( Kim th)


Nghin cu yu cu ca khch hng, chi tit yu cu v phn mm v cch nh gi Lp k hoch kim th (test plan) da trn cc ri ro, mc quan trng, tn sut s dng v xc nh cc yu t lin quan nh: phng php, o lng, ngun lc, iu kin kim tra To test cases/specs/scripts Tin hnh test da trn test case v ghi bo co (Thnh cng hoc Li) Log cc li tm c v lp bo co (test report) Phn tch cc yu cu thay i v cp nht cc ti liu kim th (Test plan, test cases)

CNPM/NN

48

Ngh Tester ( Kim th phn mm)


i vi Kim th phn mm c 2 nm kinh nghim tr ln (Senior Tester):
Lp k hoch test Ph trch mt nhm testers, test cases do cc testers to ra Tnh ton v phn tch cc ch s lin quan n test Nghin cu automation test tools v p dng vo test d n xut ci tin Qui trnh Kim th: lu , hng dn, biu mu thc hin v qun l vic kim th.

CNPM/NN

49

Ngh QA (Quality Assurance - m bo cht lng)


Cc nhn vin QA s kim tra cht lng cng vic trong c qu trnh sn xut, v d xem xt ti liu yu cu, ti liu thit k hay xem xt m ngun. H cng xem xt cc kin phn hi ca khch hng v cch i d n x l vn . QA thu thp thng tin ca cc d n, cc ch bo cht lng ca d n, t v nn bc tranh chung v tnh hnh cht lng sn xut ca c cng ty Cng vic ca QA va mang tnh cht gim st, va mang tnh h tr cho hot ng ca d n.

CNPM/NN

50

Ngi Qun l d n (Project Manager)


Tha mn cc mc tiu phm vi, thi gian, chi ph v cht lng d n Tha mn c nhu cu v mong i ca mi ngi c lin quan hoc b nh hng bi d n. PM thc hin cc nhim v chnh sau: planning, scheduling, co-ordinating, v giao tip t mc tiu ca d n 97% s thnh cng ca d n l nh vo PM.

CNPM/NN

51

Cc k nng cn thit ca ngi qun tr d n.


K nng giao tip: lng nghe, thuyt phc. K nng t chc: lp k hoch, xc nh mc tiu, phn tch. K nng xy dng nhm: thu hiu, thc y, tinh thn ng i. K nng lnh o: nng ng, c tm nhn, bit giao nhim v, lc quan. K nng i ph: linh hot, sng to, kin tr, chu ng. K nng cng ngh: kinh nghim, kin thc v d n

CNPM/NN

52

Cc c trng quan trng

CNPM/NN

53

Cng nghip phn mm Vit Nam


C nc nm 2005 : 250 triu USD, 2500 cng ty ng k, 600 doanh nghip thc s hot ng. Thnh ph HCM Nm 2005 c 340 cng ty phn mm ang hot ng
88% sn xut phn mm, 73% cung cp gii php, 37% gia cng xut khu, 26% hot ng i l phn mm nc ngoi 82% di 50 ngi, 18% trn 100 ngi

Hot ng
Sn xut, kinh doanh dch v phn mm o to, t vn gii php phn mm Thit k website v dch v thng mi in t

CNPM/NN

54

Cc khu cng nghip tp trung (2005)


Si gn Software Park SSP: thnh lp nm 2000, 15 doanh nghiep thnh vin, 500 ngi lm vic Nng Software Park DSP: 2001, 9 doanh nghip, trn 200 chuyn vin IT Cng vin phn mm Quang Trung (QTSC): 2000, 61 doanh nghip, 3800 chuyn vin Cn Th Software Park CSP: 2001, 5 doanh nghip, 60 ngi E-Town: 2001, 20 doanh nghip IT, 1000 lm v IT Hu Software Park: 2001 Unisoft: 2003, 5 doanh nghip thnh vin, 100 ngi

CNPM/NN

55

Vinasa (Hip hi doanh nghip phn mm VN)


Bo co 9/2005. Nhng chin lc t ph
Th trng Nht Bn (2005: 35 triu USD) Pht trin Game Sn xut phn mm nhng ERP

CNPM/NN

56

Nhng sai lm
Ti d dng bin i phn mm
Thc t: Nhng thay i yu cu l nguyn nhn chnh lm gim gi tr phn mm

Ti c th gii quyt vn lch biu bng cch thm ngi


Thc t: N c th gia tng n lc phi hp l gim hiu sut

Ch cn xem xt s lc cc yu cu, chng ti c th bt u vit code


Thc t: thng l nguyn nhn chnh gy ra li

CNPM/NN

57

Nhng sai lm
Ti khng th ni chng ti ang lm tt th no cho n khi n khi thc thi nhng phn ca n
Kim tra hnh thc cho mt thng tin tt v a ti thnh cng cho nhng d n tt

CNPM/NN

58

Nhng sai lm
Phn quan tm hu nh duy nht l m
Ti liu, thng tin kim th v cu hnh phn mm cng l nhng phn then cht trong vic chuyn giao

Lp trnh gii th hu nh l s to c phn mm cht lng


Nhng d n phn mm c hon tt bi nhng nhm, khng phi c nhn, thnh cng cn nhiu hn l to m

To m l cng vic nng nhc nht


To m: t hn 10% cng sc

CNPM/NN

59

SW myths (nhng hoang tng)


As long as (ch cn) there are good standards and clear procedures in my company, I shouldnt be too concerned (lo lng). But the proof (chng c, kim chng) of the pudding (mn n trng ming) is in the eating; not in the Recipe (cng thc lm mn n)!

CNPM/NN

60

SW myths
As long as my SW engineers (!) have access to the fastest and the most sophisticated computer environments and state-of-the-art SW tools, I shouldnt be too concerned.

The environment is only one of the several factors that determine the quality of the end SW product!
CNPM/NN 61

SW myths
A general statement of objectives is sufficient () to get started with the development of SW.
Missing/vague requirements (nhu cu khng r rng) can easily be incorporated (kt hp cht ch)/detailed out as they get concretized (c th ha). Application requirements can never be stable (n nh); SW can be and has to be made flexible enough to allow changes to be incorporated as they happen.
CNPM/NN 62

SW myths
Once the SW is demonstrated, the job is done.

Usually, the problems just begin!

CNPM/NN

63

SW myths
Until the SW is coded and is available for testing, there is no way for assessing(nh gi, c nh) its quality.

Usually, there are too many tiny bugs inserted at every stage that grow in size and complexity as they progress thru further stages!

CNPM/NN

64

Вам также может понравиться