1. Trang chủ
  2. » Thể loại khác

Trang_danh_cho_Sinhvien - Nguyễn Thế Dũng Chapter1

42 188 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 916,35 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Công Nghệ Phần Mềm 7Phần mềm Software • Phần mềm là một sản phẩm ƒ Dùng cho tính toán ƒ Tạo, quản lý, thu nhận, biến đổi, thể hiện hay là truyền thông tin • Phần mềm là một phương tiện t

Trang 1

Công Nghệ Phần Mềm 1

Tài liệu tham khảo

• Software Engineering - A practitioner’s approach, R.S Pressman, McGraw-Hill (ebook)

• Ian Sommerville’s , “Software Engineering 7th Ed.”

• Nhập môn kỹ nghệ phần mềm; Ngô Trung Việt,

Nguyễn kim Ánh; NXB Khoa học và kỹ thuật

Trang 2

Kế hoạch học

• Thời gian: 45 tiết (15 tuần)

• Kiểm tra

ƒ Kiểm tra giữa kỳ: tuần thứ 8

ƒ Kiểm tra cuối kỳ: sau khi kết thúc

ƒ Đề tài

Trang 3

Công Nghệ Phần Mềm 3

Yêu cầu

• Có kiến thức về ngôn ngữ lập trình và đã từng lập trình các ứng dụng cơ bản

• Có khả năng áp dụng những cấu trúc dữ liệu và

giải thuật.

• Có hiểu biết về kiến trúc máy tính, mạng máy tính.

Trang 4

MÔN HỌC

CÔNG NGHỆ PHẦN MỀM

Chương 1 Tổng quan

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM

Trang 5

Công Nghệ Phần Mềm 5

1.1 Một số khái niệm: Giới thiệu

• Khái niệm về Công nghệ phần mềm được đưa ra

lần đầu tiên vào năm 1968 tại hội nghị thảo luận về khủng hoảng phần mềm

• Công nghệ phần mềm đề cập tới các lý thuyết,

phương pháp và công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi nhuận cao.

• Quy trình xây dựng phần mềm đòi hỏi phải tuân

thủ các nguyên tắc vô cùng chặt chẽ

Trang 6

• Công nghệ cho sản xuất phần mềm?

• Công nghệ phần mềm sẽ như thế nào khi sản xuất phần mềm là hoạt động sản xuất “đặc biệt”?

Trang 7

Công Nghệ Phần Mềm 7

Phần mềm (Software)

• Phần mềm là một sản phẩm

ƒ Dùng cho tính toán

ƒ Tạo, quản lý, thu nhận, biến đổi, thể hiện hay là

truyền thông tin

• Phần mềm là một phương tiện tạo sản phẩm

ƒ Hỗ trợ hay cung cấp trực tiếp chức năng hệ thống

ƒ Điều khiển những chương trình khác (hđh)

ƒ Thực hiện truyền thông (pm mạng)

ƒ Giúp cho việc tạo các chương trình khác (tool)

Trang 10

Lỗi theo thời gian

idealized curve

change

actual curve

Failure rate

Time

increased failure rate due to side effects

Trang 11

Công Nghệ Phần Mềm 11

Hai loại phần mềm

ƒ Sản phẩm đại trà (Generic Product)

ƒ Sản phẩm theo đơn đặt hàng (Bespoke Product

hoặc Customised Product)

triển các chương trình mới, thay đổi và điều chỉnh các hệthống phần mềm đại trà hoặc tái sử dụng lại các phần

mềm đã tồn tại…

Trang 12

Phần mềm

1 Phần mềm học tập

2 Phần mềm thi trắc nghiệm, xếp lịch

3 Phần mềm trò chơi trực tuyến

4 Phần mềm kế toán, nhân sự, ATM

5 Website thương mại

6 Quản lý công việc cá nhân : chi tiêu, tìm đường

7 Quản lý phòng NET, Bida

8 Phần mềm tìm kiếm, tra cứu, tự điển

9 Phần mềm phòng chống Virus, tường lửa, bảo mật

10 Phần mềm tìm kiếm thông tin

11 Phần mềm hỗ trợ công việc, xếp lịch

12 Phần mềm khai thác thông tin trên mạng…

Trang 14

Phần mềm mới

• Tính toán mọi nơi - wireless networks

• Tài nguyên mạng - computing engine

• Mã nguồn mở - có thể chứa những tai họa

Trang 15

Công Nghệ Phần Mềm 15

Công Nghệ Phần Mềm (software engineering):

sự áp dụng có hệ thống và kỷ luật những phương pháp có thể định lượng được trong các khâu phát phát triển, vận hành và bảo trì phần mềm Tức áp dụng những qui tắc của công nghệ vào phần mềm (theo IEEE)

Qui trình (process) Phải thực hiện những công

việc gì?

Phương pháp (method) Chỉ ra cách thực hiện

những công việc cụ thể (“how to”)

Trang 16

Công nghệ phần mềm

