DANH SÁCH THÀNH VIÊN NHÓM
1. NGUYỄN KHÁNH HIỆP
2. NGUYỄN VĂN THOẢN
3. HOÀNG THỊ DUNG
4. LƯƠNG HỮU ĐỨC
5. NGUYỄN THỊ NỤ
6. BÙI VĂN ĐÔ
7. TRẦN HOÀN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP
HÀ NỘI
LỚP TIN 1 – K13
BÀI TẬP THẢO LUẬN
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
NỘI DUNG : NỬA ĐẦU CHƯƠNG I
VỊ TRÍ : TỪ SLIDE 5 ĐẾN SLIDE 24
TỔNG QUAN VỀ CNPM
Các khái niệm cơ bản về phần mềm
Quá trình tiến hóa của phần mềm
Khủng hoảng và thách thức
Phần mềm
Công nghệ phần mềm và các vấn đề liên quan
Quy trình phần mềm
Các khái niệm cơ bản về phần mềm
Phần mềm (software) – Theo nghĩa hẹp là 1 tập hợp
các câu lệnh được viết bằng ngôn ngữ lập trình -> Giải
quyết bài toán.
Công nghệ (Engineering) là cách sử dụng các công cụ,
kỹ thuật để giải quyết vấn đề.
Công nghệ phần mềm (SE – Software Emgineering):
Áp dụng các công cụ, các KT một cách có hệ thống để
P/triển các ƯD dựa trên máy tính .
Kỹ sư phần mềm (Software Engineer)
Phát triển phần mềm (SW Developtment) – quá trình từ khi
quyết định SX PM đến khi chuyển giao cho KH
Sử dụng (Operations) – Sử lý, vận hành PM
Bảo trì (Maintenance) – Quá trình khắc phục lỗi, thay đổi
logic -> Phần mềm tốt hơn
Loại bỏ (Retirement) – Thay thế ứng dụng bằng ứng dụng
mới
Các khái niệm cơ bản về phần mềm
Các khái niệm liên quan:
Quá trình tiến hóa của phần mềm
Những năm đầu (từ 1950 – 1960)
Mỗi máy sử dụng cho từng ứng dụng riêng
Xử lý theo lô
LT mang tính cá nhân
Thời kỳ năm 1960 đến giữa những năm 1970
Các hệ thống đa nhiệm, đa người dùng
Thế hệ đầu tiên của hệ quản trị CSDL
Yêu cầu lớn về công việc bảo trì phần mềm
Quá trình tiến hóa của phần mềm
Thời kỳ giữa những năm 1970 đến đầu năm 1990
Xuất hiện HT phân tán
Mạng MT ptriển
Công nghệ chế tại vi xử lý phát triển
Thời kỳ sau năm 1990
Kỹ nghệ HĐT phát triển.
Sự phát triển của internet
Hệ chuyên gia, mạng nơron nhân tạo được
ứng dụng vào thực tế
Phần mềm (Software)
Được thể hiện với 3 bộ phận cấu thành
Tập các lệnh – Chương trình máy tính
Cấu trúc dữ liệu - Được lưu trữ trên bộ nhớ,
gồm việc lưu trữ thông tin được mã hóa
Các tài liệu kỹ thuật liên quan – mô tả quá trình
và hướng dẫn sử dụng hiệu quả
Phần mềm (Software)
Đặc trưng của phần mềm
Không mòn cũ, nhưng thoái hóa theo thời gian
Do môi trường sử dụng dẫn đến cần thay đổi phần
mềm khác
Phần mềm (Software)
Phần mềm là hệ thống logic, không phải là hệ thống
vật lý
Được phát triển mà không biết trước được hiệu quả và
giá thành cụ thể
Thường được xây dựng theo đơn đặt hàng của khách
Bản chất là có sự phức tạp và tính thay đổi
Hiện nay chủ yếu được phát triển theo nhóm
Phần mềm (Software)
Các thành phần của phần mềm
Thành phần máy thực hiện được:
Các câu lệnh
Các loại ngôn ngữ lập trình
Thành phần máy không thực hiện được:
Các tài liệu phân tích, thiết kế
Các hướng dẫn sử dụng và khai thác nó
Các thành phần giải thích trong PM.
Phần mềm (Software)
Phân loại phần mềm
Theo mức độ hoàn thiện:
Sản phẩm:
Có tính phức tạp cao
Nhiều người sử dụng
Đồng bộ, an toàn, có nâng cấp và bảo trì
Có thể nâng cấp từ chương trình thành sản phẩm
Chương trình:
Độ phức tạp không lớn
Dùng cho những đối tượng nhất định, quy mô áp
dụng không lớn
Không tài liệu sử dụng, không kiểm thử triệt để,
không bảo trì
Phần mềm (Software)
Theo lĩnh vực ứng dụng:
Phần mềm hệ thống
Phần mềm thời gian thực
Phần mềm nghiệp vụ
Phần mềm khoa học kỹ thuật
Phần mềm nhúng
Phần mềm máy tính cá nhân
Phần mềm trí tuệ nhân tạo
Phần mềm dựa trên nền web
Phần mềm (Software)
Theo vai trò và chức năng:
Phần mềm hệ thống (system software)
Phần mềm công cụ (Tools)
Phần mềm ứng dụng (Application software)
Ngoài ra còn có phần mềm phục vụ kỹ nghệ phần mềm:
Chương trình dịch, phần mềm gỡ rối, các công cụ hỗ trợ
phân tích thiết kế (CASE)
Các phần mềm này có thể xuất hiện dưới dạng phần mềm
máy tính cá nhân, phần mềm hệ thống hoặc là phần mềm
nghiệp vụ.
Phần mềm (Software)
GĐ 1:
Tiêu chí
đánh giá
GĐ 2:
GĐ 3:
GĐ 4:
Tính nhanh
Giải được các bài toán lớn
Tính nhanh
Xử lý được các bài toán
lớn
Nhiều người dùng
Tiện dụng
Tin cậy
Dễ bảo trì
Tiện dụng, thông minh
Tin cậy
Dễ bảo trì
Khủng hoảng và thách thức
Từ sự tiến hóa của phần mềm => thách thức:
Sự tăng quy mô của PM
Sự tăng chi phí làm PM
Sự kéo dài thời gian PT 1 PM
Sự phụ thuộc nhiều vào kinh nghiệm của người làm PM
Chất lượng của PM không ổn đinh
Sự thiếu KS làm PM
Gánh nặng bảo trì hệ thống cũ để tiếp tục HĐ
Khủng hoảng phần mềm và sự ra đời của KNPM
Khủng hoảng và thách thức
Thách thức đối với PT PM máy tính hiện nay
Thách thức PTPM gia tăng, nguyên nhân:
Khả năng PM không thể SD hết được tiềm năng của
phần cứng.
Khả năng XD phần mềm không bắt nhịp được với nhu
cầu SD PM tăng lên, đặc biệt là khi Internet phát triển
Quy mô và độ phức tạp của PM ngày càng tăng
Khả năng bảo trì hệ thống PM cũ tồn tại khó khăn và chi
phí lớn
Công nghệ phần mềm và các vấn đề liên
quan
Công nghệ phần mềm theo Fritz Bauer:
Kỹ nghệ phần mềm là quá trình sử dụng các nguyên tắc kỹ
thuật có cơ sở để xây dựng các phần mềm một cách kinh tế để
hoạt động tin cậy và chạy hiệu quả trên hệ thống máy thật
Công nghệ phần mềm theo IEEE:
Việc áp dụng cách nghiên cứu và tiếp cận có hệ thống, quy
tắc, có thể xác định số lượng để phát triển, vận hành và bảo trì
phần mềm; nghĩa là áp dụng kỹ thuật vào phần mềm
Công nghệ phần mềm - SE
Công nghệ phần mềm và các vấn đề liên
quan
Các vấn đề liên quan đến CNPM
Kỹ nghệ phần mềm đề cập đến việc xây dựng các
chương trình lớn.
Trung tâm của vấn đề là kiểm soát sự phức tạp
Tiến hóa phần mềm
Quan tâm nhất đến hiệu quả của phát triển phần mềm
Công nghệ phần mềm và các vấn đề liên
quan
Sự phối hợp thường xuyên giữa các cá nhân trong là cần
thiết trong các dự án phần mềm lớn
Bản thân phần mềm phải hỗ trợ người dùng hiệu quả
Kỹ nghệ phần mềm là lĩnh vực mà ở đó các thành viên
tạo ra sản phẩm vì lợi ích của lĩnh vực khác
Công nghệ phần mềm và các vấn đề liên
quan
Các yếu tố chủ chốt của CNPM
CNPM là công nghệ có phân lớp
Là một quá trình gồm một loạt các bước chứa
đựng 3 yếu tố chủ chốt:
Phương pháp (Method)
Công cụ (Tools)
Thủ tục (Procedure)
Quy trình phần mềm
Là một tập hợp các hành động nhằm xây dựng và phát triển
phần mềm, thường gồm:
Đặc tả: đặc tả những gì hệ thống phải làm và các
ràng buộc trong quá trình xây dựng hệ thống.
Phát triển: xây dựng hệ thống phần mềm
Kiểm thử: kiểm tra xem phần mềm có thỏa mãn yêu
cầu của khác hàng.
Mở rộng: điểu chỉnh và thay đổi phần mềm tương
ứng với sự thay đổi yêu cầu.
NHÓM 1
Thank
You
!!!!!!!!!!!!