1. Trang chủ
  2. » Công Nghệ Thông Tin

Bai giang cong nghe phan mem

349 375 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 349
Dung lượng 12,85 MB

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 hay kỹ nghệ phần mềm (software engineering) là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm.Bài giảng công nghệ phần mềm là bài giảng tham khảo cho học phần nhập môn công nghệ phần mềm.

Trang 1

Công nghệ phần mềm

1

Trang 3

– Tài liệu người dùng

3

Trang 5

Phần mềm – Vai trò

• Làm thay đổi phong cách làm việc của tổ chức

• Tăng hiệu suất làm việc của đơn vị

– Nền kinh tế của tất cả các nước phát triển đều phụ

thuộc vào phần mềm

trong GNP của tất cả các nước phát triển

5

Trang 6

Phần mềm – Các đặc trưng chính

– Quy trình quản lý

Trang 8

Phần mềm – Tổng kết

• Phát triển phần mềm là công việc phức tạp, rủi ro

Cần áp dụng các phương pháp tiên tiến

Trang 9

Kỹ nghệ phần mềm – Khái niệm

• Các lý thuyết, các phương pháp và các công cụ hỗtrợ cho phát triển phần mềm

• Áp dụng các lý thuyết, các phương pháp, các công cụ

Trang 11

SE - Các hoạt động chính

mềm

– Đặc tả (specification) – hệ thống cần làm gì và các ràng buộc

đúng như khách hàng muốn hay không

các nhu cầu thay đổi.

11

Trang 12

– Các hoạt động đặc tả, phát triển, thẩm định, tiến hóa

model)

Trừu tượng hóa của một lớp các tiến trình thực.

– Ví dụ: mô hình thác nước

Trang 14

• IBM Rational Unified Process (RUP)

Trang 15

15

Trang 16

Agile methods

Trang 17

SE – Tổng kết

• Kỹ nghệ phần mềm bao gồm việc phát triển các lý

thuyết, các phương pháp và các công cụ hỗ trợ quá

trình sản xuất phần mềm và việc áp dụng chúng vào các quá trình sản xuất phần mềm thức tế.

• Tiến trình phần mềm bao gồm các hoạt động cần thực hiện để phát triển phần mềm

• Phương pháp phần mềm mô tả cách thức thực hiện các hoạt động phát triển phần mềm

• Công cụ phần mềm hỗ trợ việc xây dựng phần mềm

17

Trang 18

Các quy trình phần mềm

Trang 21

21

Trang 22

Requirements

definition

System and software design

Implementation and unit testing

Integration and system testing

Operation

Trang 23

23

Trang 25

• Các phiên bản thử nghiệm dùng tạm (throw-away

prototyping)

– Mục đích để hiểu các yêu cầu hệ thống

• nên bắt đầu từ bộ yêu cầu không được hiểu rõ để có thể làm rõ đâu là cái thực sự được yêu cầu.

25

Trang 26

Final version

Các hoạt động song song

Intermediate version Intermediate version

Trang 27

• Vấn đề

– Tính quy trình không thể hiện rõ ràng;

– Các hệ thống thường được cấu trúc tồi;

– Đòi hỏi các kỹ năng đặc biệt

• ví dụ kĩ năng dùng các ngôn ngữ cho việc xây dựng cấp tốc các phiên bản thử nghiệm (rapid prototyping)

• Ứng dụng

– cho các hệ thống kích thước nhỏ và trung bình;

– Cho một số phần nào đó của hệ thống lớn (chẳng hạn giao diện người dùng);

– cho các hệ thống chỉ dùng trong thời gian ngắn.

27

Trang 28

thống COTS (Commercial-off-the-shelf – sẵn sàng để người dùng mua về cài vào máy)

Trang 29

Requirement

specification

Component analysis

Requirement modification

System design with reuse

Development

and integration

System validation

29

Trang 30

• Các yêu cầu hệ thống LUÔN LUÔN thay đổi trong quá trình thực hiện một dự án, do đó trong quy trình cho các hệ thống lớn luôn có việc lặp lại quy trình (process iteration) mà trong đó các giai đoạn đã qua được thực hiện lại.