• Gồm 3 giai đoạn

ƒ Giai đoạn xác định: Phân tích hệ thống (system

engineering), Hoạch định dự án (software project management), Phân tích yêu cầu (requirement

analysis).

ƒ Giai đoạn phát triển: Thiết kế phần mềm (software design), sinh mã (code generation), kiểm tra phần mềm (software testing)

ƒ Giai đoạn bảo trì: Sửa lỗi (correction), thay đổi môi trường thực thi (adaptation), tăng cường

(enhancement)

Trang 17

Công Nghệ Phần Mềm 17

Trang 18

Những FAQ về software engineering

What is software?

What is software engineering?

What is the difference between software engineering and computer science?

What is the difference between software engineering and system engineering?

What is a software process?

What is a software process model?

What are the costs of software engineering?

What are software engineering methods?

What is CASE (Computer-Aided Software Engineering)

What are the attributes of good software?

What are the key challenges facing software

engineering?

Trang 19

Công Nghệ Phần Mềm 19

CNPM, Khoa học máy tính, Công nghệ hệ thống

Khoa học máy tính đề cập tới lý thuyết và những vấn

đề cơ bản; còn công nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm hữu

ích.

Khi sự phát triển của phần mềm trở lên mạnh mẽ thì các lý thuyết của khoa học máy tính vẫn không đủ để đóng vai trò là nền tảng hoàn thiện cho công nghệ

phần mềm.

Công nghệ hệ thống (hay còn gọi là Kỹ nghệ hệ

thống) liên quan tới tất cả các khía cạnh của quá

trình phát triển hệ thống dựa máy tính bao gồm:

phần cứng, phần mềm, và công nghệ xử lý

Công nghệ phần mềm chỉ là một phần của Công nghệ

hệ thống, nó có liên quan tới việc phát triển hạ tầng phần mềm (software infrastructure), việc điều khiển, các ứng dụng và cơ sở dữ liệu trong hệ thống.

Trang 20

Quy trình phần mềm

• Quy trình (xây dựng) phần mềm gồm một tập hợp các hoạt động được tổ chức mà mục đích của nó

là xây dựng và phát triển phần mềm.

• Quy trình phần mềm xác định một bộ khung và tiêu chuẩn để triển khai công nghệ phần mềm

• Qui trình phần mềm bao gồm những hoạt động

Những hoạt động cơ bản là đặc tả (specification), triển khai, thẩm định (validation) và tiến hóa

(evolution)

Trang 21

• Mô hình quy trình phát triển phần mềm là một thể

hiện cô đọng của một quy trình phần mềm, và nó

được biểu diễn từ một góc độ cụ thể.

• Một số mô hình quy trình cũng được đề xuất như:

ƒ Mô hình thác nước (waterfall)

ƒ Mô hình phát triển lặp lại (Iterative development)

ƒ Mô hình xoắn ốc (spiral)…

Trang 22

Đối với những hệ thống hoạt động trong thời gian

dài, thì chi phí bảo trì thường lớn gấp nhiều lần so

với chi phí xây dựng.

Quan hệ giữa chi phí xây dựng và chi kiểm thử: 60%

là chi phí xây dựng và 40% là chi phí kiểm thử

Đối với một số phần mềm làm theo yêu cầu của

khách hàng, chi phí hoàn thiện vượt quá chi phí xây dựng.

Trang 23

Công Nghệ Phần Mềm 23

• Việc phân bổ chi phí cũng phụ thuộc vào mô hình phát triển hệ thống được sử dụng

ƒ Mô hình thác nước: Chi phí của các pha đặc tả,

thiết kế, cài đặt, tích hợp và kiểm thử được xác

định một cách riêng rẽ.

Trang 24

Chi phí phần mềm

ƒ Mô hình phát triển lặp lại: Chi phí đặc tả giảm

• Chi phí cải tiến phần mềm thay đổi phụ thuộc vào từng loại phần mềm.

Trang 25

hệ thống; phương pháp hướng đối tượng - tập

trung vào việc định nghĩa các đối tượng và sự cộng tác giữa chúng

• CASE : Computer Aided Software Engneering Các công cụ CASE thường được sử dụng để hỗ trợ các hoạt động trong quy trình xây dựng phần mềm Có hai loại công cụ CASE:

ƒ Upper-CASE: công cụ để hỗ trợ các hoạt động đầu tiên như đặc tả yêu cầu và thiết kế

ƒ Lower-CASE: công cụ để hỗ trợ các hoạt động sau như lập trình, gỡ lỗi và kiểm thử.

Trang 26

Hạn chế của CASE

• Công nghệ phần mềm đòi hỏi khả năng suy nghĩ

sáng tạo điều này hầu như không thể được tạo tự động

• Công nghệ phần mềm là hoạt động nhóm tốn thời gian trong những tương tác nhóm mà kỹ thuật

CASE không thể hỗ trợ tốt

Trang 27

