HUT, Falt. of IT Dept. of SE, 2001 SE-I.1
Nhậpmôn
CôngnghệhọcPhầnmềm
IntroductiontoSoftwareEngineering
DepartmentofSoftwareEngineering
FacultyofInformationTechnology
HanoiUniversityofTechnology
TELFAX
Emailcnpmithuteduvn
HUT, Falt. of IT Dept. of SE, 2001 SE-I.2
Cấutrúcmônhọc
•
tiếtĐồánmônhọc
•
CầnnhữngkiếnthứccănbảnvềCNTT
•
Cungcấpnhữngnguyênlýchungvề
CôngnghệhọcPhầnmềmCNHPM
•
Cungcấpkiếnthứcđểhọccácmôn
chuyênngànhhẹpnhưPhântíchvàthiết
kếphầnmềmXâydựngvàđánhgiá
phầnmềmQuảntrịdựánphầnmềm
HUT, Falt. of IT Dept. of SE, 2001 SE-I.3
Cấutrúcmônhọctiếp
•
Nộidunggồmphầnvớichương
–
GiớithiệuchungvềCNHPMbuổi
–
QuảnlýdựánPMb
–
Yêucầungườidùngb
–
Thiếtkếvàlậptrìnhb
–
Kiểmthửvàbảotrìb
–
Chủđềnângcaovàtổngkếtbb
•
ĐánhgiáThihếtmônĐồánmônhọc
HUT, Falt. of IT Dept. of SE, 2001 SE-I.4
Tàiliệuthamkhảo
•
RPressmanSoftware Engineering: A Practioner’s
Approach
th
EdMcGrawHill
•
RPressmanKỹnghệphầnmềmTậpNXB
GiáodụcHàNộiNgườidịchNgôTrung
Việt
•
ISommervilleSoftware Engineering.
th
Ed
AddisonWesley
•
KKawamuraNhập môn Công nghệ học Phần
mềmNXBKinkiKagakuTokyoTiếng
Nhật
HUT, Falt. of IT Dept. of SE, 2001 SE-I.5
PhầnI
GiớithiệuchungvềCNHPM
ChươngBảnchấtphầnmềm
Địnhnghĩachungvềphầnmềm
Kiếntrúcphầnmềm
Cáckháiniệm
Đặctínhchungcủaphầnmềm
Thếnàolàphầnmềmtốt
Cácứngdụngphầnmềm
HUT, Falt. of IT Dept. of SE, 2001 SE-I.6
Địnhnghĩachungvềphầnmềm
•
PhầnmềmSoftwareSWnhưmộtkhái
niệmđốinghĩavớiphầncứngHardware
HWtuynhiênđâylàkháiniệm
tươngđối
•
TừxưaSWnhưthứđượcchokhông
hoặcbánkèmtheomáyHW
•
DầndầngiáthànhSWngàycàngcaovà
naycaohơnHW
HUT, Falt. of IT Dept. of SE, 2001 SE-I.7
CácđặctínhcủaSWvàHW
HW
•
Vật“cứng”
•
Kimloại
•
Vậtchất
•
Hữuhình
•
Sảnxuấtcôngnghiệpbởi
máymóclàchính
•
Địnhlượnglàchính
•
Hỏnghóchaomòn
SW
•
Vật“mềm”
•
Kỹthuậtsửdụng
•
Trừutượng
•
Vôhình
•
Sảnxuấtbởiconngười
làchính
•
Địnhtínhlàchính
•
Khônghaomòn
HUT, Falt. of IT Dept. of SE, 2001 SE-I.8
ĐịnhnghĩaPhầnmềmlà
•
Cáclệnhchươngtrìnhmáytínhkhi
đượcthựchiệnthìcungcấpnhữngchức
năngvàkếtquảmongmuốn
•
Cáccấutrúcdữliệulàmchochương
trìnhthaotácthôngtinthíchhợp
•
Cáctưliệumôtảthaotácvàcáchsử
dụngchươngtrình
HUT, Falt. of IT Dept. of SE, 2001 SE-I.9
SWđốinghĩavớiHW
•
VaitròSWngàycàngthểhiệntrội
•
MáytínhlàchiếchộpkhôngcóSW
•
NgàynaySWquyếtđịnhchấtlượngmột
hệthốngmáytínhHTMTlàchủđềcốt
lõitrungtâmcủaHTMT
•
HệthốngmáytínhgồmHWvàSW
HUT, Falt. of IT Dept. of SE, 2001 SE-I.10
Địnhnghĩa
Trongmộthệthốngmáytínhnếutrừbỏđicác
thiếtbịvàcácloạiphụkiệnthìphầncònlại
chínhlàphầnmềmSW
•
NghĩahẹpSWlàdịchvụchươngtrìnhđểtăng
khảnăngxửlýcủaphầncứngcủamáytính
nhưhệđiềuhànhOS
•
NghĩarộngSWlàtấtcảcáckỹthuậtứngdụng
đểthựchiệnnhữngdịchvụchứcnăngchomục
đíchnàođóbằngphầncứng
HUT, Falt. of IT Dept. of SE, 2001 SE-I.11
SWtheonghĩarộng
•
KhôngchỉSWcơbảnvàSWứngdụng
•
Phảigồmcảkhảnăngkinhnghiệmthực
tiễnvàkỹnăngcủakỹsưngườichếra
phầnmềmKnowhowofSoftware
Engineer
•
Làtấtcảcáckỹthuậtlàmchosửdụng
phầncứngmáytínhđạthiệuquảcao
HUT, Falt. of IT Dept. of SE, 2001 SE-I.12
Phầnmềmlàgì
Nhómcác
Kỹthuật
Phươngpháp
luận
Nhómcác
chươngtrình
Nhómcác
tưliệu
Kinhnghiệmkỹsư
knowhow
HUT, Falt. of IT Dept. of SE, 2001 SE-I.13
Nhómcáckỹthuậtphươngphápluận
•
Cáckháiniệmvàtrìnhtựcụthểhóamộthệ
thống
•
Cácphươngpháptiếpcậngiảiquyếtvấnđề
•
Cáctrìnhtựthiếtkếvàpháttriểnđượcchuẩn
hóa
•
Cácphươngphápđặctảyêucầuthiếtkếhệ
thốngthiếtkếchươngtrìnhkiểmthửtoànbộ
quytrìnhquảnlýpháttriểnphầnmềm
HUT, Falt. of IT Dept. of SE, 2001 SE-I.14
•
Làphầngiaodiệnvớiphầncứngtạothànhtừcác
nhómlệnhchỉthịchomáytínhbiếttrìnhtựthao
tácxửlýdữliệu
•
Phầnmềmcơbảnvớichứcnăngcungcấpmôi
trườngthaotácdễdàngchongườisửdụngnhằm
tănghiệunăngxửlýcủaphầncứngvídụnhưOS
làchươngtrìnhhệthống
•
Phầnmềmứngdụngdùngđểxửlýnghiệpvụ
thíchhợpnàođóquảnlýkếtoánphầnmềm
đónggóiphầnmềmcủangườidùng
Nhómcácchươngtrình
HUT, Falt. of IT Dept. of SE, 2001 SE-I.15
Nhómcáctưliệu
•
Nhữngtưliệuhữuíchcógiátrịcaovà
rấtcầnthiếtđểpháttriểnvậnhànhvà
bảotrìphầnmềm
•
Đểchếraphầnmềmvớiđộtincậycao
cầntạoracáctưliệuchấtlượngcaođặc
tảyêucầumôtảthiếtkếtừngloạiđiều
kiệnkiểmthửthủtụcvậnhànhhướng
dẫnthaotác
HUT, Falt. of IT Dept. of SE, 2001 SE-I.16
Nhữngyếutốkhác
•
Sảnxuấtphầnmềmphụthuộcrấtnhiềuvào
conngườikỹsưphầnmềmKhảnănghệ
thốnghóatrừutượngkhảnănglậptrìnhkỹ
năngcôngnghệkinhnghiệmlàmviệctầmbao
quátkhácnhauởtừngngười
•
Phầnmềmphụthuộcnhiềuvàoýtưởngidea
vàkỹnăngknowhowcủangườinhómtác
giả
HUT, Falt. of IT Dept. of SE, 2001 SE-I.17
Kiếntrúcphầnmềm
Phầnmềmnhìntừcấutrúcphâncấp
•
Cấutrúcphầnmềmlàcấutrúcphâncấp
hierarchicalstructuremứctrênlàhệthống
systemdướilàcáchệthốngconsubsystems
•
Dướihệthốngconlàcácchươngtrình
•
DướichươngtrìnhlàcácModuleshoặc
Subroutinesvớicácđốisốarguments
HUT, Falt. of IT Dept. of SE, 2001 SE-I.18
Kiếntrúcphầnmềm
System
Subsystem Subsystem
Program Program
Module Module Subroutine
Master files
Temporary
files
Arguments Arguments
Job unit
Jobstep unit
Member unit
Common Module
≈
≈
HUT, Falt. of IT Dept. of SE, 2001 SE-I.19
Phầnmềmnhìntừcấutrúcvàthủtục
•
Haiyếutốcấuthànhcủaphầnmềm
–
Phươngdiệncấutrúc
–
Phươngdiệnthủtục
•
Cấutrúcphầnmềmbiểuthịkiếntrúccác
chứcnăngmàphầnmềmđócóvàđiềukiện
phâncấpcácchứcnăngthiếtkếcấutrúc
•
Thiếtkếchứcnăngtheochiềuđứngcàngsâu
càngphứctạpvàchiềungangcàngrộngcàng
nhiềuchứcnăngquimôcànglớn
HUT, Falt. of IT Dept. of SE, 2001 SE-I.20
Cấutrúcphầnmềm
Fuction A
Function B Function C
Function D Function E
Function F
Cấu trúc chiều ngang
(Horizontal structure)
Cấu trúc chiều đứng
(Vertical structure)
HUT, Falt. of IT Dept. of SE, 2001 SE-I.21
Thủtụcprocedurephầnmềm
•
Lànhữngquanhệgiữacáctrìnhtựmàphần
mềmđócó
•
Thuậttoánvớinhữngphéplặprẽnhánhđiều
khiểnluồngxửlýquayluihaybỏqua
•
Làcấutrúclôgicbiểuthịtừngchứcnăngcó
trongphầnmềmvàtrìnhtựthựchiệnchúng
•
Thiếtkếcấutrúctrướcrồisangchứcnăng
HUT, Falt. of IT Dept. of SE, 2001 SE-I.22
Cáckháiniệm
•
Khichếtácphầnmềmcầnnhiềukỹthuật
–
PhươngphápluậnMethodologynhữngchuẩn
mựccơbảnđểchếtạophầnmềmvớicácchỉtiêu
địnhtính
–
CácphươngphápkỹthuậtTechniquesnhững
trìnhtựcụthểđểchếtạophầnmềmvàlàcáchtiếp
cậnkhoahọcmangtínhđịnhlượng
•
Từphươngphápluậntriểnkhaiđếnkỹthuật
HUT, Falt. of IT Dept. of SE, 2001 SE-I.23
Cáckháiniệm
Softwareconcepts
•
Kháiniệmtínhmôđunmodularityconcept
•
Kháiniệmchitiếthóadầntừngbước
stepwiserefinementconcept
•
Kháiniệmtrừutượnghóaabstraction
conceptvềthủtụcđiềukhiểndữliệu
•
Kháiniệmchegiấuthôngtininformation
hidingconcept
•
Kháiniệmhướngđốitượngobject
oriented
HUT, Falt. of IT Dept. of SE, 2001 SE-I.24
Từphươngphápluậnphần
mềmsangkỹthuậtphầnmềm
Tính Môđun
Chi tiết hóa dần
Trừu tượng hóa
(Che giấu t.tin)
Phân tích cấu trúc
Thiết kế cấu trúc
Lập trình cấu trúc
Dữ liệu trừu tượng
Hướng đối tượng
Khái niệm phần mềm
HUT, Falt. of IT Dept. of SE, 2001 SE-I.25
TínhmôđunModularity
•
Làkhảnăngphânchiaphầnmềmthànhcác
môđunứngvớicácchứcnăngđồngthờicho
phépquảnlýtổngthểkháiniệmphânchiavà
trộnpartionandmerge
•
Haiphươngphápphânchiamôđuntheochiều
–
sâudepththẳngđứngđiềukhiểnphứctạpdần
–
rộngwidthnằmngangmôđunphụthuộcdần
•
Quanhệgiữacácmôđunquacácđốisố
arguments