Bài giảng Công nghệ phần mềm - Chương 1: Mở đầu - Phan Huy Khánh
Bạn đang xem tài liệu "Bài giảng Công nghệ phần mềm - Chương 1: Mở đầu - Phan Huy Khánh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cong_nghe_phan_mem_chuong_1_mo_dau_phan_huy_khanh.pdf
Nội dung text: Bài giảng Công nghệ phần mềm - Chương 1: Mở đầu - Phan Huy Khánh
- Thời khóa biểu – Hệ Cao đẳng a Học Kỳ 1, 2012-2013 a Môn học : Công nghệ phần mềm Nhập môn Công nghệ Phần mềm Nhập môn Công nghệ Phần mềm V CBGD : PGS.TS. Phan Huy Khánh ((IntroductionIntroduction to Software Engineering) V Lớp ghép 112CNPM201+ 112CNPM1A V Ngày bắt đầu 20/08/2012 PGS.TS. Phan Huy Khánh V Phòng A202, tiết 1-4 khanhph29@gmail.com, phkhanh@dut.udu.vn Chương 1 M ở đđầầu “One picture is worth more than ten thousand words” Chinese Proverb 2/66 Mục đích môn học Công Nghệ Phần Mềm Năng lực và kiến thức yêu cầu a Môn học yêu cầu một số kiến thức tiên quyết : a Cung cấp kiến thức liên quan đến : a Môn học yêu cầu một số kiến thức tiên quyết : V Tin học đại cương V Các khái niệm cơ bản về lĩnh vực công nghệ phần mềm (CNPM) V Cơ sở Lập trình V Phương pháp, kỹ thuật, công cụ và nguyên tắc trong quá trình V Toán rời rạc – Đảm bảo cơ sở Toán học cho Tin học xây dựng/phát triển một sản phẩm phần mềm, hay tiến trình phần mềm (Software Process), một quy trình công nghiệp a Ngoài ra cần đọc thêm, học thêm về : V Các kỹ năng cơ bản trong quá trình triển khai tiến trình phần mềm V CNTT, internet nói chung V Khái niệm dự án, quản lý dự án nói chung, CNTT nói riêng V Khả năng tham gia xây dựng/phát triển một phần mềm cụ thể Khái niệm dự án, quản lý dự án nói chung, CNTT nói riêng trong khuôn khổ một dự án phần mềm (Software Project) V Những vấn đề kinh tế, quản lý xí nghiệp V Những vấn đề con người, xã hội, môi trường a Nội dung môn học trình bày : Những vấn đề con người, xã hội, môi trường V Các văn bản chính sách, pháp luật của Nhà nuớc V Các giai đoạn trong một tiến trình phần mềm nói chung a Một số kỹ năng mềm : V Tập trung vào các chủ đề cơ bản : Phân tích yêu cầu, thiết kế hệ thống, thử nghiệm V Tiếp cận (tự đọc, tự học), trình bày, diễn đạt vấn đề và kỹ thuật đặc tả V Khả năng điều hành các cuộc họp, thảo luận, làm việc nhóm V Khả năng đối phó sự cố, rủi ro 3/66 4/66 Đánh giá kết quả học tập Tài liệu tham khảo aYêu cầu : a Bài giảng PPT : [1] Nhập môn Công nghệ Phần mềm, V Hiểu nội dung trình bày trên lớp Hiểu nội dung trình bày trên lớp PGS.TS. Phan Huy Khánh, Khoa CNTT, Tr. ĐHBK, ĐHĐN V Thực hiện các bài tập về nhà Thực hiện các bài tập về nhà a Sách tiếng Anh : V Khả năng thực hành Khả năng thực hành [1] Roger S. Pressman. Software Engineering Apractitioner’s aTinh thần thái độ và năng lực học tập Approach. McGraw-Hill, Six Edition, 2005 (Ebook) V Nghe giảng, ghi chép [2] Ian Sommerville. Software Engineering. McGraw-Hill, 7th Edition, 2007(Bản dịch của Ngô Trung Việt) V Trả lời câu hỏi và đặt câu hỏi a Sách tiếng Việt : V Tham khảo tài liệu, truy cập internet [3] Lê Đức Trung. Công Nghệ Phần Mềm. V Tham gia học nhóm, tập thảo luận và thuyết trình Tham gia học nhóm, tập thảo luận và thuyết trình Nhà XB Khoa Học Kỹ thuật, Hà Nội 2002 V Khả năng tìm hiểu những vấn đề thực tiễn và ứng dụng CNTT [4] Lương Mạnh Bá. Cơ Sở Công Nghệ Phần Mềm aKiểm tra giữa kỳ, cuối kỳ : Nhà XB Khoa Học Kỹ thuật, Hà Nội 2010 V Thi viết (60 phút) a Internet : Lủ khủ với từ khóa tìm kiếm lqđ công nghệ phần mềm 5/66 6/66 Nhập môn CNPM - Ch1. Mở đầu1
- Nội dung môn học Chương 1 Mở đầu Chương 1 Mở đầu a Một số khái niệm và thuật ngữ Chương 2 Phân tích hệ thống a Các phương diện của công nghệ phần mềm a Những nội dung cơ bản của CNPM Chương 3 Thiết kế hệ thống a Tiến trình phần mềm Chương 4 Kiểm thử phần mềm Chương 4 Kiểm thử phần mềm a Kỹ thuật thế hệ 4 Chương 5 Đặc tả phần mềm 7/66 8/66 Computer = Hardware + Software Computer Architecture a Tổ chức hệ thống theo lớp, nhiều mức trừu tượng Applications Software Operating System Software Tools + Programs Enviroment (Compilers, ) Firmware Hardware/Software Interface Hardware/Software Interface Processor Memory I/O Data & Control Bus Hardware Hardware Circuits digitaux Circuits VLSI LayoutLayout Description Description 9/66 10/66 Phần mềm (Software) Ví dụ phần mềm a Phần mềm, còn được gọi là (đgl) nhu liệu, là : a Chức năng của một phần mềm : V Tập hợp các chương trình, bao gồm, hay tập hợp các câu lệnh V Làm công cụ trợ giúp người sử dụng (NSD) thực hiện công việc của mình trong một lĩnh vực chuyên môn/nghề nghiệp trên máy tính V Được viết bằng một, hoặc nhiều ngôn ngữ lập trình V Có chất lượng hiệu quả, tốt hơn (một cách tự động) V Thực hiện (chạy) theo một trật tự xác định (thuật toán), so với công việc thủ công sử dụng các đối tượng dữ liệu có tổ chức a Phần mềm Quản lý giáo vụ trong Giáo dục & Đào tạo : V Tự động thực hiện một số chức năng hoặc giải quyết một bài toán/vấn đề nào đó V NSD làm công tác giáo vụ : a Đặc điểm của phần mềm là tính trừu tượng và vô hình Xếp lớp, xếp ngành, lập thời khoá biểu Theo dõi, quản lý kết quả học tập Từ những năm 1980, V NSD là giảng viên : pphhần mềm đưđượợcc bbàyày Đăng ký giảng dạy bbánán như llàà s sản phẩm Xem thời khoá biểu V NSD là Sinh viên : Đăng ký học phần Xem điểm, kết quả học tập 11/66 12/66 Nhập môn CNPM - Ch1. Mở đầu2
- Công nghệ phần mềm (CNPM) là gì ? Bách khoa toàn thư mở Wikipedia a Công nghệ (kỹ nghệ) phần mềm : a Từ điển Computer Dictionary của Microsoft Press®, 1994 : a Công nghệ (kỹ nghệ) phần mềm : Vận dụng thực tế những kiến thức khoa học trong V Software Engineering : The Design and Development thiết kế, xây dựng phần mềm cũng như tài liệu liên quan of Sofware (Computer Program), trong quá trình phát triển, hoạt động và bảo dưỡng from Concept through Execution and Documentation a Theo Edsger Dijkstra : a Từ điển Larousse 1996 định nghĩa chi tiết hơn : Khi máy tính điện tử chưa xuất hiện, V Là tập hợp các phương pháp, mô hình, kỹ thuật, công cụ việc lập trình chưa có khó khăn gì cả và thủ tục xây dựng một Sản Phẩm Phần Mềm (SPPM) Khi đã xuất hiện một vài chiếc máy tính với chức năng kém thì lập trình đã gặp một vài khó khăn nhỏ V Các giai đoạn xây dựng SPPM : đặc tả (Specifiction), thiết kế (Design), lập trình (programming), thử nghiệm (Testing), Giờ đây khi chúng ta đã có những chiếc máy tính khổng lồ sửa sai (Debugging), cài đặt (Setup) để đem vào ứng dụng thì những khó khăn đấy đã trở nên rất lớn (Application), bảo trì (Maintenance) và lập hồ sơ Như vậy, ngành công nghiệp điện tử đã không giải quyết (Documentation) đóng gói SP khó khăn nào mà họ chỉ tạo ra những khó khăn mới Họ đã tạo ra khó khăn chính là sử dụng sản phẩm của họ 13/66 14/66 Vai trò của Công nghệ Phần mềm Đặc điểm của CNPM a CNPM : a Sự khác biệt giữa CNPM và Khoa học Máy tính (KHMT) V Một ngành không thể thiếu được V KHMT nghiên cứu lý thuyết và những vấn đề cơ bản về CNTT trong lĩnh vực CNTT&TT (ICT) V Khi CNPM phát triển mạnh mẽ, các lý thuyết của KHMT vẫn V Càng ngày càng có nhiều hệ thống khác nhau, không đủ để đóng vai trò là nền tảng hoàn thiện cho CNPM trong mọi lĩnh vực, được kiểm soát bởi phần mềm không đủ để đóng vai trò là nền tảng hoàn thiện cho CNPM a Xu thế ngày nay : a Sự khác biệt giữa CNPM và Công nghệ Hệ thống (CNHT) V Con người có thể sản xuất các hệ thống PM lớn và hữu ích V CNHT (hay kỹ nghệ hệ thống) liên quan tới mọi khía cạnh là nhờ phần lớn vào sự phát triển của CNPM của quá trình phát triển hệ thống dựa máy tính bao gồm : V Mọi quốc gia phát triển đều phụ thuộc chủ yếu phần cứng, phần mềm, và công nghệ xử lý vào các hệ thống PM có chất lượng V Kỹ sư hệ thống phải thực hiện việc đặc tả hệ thống, thiết kế V Xây dựng, bảo trì một hệ thống PM hiệu quả là yêu cầu kiến trúc hệ thống, tích hợp và triển khai hệ thống cần thiết đối với nền kinh tế toàn cầu và của từng quốc gia 15/66 16/66 Mục đích của CNPM Chất lượng bên ngoài của SPPM a Mục đích của CNPM là sản xuất phần mềm có chất lượng a Những yếu tố chất lượng bên ngoài của SPPM a Chất lượng phần mềm : chủ yếu phục vụ cho người sử dụng (NSD) V Không là một khái niệm đơn giản a Chất lượng bên ngoài gồm : V Bao gồm nhiều yếu tố phức hợp V Tốc độ nhanh a Người ta thường đánh giá theo hai kiểu chất lượng : V Chạy ổn định V Có tính dễ hiểu, dễ sử dụng (tiếng Anh, tiếng Việt) V Những yếu tố chất lượng bên ngoài (mục đích cuối cùng, Có tính dễ hiểu, dễ sử dụng (tiếng Anh, tiếng Việt) chẳng hạn chạy nhanh, dễ hiểu, dễ sử dụng ) V Có tính dễ thích nghi với những thay đổi (tính mở rộng) V Những yếu tố chất lượng bên trong (chỉ những người làm Tin V Có tính công thái học (Ergonomy, Human Factor) học chuyên nghiệp mới biết được, chẳng hạn có tính cấu V v.v trúc, dễ đọc, dễ bảo trì phát triển ) a Yếu tố chất lượng bên trong là mấu chốt để đạt được những yếu tố chất lượng bên ngoài 17/66 18/66 Nhập môn CNPM - Ch1. Mở đầu3
- Chất lượng bên trong của SPPM Các yếu tố chất lượng khác a Những yếu tố chất lượng bên trong của một SPPM a Hiệu quả đối với nguồn tài nguyên của MTĐT như : (cho những người làm Tin học chuyên nghiệp) là : V Bộ xử lý V Tính đúng đắn Tính đúng đắn V Bộ nhớ các loại Khả năng thực hiện chính xác công việc đặt ra V Các thiết bị CNNT&TT V Tính bền vững a Tính thích nghi : Có thể hoạt động trong những điều kiện bất thường V Dễ sử dụng V Tính có thể mở rộng V Khả năng dễ sửa đổi để thích nghi với những thay đổi mới Dễ chuyển đổi (không phụ thuộc vào cấu hình phần cứng) V Tính sử dụng lại V Dễ kiểm chứng Khả năng sử dụng lại toàn bộ hay một phần của hệ thống cho V An toàn (được bảo vệ quyền truy nhập) những ứng dụng mới V v.v V Tính tương thích Có thể dễ dàng kết hợp với các sản phẩm phần mềm khác 19/66 20/66 Phân loại phần mềm Phần mềm hệ thống aPhần mềm (PM) máy tính là thuật ngữ chung aChức năng dùng để vận hành máy tính : chỉ các chương trình chạy trên máy tính V Giúp điều khiển phần cứng máy tính, các thiết bị chuyên dụng V Là nền tảng cho các ứng dụng khác nhau hoạt động aCó nhiều cách phân loại PM, nhưng thường được phân loại aVí dụ : theo phương thức hoạt động, gồm 4 loại : V Các hệ điều hành máy tính Windows XP, Linux, Unix V Phần mềm hệ thống (System SoftWare) V Các thư viện liên kết động DLL (Dynamic Linked Library) V Phần mềm ứng dụng (Application SoftWare) V Các trình điều khiển (Driver) V Phần sụn/dẻo (FirmWare) và BIOS V Phần mềm tiện ích (Utility SoftWare) V Phần mềm nhúng (Embedded Software) MS-DOS Windows Linux Unix Mac 21/66 22/66 Phần mềm ứng dụng Phần mềm tiện ích aChức năng dùng để thực hiện một hay nhiều tác vụ nào đó aChức năng dùng để quản lý và tối ưu hóa mọi máy tính trên máy tính một cách hiệu quả, nhanh chóng và dễ dàng một cách hiệu quả, nhanh chóng và dễ dàng aVí dụ : aVí dụ : V Phần mềm văn phòng (Microsoft Offices, Lotus 1-2-3, FoxPro) V Các ngôn ngữ lập trình (Programming Languages) V Phần mềm đa phương tiện (Multimedia Software) V Các phần mềm chuyển dịch mã (Translator) : V Phần mềm doanh nghiệp BI, ERP, CRM biên dịch (Compiler), thông dịch (Interpretor) V Phần mềm giáo dục, trợ giúp giảng dạy (e-Learning) V Quản lý đĩa cứng (Disk Defragmenters) V Phần mềm Cơ sở dữ liệu (CSDL) và quản trị CSDL V Quản lý hiện trạng (System Profilers) V Phần mềm đồ họa (Graphics Software), thiết kế (CAD, Designers ) V Phòng chống virus, harker (Virus Scanners) V Các hệ chuyên gia, trí tuệ nhân tạo, người máy, v.v V Nén giải nén DL (Compression) V Phần mềm trò chơi (Games) V Tối ưu hệ thống (Registry Cleaners) 23/66 24/66 Nhập môn CNPM - Ch1. Mở đầu4
- Phần mềm nhúng Ví dụ phần mềm nhúng Hay hệ thống nhúng (Embedded System) : a Là những thiết bị cầm tay nhỏ gọn : a Phục vụ giải quyết các bài toán chuyên dụng V Đồng hồ kĩ thuật số trong nhiều lĩnh vực khác nhau : V Máy chơi nhạc MP3 V Công nghiệp a Hoặc là những sản phẩm lớn như : V Đèn giao thông V Tự động hoá V Bộ kiểm soát hoạt động trong nhà máy V Điều khiển V Các hệ thống kiểm soát máy năng lượng hạt nhân V Quan trắc V Dự báo, cảnh báo thời tiết, mưa bão, động đất, sóng thần V Truyền tin a Mục đích : V Giúp các sản phẩm điện tử có chức năng hoàn hảo, phục vụ hiệu quả các nhu cầu của NSD với độ an toàn, bảo mật cao 25/66 Phần mềm điều khiển mạch LED Robot của NASA 26/66 Đặc điểm phần mềm nhúng Thuộc tính của SPPM a Đặc điểm của các hệ thống nhúng là : a Thuộc tính của một SPPM biến đổi tùy theo phần mềm : V Được tích hợp vào trong các IC của thiết bị điện tử V Xuất hiện từ khi được cài đặt và được đưa ra dùng V Có khả năng tự trị, chạy trong các thiết bị V Không bao gồm các dịch vụ được cung cấp kèm theo mà không cần hệ điều hành a Một số thuộc tính quan trọng gồm: V Hoạt động ổn định V Khả năng bảo trì để thỏa mãn yêu cầu của khách hàng V Có tính năng tự động hoá cao V Khả năng tin cậy, an toàn và bảo mật của phần mềm không tạo ra a Ưu điểm : thiệt hại vật chất hay kinh tế trong trường hợp hư hỏng V Nhỏ gọn V Độ hữu hiệu không thể phí phạm các nguồn tài nguyên như bộ nhớ và các chu kì vi xử lý V Dễ cài đặt, đóng gói V Khả năng sử dụng, có một giao diện tương đối dễ cho người dùng V Có thể sản xuất hàng loạt và có đầy đủ hồ sơ về phần mềm Network Embeded Module 27/66 28/66 Tính chất của CNPM/SPPM Tính cạnh tranh của PM a CNPM : a Cạnh tranh của PM (Software Competitiveness) V Tạo ra SPPM “vật chất” thấy được, sao chép được V Mỹ, Tây Âu và Đông Âu ngày nay có công nghiệp PM ổn định nhưng không “sờ thấy” được V Châu Á có các quốc gia có nền CNPM phát triển : V Hạ tầng cơ sở chủ yếu là điện và viễn thông Người ta có thể làm việc từ xa, làm việc “tại gia”, mọi lúc mọi nơi Nhật Bản, Hàn quốc, Singapore, Ấn Độ, Trung Quốc V Lĩnh vực luôn đòi hỏi tính năng động, tính sáng tạo và khôn ngoan a Bản chất trí tuệ của cạnh tranh : a SPPM : Innovative, Vital and Successful V Không có “hàng giả, chỉ bị sao chép “lậu”, “ăn cắp” V Không bị “mòn cũ”, nhưng luôn được “mới hơn” qua phiên bản Software Product = Human Thought V Được phân phối và tiêu thụ theo nhiều phương thức, có thể “vượt biên” không qua khâu kiểm tra Hải quan Need and HQP (High Qualified Personal) V Không phụ thuộc và không bị ảnh hưởng (hoặc chỉ bị rất ít) Human Resource Need for the VN IT Industry các yếu tố địa lý, khí hậu, môi trường V Mở ra các thị trường rất lớn. đầy tiềm năng, cạnh tranh quyết liệt 29/66 30/66 Nhập môn CNPM - Ch1. Mở đầu5
- Tóm tắt quá trình tiến hóa của SPPM Lịch sử công nghệ phần mềm Thời kỳ đầu tiên Xử lý theo lô (Batch processing) Phân 1950 - 1960 Phần mềm được viết theo đơn đặt hàng Tính toán Thời gian thực PC, WAN, MAN tích Quản lý nhỏ LAN, CSDL Internet Đa người dùng (Multiusers) yêu cầu Thời kỳ thứ hai Thời gian thực (Real time) 1960 - 1970 Cơ sở dữ liệu (Database) Ngôn ngữ Ngôn ngữ hình thức Hướng đối tượng Phần mềm sản phẩm Đặc tả Đặc tả Vào/Ra, Tiến trình, vòng đời PM thông thường Hệ thống xử lý phân bổ (Distributed processing system) Dòng dữ liệu CASE Thời kỳ thứ ba Thông minh (Intelligence) 1970 - 1990 Phần cứng giá thành hạ Lập trình cấu trúc Lập trình HĐT Thiết kế Thuật toán Hiệu quả tiêu thụ Cấu hình hệ thống Giao thức, giao diện Hệ thống để bàn (Desktop - Personal - Notebook computers) Lập trình hướng đối tượng (Object oriented programming) Phần mềm nhỏ, Hệ điều hành Lập trình trực quan (Visual programming) Phần mềm dùng lại Thời kỳ thứ tư Xử lý theo lô Hệ QTCSDL Hệ chuyên gia (Expert system) Cài đặt Phần mềm đóng gói 1990 trở đi trên máy lớn Hệ phân tán Mạng thông tin toàn cầu (Worldwide communication network) Xử lý song song (Paralell processing) 1955 1975 1985 2005 31/66 32/66 Phát triển phần mềm Nguyên lý, phương pháp, kỹ thuật và công cụ a Phát triển phần mềm trong khuôn khổ một dự án Tin học : a Để xây dựng một HTPM, người ta cần nguyên lý, phương V Nhiều người lập trình tham gia, được chia thành nhóm pháp, kỹ thuật và công cụ (tương tự nấu một món ăn) V Mỗi nhóm phụ trách giải quyết một phần của dự án V Nguyên lý : tuân theo các quy tắc, mục đích Ví dụ : các quy tắc vế vệ sinh, an toàn thực phẩm V Người phụ trách dự án phân bổ công việc cho từng nhóm Ví dụ : các quy tắc vế vệ sinh, an toàn thực phẩm V Kỹ thuật : cách thức hay thủ thuật thực hiện công việc V Các nhóm phải đảm bảo mối liên lạc và chia sẻ thông tin Kỹ thuật : cách thức hay thủ thuật thực hiện công việc Ví dụ : Kỹ thuật nấu nướng, chế biến hay bày món ăn V Kiểm tra tiến trình phát triển của dự án V Phương pháp hay công nghệ : tập hợp các kỹ thuật V Kiểm tra chất lượng của SPPM khi hoàn tất Ví dụ : Phương pháp nấu món “cá lóc hấp muối” a Bản chất phát triển phần mềm : V Công cụ : các phương tiện và nguồn tư vấn V Không chỉ là việc lập trình thuần tuý Ví dụ : xoong, nồi, bát đĩa hay thực phẩm V Là triển khai các giai đoạn theo các quan điểm khác nhau a Khái niệm tiến trình được hiểu là các giai đoạn triển khai V Hiện nay thường sử dụng quan điểm theo lớp a Tính thực dụng của HTPM : khả năng ứng dụng thực tiễn 33/66 34/66 Mô hình hoá phương pháp CNPM Mục tiêu cuả các dự án CNPM Khả năng thay Phục vụ cho đổi dễ dàng Chấtlượng/Công việc Qu nlý Tools ả Khái quát hoá và Chấtlượng/ được áp dụng Công việc Methodologies Quảnlý Được xây dựng Điểmtối ưu Rủiro dựa trên Methods and Technic Quảnlý Quảnlý Điểmcânbằng Chi phí Tiến độ Principles Chi phí Thờigian 35/66 36/66 Nhập môn CNPM - Ch1. Mở đầu6
- Các giai đoạn tiến trình phần mềm Giai đoạn xác định a Gồm 3 giai đoạn chính : aTrả lời câu hỏi liên quan đến : V Giai đoạn xác định V Dữ liệu (thông tin) cần xử lý V Giai đoạn phát triển V Mục đích chức năng và môi trường phát triển V Hai loại câu hỏi : V Giai đoạn bảo trì Là cái gì ? Là gì ? (What?) a Các giai đoạn trong tiến trình phần mềm thường sử dụng Khi nào ? (When?) các công cụ đặc tả (Specification) : aGiai đoạn xác định gồm 3 bước : V Đặc tả phi hình thức (Informal Specification) V Phân tích hệ thống/ Phân tích hiện trạng V Đặc tả hình thức (Formal Specification) V Lập kế hoạch dự án phần mềm Reuse? Design Models Implementations V Phân tích yêu cầu thực tiễn Requirements Design Coding Testing Deployment 37/66 38/66 Giai đoạn phát triển Giai đoạn bảo trì a Giai đoạn phát triển trả lời câu hỏi : a Giai đoạn bảo trì tập trung vào các thay đổi (Modify) V Làm như thế nào ? (How?) a Có 3 kiểu thay đổi : a Gồm 3 bước : V Sửa đổi : V Thiết kế phần mềm : Dù phần mềm có chất lượng tốt, vẫn tồn tại những khiếm Sử dụng các công cụ đặc tả khuyết từ việc sử dụng của khách hàng (NSD) và lập trình cấu trúc Bảo trì sửa đổi làm thay đổi phần mềm, khắc phục khiếm khuyết V Chọn công cụ hoặc các ngôn ngữ lập trình V Thích nghi : để tiến hành viết chương trình Nhằm làm phần mềm thích nghi với môi trường phần cứng V Kiểm thử (phát hiện sai sót, nhầm lẫn ) Ví dụ CPU, OS, các thiết bị ngoại vi V Nâng cao : Khách hàng tìm ra những chức năng phụ của phần mềm Bảo trì hoàn thiện để mở rộng phần mềm ra ngoài những chức năng vốn có 39/66 40/66 Chu kỳ sống của phần mềm Chu kỳ sống kiểu cổ điển a Chu kỳ sống, hay vòng đời (Life Cycle), của phần mềm là a Chu kỳ sống kiểu cổ điển theo mô hình thác nước cách thức triển khai, vận dụng thực tiễn một tiến trình (“Waterfall” Model) gồm các giai đoạn như sau : phần mềm để có được SPPM V Tìm hiểu và phân tích các yêu cầu a Có nhiều mô hình khác nhau để thể hiện chu kỳ sống, (RAD - Requirements analysis and definition) thường có 4 loại : V Thiết kế hệ thống và phần mềm V Mô hình thác nước kiểu cổ điển (SSD - System and software design) V Mô hình chữ V, hay chữ W V Cài đặt và kiểm thử từng phần V Mô hình xoắn trôn ốc (IUT - Inplementtation and Unit testing) V V Mô hình kiểu bản mẫu V Tích hợp và kiểm thử hệ thống (IST - Integrgion and system testing) V Khai thác và bảo trì (DEM - Development and Maintenance) 41/66 42/66 Nhập môn CNPM - Ch1. Mở đầu7
- Mô hình kiểu thác nước Đánh giá mô hình thác nước Tìm hiểu và phân M a Điểm mạnh của mô hình : Môô tíchtích cáccác yêuyêu ccầu h hìn ình V h c cổ V Phản ảnh thực tế công nghệ nói chung ổ đ Walterfall 15% điểi n Thiếtt kkế hệ ththống ển model V Vẫn là mô hình cơ sở cho đa số các hệ thống vàvà ph phần mềm phát triển phần mềm và phần cứng a Điểm yếu của mô hình : 25% LLập trình V Không linh hoạt 20% 40% Tích hợp và kiểm V Các giai đoạn của dự án ththử hệ ththống bị chia ra thành những phần thực hiện riêng biệt V Hệ thống phân phối đôi khi không dùng được Khai thác và vì không thỏa mãn được yêu cầu của khách hàng bảo trì MôMô hhìnhình ccảải i titiếếnn ccóó quay quay luilui a Mô hình cải tiến : tại mỗi giai đoạn có thể quay lui 43/66 44/66 Mô hình thác nước cải tiến chữ V Một mô hình chữ V khác Tài liệu Kiểm tra mô tả dự án bàn giao SP Phân tích NSD yêuyêu ccầu chchấp thuận Thiếtt kkế Kiểm thử hệ ththống tíchtích hhợp Thiếtt kkế Kiểm thử chchương trình đơn thể LLập trình 45/66 46/66 Mô hình phát triển PM kiểu xoắn ốc Đánh giá mô hình xoắn ốc a Trong mô hình xoắn ốc, quy trình phát triển phần mềm được biểu diễn như một vòng xoắn ốc Spiral a Các pha trong quy trình phát triển xoắn ốc bao gồm : Model V Xác định mục tiêu cho từng pha của dự án V Đánh giá các khả năng rủi ro và thực hiện các hành động để giảm thiểu rủi ro V Lựa chọn mô hình để phát triển xây dựng hệ thống V Lập kế hoạch thực hiện pha tiếp theo 47/66 48/66 Nhập môn CNPM - Ch1. Mở đầu8
- Mô hình kiểu bản mẫu Một mô hình vòng đời khác Bắt đầu Prototyping Tập hợp Model Kết thúc yêu cầu và làm mịn Sản phẩm Thiết kế bàn giao nhanh khách hàng Làm mịn Xây dựng bản mẫu bản mẫu Đánh giá của khách hàng về bản mẫu 49/66 50/66 Ví dụ mô hình phát triển PM nhúng Các phương pháp CNPM a Phương pháp CNPM bao gồm : V Các mô hình hệ thống V Các ký pháp, quy tắc, hướng dẫn thiết kế V Quy trình để xây dựng phần mềm một cách dễ dàng, đảm bảo chất lượng cao và chi phí hiệu quả Technology Quality a Một số phương pháp CNPM đã được đề xuất : V Phân tích hướng cấu trúc : Tập trung xác định các chức năng cơ bản của hệ thống V Phương pháp hướng đối tượng Tập trung định nghĩa các đối tượng, các lớp đối tượng và sự cộng tác giữa chúng a Kỹ thuật thế hệ 4 : phương pháp CASE 51/66 52/66 Kỹ thuật thế hệ 4 : CASE Các thành phần của CASE a Kỹ thuật thế hệ 4 (4th Generation Technology) a CASE thường có các thành phần : V Sử dụng các công cụ phần mềm CASE V Ngôn ngữ phi thủ tục (Non Procedural Language) để truy cập cơ sở dữ liệu, chẳng hạn SQL (Computer Aded for Sofware Engineering) phục vụ tiến trình phần mềm V Bộ sản sinh báo cáo (Report Generator) V Bộ thao tác dữ liệu V CASE tự động sản sinh mã chương trình gốc theo nhu cầu của người phát triển V Bộ tương tác và thiết kế màn hình V Bộ sinh chương trình (Code Generator) a Có hai loại CASE : V Bảng tính V Upper-CASE : trợ giúp đặc tả yêu cầu, thiết kế V Các công cụ đồ họa V Lower-CASE : trợ giúp lập trình, gỡ lỗi và kiểm thử 53/66 54/66 Nhập môn CNPM - Ch1. Mở đầu9
- Sử dụng mô hình kỹ thuật thế hệ 4 Tích hợp các kỹ thuật a Nhằm tăng cường tính tối ưu trong phát triển phần mềm, người ta có xu hướng tích hợp các kỹ thuật cổ điển, xoáy tròn ốc và 4GT đã nêu Tập hợp yêu cầu TTậậpp hhợợp,p, hihiểểuu cáccác yêuyêu ccầầuu banban đầđầuu Chiến lược PhânPhân tíchtích yêuyêu ccầầuu LàmLàm bbảảnn mmẫẫuu 44 GTGT Mô hình xoáy tròn ốốcc thithiếtt kkế ThiThiếếtt kkếế Cài đặtt ssử Bảảnn mmẫẫuu vòngvòng ththứ nn dụng 4 GL 44 GTGT Mã hóa Kiểm thử 44 GTGT Mô hình vòng thứ nn Kiểểm thử Hệệ ththốốngng hohoạạtt độđộngng Bảảoo trìtrì 55/66 56/66 Các chi phí trong CNPM Bản chất của chi phí CNPM a Chi phí xây dựng SPPM, sử dụng PM chiếm một phần GDP a Chi phí biến đổi tuỳ thuộc vào : đáng kể ở tất cả các nước phát triển : V Từng loại hệ thống được xây dựng V Chiếm chi phí lớn hơn của cả hệ thống máy tính nói chung V Các yêu cầu về đặc điểm của hệ thống : V Trên máy PC thường lớn hơn chi phí phần cứng Hiệu năng của hệ thống V Chi phí bảo trì lớn hơn chi phí xây dựng PM : Độ tin cậy của hệ thống V Đối với chi phí xây dựng PM : a Việc phân bổ chi phí phụ thuộc vào Xấp xỉ 60% chi phí là chi phí xây dựng mô hình phát triển hệ thống được sử dụng 40% là chi phí kiểm thử a Đối với những PM làm theo yêu cầu của khách hàng, chi phí mở rộng thường vượt quá chi phí xây dựng 57/66 58/66 Thách thức đối với CNPM Tính chuyên nghiệp và đúng quy tắc a CNPM trong thế kỷ 21 phải đối mặt với rất nhiều thách thức a Quy trình xây dựng PM : a Người ta phải có giải pháp cụ thể với mỗi thách thức V được thực hiện trong một môi trường chuyên nghiệp a Nguyên tắc : V đòi hỏi tuân thủ các nguyên tắc một cách chính xác V Không đồng nhất : Không đồng nhất : a Kỹ sư (hay chuyên gia, cán bộ) PM : Phát triển các kỹ thuật xây dựng PM để giải quyết sự không V Phải có trách nhiệm trong công việc, đồng nhất về môi trường thực hiện và nền tảng hạ tầng không đơn thuần chỉ là ứng dụng kỹ thuật V Chuyển giao : V Có thái độ ứng xử trung thực Phát triển các kỹ thuật nhằm dẫn tới việc chuyển giao PM tới NSD nhanh hơn V Có cách làm việc chuyên nghiệp và đúng quy tắc V Độ tin cậy : Phát triển các kỹ thuật để chứng minh rằng PM được NSD tin tưởng 59/66 60/66 Nhập môn CNPM - Ch1. Mở đầu10
- Một số nguyên tắc cần thiết cho kỹ sư PM Đạo đức CNPM a Kỹ sư, người phát triển PM : a Đạo đức và hành động chuyên nghiệp của CNPM V Cần có sự tin cẩn và uy tín từ nhân viên và khách hàng (Software Engineering Code Of Ethics and Professional Practice) V Có năng lực chuyên môn nhưng không nên nhận những công V Kĩ sư PM tận tụy hết mình để cho việc phân tích, đặc tả, việc vượt quá khả năng của mình thiết kế, phát triển, kiểm thử, và bảo trì phần mềm V Quan tâm đến các tài sản trí tuệ được bảo hộ như : bằng sáng chế, quyền tác giả V Kĩ sư PM trở thành một nghề nghiệp có ích a Kỹ sư PM không nên : và đáng trân trọng V Lấy kỹ năng của mình để gây bất lợi, V Kĩ sư PM làm việc (và sống) với sự tận tâm vì sức khỏe, làm ảnh hưởng tới người khác sự an toàn và sự thịnh vượng của xã hội V Lạm dụng máy tính : làm những việc tầm thường (chơi game, chat, lướt web, sử dụng máy của người khác ) V Mỗi người làm PM cần tuân thủ Tám Nguyên Tắc ACM : V Gay tác hại nghiêm trọng XÃ HỘII THÂN CHỦ SSẢN PHẨM ĐÁNH GIÁ (làm hư hỏng HT, phát tán virus, hacker ) QUẢN LÝ NGHỀỀ NGHIỆỆPP ĐỒNG NGHIỆỆPP BẢN THÂN 61/66 62/66 Giải thích các nguyên tắc 1 4 Giải thích các nguyên tắc 5 8 a XÃ HỘI a QUẢN LÝ V Kĩ sư PM hành động vì lợi ích chung của công chúng V Các nhà quản lý và các nhà lãnh đạo kĩ nghệ PM cần thực hiện và phát triển phương thức tiến hành công việc quản lý a NGƯỜI SỬ DỤNG LAO ĐỘNG (thân chủ) phát triển PM một cách có đạo đức V Kĩ sư PM làm việc vì lợi ích của người sử dụng lao động, a NGHỀ NGHIỆP và nhất quán với các lợi ích của cộng đồng V Người làm PM luôn hướng tới sự thống nhất giữa vị trí nghề a SẢN PHẨM nghiệp và lợi ích cộng đồng V Kỹ sư PM bảo đảm SPPM làm ra và các thay đổi có liên quan a ĐỒNG NGHIỆP đáp ứng các tiêu chuẩn nghề nghiệp cao nhất có thể V Người làm PM cần đối xử công bằng và hỗ trợ đồng nghiêp a ĐÁNH GIÁ a BẢN THÂN V Kĩ sư PM duy trì tính chính trực và tính độc lập V Người làm PM không ngừng nâng cao trình độ chuyên môn trong các đánh giá chuyên môn và phát triển cách hành nghề một cách có đạo đức 63/66 64/66 Tương lai của công nghệ phần mềm Thực chất tiến trình sản xuất PM ! Hội nghị Quốc tế về CNPM (ICSE - International Conference on Software Engineering) dự kiến hai chủ đề quan trọng trong tương lai của CNPM : aLập trình định dạng (Aspect-Oriented Programming) : 1. Người đặt hàng 2. Thiết kế 3. SPPM của V Mô tả cách ứng xử các đối tượng và hàm trong một tình huống cụ thể Ví dụ : Công ty Công viên của chủ trì đề tài người lập trình V Sử dụng công cụ xử lý các yêu cầu không liên quan đến chức năng thực tế của phần mềm aPhát triển phần mềm linh hoạt : V Khả năng thoả mãn các nhu cầu thay đổi và sự cạnh tranh của thị trường PM một cách nhanh chóng V Các quá trình cồng kềnh, nặng về hồ sơ như TickIT, CMM và ISO 9000 4. Sau khi sửa sai với 5. Triển khai 6. Ước mơ sẽ lu mờ dần tầm quan trọng nhiều sáng kiến cải tiến cho khách hàng của người sử dụng ! 65/66 66/66 Nhập môn CNPM - Ch1. Mở đầu11