Công Nghệ Phần Mềm 27

Tools, workbenches, environments

Trang 28

Những yêu cầu đối với phần mềm

• Phần mềm phải đáp ứng

ƒ Khả năng bảo trì (Maintainability): phần mềm co thể duy trì hoạt động, có thể điều chỉnh và mở rộng để thoả mãn những yêu cầu luôn thay đổi

ƒ Mức độ tin cậy (Reliability) : phần mềm phải được tin cậy, bảo mật và chính xác.

ƒ Hiệu quả (Maintainability): phần mềm không nên

sử dụng lãng phí tài nguyên của hệ thống

ƒ Khả năng được chấp nhận: người sử dụng phải chấp nhận phần mềm Điều đó có nghĩa là nó phải dễ

hiểu, sử dụng được và tương thích với các hệ

thống khác.

Trang 29

Công Nghệ Phần Mềm 29

Các nhân tố chất lượng

Trang 30

Chất lượng và Stakeholder

QUALITY SOFTWARE

Development manager:

sells more and pleases customers while costing less

to develop and maintain

Trang 31

môi trường thực hiện và cơ sở hạ tầng

ƒ Chuyển giao: phát triển các kỹ thuật cho phép việc chuyển giao phần mềm tới người sử dụng nhanh hơn

ƒ Độ tin cậy: phát triển các kỹ thuật để phần mềm ít sai sót và được người sử dụng tin tưởng.

Trang 32

Những thách thức đối với CNPM

ƒ Cứ 6 đề án triển khai thì có 2 bị huỷ bỏ

ƒ Trung bình thời gian thực hiện thực tế bị kéo dài 50% (cá biệt 200-300%)

ƒ Các đề án lớn dễ thất bại

ƒ 3/4 các hệ thống lớn có lỗi khi thực thi

ƒ Quá trình phân tích yêu cầu (5% công sức): để lại 55% lỗi, có 18% phát hiện được

ƒ Quá trình thiết kế (25% công sức): để lại 30% lỗi,

có 10% phát hiện được

ƒ Quá trình mã hoá, kiểm tra và bảo trì: để lại 15% lỗi, có 72% phát hiện được

Trang 34

Ariane5

Trang 35

Công Nghệ Phần Mềm 35

1.2 Kỹ sư phần mềm

• Các kỹ sư phần mềm nên tuân theo một phương

pháp luận có hệ thống và có tổ chức trong công

việc của họ Đồng thời, họ nên sử dụng các công

cụ và kỹ thuật thích hợp với vấn đề cần giải quyết, các ràng buộc và tài nguyên sẵn có.

Trang 36

5 Lựa chọn ngôn ngữ và phát triển chương trình

6 Kiểm tra chương trình (testing)

7 Lựa chọn và sử dụng kỹ thuật bảo trì phần mềm

8 Đánh giá và quyết định khi nào loại bỏ và nâng

cấp các ứng dụng

Trang 39

Công Nghệ Phần Mềm 39

Những sai lầm

• Tôi dễ dàng biến đổi phần mềm

ƒ Thực tế: Những thay đổi yêu cầu là nguyên nhân chính làm giảm giá trị phần mềm

• Tôi có thể giải quyết vấn đề lịch biểu bằng cách

thêm người

ƒ Thực tế: Nó có thể gia tăng nỗ lực phối hợp là

giảm hiệu suất

• Chỉ cần xem xét sơ lược các yêu cầu, chúng tôi có thể bắt đầu viết code

ƒ Thực tế: đó thường là nguyên nhân chính gây ra lỗi

Trang 41

Công Nghệ Phần Mềm 41

Những sai lầm

• Phần quan tâm hầu như duy nhất là mã

ƒ Tài liệu, thông tin kiểm thử và cấu hình phần mềm cũng là những phần then chốt trong việc chuyển giao

• Lập trình giỏi thì hầu như là sẽ tạo được phần mềm chất lượng

ƒ Những dự án phần mềm được hoàn tất bởi những nhóm, không phải cá nhân, để thành công cần

nhiều hơn là tạo mã

• Tạo mã là công việc nặng nhọc nhất

ƒ Tạo mã: ít hơn 10% công sức

Trang 42

Những điểm chính

quan đến tất cả diện mạo của việc sản phần mềm

Những thuộc tính quan trọng: (tính dễ bảo trì)

maintainability, (tính tin cậu được) dependability, (hiệu quả) efficiency và tiện dụng (usability)

hoạt động cơ bản là đặc tả (specification), triển khai, thẩm định (validation) và tiến hóa (evolution)

mềm Nó bao gồm những đề xuất cho qui trình, những ký hiệu được dùng, những luật cho mô tả hệ thống và hướng dẫn thiết kế

toàn vẹn của biểu đồ, giữ vết cho những bài kiểm tra (test) chương trình mà đã thực thi…

Ngày đăng: 15/12/2017, 17:56

🧩 Sản phẩm bạn có thể quan tâm

w