Trang 31

• Việc chuyển giao được chia thành các đợt.

• Gắn độ ưu tiên cho các yêu cầu, các yêu cầu có độ ưu tiên cao nhất cần được đáp ứng ngay từ các đợt đầu tiên

• Một khi hoạt động phát triển cho một đợt đã bắt đầu, bộ yêu cầu dùng được đóng băng, các thay đổi đối với yêu cầu được

dành cho đợt sau.

31

Trang 32

to increments

Design system architecture

Develop

system

increment

Validate increment

Integrate increment

Validate system

Final

System incomplete

Trang 33

• Rủi ro thấp đối với thất bại toàn bộ dự án.

• Các dịch vụ hệ thống có ưu tiên cao nhất có xu

hướng được kiểm thử nhiều nhất

33

Trang 34

• Các rủi ro được đánh giá một cách tường minh và được giải quyết trong suốt quy trình

Trang 35

phân tích rủi ro

Prototype 1

Concept of Operation

Simulation, models, benchmarks

W/S requirements Requirement

validation Test design

Product design Detailed design

Code Unit test Integration test Acceptance test Service

Integration and Test plan

Development plan

Requirements plan Life-cycle plan

REVIE W

Xác định mục tiêu,

các lựa chọn khác,

và các ràng buộc

Đánh giá các lựa chọn, xác định và giải quyết

các rủi ro

Phát triển, kiểm định sản phẩm của mức

35

phân tích rủi ro phân tích rủi ro phân tích rủi ro

Trang 37

Các hoạt động chung nhất của các quy

trình

Đặc tả Thiết kế và cài đặt

Thẩm định Tiến hóa

37

Trang 38

• Quy trình thiết lập danh sách các dịch vụ được yêu cầu và các ràng buộc đối với hoạt động của hệ

Trang 39

Feasibility

study

Requirements elicitation &

analysis

Requirements specification

Requirements validation

Feasibility

report

System models

User and system requirements

Requirements documents

39

Trang 42

Quy trình thiết kế phần mềm

Trang 43

• là hoạt động dịch một thiết kế thành một

chương trình và loại bỏ lỗi trong chương trình đó

• lập trình là một hoạt động cá nhân – không có quy trình lập trình tổng quát

• trong quy trình tìm lỗi (debugging process),

lập trình viên thực hiện việc kiểm thử chương trình để phát hiện lỗi trong chương trình và

loại bỏ các lỗi đó

43

Trang 44

• Kiểm định (verification) và thẩm định (validation) nhằm chứng tỏ rằng một hệ thống

tuân theo đặc tả của nó, và

– thỏa mãn các yêu cầu

của khách hàng hệ thống.

• bao gồm các quy trình checking và review và kiểm thử hệ thống (system testing)

– Việc kiểm thử bao gồm việc chạy hệ thống với các test case được dẫn xuất từ đặc tả.

Verification Validation

Trang 45

Propose system changes

Modify systems

Existing

45

Trang 46

thể thay đổi

• Các yêu cầu thay đổi do sự biến đổi của các hoàn cảnh doanh nghiệp, phần mềm hỗ trợ doanh

nghiệp cũng phải tiến hóa và thay đổi theo

• Tuy đã có một ranh giới giữa phát triển và tiến hóa (bảo trì), ranh giới này ngày càng ít ý nghĩa khi

ngày càng ít hệ thống hoàn toàn mới

Trang 47

• Tiến trình phần mềm là tập các hoạt động được thực hiện để sản

xuất và tiến hoá phần mềm

• Các hoạt động chung nhất của các tiến trình phần mềm là đặc tả yêu cầu, phát triển, thẩm định và tiến hoá phần mềm.

• Các mô hình tiến trình mô tả việc tổ chức các hoạt động của tiến trình phần mềm.

47

Trang 48

• Evolution is concerned with modifying the system after it is in use.

• The Rational Unified Process is a generic process model that separates activities from phases.

• CASE technology supports software process activities.

