🔙 Quay lại trang tải sách pdf ebook Giáo trình công nghệ phần mềm nâng cao
Ebooks
Nhóm Zalo
LÊ VĂN PHÙNG - NGUYÊN VẢN TẢO
GIÁO TRÌNH
CỎNG NGHỆ PHẢN MÈM NÂNG CAO
N1IÀ XUÁT I3ẢN DẠI IIỌC THÁI NGUYÊN NĂM 2018
04-105
MÃ só: - -----
Đ H TN -2018
2
THUẬT NGỦ VÀ TỪ VIÉT TẮT I. Tiếng All li
4GT forth generation technique
CASE Computer Aided Software Engineering
CBSE C om ponent-Based Software Engineering
CMM Capability Maturity Model
CMMI Capability Maturity Model lntergration
COM Component Object Model
CORBA Common Object Request Broker
Architecture
DC OM Distributed Component Object Model
DSQ1 Design Structure Quality Index
Kỹ thuật thế hệ 4
Kỹ nghệ phần mềm dược hỗ trợ bởi máy tính
Kỹ nghệ phần mềm dựa trẽn thành phẩn Mô hình trưởng thành
Mô hình trường thành tích hợp
Mô hình đối tượng thành phần
Một kiến trúc huớng đối tượng
Mô hình đối tượng phân tán
Chi số chất lượng về cấu trúc thiết kế
E R Entity-Relationship Mô hình thực thể - mối quan hệ
EJB Enterprise JavaBeans Một mô hình thành phần phần mềm dành cho việc phát triển và triển khai các ứng
dụng nghiệp vụ mức doanh nghiệp
3
HCI Human - Computer Interface
HỈPOC Hierarch Input Process Output Chart
HTML Hyper Text Markup Language
HW Hardware
I-CASE Integrated CASE
IDL Interface Description Language
IEEE Institute Electrical and Electronic Engineers
ISO International Standards Organization
IT Information Technology LAN Local Arear Network NF Normal form
OMG Object Management Group
OOA Object - Oriented Approach
OOP Object - Oriented Programming
ORB Object Request Broker PC Personal Computer
Giao diện người - máy
Sơ đồ phân cấp vào - ra
Ngôn ngữ đánh dấu siêu văn bản
Phần cứng
CASE tích hợp
Ngôn ngữ mô tả giao diện
Viện kỹ nghệ điện và điện tử
Tổ chức quốc tế về chuẩn hóa
Công nghệ thông tin
Mạng cục bộ
Dạng chuẩn
Nhóm quản lý đối tượng
Cách tiếp cận hướng đối tượng Phương thức lập trình hướng đối tuợng
Bộ phận trừu tượng trung gian Máy tính cá nhân
IAD Rapid Application Phát triển ứng dụng nhanh Development
Í.UP Rational Unified Tien trình thống Iihat
Process
ỈC Software configuration cấu hình phần mềm
SCI Software Configuration Khoản mục cấu hình phần mềm Item
5CM Software Configuration Quán lý cấu hình phần mềm Management
SEI Software Engineering Viện công nghệ phần mềm Mỹ Institute
SMI Software Maturity Index Chi so trưởng thành phần mem
SOA Service Oriented Kiến trúc hướng dịch vụ Architecture
SOAP Simple Object Access Giao thức truy xuất đối tượng đơn giản Protocol
SQA Software Quality Bảo đảm chất lượng phần mềm Assurance
sw Software Phần mềm
UDDI Universal Description, Một thành phần đăng ký dịch vụ Discovery and
Integration
UIDS User interface Hệ thống phát triển giao diện người dùng / development system
UML Unified Modeling Ngôn ngữ mô hình hợp nhất Language
5
VORD Viewpoint-Oriented Xác định yêu cầu hướng theo cách nhìn Requirements Definition
w s Web Service Djch V ỊI web
WSDL Web Services Ngôn ngữ đặc tả dịch vụ web Description Language
XML Extensible Makup Ngôn ngữ đánh dấu mờ rộng Language
2. Tiếng Việt
CNTT Công nghệ Thông tin
CSDL Cơ sờ dữ liệu
HTTT Hệ thống thông tin
NSD Người sử dụng
6
MỤC LỤC
Trang
THUẬT NGỮ VA TỪ VIẾT TẢT...................................................................... 3 LỜI NÓI ĐÂU......................................................................................................... 15 Chương 1. TỐNG QUAN VÊ CÔNG NGHỆ PHÀN MẺM 18
1.1. Định nghĩa phần mềm................................................................................. 18 1.2 Định nghĩa công nghệ phần mềm ............................................................. 19 1.3. Sự khác biệt giữa công nghệ phần mềm với kỹ nghệ phần mềm..........20 1.4. Sự khác biệt giữa kỹ nghệ phần mềm và kỹ nghệ hệ thống.................. 20 1.5. Các phương pháp trong kỹ nghệ phần m ềm............................................. 22 1.6. Bàn thợ C A SE..............................................................................................24
1.6.1. Khái niệm về CASE...............................................................................25 1.6.2. Các loại công cụ CASE........................................................................ 26 1.6.3. Môi trường CASE tích h(_rp.................................................................. 28
1.7. Tiêu chuẩn cùa một phần mềm tốt..............................................................31 1.8. Những thách thức chính đối với công nghệ phần m ềm ...........................32 1.9. Tổng quan một số hưóng kỹ nghệ phần mềm điển h ìn h ........................ 33
l. 9.1. Kỹ nghệ hướng cấu trúc....................................................................... 33 1.9.2. Kỹ nghệ hướng đói turrnịỉ.................................................................... 35 1.9.3. Kỹ nghệ hướng thành phần................................................................ 37 ¡.9.4. Kỹ nghệ hướng dịch vt!........................................................................ 4!
r /. 9.5. Điện loàn đám m ây.............................................................................. 43 TÓM TẮT CHƯƠNG........................................................................................46 CẢU HỎI CHƯƠNG 1..................................................................................... 48 BÀI TẬP CHƯƠNG I ...................................................................................... 48
Chương 2. TIẾN TRÌNH PHÁT TRIÊN PHẦN M ẺM ........................................ 50 2.1. Tiến trinh phần mềm...................................................................................50 2.1.1. Khái niệm liến trình phần m ềm ........................................................... 50 2.1.2. Khái niệm mô hình tiến trình................................................................51 2.2.Mô hình thác nước........................................................................................51 2.3. Mô hình tiến hóa.....................................................................................52 2.3.1. Mô hình làm bàn m ẫ u...........................................................................53 2.3.2. M ô hình xoan ốc.................................................................................... 54 2.3.3. Mô hình RUP......................................................................................... 56 2.3.4. Mô hình phát triển tăng d ầ n ................................................................ 56 2.3.5. M ô hình phái triển ứng dụng nhanh ÌIAD.......................................... 57 2.3.6. Mô hình phái triền hệ thống hình thức hóa........................................ 57 2.3.7. Mỏ hình pháI triển phần mềm theo hướng sứ dụng lại..................... 58 2.3.8. Mô hình phá/ trien phần mềm theo kỹ thuật thế hệ thứ lư ................ 59 2.4. Các hoạt động của tiến trình phát triển phần m ềm................................ 60 TÓM TẤT CHƯƠNG.........................................................................................63 CÂU HỎI CHƯƠNG 2 ...................................................................................... 64
Chương 3. ĐẶC TẢ YÊU CẢU PHẢN MỀM VÀ YÊU CẢU HỆ THỐNG . 65 3.1. Các yêu cầu hệ thống................................................................................. 65 3.1.1. Khái niệm vể yêu cầu hệ ihong............................................................65 3.1.2. Phân loại yêu cần hệ thống..................................................................66 3.1.3. Các cách tiếp cận và các kỹ thuật phân tích yêu cầu hệ thắng......68 3.2. Các yêu cầu phần m ềm ..............................................................................72 3.3. Tài liệu đặc tả yêu c ầ u ...............................................................................75 3.4. Tiến trình xác định yêu cầu và phát triển bản m ẫ u ..............................81 3.4.1. Tiến ừ ình xác định và đặc tả yêu cầu phần mềm...............................81 3.4.2. Tiến trình phái triển bản mẫu hệ thong.............................................. 83 3.4.3. Tiến trình phát triển hàn mau phần m ềm...........................................85
TÓM TÀT CHƯƠNG.........................................................................................87 CẢU MOI CHƯƠNG 3 ...................................................................................... 89 BÀI TẬP CHƯƠNG 3 ....................................................................................... 89
Chương 4. ĐẬC TÀ TH1ÉT K Ế ............................................................................. 91 4 .1. Thiết kế và thiết kế phần m ềm ..................................................................91 4 2 Thiết ke dữ liệu............................................................................................94
4.2.1. Thiết ké cư sở dữ liệu mức logic.......................................................... 94 4.2.2. Thict ké cư sớ dữ Hậu mức vật lý ......................................................... 95 4.3. Thiết kế cấu trúc chương trình.................................................................96 4 4 Thiết kế giao diện.......................................................................................97 4.4.1. Ỷ nghĩa và bàn chất cùa thiết kế giao diện HỊỊUỪi- máy.....................97 4.4.2. Sơ đo tuưng tác hệ thống giao diện.....................................................98 4.4.3. Cấu trúc lumig tác trên màn hình..................................................... 100 4.4.4. Những nguyên lắc thiết kè................................................................... 101 4.4.5. Những yêu cầu chung đối với thiếl kẻ giao diện.............................. 102 4.4.6. Tiến trinh íhièt kế giao iliện................................................................104 4.5. Thiết kế mô-đun xử lý.............................................................................. 105 4.5.1. Cách tiếp cận top-down......................................................................105 4.5.2. Phương pháp linh chình từng bước................................................... 106 4.5.3.Đặc tả mô-đun......................................................................................107 TÓM TẢT CHƯƠNG......................................................................................109 CÂU HỎI CHƯƠNG 4 .................................................................................... 111 BÀI TẬP CHƯƠNG 4 .....................................................................................112 Chương 5. ĐẬC TẢ THIẾT KÉ KIÉN TRÚC................................................. 113 5.1. Kiến trúc phần mềm và đặc tả thiết kế kiến trúc................................ 113 5.1.1. Định nghĩa kiến trúc phần mềm......................................................... 113 5.1.2. Vai trò và tầm quan trọng cùa kiến trúc phần mềm........................ 116 5.1.3. Đặc ta thiết kè kiến trúc..................................................................... 116
5.2. Các mô hinh kiến trúc ứng d ụ n g .......................................................... I 19 5.2.1. Kiến trúc phần mềm theo huxrng dữ liệu tập trung hav phân lán. 120 5.2.2. Kiến trúc phan mèm theo hurmg điểu khiển tập trung.................... 124 5.2.3. Kiến trúc phan mềm theo htámỊỊ sự kiện.......................................... 125 5.2.4. Kiến trúc phần mèm Iheo mỏ hình phân rã mô-đim.........................127 5.2.5. Kiến trúc phần mèm theo miền imgdụtig...........................................128
5.3. Một so phương pháp tạo kiến trúc..........................................................129 5.3.1. Phân hoạch ngang.............................................................................. 129 5.3.2. Phân hoạch dọc....................................................................................130 5.3.3. Phương pháp lạn kiến trúc từ biếu đồ luồng dữ liệu........................130
5.4.Tiến trinh thiết kế kiến trúc hệ thống phần m ềm ................................ 131 5.4. Ị. Những hoại động chung cho mọi tiến trình thiết ke .......................131 5.4.2. Quy trình thiết kế kiến tríic chrnmg trình...........................................132
5.5. Phân tích đặc tả yêu cầu phần mềm thành đặc tả kiến trúc phần mềm ...................................................................................................... 134 5.5.1. Khái niệm luồng chuyến đổi và luồng giao dịch...............................135 5.5.2. Phân tích chuyển đoi thành kiến trtic phần m ềm ............................ 137 5.5.3. Phân tích giao dịch thành kiến trúc phan mềm............................... 140 5.6. Chất lượng thiết kế kiến trúc phần mềm............................................... 142 5. <5. /. Một số tiêu chuẩn thiết ké kiến tritc phần mèm............................... 142 5.6.2. Các hướng dan thiết ké kiến trúc........................................................146 TÓM TẮT CHƯƠNG.......................................................................................147 CÂU HÒI CHƯƠNG 5 .................................................................................... 149 BÀI TẬP CHƯƠNG 5 ..................................................................................... 150 Chương 6. ĐẶC TÀ KIẾN TRÚC MỘT SỐ HỆ THỐNG ĐƯỢC THIẾT KẾ THEO HƯỚNG HIỆN ĐAI........................................................................... 151 6.1. Đặc tả kiến trúc hệ thống được thiết kế theo hướng phân tá n .......151 6.1.1. Sơ lược về hệ thống phân lán............................................................ 151
6.1.2. Tổ chức hệ thống iheo mạng địa phưưriịỉ....................................... 153 6.1.3. Tô chúc hệ IhốiiỊỊ theo kiến trúc Client-Server...............................154 6.1.4. Các đặc trưng cùa máy dịch vụ file vù kiến trúc Clienl-Server....157 6.1.5. Các thành phần cùa mô hình Client-Server...................................158 6.1.6. NhũriỊỊ dạng Hên tiến phô dụng cùa kiến trúc ( 'Henl-Server........158 6.1.7. Sự cân bằng giữa các yếu tố trong hệ phân lún.............................162
6.2. Đặc tả kiến trúc hệ thống dược thiết kế theo hướng đối tượng......163 6.2.1. Mô hình hóa kiểu Irúc hệ thống..........................................................163 6.2.2. 1’lĩãn lích kiến trúc.............................................................................. 166 6.2.3. Thiết ké kiến trúc................................................................................. 172 6.2.4. Kiến trúc đối tiạrngphân tán............................................................. 180
6.3. Đặc tà kiến trúc hệ thống được thiết kế theo hướng dịch v ụ ......... 191 6.3.1. Kiéu kiến trúc hệ thong đuxrc thiếí ké iheo hurnig dịch v ụ ...............191 6.3.2. Mô hình kiến trúc hướng dịch vụ....................................................... 192 6.3.3. Các nguyên íắc thièt kế kiến trúc hướng dịch v ụ ............................. 196
TÓM TAT CHƯƠNG....................................................................................199 CẢU HỎI CHƯƠNG 6 .................................................................................... 201 BÀI TẬP CHƯƠNG 6 ..................................................................................... 201
Chương 7. BẢO ĐẢM CHÁT LƯỢNG PHÀN MẺM................................... 202 7.1. Khái niệm bào đảm chất luợng.............................................................. 202 7.2. Mô hình chất lượng.................................................................................. 203
7.2.1. Các chuần đánh giá chất /ur/nịỉ sàn phẩm phàn mém.....................203 7.2.2. Mô hình chát luựng íronịỊ và chảI lượng ngoài...............................208 7.2.3. Mô hình chát ỉuụng về mặt sừdụnịỉ................................................. 208 7.2.4. Mô hình p/ĩâỉi cáp đặc tính................................................................209 7.2.5. Mô hình tiến trinh phần mèm............................................................ 209
7.3. Việc đo chất lượng................................................................................... 210 7.3.1. các chì liêu dành giá chaí lượng phần mèm................................... 210
7.3.2. Các chi liêu đánh giá cổ điển..............................................................211 7.3.3. Các chi tiêu đánh giá chất lượng phần mềm theo ISO 9126........ 211 7.3.4. Các chì tiêu đánh giá chất luợng phần mềm khác............................214 7.3.5. Quá tr ình phòng sạch...........................................................................214
7.4. Các hoạt động bảo đảm chất lư ợ n g ........................................................215 7.4.1. Thầm định và xác m inh....................................................................... 215 7.4.2. Hoạt động thực hiện kiếm thứ............................................................. 216 7.4.3. Quản !ỳ cấu hình phần m ềm ............................................................... 219 7.4.4. Các hoại động khác báo đàm chất lượng phần mềm....................... 220
7.5. Tiến trình triển khai bảo đảm chất lượng..............................................220 7.5.1. Khảo sá! nhu cầu...................................................................................221 7.5.2. 14p kế hoạch triển khai........................................................................ 221 7.5.3. Triển khai...............................................................................................223
TÓM TÁT CHƯƠNG....................................................................................... 228 CÂU HỎI CHƯƠNG 7 .....................................................................................229 BÀI TẬP CHƯƠNG 7 ......................................................................................230
Chương 8. KIẾM THỬ PHẢN MỀM...................................................................232 8.1. Chiến lược kiểm th ử ................................................................................. 232 H. 1. ì. Khái niệm chiến lược kiểm thứ............................................................232 8.1.2. Mô hình chiến lược tồng thể............................................................... 233 8.1.3. Một số chiến lược kiểm ihừbồ trạ..................................................... 234 8.2. Các mức kiểm thừ ......................................................................................236 8.2. ỉ. Kiểm thừ đơn vị....................................................................................237 8.2.2. Kiểm thừ tích hợp.................................................................................241 8.2.3. Kiểm thừ hệ thống............................................................................... 247 8.2.4. Kiếm thừ chấp nhận/hạp lệ................................................................. 251 8.3. Phương pháp và kỹ thuật kiểm thử ........................................................ 253 8.3. /. Kiếm thừ hộp trắng.......................................................................... 255
s.3.2. Kiêm thừ hộp đ e n ................................................................................263 H. 3.3. Kiếm thư ứiig dụng w eb........................................................ 267 8.4. Thiết kế các ca kiểm th ử ......................................................................... 269 8.5. Tiến trinh kiểm th ừ ...................................................................................271 8 6. Các công cụ kiểm th ừ ..............................................................................272 TÓM TÀT CHƯƠNG......................................................................................277 CẢU HỎI CHƯƠNG 8 ................................................................................... 278 BÀI TẬP CHƯƠNG 8 .....................................................................................279 Chương 9. NÂNG CÁP PHẢN M ỀM .................................................................282 9 1. Bảo tri phần m ềm .................................................................................... 282 9.1.1. Khái niệm về bao trì phàn m èm........................................................ 282 9.1.2. Tinh báo trì đưực................................................................................ 284 9.1.3. Dự đoán báo trì và dự đoán íhay đ ô i............................................... 285 9.2. Tiến trình nâng cấp phần m ềm .............................................................. 285 9.3. Tái kỹ nghệ hệ th ố n g .............................................................................. 288 9.3.1. Khái niệm lái kỹ nghệ hệ íhong.........................................................288 9.3.2. Tiến Ir ình lái kỹ nghệ phần m èm .......................................................294 TÓM TẤT CHƯƠNG......................................................................................305
CÂU HÒI CHƯƠNG 9 ................................................................................... 307 Chương 10 KỸ NGHỆ PHÂN MỀM HƯỚNG DỊCH v ụ .............................308 10.1. Kiến trúc hướng dịch vụ....................................................................... 308 10.1.1. Huớhịị tiếp cận dịch vụ....................................................................308 10.1.2. Các thảnh phần cùa mội kiến trúc huứn}Ị dịch v ụ ........................ 311 10.1.3. Các tinh chất cùa một hệ thống SOA..............................................313 10.2. Công nghệ dịch v ụ ................................................................................ 319 10.2.1. Nhận dạng kiều dịch vụ thích hụp..................................................319 10.2.2. Thiết kè dịch v ụ ................................................................................ 321 10.2.3. Các hoại động phút trien dịch v ụ ...................................................324
10.2.4. MỘI số công nghệ tiêu biểu xây dựng kiến trúc hệ thống theo hướng dịch VM................................................................................................. 324 10.3. Phát triển phần mềm bằng kỹ nghệ hướng dịch v ụ .......................... 331 ¡0.3.1. MộI số mô hình triển khai SOA......................................................... 331 10.3.2. Các nguyên tắc phát Iriển ứng đụng theo hướng dịch VII..............334 10.3.3. Vòng đời phát triển cùa dịch VM........................................................336 10.3.4. Các pha cơ bản xây dựng hệ thống SOA.........................................337 /0.3.5. Thiết kế và thực hiện luồng công việc .............................................339 /0.3.6. Các mức độ thực hiện kiến trúc hưởng dịch vti............................. 344 TÓM TẮT CHƯƠNG...................................................................................... 346 CÂU HÒI CHƯƠNG 10..................................................................................347 TÀI LIỆU THAM KHẢO......................................................................................349
14
LỜI NÓI DÀI)
Ngay từ năm 1980, trong tạp chi Business Week, dòng tiêu dề "Phần mềm - lực đièu khiên mới hay phản mèm đữ bicirc vào một thời đại" đã đánh dấu chủ đề đáng quan tâm cùa các tạp chí, báo hiệu cho một cách hiểu mới về tầm quan trọng cùa phần mềm máy tinh và dã đem đen những cơ hội và thách thức mới.
Công nghệ phần mèm (Software Technology) là tập hợp các kỹ thuật đế tạo ra phần mềm. Công nghệ phần mềm được xem như là cơ sở tin học. Tích hợp thèm vào công nghệ phần mềm các khía cạnh khác như là các tiến trinh sản xuất phần mềm theo quy tac, ký luật và có bài bản, quản lý và đào tạo con người,... tạo nên miền khoa học rộng hơn, đó là kỹ nghệ phần mèm (Software Engineering). Kỹ nghệ phần mềm hay công trinh học phẩn mềm không chi là việc tạo ra sản phẩm mà nó liên quan đến việc sản sinh ra sản phẩm một cách hiệu quả.
Đen nay, công nghệ phần mềm đã có sự tiến hóa nhanh chóng. Nhiều hướng phát triển đã nối tiếp nhau sinh ra và lan rộng, trong đó có thể kể ra như hướng cấu trúc, hướng đối tượng, hướng thành phần, hướng dịch vụ, điện toán đám mây. Vì vậy, thừ thách đối với kỹ sư phần mềm trở nên ngày càng cao để tạo ra phần mềm chất lượng cao, với những hạn chế về nguồn lực và phải tuân thù một lịch trình định trước.
Tri thức về công nghệ phần mềm hay rộng hơn là kỹ nghệ phần mềm là một hành trang không thể thiếu cùa người làm công nghệ thông tin vì tính thực tiễn và iý luận khoa học tuyệt vời của nó. Cách tiếp cận hướng tới thực hành của những nhà khoa học đi trước như Pressman, Sommerville,.. đang trường tồn và lan rộng
Giáo trinh này được soạn thảo nhằm mục đích cung cấp cho học viên cao học ngành công nghệ thông tin những kiến thức nâng cao về công nghệ phần mềm, bổ sung những kiến thức chuyên sâu hơn trong các giáo trình cơ sờ mức
15
đại học. Với những kiến thức mờ rộng này, các học viên có thể nâng cao kiến thức cơ sờ của minh, tăng kỹ năng thực hành làm phần mềm và ứng dụng công nghệ thông tin vào thực tiễn.
Giáo trình Cồng nghệ phần mềm nâng cao gồm 10 chương:
Chương I - Tổng quan về công nghệ phần mềm: trình bày về những nét chung nhất về công nghệ phẩn mềm.
Chiirmg 2 - Tiến trình phát triển phần mềm: trinh bày về các mô hình tiến trình phát triển phần mềm cũng như các hoạt động cùa tiến trình phát triển phần mềm.
Chirơng 3 - Đặc tà yêu cầu phần mềm và yêu cầu hệ thống: trình bày về các tiến trình xác định yêu cầu và các đặc tả yêu cầu hệ thống cũng như phần mềm.
Chương 4 - Đặc tà thiết kế: trinh bày về công nghệ thiết kế các phương diện quan trọng như dữ liệu, cấu trúc chương trình, giao diện, mô-đun xử lý. Chirơng 5 - Đặc là thiết ké kiến trúc: trình bày về các mô hình kiến trúc ứng dụng, một số phương pháp tạo kiến trúc tiêu biểu, tiến trình thiết kế kiến trúc hệ thống phần mềm, cách phân tích đặc tả yêu cầu phần mềm thành đặc tả kiến trúc phần mềm.
Chirmig 6 - Đặc tà kiến trúc mội sổ hệ thống đutrc thiết kế theo hirírnịỉ hiện đại: trình bày về đặc tả kiến trúc của một số hệ thống được thiết kế theo hướng hiện đại như hướng phân tán, hướng đối tượng, hướng dịch vụ.
Chương 7 - Báo đảm chất lượng phần mềm: trình bày về các vấn đề quan trọng trong việc đo chất lượng phần mềm.
Churrnịỉ 8 - Kiếm thừ phần mềm: trinh bày về các mô hình chiến lược kiểm thừ, các mức kiểm thử, các phương pháp và kỹ thuật kiểm thử, các phương án thiết kế ca kiểm thử, tiến trinh kiểm thừ cũng như các công cụ kiểm thử.
Churmg 9 - Năng cấp phản mềm: trình bày về các tiến trình nâng cấp phần mềm và tái kỹ nghệ.
16
ChuxrnịỊ 10 - Công nghệ phần mèm hướng dịch vụ: Irình bày về hướng tiếp cận, các thành phần, các tính chất cùa hệ thống có kiến trúc hướng dịch vụ, công nghệ dịch vụ, quy trình phát triển phần mềm bằng công nghệ hướng dịch vụ
Đối tượng thụ hưởng chinh cùa giáo trình này là các học viên cao học ngành Công nghệ thông tin của Truờng Dại học Công nghệ thông tin và Truyền thông (CNTT&TT) thuộc Dại học Thái Nguyên.
Giáo trình này có thế dùng làm tài liệu học tập và tham khảo cho học viên cao học các chuyên ngành khác cùa công nghệ thông tin, cho nghiên cứu sinh về công nghệ thông tin, cho các giáo viên, các nhà nghiên cứu và tất cả những ai muốn đi sâu vào lĩnh vực công nghệ phần mềm.
Nhóm tác giả xin chân thành cám ơn lãnh đạo Truờng Đại học CNTT&TT, Đại học Thái Nguyên đã tạo điều kiện thuận lợi nhất để hoàn thành giáo trình này. Nhóm tác giả cũng xin chân thành cám ơn PGS.TSKH. Nguyễn Xuân Huy, PGS.TS. Đoàn Văn Ban, PGS.TS. Bùi Thế Hồng, PGS.TS. Đặng Thành Phu, TS. Dương Chính Cương và các bạn đồng nghiệp đã cho chúng tôi nhiều ý kiến quý báu để hoàn thiện giáo trình này.
Mặc dù đã có rất nhiều cố gắng tham khảo các tài liệu trong ngoài nước, đúc rút kinh nghiệm từ nhiều năm tham gia các dự án và giảng dạy về công nghệ thông tin, giáo trình được biên soạn một cách cẩn trọng, công phu và tâm huyết, sứa chữa nhiều lần nhưng vẫn khó tránh khòi nhũng thiếu sót do tinh quá rộng và khó cùa vấn đề trình bày. Chúng tôi chân thành mong đợi những nhận xét, ý kiến của các bạn đồng nghiệp, học viên và độc giả để giáo trinh được hoàn thiện hơn.
Thư góp ý xin gửi về Phòng Đào tạo, Trường Đại học CNTT&TT, Đại học Thái Nguyên hoặc trực tiếp cho các tác giả theo địa chi: [email protected]
Xin trân trọng cảm ơn./.
CÁC TÁC GIẢ
17
Chương 1
TỎNG QUAN VÈ CÔNG NGHỆ PHÀN MÈM
Phần mềm đã trở thành phần lử chù chốt trong tiến hỏa cùa các hệ thống và sàn phẩm dựa trên máy tính. Công nghệ phần mềm là mộI chuyên ngành khoa học nghiên cứu tìm ra cách tốt nhất để làm ra các phần mềm đáp img các bài toán xử lý Un lừ đơn giản đến phức tạp sao cho chương trình nhận được phải đúng, đáng tin và hiệu quà lại dễ sử dụng.
Churmg này giới thiệu những đặc trung chung nhái về công nghệ phần mềm. Học viên cần nắm vững các khái niệm về phần mềm, công nghệ phần mềm, các phuưng pháp trong kỹ nghệ phần mềm, bàn thợ C.ASE, các tiêu chuẩn cùa một phần mềm lốt, những thách thức chính đối với công nghệ phần mềm, khái quát được một số hướng kỹ nghệ phần mềm điển hình.
1.1. Định nghĩa phần mềm
Đến nay, đã có nhiều định nghĩa về phần mềm, song định nghĩa sau đây cho chúng ta một khái niệm khá đầy chi về các thành phần phần mềm. Đinh nựhĩa Í91\
Phần mềm bao gồm một tập hợp các thành phần:
- Các tài liệu phân tích thiết kế, tài liệu hướng dẫn cài đặt và sử dụng phần mềm, tài liệu bảo trì, nâng cấp;
- Cơ sở dữ liệu (CSDL) được cài đặt trong môi truờng thích hợp (hệ quản trị dữ liệu);
- Các dòng lệnh (chương trình máy tính) khả thi trên máy tính, phù hợp với hệ quản trị dữ liệu đã cài đặt CSDL;
- Các tiện ích số hoá đi kèm hỗ trợ cho chương trinh máy tính. 18
Trong xã hội hiện đụi, phản mềm ỊỊÍữ vai trò ráí quan trụng. Phần mèm (Software -SW) bây ỊỊÌỜ đã giữ vị tri then chốt hon phần cútiỊỊ (HardWare HW): điều mấu chồi cho sự thành công cua nhiều /)(? íhồnịỉ dựa trên máy tinh. Kha HÚHỊỊ lưii trừ cua phàn cútig biêu thị cho tiềm Iiă/Iịỉ linh toán cua máy lính. Còn phần mem the hiện một cơ chế giúp chúng lu chế ngự và khui thác tiềm năng này. Hệ thống phần mèm hoạt động trùn các IIIÚV lính trơ tliành diều kiện sổnịỉ còn cua các máy linh đó.
Phần mèm lù nhân lố dúnh ỊỊÍá sự khác hiệt; điều này ihê hiện ơ cho: - Tíiilì đày đu và đúng thời hạn cua thôiiỊỉ Un do phan mèm cung cấp (vù cúc ( 'SU/, liên í/uan) dân đến sự khác biệt ỊỊiũa một công ly này vời các đoi thu cạnh tranh.
- Thiết kẻ và "tinh thân thiện" cua san phàm phần mèm cũng lùm khác biệi nỏ với các sản phàm cạnh íranh cú CÙHỊỊ chút năng luxmg tự khúc. Sự íhông minh vù chức năng do phần mèm đur/c nhúng Irong đó đưa ra thường làm khác biệt 2 sàn phẩm tiêu thụ hay công nghiệp tuxrng lự nhau. Như vậy, chinh phần mèm tạo ra sự khác biệt đó.
Vai trò cùa phần mèm không ngừng mơ rộng như Norman và Levy /23J dã viết: “Ngày nay, hoạt động tính toán có mặt khắp mọi nơi đã sản sinh ra một thế hệ những người ứng dụng thông tin sử dụng web để cung cấp một mạng lưới thòng tin bao phù liên kết mọi nhà, mọi công sờ đến các xa lộ ”. 1.2. Định nghla công nghệ phần mềm
Công nghệ phần mềm (Software technology) là tập hợp các công nghệ (bao gồm nhiều kỹ thuật) để tạo ra phần mềm, mỗi công nghệ có thể có nhiều kỹ thuật tạo chương trình khác nhau [9], Chắng hạn như Công nghệ hướng sự vật: một ỊỊÌải pháp đê thiét kế và lập trình phần mèm hiệu quá nhừ sứ dụng các
sự vật LỈur/c xây dwig lừ trước. Công nghệ Java: một giải pháp lạo ra phần mèm cù thê hoạt động trẽn các nền làng khúc nhau trên mạng máy tính. Có thê nói rằng, công nghệ phàn mèm !à lập hợp các phuung pháp, quy trình, kỹ năng, bí quyết, CÔHỊỊ cụ, />hurrnỊỉ tiện đế lùm ra sán phẩm lù phần mèm.
1.3. Sự khác biệt giữa công nghệ phần mềm với kỹ nghệ phần mềm Trong cuộc hội thào chính đầu Hên về chù để kỹ nghệ phần mem, Fritz Rauer đã đira ra định nghĩa han đầu về kỹ nghệ phần mềm.
Đinh nnhĩa:
Theo Naur p. [9,23], Kỹ nghệ phần mềm (Software Engineering) là việc thiết lập và sừ dụng các nguyên lý công nghệ đúng đắn để thu được phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực.
Nhiều định nghĩa khác về sau đều nhấn mạnh vàn các yêu cầu về một kỳ luật công nghệ trong việc phát triển. Parnas /2 3 / coi kỹ nghệ phần mèm là việc xây dựng phần mềm nhiều phiên bán bởi nhiều người. Ghezzi /2 5 / xem kỹ nghệ
phần mềm là mộ! lĩnh vực cùa khoa học máy linh. Hên quan đến xây dựng các hệ thống phần mềm vừa lởn vùa phirc lạp bởi một hay mội số nhóm kỹ sư. Sommerville ¡25] xác định kỹ nghệ phan mềm là lĩnh vực Hên quan đến lý thuyết, phương pháp và cỏrtỊỊ cụ dùng cho pháI triển phần mèm. Pressman /23/ định nghĩa kỹ nghệ phần mềm là bộ môn tích h