Ạ Ọ
NG Đ I H C CÔNG NGH TR Đ I H C QU C GIA HÀ N I Ộ Ố Ạ Ọ ƯỜ Ệ
BÀI GI NGẢ TIN H C C S
Ọ Ơ Ở
BÀI 8 . PH N M M Ầ
Ề
ả
Ố
Ế
Gi ng viên: ĐÀO KI N QU C Mobile 098.91.93.980 Email: dkquoc@vnu.edu.vn
N I DUNG
Ộ
ề
ệ
ầ ầ
ặ ầ
ệ ố
ề
Khái ni m v ph n m m ề Đ c tính c a ph n m m ề ủ Ph n m m ng d ng và ph n m m h th ng ề ứ Quy trình phát tri n ph n m m
ụ ể
ầ ề
ầ
KHÁI NI M V PH N M M Ề
Ầ
Ề
Ệ
ươ
Các ch ể ệ ậ ằ
ầ
Các c u trúc d li u phù h p đã đ
ứ t nào đó do ng i ườ ệ ph ươ ậ c vi ng trình máy tính đ t đ ượ ế ể i quy t bài th hi n thu t toán nh m gi ế ả toán, đáp ng các yêu c u v ch c năng ứ ề và hi u qu c n thi ả ầ ế đ t hàng đ a ra. ư ặ K thu t, ậ ỹ ng pháp lu n, mô hình ữ ệ ợ
ấ ọ
c ượ ng trình có th ươ ể c đúng và hi u qu . ả ượ Ch ng trình
T li u ư ệ toàn b bài toán, thu t ả ậ ệ ộ ươ máy tính
K năng (skills) c a tác gi
toán, ch l a ch n sao cho ch ự thao tác đ Các tài li u mô t ệ ươ
ỹ ng trình và cách s d ng. ử ụ th hi n ả ể ệ ủ
trong đó.
Kinh nghi m ệ k sỹ ư
Ph n m m th hi n khía c nh ph ầ ể ệ ươ ề ạ
ư ng pháp ng pháp trong x lý thông tin nh ng không ph i là toàn b ph ươ ử ộ ả
Đ C TÍNH C A PH N M M
Ủ
Ặ
Ầ
Ề
ể
ề
ượ
c ch t o
ế ạ
Ph n m m đ ầ ệ
Ph n m m không “t ề
ỏ
ự h ng" nh ng thoái hoá theo
ầ ờ
c v i nghi p v và ệ
ụ
ớ
th i gian do không thích nghi đ công ngh th ệ ườ ầ
ầ ớ
ề
c phát tri n (development) hay k ỹ ngh (engineering), nó không đ ượ (manufacture) theo nghĩa c đi n. ổ ể ư ượ ng xuyên thay đ i. ổ ự ơ
Ph n l n ph n m m đ ượ ộ
c xây d ng theo yêu c u c a khách hàng, có m t nguy c là s không hi u ự ủ nhau gi a khách hàng và nh ng ng ườ
ữ
ể
S ph c t p và tính luôn thay đ i luôn là b n ch t
ổ
ầ ể i phát tri n ấ ả
ữ ứ ạ ự c a ph n m m ầ ủ
Ngày nay ph n m m đ
c phát tri n theo nhóm
ề
ượ
ể
ề ầ
PH N C NG VÀ PH N M M
Ứ
Ầ
Ầ
Ề
PH N C NG
Ứ
Ề
ng
Ầ V t ch t ấ ậ H u hình ữ S n xu t công ấ ả
ấ ở i là chính
PH N M M Ầ Tr u t ừ ượ Vô hình S n xu t b i con ả ng ườ ị
nghi p b i máy móc ở ệ là chính ượ
Đ nh tính là chính Không hao mòn
Đ nh l ng là chính ị H ng hóc, hao mòn ỏ
PH N M M NG D NG Ề Ứ
Ụ
Ầ
ấ ề ề
i quy t các ế ụ nh ư
ạ ả ả ư ọ
ả ể t đ giúp gi c vi ho t đ ng nghi p v ế ầ ế ể ạ ộ ả ữ ả ệ ả ọ ề
Có r t nhi u ph n m m máy tính đ ầ ượ công vi cệ hàng ngày cũng nh nh ng ữ so n th o văn b n, qu n lý h c sinh, qu n lý k t qu h c, l p th i ờ ậ khoá bi u, qu n lý chi tiêu cá nhân... Nh ng ph n m m nh th g i ư ế ọ ả là các ph n m m ng d ng ề ứ ặ
, Có nh ng ph n m m ng d ng đ ầ Ph n m m đ t hàng ề ụ . ữ ượ ụ ầ ầ
ặ ơ
ề ứ ộ ủ ả ỗ ợ ự ứ ẽ ế
c vi t ế theo đ n đ t hàng riêng có tính đ c thù c a m t cá nhân hay t ổ ch c, Ng ề ể trình làm ph n m m và v n hành sau này. ặ i phát tri n ph n m m s ph i h tr tr c ti p trong quá ườ ầ ầ ậ ề
Ph n m m đóng gói, ề
Có nh ng ph n m m đ ữ ế ế ự ề
ầ ữ c thi ườ ề
ứ ấ
ượ nh ng yêu c u chung hàng ngày c a nhi u ng c a m t ng ộ ổ ủ ng t k d trên i ch không ph i ả ứ ch c c th nào. Nhà s n xu t bán đ ả ể i t ng ng ầ ủ ụ ể ả ự
i, ế ớ ừ ủ ạ ộ ụ
ế c hi u là ph n m m t i. ừơ Ph n m m ng d ng ph c v tr c ti p ho t đ ng c a con ng ườ ph c v ụ ụ ầ ườ ộ i dùng t ự ề ứ ớ ụ ệ ố ượ ự ề ể ề ầ ầ
i hay m t t cài đ t, không có b o trì tr c ti p t ườ ặ ầ ụ ự đ i l p v i ph n m m h th ng đ ố ậ c a máy tính ủ
M T S LO I PH N M M NG D NG Ầ
Ộ Ố Ạ
Ề Ứ
Ụ
ả
ạ
ở
đây không ph i là phân lo i mà ch ỉ i thích khái ni m vì các lo i này có giao nhau
Cách phân chia ả
ạ
ờ
ự
ề ề ề ề ề ề
ạ
ệ Ph n m m th i gian th c (Real-time SW) Ph n m m nghi p v (Business SW) ụ ệ Ph n m m tính toán KH&KT (Eng.&Scie. SW) Ph n m m nhúng (Embedded SW) Ph n m m trên Web (Web-based SW) Ph n m m trí tu nhân t o (AI SW) ệ Ti n ích (Utility) Ph n m m phát tri n (Development SW) ể
là gi ầ ầ ầ ầ ầ ầ ệ ầ
ề
TI N ÍCH
Ệ
ầ
ệ ụ
ề ứ ạ ng vào các ho t đ ng ướ
ệ
ướ
ả
ườ ố ớ
Ti n ích cũng là m t lo i ph n m m ng ộ d ng nh ng không h ư nghi p v mà h ụ làm vi c c a con ng ệ ủ Ví d : so n th o ạ
ụ
ạ
ể
ị ọ
ộ
ạ ộ ng vào c i thi n hi u qu ả ệ ệ i đ i v i máy tính đ nh d ng text thu n tuý, ầ ả ở ị ki m tra và đ nh d ng đĩa, sao chép d li u, ữ ệ ạ quét virus, đ c n i dung file, c i thi n giao ả di n (nhu Norton Commander tr
ệ c đây)
ướ
ng các h đi u hành cũng cung
ệ Thông th
ệ ề
ườ c p m t s ti n ích ộ ố ệ ấ
PH N M M PHÁT TRI N
Ầ
Ể
Ề
Đ i v i nh ng ng
ự ể
ố ớ ề ườ ề ứ ụ ụ ả
ườ ệ
Đ h tr cho vi c làm ra các s n ph m ph n m m, ng ề ư ể
ề ề ầ
ẩ ọ ộ ầ ầ ơ ố
Các ph n m m d ch t
i làm tin h c trong lĩnh v c phát tri n ph n ữ ầ ọ m m thì ph n m m ng d ng là s n ph m và là m c tiêu cu i ố ẩ ầ cùng c a h . ọ ủ i ta ể ỗ ợ ả i dùng chính các ph n m m khác g i là ph n m m công c . l ụ ạ Đi u này cũng gi ng nh đ ch t o đ ng c ô tô ta dùng máy ế ạ ề công c . ụ
vi ế
đ ng các thu t toán ị ầ
ố ề ự ộ c nào đó thành các ch ướ
ể ỗ ợ ổ ượ
ữ ệ ữ ề ệ
ề
ề Do các ph n m m công c đ t trong m t h ậ ộ ệ th ng quy ng trình trên mã máy mà ươ máy tính có th thi hành đ c, các ph n m m h tr t ch c ứ ề ầ d li u, nh ng ph n m m phát hi n l i i l p trình và s a l ử ỗ ỗ ậ ầ (debuger)... đ u thu c các ph n m m công c . ụ ộ ụ ề ầ ớ
ể ề ề ầ ầ
ầ c dùng v i m c đích phát tri n ụ ượ ph n m m nên ta còn g i ph n m m công c là ph n m m ụ ầ ọ ề phát tri n.ể
PH N M M H TH NG
Ệ Ố
Ầ
Ề
Nói chung, các ch
ươ ề ầ
c kh i đ ng khi c n thi ượ ở ộ ng trình ng d ng ho c ph n m m công c ụ ặ ứ t và ng ng ho t đ ng khi th c hi n ạ ộ ầ ụ ừ ự ế ệ
đ xong công vi c. ệ ươ ườ ng tr c ch vì nó ph i ỉ
ả ủ ự ươ ng trình ph i th ụ theo yêu c u c a các ch ầ
ầ ệ ươ ả cung c p ấ ng trình khác mà không bi ư ậ
c các yêu c u đó xu t hi n khi nào. Các ch ấ ề t ế ng trình nh v y ầ ữ
ệ ph n m m h th ng. ầ ệ ố
Có nh ng ch ữ các d ch v ị tr tr thành môi tru ng làm vi c cho các ph n m m khác. Nh ng ph n ờ m m nh th g i chung là ề ư ế ọ ấ ề
ệ ố ướ ở ề ầ ệ ề
ệ ề ầ Ph n m m h th ng quan tr ng nh t là h đi u hành (operating ạ ộ ọ ứ ộ
H đi u hành không ph i là ph n m m h th ng duy nh t. Còn có ầ
ề ệ
ả ệ ố ng tr c cung c p môi tr ề ấ ườ ự ề
ấ ng làm vi c cho các ệ t. ế ườ ụ ề ệ
ầ c cài đ t ta có th gõ ti ng Vi t t ệ ừ ượ ể ế ề ề ặ
system). H đi u hành có ch c năng đi u hành toàn b ho t đ ng c a máy tính trong su t quá trình làm vi c. ố ủ ệ ề nhi u ph n m m th ề ầ ph n m m khác, ví d ph n m m gõ bàn phím theo ki u ti ng Vi ầ ể ề M t khi đ nhi u ph n m m ầ ộ khác. ộ ụ ể ả
M t ví d khác là các h qu n tr c s d li u ho t đ ng theo ki u khách - ch cho phép t o ra các ho t đ ng c ng tác gi a ph n m m trên m t máy tr m v i m t máy ch cung c p d ch v ụ ộ
ệ ạ ủ ầ ạ ộ ữ ị ơ ở ữ ệ ạ ộ ộ ủ ề ấ ạ ộ ớ ị
Ớ
CÁC L P PH N M M Ầ THEO M C ĐÍCH S D NG
Ề Ử Ụ
Ụ
....
....
ề
....
....
ầ
Ph n m m ề phát tri nể
Ti n ích
ệ
Ph n m m ầ h th ng ệ ố
T đ ng hoá ự ộ
Cá nhân Nghi p vệ ụ
Ph n m m ng d ng ề ứ ụ ầ
Ầ
Ề
C
ứ
ệ
MÔ HÌNH PHÁT TRI N PH N M M Ể THEO KI U THÁC N ƯỚ Ể Nghiên c u hi n tr ng Nghiên c u yêu c u ứ Phân tích
ơ ở ữ ệ
ạ ầ Thi ế ế ổ Thi ế ế ế d li u, giao di n, an toàn)
ữ ệ
t k t ng th (ki n trúc) ế ể t (ch c năng, t k chi ti ứ Xây d ng c s d li u ự ệ L p trình
ậ
ài
Phân tích
Test module Test tích h pợ Chu n b máy móc, c ị ẩ Test h th ng ệ ố đ t CSDL và ph n ầ ặ Test ch p nh n ậ ấ m m, hu n luy n ệ ấ ề
Thi t kế ế
Mã hoá
Ki m th ể ử
i
Chuy n giao ể
S a l ử ỗ Thích nghi hoá
Tăng c
ng ch c năng ườ ứ D phòng ự
B o trì ả
Ặ
Ấ ƯỢ
NG PH N M M Ầ
Ề
Đ C TÍNH CH T L THEO ISO/IEC 9126
ợ
ủ
ẩ
ứ
Phù h p,Chính xác, Liên tác,Tuân th chu n, An toàn (Suitability, Accuracy, Interoperability, Compliance, Security)
Ch c năng Functionality
i, Kh năng khôi ph c đ
c:
ụ
ả
ượ
It tr c tr c, Kháng l ụ ỗ ặ (Maturity, Fault Tolerance, Recoverability)
Tin c yậ Reablility
ễ ể
ễ ọ
ễ
ễ
D hi u, D h c, D thao tác: (Understandability, Learnability, Operability )
D dùng Usability
c v th i gian, Đáp ng đ
c v tài nguyên:
ượ
ứ
ượ
ề
ệ
Đáp ng đ ề ờ ứ (Time Behavior, Resource Behavior )
Hi u qu ả Efficiency
ả
ượ
c, Ki m th đ
c, Thay đ i đ
ổ ượ
ượ
ể
ử ượ Ổn đinh
B o trì đ c Maintainability
Phân tích đ c, (Analysability, Changeability, Stability, Testabilty)
ả
c, Cài đ t đ
c, Kh p đ ớ
ặ ượ
ượ
ượ
c ế ượ
Kh chuy n ể Portability
Thích nghi đ c , Thay th đ (Adaptability, Installability, Conformance, Replaceablity )
T NG K T
Ổ
Ế
ầ
ề
ử
ồ
ng pháp trong x lý ng trình máy tính, ch c d li u, các tài li u và k năng c a
ỹ
ứ
ủ
ươ ươ ệ
ề
ầ
ề ứ
ứ
ộ
ủ
Phát tri n ph n m m là m t công vi c ph c t p,
ạ ộ ể
ệ ướ
ứ ạ c: phân tích, i ườ
ề ủ ể
ế ế
Ph n m m mang ý nghĩa ph thông tin. Nó bao g m các ch cách t ữ ệ ổ i phát tri n k t tinh trong đó. ng ế ể ườ Ph n m m h th ng làm môi tr ng cho các ph n ườ ệ ố ầ m m khác. Ph n m m ng d ng đáp ng m t nhu ụ ầ ề c u ho t đ ng c a con ng i ườ ầ ộ ầ ồ ơ ả t k , vi ử ế ả
t mã, ki m th , chuy n giao cho ng ạ
ể ộ ặ
ủ
ả
quy trình c b n c a nó g m các b thi dùng và b o trì. B o trì là m t đ c thù c a ho t đ ng ph n m m ầ
ề
ộ
CÂU H IỎ
ệ ề ề
ả ữ ặ
ề ụ ề ề ạ ầ ầ
t Nam 1. Hãy trình bày v khái ni m ph n m m máy tính. ầ 2. D li u có ph i là ph n m m không? Hãy nêu nh ng đ c đi m ể ữ ệ các lo i ph n m m ng d ng: ph n m m nhúng, ph n m m ầ à ph n m m phát tri n. ti n ích v ể ệ ề ứ 3. Hãy k m t s ví d ph n m m ng d ng đi n hình ầ ầ ề ứ ề ụ Vi ở ệ ụ ể
t.
4. Virus là nh ng ch ầ ể ộ ố mà b n bi ế ạ ữ ễ ươ ạ
ụ ẩ ộ
ế ề ạ ầ
ạ ố
c nào? ng trình gây nhi u ho c phá ho i và có kh ả ặ năng lây lan. Nói chung đây là m t lo i s n ph m có m c đích ạ ả x u trong tin h c. X p virus vào lo i ph n m m nào và ph n ầ ọ ấ m m ch ng virus vào lo i nào? ề ự ầ
5. Quy trình xây d ng ph n m m g m nh ng b 6. Hãy trình bày các tiêu chí ch t l ng ph n m m ồ ề ấ ượ ữ ầ ướ ề