Trang 49

Công nghệ phần mềm

Yêu cầu phần mềm

49

Trang 51

Yêu cầu phần mềm - Requirements

• Tiêu chí gì quan trọng nhất đối với chất lượng phần mềm?

Phần mềm thỏa mãn được yêu cầu của người dùng

Những gì người ta muốn có trong phần mềm được phát triển

51

Trang 52

Ví dụ Travel Agency: Yêu cầu người dùng

phần mềm) và đề nghị làm dự án phần mềm sau:

TravelGood muốn cung cấp cho khách hàng của họ một ứng dụng đặt vé và lập kế hoạch du lịch Ứng dụng này cần cho phép khách lập kế hoạch về các chuyến bay và khách sạn

Đầu tiên, khách hàng có thể sắp xếp một chuyến đi, sau đó đặt vé và đặt phòng khách sạn cho chuyến đi đó Người dùng

có thể lập kế hoạch cho nhiều chuyến đi Ngoài ra, phần mềm còn cho phép hủy các chuyến đã đặt.

Trang 53

• Sau khi nhận làm phần mềm cho TravelGood đội phát triển chi tiết hóa thành các yêu cầu hệ thống :

1 Người dùng có thể lập kế hoạch một chuyến đi bằng cách chọn một

trình tự các điểm đến, rồi lưu lại (kèm theo sơ đồ mô tả kịch bản ca

sử dụng)

2 Hệ thống cần là ứng dụng Web, chạy được tại tất cả các hệ điều

hành và hầu hết các trình duyệt

3 Ứng dụng Web phải triển khai được tại các server tiêu chuẩn như

GlassFish hoặc Tomcat

4 Hệ thống phải dễ sử dụng: đạt một test usability (kèm chi tiết cụ thể)

5 …

53

Trang 54

Ví dụ khác

Đặc tả yêu cầu người dùng

1 Phần mềm phải cung cấp một phương tiện để biểu diễn và truy nhập các file bên ngoài được tạo bằng các công cụ khác.

1.1 Người dùng cần được cung cấp tiện ích để định nghĩa kiểu của các file ngoài.

1.2 Mỗi kiểu file ngoài có thể được biểu diễn dưới dạng một biểu tượng trên phần hiển thị của người dùng.

1.3 Mỗi kiểu file ngoài có thể có một công cụ có thể dùng cho loại file đó.

1.4 Cần cung cấp các tiện ích để người dùng có thể định nghĩa biểu tượng cho file ngoài.

1.5 Khi một người dùng chọn một biểu tượng đại diện cho một file ngoài,

Đặc tả yêu cầu hệ thống

Trang 55

Yêu cầu người dùng / Yêu cầu hệ thống

– Định nghĩa cái gì cần được cài đặt

người nhận thầu.

Trang 56

REQ2 2 The system shall lock the door when commanded by pressing a dedicated button.

REQ3 5 The system shall, given a valid key code, unlock the door and activate other devices.

The system should allow mistakes while entering the key code However, to resist “dictionary attacks,” the number

of allowed failed attempts shall be small, say three, after which the system will block and the alarm bell shall be sounded.

REQ5 2 The system shall maintain a history log of all attempted accesses for later review.

REQ6 2 The system should allow adding new authorized persons at runtime or removing existing ones.

REQ7 2 The system shall allow configuring the preferences for device activation when the user provides a valid key code,

as well as when a burglary attempt is detected.

The system should allow searching the history log by specifying one or more of these parameters: the time frame,

Trang 57

User Story

As a tenant, I can unlock the doors to enter my apartment.

user-role (benefactor)

Trang 58

ST-1 As an authorized person (tenant or landlord), I can keep the doors locked at all times. 4 points

ST-2 As an authorized person (tenant or landlord), I can lock the doors on demand. 3 pts ST-3 The lock should be automatically locked after a defined period of time. 6 pts

ST-4 As an authorized person (tenant or landlord), I can unlock the doors.(Test: Allow a small number of mistakes, say three.) 9 points

