Bài giảng Nhập môn công nghệ phần mềm - Đỗ Thị Thanh Tuyền - Chương 1: Tổng quan về công nghệ phần mềm
Phần mềm: là một tập hợp những câu lệnh được viết bằng
một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định
nhằm 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 nào đó. Phần mềm được thực thi trên máy, thường là
máy tính.
Công nghệ (engineering): là cách sử dụng các công cụ, các
kỹ thuật trong cách giải quyết một vấn đề nào đó.
Công nghệ Phần mềm (Software Engineering): là việc áp
dụng các công cụ, các kỹ thuật một cách có hệ thống trong
việc phát triển các ứng dụng dựa trên máy tính.
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giảng viên: Đỗ Thị Thanh Tuyền Email: dothithanhtuyen@gmail.com 2Nhập môn Công nghệ Phần mềm March 12 Nội dung môn học Tổng quan về Công nghệ phần mềm Xác định và mô hình hóa yêu cầu phần mềm Thiết kế phần mềm Cài đặt phần mềm Kiểm thử và bảo trì Đồ án môn học 3Nhập môn Công nghệ Phần mềm March 12 Một số khái niệm cơ bản Phần mềm: là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm 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 nào đó. Phần mềm được thực thi trên máy, thường là máy tính. Công nghệ (engineering): là cách sử dụng các công cụ, các kỹ thuật trong cách giải quyết một vấn đề nào đó. Công nghệ Phần mềm (Software Engineering): là việc áp dụng các công cụ, các kỹ thuật một cách có hệ thống trong việc phát triển các ứng dụng dựa trên máy tính. 4Nhập môn Công nghệ Phần mềm March 12 Một số khái niệm cơ bản (tt) Công nghệ Phần mềm có thể được mô hình hóa như sau: Qui trình Công nghệ Phần mềm: hệ thống các giai đoạn mà quá trình phát triển phần mềm phải trải qua. Phương pháp phát triển phần mềm: phương pháp thực hiện cho từng giai đoạn trong qui trình phát triển phần mềm. 5Nhập môn Công nghệ Phần mềm March 12 Một số khái niệm cơ bản (tt) Công cụ và môi trường phát triển phần mềm: các phương tiện hỗ trợ tự động hay bán tự động cho một giai đoạn nào đó trong quá trình xây dựng phần mềm. 6Nhập môn Công nghệ Phần mềm March 12 Phân loại phần mềm Phân loại theo phương thức hoạt động: Phần mềm hệ thống: hệ điều hành, thư viện liên kết động, bộ điều vận (driver)... Phần mềm ứng dụng: phần mềm văn phòng, phần mềm doanh nghiệp, phần mềm giáo dục, phần mềm giải trí... Phần mềm chuyển dịch mã: bao gồm trình biên dịch và trình thông dịch. Phân loại theo khả năng ứng dụng: Phần mềm được viết theo đơn đặt hàng của một khách hàng cụ thể: phần mềm hỗ trợ bán hàng, phần mềm điều khiển... - Ưu điểm: có tính uyển chuyển, tùy biến cao để đáp ứng được nhu cầu của một nhóm người sử dụng. 7Nhập môn Công nghệ Phần mềm March 12 Phân loại phần mềm (tt) Phân loại theo khả năng ứng dụng (tt): - Khuyết điểm: ứng dụng trong chuyên ngành hẹp. Phần mềm không được viết theo một đơn đặt hàng cụ thể, nó có thể được bán cho bất kỳ khách hàng nào. - Ưu điểm: có khả năng ứng dụng rộng rãi cho nhiều nhóm người sử dụng. - Khuyết điểm: thiếu tính uyển chuyển, tùy biến. 8Nhập môn Công nghệ Phần mềm March 12 Kiến trúc phần mềm Người dùng Phần mềm Phần cứng Người dùng Hệ thống dữ liệu Phần cứng Mô hình 3 lớp: Hệ thống giao diện Hệ thống xử lý 9Nhập môn Công nghệ Phần mềm March 12 Chất lượng phần mềm Chất lượng phần mềm thể hiện qua các tính chất sau: Tính đúng đắn Tính tiến hóa Tính tiện dụng Tính hiệu quả Tính tương thích 10Nhập môn Công nghệ Phần mềm March 12 Qui trình Công nghệ Phần mềm Mô hình thác nước Mô hình mẫu Mô hình xoắn ốc => Mô hình thác nước cải tiến 11Nhập môn Công nghệ Phần mềm March 12 Mô hình thác nước cổ điển Xác định yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng 12Nhập môn Công nghệ Phần mềm March 12 Mô hình mẫu 13Nhập môn Công nghệ Phần mềm March 12 Mô hình xoắn ốc Phân tích rủi ro 14Nhập môn Công nghệ Phần mềm March 12 Mô hình thác nước cải tiến Xác định yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng 15Nhập môn Công nghệ Phần mềm March 12 Phương pháp phát triển phần mềm Phương pháp hướng chức năng: Xây dựng phần mềm dựa trên các chức năng mà hệ thống cần thực hiện. Phương pháp chung để giải quyết vấn đề là áp dụng nguyên lý “chia để trị”. Hạn chế: có khả năng các chức năng trong hệ thống không tương thích với nhau khi thực hiện thay đổi các thông tin trong hệ thống. 16Nhập môn Công nghệ Phần mềm March 12 Phương pháp phát triển phần mềm (tt) Phương pháp hướng dữ liệu: Chú trọng đến thành phần dữ liệu của hệ thống. Dùng mô hình thực thể kết hợp để biểu diễn các thực thể và mối liên hệ giữa các thực thể. Hạn chế: phần mềm chỉ có chức năng chính là lưu trữ và thao tác trên các đối tượng dữ liệu, không quan tâm đến các chức năng khác của hệ thống nên hệ thống thu được sau khi thiết kế có thể thiếu một số chức năng cần thiết. 17Nhập môn Công nghệ Phần mềm March 12 Phương pháp phát triển phần mềm (tt) Phương pháp hướng đối tượng: Chú trọng đến thành phần dữ liệu và chức năng của hệ thống. Hệ thống phần mềm là một tập hợp các đối tượng có khả năng tương tác với nhau. Mỗi đối tượng bao gồm dữ liệu và các thao tác thực hiện trên dữ liệu của đối tượng. 18Nhập môn Công nghệ Phần mềm March 12 Công cụ và môi trường phát triển PM CASE (Computer Aided Software Engineering) tools. CASE tools hỗ trợ phát sinh kết quả chuyển giao cho giai đoạn kế tiếp. CASE tools hỗ trợ việc lưu trữ, cập nhật trên kết quả chuyển giao. 19Nhập môn Công nghệ Phần mềm March 12 Công cụ và môi trường phát triển PM (tt) 20Nhập môn Công nghệ Phần mềm March 12 Công cụ và môi trường phát triển PM (tt) 21Nhập môn Công nghệ Phần mềm March 12 Quá trình phát triển Thập niên 1940: Các chương trình cho máy tính được viết bằng tay. Thập niên 1950: Các công cụ đầu tiên xuất hiện như phần mềm biên dịch Macro Assembler và phần mềm thông dịch đã được tạo ra và sử dụng rộng rãi để nâng cao năng suất và chất lượng. Các trình dịch được tối ưư hóa lần đầu tiên ra đời. Thập niên 1960: Các công cụ của thế hệ thứ hai như các trình dịch tối ưu hoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm và chất lượng. Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi. Thập niên 1970: Các công cụ phần mềm, chẳng hạn trong UNIX các vùng chứa mã, lệnh make...được kết hợp với nhau. Số lượng doanh nghiệp nhỏ về phần mềm và số lượng máy tính cỡ nhỏ tăng nhanh. 22Nhập môn Công nghệ Phần mềm March 12 Quá trình phát triển Thập niên 1980: Các PC và máy trạm ra đời. Cùng lúc có sự xuất hiện của mô hình dự toán khả năng. Lượng phần mềm tiêu thụ tăng mạnh. Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời. Các quá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi. Trong thập niên này, WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi. Hiện nay: Các phần mềm biên dịch và ngôn ngữ lập trình cấp cao như .NET, PHP và Java làm cho việc viết phần mềm trở nên dễ dàng hơn nhiều. 23Nhập môn Công nghệ Phần mềm March 12 Quá trình phát triển (tt) Hướng tương lai của công nghệ phần mềm: Lập trình định dạng (aspect-oriented programming) sẽ giúp người lập trình ứng xử với các yêu cầu không liên quan đến các chức năng thực tế của phần mềm bằng cách cung ứng các công cụ để thêm hay bớt các khối mã ít bị thay đổi trong nhiều vùng của mã nguồn. Lập trình định dạng mô tả các đối tượng và hàm nên ứng xử như thế nào trong một tình huống cụ thể. Ví dụ: Lập trình định dạng có thêm vào các cơ cấu kiểm soát hiệu chỉnh lỗi, biên bản và khoá cho tất cả các đối tượng của một số kiểu. Các nhà nghiên cứu đang tìm cách ứng dụng lập trình định dạng để thiết kế mã cho mục tiêu thông thường. Phát triển phần mềm linh hoạt: nhằm hướng dẫn các đề án phát triển phần mềm mà trong đó bao gồm việc thỏa mãn các nhu cầu thay đổi và sự cạnh tranh của thị trường một cách nhanh chóng. 24Nhập môn Công nghệ Phần mềm March 12 Q & A
File đính kèm:
- Bài giảng Nhập môn công nghệ phần mềm - Đỗ Thị Thanh Tuyền - Chương 1 Tổng quan về công nghệ phần mềm.pdf