• Hiểu kỹ thuật phần mềm là gì và tại sao lại quan trọng; • Hiểu rằng sự phát triển của các loại hệ thống phần mềmkhác nhau có thể đòi hỏi các kỹ thuật phần mềm khác nhau; • Hiểu một số
Trang 1Bài giảng 1- Giới thiệu về SE Tổng quan
• Mục đích và yêu cầu: Mục đích của bài giảng này là để giới thiệu
công nghệ phần mềm và cung cấp một khuôn khổ cho việc tìm hiểu phần còn lạicủa khóa học
• Hiểu kỹ thuật phần mềm là gì và tại sao lại quan trọng;
• Hiểu rằng sự phát triển của các loại hệ thống phần mềmkhác nhau có thể đòi hỏi các kỹ thuật phần mềm khác nhau;
• Hiểu một số vấn đề đạo đức và chuyên môn quan trọng đốivới các kỹ sư phần mềm;
• đã được giới thiệu với ba hệ thống, các loại khác nhau, mà
sẽ được sử dụng như ví dụ trong suốt khóa học
Yêu cầu:
- Đọc tài liệu trước khi giảng
- Tham dự yêu cầu
• Bài tập: Tìm và tổng kết một bài báo (xem đoạn cuối cùng)
Chủ đề được bảo vệ
• Phát triển phần mềm chuyên nghiệp
• Ý nghĩa của kỹ thuật phần mềm là gì
• Đạo đức kỹ thuật phần mềm
Trang 2• Giới thiệu ngắn về các vấn đề đạo đức ảnh hưởng đến kỹthuật phần mềm
• Nghiên cứu trường hợp
• Giới thiệu ba ví dụ được sử dụng trong các chương sau củacuốn sách
Kỹ thuật phần mềm
• Các nền kinh tế của TẤT CẢ các nước phát triển là Phụ thuộc vàophần mềm
• Ngày càng có nhiều hệ thống được kiểm soát bởi phần mềm
• Kỹ thuật phần mềm liên quan đến các lý thuyết, phương pháp và công cụ để phát triển phần mềm chuyên nghiệp
• Chi tiêu cho phần mềm đại diện cho Phần đáng kể của GNP ở tất
• Kỹ thuật phần mềm liên quan đến việc phát triển phần mềm hiệuquả về chi phí
Sản phẩm phần mềm
• Các hệ thống độc lập được bán và bán cho bất kỳ kháchhàng nào muốn mua chúng
Trang 3• Ví dụ - Phần mềm PC như các chương trình đồ họa, công cụ
quản lý dự án; Phần mềm CAD; Phần mềm cho các thị trường cụ thể như hệ
thống hẹn cho nha sĩ
• Phần mềm được ủy thác bởi một khách hàng cụ thể để đáp
ứng nhu cầu riêng của họ
• Ví dụ - nhúng hệ thống điều khiển, phần mềm kiểm soát
không lưu, hệ thống giám sát giao thông
Đặc điểm kỹ thuật sản phẩm
• Các đặc điểm kỹ thuật của phần mềm nên làm là thuộc sở
hữu của nhà phát triển phần mềm và quyết định về thay đổi phần mềm được
thực hiện bởi nhà phát triển
• Các đặc điểm kỹ thuật của phần mềm nên làm là do khách
hàng sở hữu phần mềm và họ quyết định những thay đổi phần mềm được yêu
cầu
Những câu hỏi thường gặp về kỹ thuật phần mềm
Câu hỏi Câu trả lời
Phần mềm là gì? Chương trình máy tính và các tài liệu liên quan (và dữ liệu)
Sản phẩm phần mềm có thể được phát triển cho một kháchhàng cụ thể hoặc có thể được phát triển cho một thị trườngchung
Các thuộc tính của phần
mềm tốt là gì?
Phần mềm tốt nên cung cấp các chức năng và hiệu suất yêu cầucho người dùng và phải được duy trì, đáng tin cậy và có thể sửdụng được
Kỹ thuật phần mềm là
gì?
Kỹ thuật phần mềm là một kỷ luật kỹ thuật có liên quan đến tất
cả các khía cạnh của sản xuất phần mềm
Trang 4học máy tính là gì? phát triển và cung cấp phần mềm hữu ích
Những câu hỏi thường gặp về kỹ thuật phần mềm
Câu hỏi Câu trả lời
hệ thống kiểm soát an toàn cần thiết đòi hỏi một đặc điểm kỹthuật đầy đủ và phân tích được phát triển Do đó, bạn khôngthể nói rằng một phương pháp nào đó tốt hơn một phương phápkhác
Sự khác biệt nào có
được thực hiện trên web
với kỹ thuật phần mềm?
Các trang web đã dẫn đến sự sẵn có của các dịch vụ phần mềm
và khả năng phát triển các hệ thống dịch vụ phân phối rất cao Phát triển hệ thống dựa trên web đã dẫn đến những tiến bộ quantrọng trong việc sử dụng lại các ngôn ngữ lập trình và phầnmềm
Các thuộc tính thiết yếu của phần mềm tốt
Đặc tính sản
phẩm
Sự miêu tả
Khả năng bảo trì Phần mềm nên được viết theo cách sao cho nó có thể phát triển để
đáp ứng nhu cầu thay đổi của khách hàng Đây là một thuộc tínhquan trọng bởi vì thay đổi phần mềm là một yêu cầu không thể tránhđược của một môi trường kinh doanh thay đổi
Độ tin cậy và an
toàn
Tính tin cậy của phần mềm bao gồm nhiều đặc điểm bao gồm độ tincậy, an ninh và an toàn Phần mềm đáng tin cậy không nên gây thiệthại về thể chất hoặc kinh tế trong trường hợp hệ thống thất bại Người dùng độc hại không nên truy cập hoặc làm hỏng hệ thống
Trang 5Hiệu quả Phần mềm không nên sử dụng tài nguyên hệ thống như bộ nhớ và bộ
xử lý Hiệu suất do đó bao gồm đáp ứng, thời gian xử lý, sử dụng bộnhớ, vv
Chấp nhận được Phần mềm phải được chấp nhận đối với loại người dùng mà nó được
thiết kế Điều này có nghĩa là nó phải dễ hiểu, có thể sử dụng được vàtương thích với các hệ thống khác mà chúng sử dụng
Kỹ thuật phần mềm
• Công nghệ phần mềm là một ngành kỹ thuật mà là có liên quan
với tất cả các khía cạnh của sản xuất phần mềm từ giai đoạn đầu của đặc tả hệ
thống thông qua việc duy trì hệ thống sau khi nó đã đi vào sử dụng
• Kỷ luật kỹ thuật
• Sử dụng các lý thuyết và phương pháp phù hợp để giải
quyết các vấn đề mang trong tâm trí những hạn chế về tổ chức và tài chính
• Tất cả các khía cạnh của sản xuất phần mềm
• Không chỉ là quy trình kỹ thuật phát triển Ngoài ra quản lý
dự án và phát triển các công cụ, phương pháp, vv để hỗ trợ sản xuất phần mềm
* Tầm quan trọng của công nghệ phần mềm
• Ngày càng có nhiều cá nhân và xã hội dựa vào các hệ thống phần
mềm tiên tiến Chúng ta cần phải có khả năng tạo ra các hệ thống đáng tin cậy
và đáng tin cậy về mặt kinh tế và nhanh chóng
• Thông thường, về lâu dài, sử dụng các phương pháp kỹ thuật phần
mềm và kỹ thuật cho các hệ thống phần mềm hơn là chỉ viết các chương trình
như thể đó là một dự án lập trình cá nhân Đối với hầu hết các loại hệ thống,
phần lớn chi phí là chi phí thay đổi phần mềm sau khi nó đã được sử dụng
Các hoạt động quy trình phần mềm
• Đặc điểm phần mềm, nơi khách hàng và kỹ sư xác định phần mềm
sẽ được sản xuất và những hạn chế về hoạt động của nó
• Phát triển phần mềm, nơi phần mềm được thiết kế và lập trình
Trang 6• Xác nhận phần mềm, nơi phần mềm được kiểm tra để đảm bảorằng đó là những gì khách hàng yêu cầu
• Sự phát triển phần mềm, nơi phần mềm được sửa đổi để phản ánhnhững yêu cầu của khách hàng và thị trường
Các vấn đề chung ảnh hưởng hầu hết phần mềm
• Ngày càng có nhiều hệ thống được yêu cầu hoạt động nhưcác hệ thống phân tán trên các mạng bao gồm các loại máy tính và thiết bị diđộng khác nhau
• Thay đổi về kinh doanh và xã hội
• Kinh doanh và xã hội đang thay đổi nhanh chóng khi cácnền kinh tế mới nổi phát triển và các công nghệ mới trở nên khả dụng Họ cần
để có thể thay đổi phần mềm hiện tại của họ và để nhanh chóng phát triển phầnmềm mới
• An ninh và tin tưởng
• Khi phần mềm được kết hợp với tất cả các khía cạnh củacuộc sống của chúng tôi, điều quan trọng là chúng ta có thể tin tưởng rằng phầnmềm
Các loại ứng dụng
Trang 7• Đây là những hệ thống ứng dụng chạy trên máy tính cục bộ,chẳng hạn như máy tính cá nhân Chúng bao gồm tất cả các chức năng cần thiết
và không cần phải được kết nối với mạng
• Các ứng dụng dựa trên giao dịch tương tác
• Các ứng dụng chạy trên máy tính từ xa và được truy cập bởingười dùng từ máy tính cá nhân hoặc thiết bị đầu cuối của họ Chúng bao gồmcác ứng dụng web như ứng dụng -commerce e
• Hệ thống điều khiển nhúng
• Đây là những hệ thống điều khiển phần mềm kiểm soát vàquản lý thiết bị phần cứng Theo Numerically, có lẽ nhiều hệ thống nhúng hơnbất kỳ loại hệ thống khác
• Hệ thống xử lý hàng loạt
• Đây là những hệ thống kinh doanh được thiết kế để xử lý dữliệu theo lô lớn Họ xử lý số lượng lớn các đầu vào cá nhân để tạo ra kết quảtương ứng
• Hệ thống giải trí
• Đây là những hệ thống chủ yếu để sử dụng cá nhân và nhằmmục đích giải trí cho người dùng
• Hệ thống mô hình hóa và mô phỏng
• Đây là những hệ thống được các nhà khoa học và kỹ sư pháttriển để mô hình các quy trình hoặc tình huống thể chất, bao gồm nhiều đốitượng riêng biệt, tương tác
• Hệ thống thu thập dữ liệu
Trang 8• Đây là những hệ thống thu thập dữ liệu từ môi trường củachúng bằng một bộ cảm biến và gửi dữ liệu đó đến các hệ thống khác để chếbiến
• Hệ thống các hệ thống
• Đây là những hệ thống bao gồm một số hệ thống phần mềmkhác
Nguyên tắc cơ bản về công nghệ phần mềm
• Một số nguyên tắc cơ bản áp dụng cho tất cả các loại hệ thốngphần mềm, không phụ thuộc vào các kỹ thuật phát triển được sử dụng:
• Các hệ thống nên được phát triển bằng cách sử dụng quátrình phát triển được hiểu và được quản lý Tất nhiên, các quy trình khác nhauđược sử dụng cho các loại phần mềm khác nhau
• Độ tin cậy và hiệu suất là quan trọng đối với tất cả các loại
• Các dịch vụ Web cho phép truy cập các tính năng ứng dụng quaweb
• Điện toán đám mây là một cách tiếp cận để cung cấp dịch vụ máytính mà các ứng dụng chạy từ xa trên 'đám mây'
Trang 9• Người dùng không mua trả tiền mua phần mềm theo cách sửdụng
Kỹ thuật phần mềm dựa trên Web
• Các hệ thống dựa trên web là các hệ thống phân phối phức tạp,nhưng các nguyên tắc cơ bản của kỹ thuật phần mềm được thảo luận trước đây
áp dụng cho chúng như đối với bất kỳ loại hệ thống khác
• Những ý tưởng cơ bản về kỹ thuật phần mềm, được thảo luậntrong phần trước, áp dụng cho phần mềm dựa trên web giống như cách chúng
áp dụng cho các loại hệ thống phần mềm khác
Những điểm chính
• Kỹ thuật phần mềm là một kỷ luật kỹ thuật có liên quan đến tất cảcác khía cạnh của sản xuất phần mềm
Trang 10• Các thuộc tính sản phẩm phần mềm thiết yếu là khả năng bảo trì,tin cậy và bảo mật, hiệu quả và sự chấp nhận
• Các hoạt động cấp cao của đặc tả, phát triển, xác nhận và pháttriển là một phần của tất cả các quy trình phần mềm
• Các khái niệm cơ bản của kỹ thuật phần mềm được áp dụng chungcho tất cả các loại phát triển hệ thống
• Có rất nhiều loại hệ thống khác nhau và mỗi hệ thống yêu cầu công cụ
và kỹ thuật phần mềm thích hợp cho sự phát triển của chúng
• Những ý tưởng cơ bản của kỹ thuật phần mềm được áp dụng chotất cả các loại hệ thống phần mềm
Các vấn đề về trách nhiệm nghề nghiệp
- Bảo mật (Tính Bí mật)
Các kỹ sư thường nên tôn trọng tính bảo mật của người sử dụng hoặckhách hàng của họ, không phân biệt có hay không một thỏa thuận bí mậtchính thức đã được ký kết (Kỹ sư phần mềm nên tôn trọng tính bí mật của
cơ quan và khách hàng cho dù văn bản bảo vệ bí mật đã được ký hay chưa)
- Trình độ
Trang 11Các kỹ sư không nên làm sai lệch trình độ của mình Họ không nên
cố chấp nhận công việc đó là vượt quá thẩm quyền (kỹ sư phải nhận thứcđược trình độ K nên nhận công việc ngoài khả năng của mình)
Các vấn đề về trách nhiệm nghề nghiệp
- Quyền sở hữu trí tuệ (sở hữu trí tuệ )
Các kỹ sư cần phải nhận thức pháp luật địa phương quản lý việc sử dụngtài sản trí tuệ như bằng sáng chế, bản quyền, vv Họ nên cẩn thận để đảmbảo rằng các tài sản trí tuệ của nhà tuyển dụng và khách hàng được bảo vệ
- Máy tính sử dụng sai (Sử dụng Sai các công cụ máy tính)
Kỹ sư phần mềm không nên sử dụng các kỹ năng kỹ thuật của mình đểlạm dụng máy tính của người khác Máy tính lạm dụng lao động từ tương đốitầm thường (chơi game trên máy tính của người sử dụng lao động) để đặc biệtnghiêm trọng (phổ biến của virus)
Quy tắc đạo đức ACM / IEEE - Quy tắc đạo đức nghề nghiệp
• Những xã hội chuyên nghiệp ở Mỹ đã hợp tác để sản xuất một bộquy tắc đạo đức nghề nghiệp
(IEEE: hiệp hội kỹ sư điện tử học)
• Thành viên của các tổ chức này đăng ký vào mã thực hành khi họtham gia
• Bộ luật chứa tám nguyên tắc liên quan đến hành vi và quyết địnhbởi các kỹ sư phần mềm chuyên nghiệp, bao gồm cả các học viên, nhà giáo dục,nhà quản lý, giám sát và các nhà hoạch định chính sách, cũng như các học viên
và sinh viên của các ngành nghề
Lý do cho đạo đức
• Máy tính có vai trò trung tâm và ngày càng tăng trong thương mại, công nghiệp, chính phủ, y học, giáo dục, giải trí và xã hội nói chung Các kỹ sư phần mềm là những người đóng góp trực tiếp hoặc giảng dạy, phân tích, đặc tả, thiết kế, phát triển, chứng nhận, bảo trì và kiểm thử các
hệ thống phần mềm
• Bởi vì vai trò của họ trong việc phát triển hệ thống phần mềm, kỹ sư phần mềm có ý nghĩa Cơ hội làm tốt hoặc gây hại, để cho người khác làm tốt hoặc gây hại, hoặc gây ảnh hưởng xấu đến người khác để làm tốt
Trang 12hoặc gây hại Để đảm bảo, càng nhiều càng tốt, những nỗ lực của họ sẽ được
sử dụng tốt, các kỹ sư phần mềm phải cam kết làm cho công nghệ phần mềm trở thành một nghề có lợi và tôn trọng
Bộ luật đạo đức ACM / IEEE Quy tắc đạo đức nghề nghiệp và hành nghề chuyên nghiệp
Nhóm công tác chung của ACM / IEEE-CS về Đạo đức Công nghệ Phầnmềm và Các Thực tiễn Chuyên nghiệp
Phiên bản ngắn gọn của mã tóm tắt khát vọng ở mức độ trừu tượng cao; Các điều khoản được bao gồm trong phiên bản đầy đủ cung cấp cho các ví dụ
và chi tiết của những thay đổi này làm thế nào những thay đổi cách chúng tahành động như các chuyên gia kỹ thuật phần mềm Không có những nguyệnvọng, chi tiết có thể trở nên hợp pháp và tẻ nhạt; Không có chi tiết, khát vọng
có thể trở nên âm thanh cao nhưng trống rỗng; Cùng nhau, những khát vọng vàcác chi tiết tạo thành một mã cố kết
Các kỹ sư phần mềm sẽ cam kết thực hiện việc phân tích, đặc tả, thiết kế,phát triển, thử nghiệm và bảo trì phần mềm một nghề nghiệp có lợi và tôn trọng Theo cam kết của họ đối với sức khoẻ, an toàn và phúc lợi của công chúng, các
kỹ sư phần mềm tuân thủ 8 nguyên tắc sau:
để đem lại lợi ích tốt nhất cho khách hàng và hang cơ sở)
3 SẢN PHẨM - Các kỹ sư phần mềm phải bảo đảm rằng sản phẩm của
họ và các sửa đổi có liên quan đáp ứng các tiêu chuẩn chuyên nghiệp cao nhất
có thể (Đối với sp: nên đảm bảo các sp làm ra tiêu chuẩn cao nhất)
4 ĐÁNH GIÁ - Các kỹ sư phần mềm phải duy trì tính toàn vẹn và độc lậptrong sự đánh giá chuyên nghiệp của họ (Đv người làm việc chuyên nghiệpnên duy trì sự thành công và lập trình độc lập trong đánh giá)
5 QUẢN LÝ - Các nhà quản lý và lãnh đạo kỹ thuật phần mềm sẽ đăng
ký và thúc đẩy một cách tiếp cận đạo đức đối với việc quản lý phát triển và duytrì phần mềm (Người qly và Trưởng nhóm luôn cổ vũ phương pháp qly có tínhđạo đức trong phát triển và bảo trì phần mềm) quan trọng
Trang 136 NGHỀ NGHIỆP - Kỹ sư phần mềm sẽ nâng cao tính toàn vẹn và uy tíncủa nghề nghiệp phù hợp với lợi ích công cộng (Sự nghiệp chuyên nghiệp:Phải có kỹ năng thống kê cao nhất với tập thể hữu ích)
7 CÔNG BẰNG - Các kỹ sư phần mềm phải công bằng và hỗ trợ đồngnghiệp của họ (Nên hướng dẫn bằng và hỗ trợ, động viên đồng nghiệp)
8 CÁ NHÂN(sự nghiên cứu) - Kỹ sư phần mềm sẽ tham gia học tập suốtđời liên quan đến thực hành nghề nghiệp của họ và sẽ thúc đẩy cách tiếp cậnđạo đức đối với việc thực hành nghề nghiệp (Phát triển cá nhân: nên có thái độhọc tập suốt đời và cổ vũ cho pp làm việc có tính chất đạo đức nghề nghiệp)
Những tình huống khó xử về mặt đạo đức (tình trạng khó xử trong nghề nghiệp đạo đức)
• Bất đồng về nguyên tắc với các chính sách quản lý cấp cao (bất đồng với các quy tắc, chính sách quản lý)
• Sử dụng lao động của bạn hoạt động một cách phi đạo đức và pháthành một hệ thống an toàn quan trọng mà không kết thúc thử nghiệm của hệ thống
(người quản lý muốn đưa sản phẩm ra ngoài sử dụng khi chưa kết thúc việc kiểm thử sản phẩm)
• Tham gia vào việc phát triển hệ thống vũ khí quân sự hoặc hệthống hạt nhân
Nghiên cứu trường hợp
• Bơm insulin cá nhân
• Một hệ thống nhúng trong một máy bơm insulin được sửdụng bởi bệnh tiểu đường để duy trì kiểm soát lượng đường trong máu
• Một hệ thống quản lý bệnh nhân về sức khoẻ tâm thần
• Một hệ thống được sử dụng để duy trì hồ sơ của nhữngngười tiếp nhận chăm sóc cho các vấn đề sức khỏe tâm thần
• Trạm thời tiết hoang địa