ST-5 As a landlord, I can at runtime manage authorized persons. 10 pts ST-6 As an authorized person (tenant or landlord), I can view past accesses. 6 pts ST-7 As a tenant, I can configure the preferences for activation of various devices. 6 pts

Trang 59

• Yêu cầu chức năng – functional requirement:

Người dùng có thể lập kế hoạch một chuyến đi, đặt vé, đặt phòng, lưu một kế hoạch để sau này sẽ đặt vé đặt phòng…

• Yêu cầu phi chức năng – non-functional requirement:

Hệ thống cần là ứng dụng Web, chạy được tại tất cả các hệ điều hành và hầu hết các trình duyệt

Ứng dụng Web phải triển khai được tại các server tiêu

chuẩn như GlassFish hoặc Tomcat

Hệ thống phải dễ sử dụng – phải đạt một test usability

59

Trang 60

“Hệ thống cần là ứng dụng Web, chạy được tại tất cả

các hệ điều hành và hầu hết các trình duyệt”

Trang 61

Usa bilit y

requir ements

Efficiency requir ements

Relia bilit y requir ements

Porta bilit y requir ements

Inter oper a bilit y requir ements

Ethical requir ements

Leg isla tive requir ements

Imple menta tion requir ements

Standar ds requir ements

Deli very requir ements

Safety requir ements

Pri vacy requir ements

Product requir ements

Organisati ona l requir ements

External requir ements

Non-functiona l requir ements

chi tiết tại GT

Trang 62

Yêu cầu chức năng và phi chức năng

• Yêu cầu chức năng

– Phát biểu về các dịch vụ mà hệ thống cần cung cấp,

• Hệ thống cần phản ứng như thế nào với các input cụ thể

• Hệ thống cần ứng xử như thế nào trong các tình huống

cụ thể.

• Yêu cầu phi chức năng

– Ràng buộc về các dịch vụ hay chức năng của hệ thống

• Chẳng hạn ràng buộc về thời gian, về quy trình phát triển, về các chuẩn v.v

Trang 63

Đặc điểm của yêu cầu được diễn đạt tốt

• Kiểm thử được – testability

– Test được (thủ công hoặc tự động)

• Đo được

– Ví dụ về yêu cầu không đo được:

sao cho người dùng ít làm nhầm nhất

– Đo được:

sau 04 tiếng huấn luyện Sau huấn luyện, số lỗi trung bình mà một người dùng có kinh nghiệm phạm phải trong mỗi giờ không vượt quá 02 lỗi

63

Trang 64

Thời gian đáp ứng mỗi sự kiện Tần xuất làm tươi màn hình

Số lượng ROM chip

Số trang tài liệu hướng dẫn sử dụng

Xác suất hệ thống không hoạt động tại một thời điểm

Số lần xảy ra sự cố trong mỗi giờ Vững mạnh - Robustness Thời gian cần để hoạt động lại sau sự cố

Phần trăm sự kiện gây sự cố

Trang 67

Feasibility Study

Requirements elicitation and analysis

Requirements specification

Requirements validation

Feasibility

User and system requirements

Requirements document

Trang 68

System requirements specification

and modeling

User requirements specification Business requirements

Requirements

Trang 69

Nghiên cứu khả thi Feasibility studies

• Một nghiên cứu ngắn, tập trung, nhằm kiểm tra xem

– Hệ thống có đóng góp cho các mục tiêu của tổ chức hay không?

– Hệ thống có thể được phát triển bằng công nghệ hiện hành và trong phạm vi ngân sách hay không?

– Hệ thống có thể được tích hợp với các hệ thống khác đang được sử dụng hay không?

Trang 70

• Dựa trên đánh giá thông tin (cái gì cần), thu thập thông tin và viết báo cáo.

Trang 72

– Xếp thứ tự ưu tiên cho các yêu cầu và giải quyết các xung đột/mâu thuẫn giữa các yêu cầu.

– Ghi lại các yêu cầu làm tài liệu đầu vào cho vòng xoắn tiếp theo.

Trang 73

Phát hiện mới

Discovery

Viết tài liệu Documentation

Trang 74

• Quy trình thu thập thông tin về hệ thống đề xuất

và các hệ thống sẵn có, gạn lọc ra các yêu cầu

người dùng và yêu cầu hệ thống từ các thông tin này

Trang 76

• Khách hàng của ngân hàng (người sử dụng dịch vụ)

• Đại diện của các ngân hàng khác (ATM của ngân hàng này có thể dùng để giao dịch với ngân hàng khác)

Trang 77

• Lấy yêu cầu

Trang 78

• Stakeholder không biết họ thực sự muốn gì.

• Stakeholder diễn đạt yêu cầu bằng các thuật ngữ của họ.

• Các stakeholder khác nhau có thể có các yêu cầu xung đột.

• Các nhân tố tổ chức và chính trị có thể ảnh hưởng đến yêu cầu hệ thống.

• Các yêu cầu thay đổi ngay trong quá trình phân tích

Trang 79

– Nghiên cứu khả thi

– Thu thập và phân tích yêu cầu

Use case – ca sử dụng

– Làm tài liệu yêu cầu

– Thẩm định yêu cầu

79

Trang 80

• Kịch bản (scenario) là các ví dụ đời thực về việc hệ thống có thể được sử dụng như thế nào

Trang 81

Initial Assumption: Người dùng đã đăng nhập hệ thống LIBSYS và đã tìm

thấy tạp chí có đăng tài liệu cần tìm.

Normal:

•Người dùng chọn tài liệu cần copy Hệ thống sẽ yêu cầu người dùng nhập thông tin thuê bao hoặc chọn cách trả phí dùng tài liệu Có thể thanh toán

bằng thẻ tín dụng hoặc dùng số tài khoản của một tổ chức.

•Sau đó người dùng được yêu cầu điền một form bản quyền trong đó có chi tiết về giao dịch này, rồi submit form đó cho hệ thống LIBSYS.

•Hệ thống kiểm tra form bản quyền, nếu OK, bản PDF của tài liệu sẽ được tải xuống máy tính của người dùng và người dùng được thông báo về việc này Sau đó người dùng được chọn một máy in, và tài liệu sẽ được in tại đó Nếu tài liệu đã được gắn cờ ‘print-only’ thì nó sẽ được xóa khỏi máy của người dùng ngay sau khi người dùng khẳng định rằng đã in xong.

Trang 82

What can go wrong:

•Người dùng có thể điền form sai Khi đó hệ thống cần hiện lại form để

người dùng sửa lại Nếu form được submit sau đó vẫn sai thì hủy yêu cầu đọc tài liệu của người dùng

•Hệ thống có thể không chấp nhận giao dịch thanh toán tiền Hủy yêu cầu đọc tài liệu của người dùng

•Việc download tài liệu có thể thất bại Làm lại cho đến khi thành công hoặc khi người dùng chấm dứt phiên làm việc.

•Có thể không in được tài liệu Nếu bài báo không có gắn cờ ‘print-only’ thì giữ nó trong workspace của LIBSYS Nếu không, xóa tài liệu và hoàn lại chi phí cho người dùng.

Other activities: Song song download các tài liệu khác nhau.

System state on completion: Người dùng đang ở trạng thái đăng nhập

Trang 83

• Ca sử dụng (use-case) là một kĩ thuật kiểu kịch bản bằng ngôn ngữ UML

Trang 84

In tài liệu

Trang 85

LIBSYS use case

Trang 86

Article printing

Trang 87

Print article sequence

Trang 88

Ca sử dụng – Use case

• Use case:

– Là một tập các kịch bản tương tác giữa một hoặc vài actor với hệ thống nhằm thực hiện một mục tiêu chung

• Sơ đồ use case (đồ họa)

– Sơ đồ mô tả tổng quan các ca sử dụng của một hệ thống và

ai dùng chức năng nào

• Mô tả chi tiết use case (văn bản)

– Mô tả chi tiết tương tác giữa người dùng và hệ thống trong một tập các kịch bản

Ngày đăng: 28/02/2017, 10:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w