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

Bài giảng Công nghệ phần mềm: Chương 6 - ĐH Công nghệ TP.HCM

45 43 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

Tiêu đề Thiết Kế Và Hiện Thực Chương Trình
Tác giả Jens Martensson
Trường học ĐH Công nghệ TP.HCM
Chuyên ngành Công nghệ phần mềm
Định dạng
Số trang 45
Dung lượng 2,54 MB

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

Nội dung

Bài giảng Công nghệ phần mềm: Chương 6 Thiết kế và hiện thực chương trình cung cấp cho người học những kiến thức như: Tổng quan về thiết kế và hiện thực phần mềm; Thiết kế hướng đối tượng sử dụng UML; Mẫu thiết kế; Vấn đề thực hiện. Mời các bạn cùng tham khảo!

Trang 1

THIẾT KẾ VÀ HIỆN THỰC CHƯƠNG TRÌNH

Trang 2

1 Tổng quan về thiết kế và hiện thực phần mềm

2 Thiết kế hướng đối tượng sử dụng UML

3 Mẫu thiết kế

4 Vấn đề thực hiện

NỘI DUNG

Trang 3

Thiết kế và hiện thực phần mềm là một giai đoạn trong quy trình công nghệ phần mềm.

• Hoạt động thiết kế hiện thực phần mềm luôn xen kẽ nhau

Thiết kế phần mềm là một hoạt động sáng tạo trong đó các kỹ sư phần mềm phải xác định các thành phần phần mềm và các

mối quan hệ của chúng, dựa trên yêu cầu của khách hàng.

Hiện thực phần mềm là quá trình thực hiện các thiết kế như một chương trình.

1 Tổng quan về thiết kế và hiện thực phần mềm

Trang 4

• Thông thường, có một giai đoạn thiết kế riêng biệt và thiết kế này được mô hình hóa và ghi dưới dạng các bảng vẽ thiết kế.

• Ngoài ra, cũng có một thiết kế từ những lập trình viên hoặc được phác họa sơ bộ trên giấy về cách

Trang 5

• Một trong những quyết định quan trọng nhất phải được đưa ra ở giai đoạn đầu của dự án phần

mềm là nên mua hay xây dựng phần mềm mới

Hiện nay, trong một số lĩnh vực, đã có các giải pháp đóng gói (COTS -Commercial off-the-shelf) gồm đầy đủ các dịch vụ,

sau đó được điều chỉnh để đáp ứng nhu cầu của người dùng

Ví dụ, nếu muốn thực hiện một hệ thống hồ sơ y tế, người dùng có thể mua một gói đã được sử dụng trong bệnh viện Nó rẻ hơn

và nhanh hơn thay vì phát triển một hệ thống theo ngôn ngữ lập trình thông thường.

1 Tổng quan về thiết kế và hiện thực phần mềm

Trang 6

Quy trình thiết kế hướng đối tượng có cấu trúc liên quan đến việc phát triển các mô hình hệ

thống khác nhau.

Quy trình thiết kế hướng đối tượng đòi hỏi rất nhiều nỗ lực để phát triển và bảo trì, đối với các hệ thống nhỏ, điều này

không hiệu quả về chi phí.

• Tuy nhiên, đối với các hệ thống lớn được phát triển bởi các nhóm khác nhau, các mô hình thiết kế là một cơ chế giao tiếp

quan trọng.

2 Quy trình thiết kế hướng đối tượng

Trang 7

Các giai đoạn xử lý: Có nhiều quy trình thiết kế hướng đối tượng khác nhau phụ thuộc vào tổ chức

sử dụng quy trình

Các hoạt động phổ biến trong các quy trình thiết kế hướng đối tượng:

• Thiết kế kiến trúc hệ thống;

• Xác định các đối tượng hệ thống chính;

• Xây dựng mô hình thiết kế;

• Chỉ định các giao diện của đối tượng.

2 Quy trình thiết kế hướng đối tượng

Trang 8

• Hiểu được mối quan hệ giữa phần mềm đang được thiết kế và môi trường bên ngoài của nó là

điều cần thiết để quyết định cách cung cấp chức năng hệ thống cần thiết và cách cấu trúc hệ

thống để giao tiếp với môi trường của nó.

Hiểu biết về ngữ cảnh giúp thiết lập các ranh giới (boundary) của hệ thống và quyết định các tính

năng nào được triển khai trong hệ thống và những tính năng nào trong các hệ thống liên kết

khác.

Trang 9

Mô hình ngữ cảnh hệ thống là một mô hình cấu trúc thể hiện các hệ thống con trong môi trường

của hệ thống đang được phát triển.

Mô hình ngữ cảnh hệ thống như một bản đồ cấp cao của hệ thống và môi trường xung quanh,

được sử dụng xác định phạm vi hoạt động của hệ thống

Sơ đồ ngữ cảnh hệ thống gồm ba phần tử biểu đồ: Phần tử ngữ cảnh, các thực thể bên ngoài và các

luồng dữ liệu

Trang 10

Ví dụ: Mô hình ngữ cảnh của hệ

thống đặt hàng hiển thị tất cả các

hướng dẫn nội bộ và xử lý tự động

Trang 11

Mô hình tương tác là một mô hình động thể hiển cách mà hệ thống tương tác với môi trường của

nó khi nó được sử dụng.

khác

Trang 12

Vai trò của mô hình tương tác

Mô hình hóa tương tác người dùng giúp xác định các yêu cầu của người dùng.

Mô hình hóa hệ thống làm nổi bật các vấn đề giao tiếp có thể phát sinh.

Mô hình hóa tương tác thành phần giúp hiểu nếu cấu trúc hệ thống được đề xuất có khả năng cung cấp các yêu cầu phi chức

năng cần thiết.

2.3 Mô hình tương tác

Trang 13

Sơ đồ use case: mô hình hóa các tương tác giữa hệ thống và các tác nhân bên ngoài (người dùng

• dựa vào đặc tả yêu cầu của người dùng, yêu cầu chức năng, chọn ra tập các động từ

• Từ tập động từ, chọn ra những động từ đại diện cho một chức năng hoàn chỉnh

2.3 Các sơ đồ trong mô hình tương tác

Trang 14

• Ví dụ:

2.3 Các sơ đồ trong mô hình tương tác

Khách hàng (actor) sử dụng ATM

để kiểm tra số dư trong tài khoản

ngân hàng, tiền ký quỹ, rút tiền

mặt và chuyển khoản (use case)

Kỹ thuật viên ATM cung cấp Bảo

trì và Sửa chữa Tất cả các

trường hợp sử dụng này cũng liên

quan đến Ngân hàng gồm liên

quan đến giao dịch của khách

hàng hoặc với dịch vụ ATM.

Trang 15

Sơ đồ use case

Đặc tả use case

người không biết về kỹ thuật,

Trang 16

Các nội dung trong đặc tả use case

Luồng sự kiện chính (main flow): các bước thực hiện use case, là sự tương tác giữa actor và hệ thống, từ lúc bắt đầu đến

kết thúc.

• Mỗi bước được đánh số thứ tự.

• Actor thực hiện bước bắt đầu

• Hệ thống đáp trả.

• Actor thực hiện bước tiếp theo …

Luồng sự kiện thay thế (alternate flow): tại một bước trong luồng sự kiện chính, buộc actor phải chọn nhánh khác để thực

hiện cho đến bước cuối hoặc quay lại một bước nào đó trong luồng sự kiện chính

• Luồng sự kiện thay thế được đánh số thứ tự theo bước mà tại đó có luồng rẻ nhánh

2.3 Các sơ đồ trong mô hình tương tác

Trang 17

Mô tả sơ lược:

Khách hàng thực hiện yêu cầu đặt mua sách trên hệ thống BooksotreOnline.

Số lượng sách trong kho được cập nhật Luồng sự kiện chính

Trang 18

Sơ đồ sequence : mô hình các tương tác giữa các đối tượng hoặc các thành phần hệ thống.

Sơ đồ tuần tự biểu diễn tuần tự các tương tác giữa các đối tượng trong hệ thống bằng các thông điệp

(messages), từ các thông điệp tương tác giữa các đối tượng, xác định các hành vi của đối tượng

2.3 Các sơ đồ trong mô hình tương tác

attribute = message_name (arguments): return_type

Trang 19

2.3 Các sơ đồ trong mô hình tương tác

Trang 20

Hệ thống con (subsystem)

Một hệ thống thường được chia thành các hệ thống con, mỗi hệ thống con thực hiện một công việc hoàn chỉnh.

Hệ thống con có thể được chia nhỏ một cách đệ quy thành những hệ thống con đơn giản hơn

2.4 Thiết kế các thành phần của hệ thống

Trang 21

Sơ đồ Package

• Để dễ dàng trong phần thiết kế hướng đối tượng, domain model

được tổ chức thành các package.

• Tổ chức domain model thành các package là một thủ tục phức

tạp, dựa trên hai nguyên tắc cơ bản: sự gắn kết và độc lập.

2.4 Thiết kế các thành phần của hệ thống

Trang 22

Sơ đồ Package

Nhóm các lớp vào Package: nhóm các lớp vào package phải thỏa các tiêu chí gắn kết (coherence) sau:

trong quá trình phát triển dự án, và sau đó

các lớp mà đối tượng có thời gian sống rất khác nhau.

2.4 Thiết kế các thành phần của hệ thống

Trang 23

Ví dụ: Package Dịch vụ theo dõi

đặt hàng của một cửa hàng mua

sắm trực tuyến Dịch vụ theo dõi đặt

Trang 24

Sơ đồ thành phần (Component diagrams): được sử dụng để trực quan hóa tổ chức và mối quan hệ giữa các Component trong một hệ thống

• Các sơ đồ này cũng được sử dụng để tạo ra các hệ thống thực thi

• Component

• Interface

• Port

2.4 Thiết kế các thành phần của hệ thống

Trang 25

Component là một khối đơn vị logic của hệ thống, được sử dụng để mô hình hóa các khía cạnh vật lý của một hệ thống, là các yếu tố như tệp thực thi, thư viện, tệp, tài liệu, v.v

Thông thường một Component được tạo thành từ nhiều class, package của các class hoặc các

Component khác

2.4 Thiết kế các thành phần của hệ thống

Trang 26

Interface: Đây là các điểm nhập hoặc cung cấp dịch vụ có thể nhìn thấy mà một Component có thể cung cấp cho các Component và lớp phần mềm khác

2.4 Thiết kế các thành phần của hệ thống

Trang 28

Port: chỉ ra component đó không cung cấp các interfaces, và component ủy quyền interfaces cho một lớp bên trong Port được sử dụng để giúp hiển thị các interfaces của một component.

2.4 Thiết kế các thành phần của hệ thống

Trang 29

Sơ đồ triển khai (Deployment diagrams): được sử dụng để mô hình hóa các khía cạnh vật lý của

một hệ thống hướng đối tượng Nó thể hiện cách mà hệ thống sẽ được triển khai

• Các thiết bị phần cứng, bộ xử lý và môi trường thực thi phần mềm được phản ánh dưới dạng Nút và cấu trúc bên trong có thể được mô tả bằng cách nhúng hoặc Nút lồng

2.4 Thiết kế các thành phần của hệ thống

Trang 30

Các thành phần trong Deployment diagrams:

Trang 31

Nodes: là một thực thể vật lý thực thi một hoặc nhiều thành phần (components, subsystems) hoặc tệp thực thi

• Một nút có thể là một yếu tố phần cứng hoặc phần mềm

2.4 Thiết kế các thành phần của hệ thống

Trang 32

Devices:

• Ví dụ: Sơ đồ triển khai cơ bản của một hệ thống gồm:

• Một máy chủ web

• Một máy chủ cơ sở dữ liệu

• Máy mà người dùng xem trang web

2.4 Thiết kế các thành phần của hệ thống

Trang 33

• Các phương pháp lập trình

• Thách thức trong triển khai phần mềm

3 Hiện thực phần mềm (Software Implementation)

Trang 34

Lập trình hướng cấu trúc: là phương pháp lập trình logic, là tiền thân của lập trình hướng đối tượng

(OOP) Lập trình có cấu trúc giúp chương trình rõ ràng, dễ hiểu và dễ sửa đổi

Cách tiếp cận thiết kế từ trên xuống: một hệ thống được chia thành các hệ thống con thành phần hoặc module riêng biệt, và

các module có thể được sử dụng lại trong các chương trình khác

• Sau khi một module đã được thử nghiệm riêng lẻ, nó sẽ được tích hợp với các module khác vào cấu trúc chương trình tổng

thể.

3.1 Các phương pháp lập trình

Trang 35

Lập trình hướng chức năng: Đây là phương pháp cận truyền thống của ngành công nghiệp phần

liệu giả lập

Chương trình = thuật giải + cấu trúc dữ liệu

Ngôn ngữ lập trình chức năng được dùng để xử lý các ứng dụng tính toán và xử lý danh sách

Lập trình chức năng dựa trên các hàm toán học

• Các ngôn ngữ lập trình chức năng phổ biến: Lisp, Python, vv

3.1 Các phương pháp lập trình

Trang 36

Lập trình hướng đối tượng: là một phương pháp lập trình mà theo đó giải pháp cho một vấn đề lập

trình được mô hình hóa như một tập hợp các đối tượng hợp tác

• Các đối tượng bao gồm thuộc tính và hành vi, và tương tác với nhau bằng cách gửi các thông điệp

• Phương pháp lập trình hướng đối tượng tập trung vào các đối tượng hơn là logic cần thiết để thao

tác chúng

Phù hợp cho các hệ thống lớn, phức tạp, có khả năng sử dụng lại mã, khả năng mở rộng và

hiệu quả.

3.1 Các phương pháp lập trình

Trang 37

Phong cách lập trình: thiết lập các quy tắc mã hóa để các lập trình viên tuân thủ khi viết mã

• Khi nhiều lập trình viên làm việc trên cùng một dự án phần mềm, họ cần phải làm việc với mã chương

trình được viết bởi các nhà phát triển khác, do đó, các nhà phát triển phải tuân theo một số phong

cách lập trình tiêu chuẩn để mã hóa chương trình

3.1 Các phương pháp lập trình

Trang 38

Phong cách lập trình:

• Sử dụng hàm và tên biến có liên quan đến tác vụ đang hiện thực

• Sử dụng thụt lề được đặt đúng vị trí.

• Chú thích cho code để thuận tiện cho người đọc

• Cách trình bày code tổng thể sao cho mã chương trình có thể đọc và dễ hiểu bởi tất cả các thành viên, giúp việc gỡ lỗi và giải

quyết lỗi dễ dàng hơn.

• Ngoài ra, phong cách lập trình phù hợp giúp dễ dàng viết và cập nhật tài liệu phần mềm.

3.1 Các phương pháp lập trình

Trang 39

Tài liệu phần mềm là một phần quan trọng của quy trình phần mềm Một tài liệu được viết tốt cung

cấp một công cụ hữu ích, và phương tiện lưu trữ thông tin cần thiết để biết về quy trình phát triển

phần mềm

3.2 Tài liệu phần mềm

Trang 40

Nội dung trong tài liệu phần mềm:

Tài liệu yêu cầu (Requirement documentation):

nghiệm để thực hiện các nhiệm vụ tương ứng của họ

Tài liệu này chứa tất cả các mô tả chức năng, phi chức năng và hành vi

của phần mềm dự định.

giai đoạn xác minh và xác nhận Hầu hết các trường hợp thử nghiệm

được xây dựng trực tiếp từ tài liệu yêu cầu.

3.2 Tài liệu phần mềm

Trang 41

Nội dung trong tài liệu phần mềm:

Tài liệu thiết kế phần mềm (Software Design documentation): cung cấp tất cả thông tin cần thiết để mã hóa và triển khai,

bao gồm các nội dung:

• Chi tiết thiết kế phần mềm,

• Sơ đồ luồng dữ liệu,

• Thiết kế cơ sở dữ liệu

3.2 Tài liệu phần mềm

Trang 42

Nội dung trong tài liệu phần mềm:

Tài liệu kỹ thuật (Technical documentation): được tạo và duy trì bởi các nhà phát triển và các lập trình viên thực tế

Các tài liệu này chứa thông tin về mã chương trình Trong khi viết mã,

các lập trình viên đưa ra mục tiêu của mã, ai đã viết nó, nó sẽ được yêu

cầu ở đâu, làm gì và làm như thế nào, những tài nguyên khác mà mã sử

Trang 43

Nội dung trong tài liệu phần mềm:

Tài liệu người dùng (User documentation):

để có kết quả mong muốn.

• Các tài liệu này có thể bao gồm, quy trình cài đặt phần mềm, hướng dẫn

cách làm, hướng dẫn sử dụng, phương pháp gỡ cài đặt và tài liệu tham

khảo đặc biệt để có thêm thông tin như cập nhật giấy phép,

3.2 Tài liệu phần mềm

Trang 44

• Các thách thức mà nhóm phát triển phải đối mặt trong khi hiện thực phần mềm:

Tái sử dụng mã: các ngôn ngữ ngày nay được trang bị các thư viện khổng lồ Tuy nhiên, để giảm chi phí cho sản phẩm cuối

cùng, ban quản lý tổ chức thích sử dụng lại mã được tạo trước đó cho một số phần mềm khác Do đó, các lập trình viên phải

đối mặt để kiểm tra tính tương thích và quyết định sử dụng lại bao nhiêu mã.

3.3 Những thách thức khi triển khai phần mềm

Trang 45

Quản lý phiên bản - Mỗi khi một phần mềm mới được phát hành cho khách hàng, các nhà phát triển phải duy trì tài liệu liên

quan đến phiên bản và cấu hình Tài liệu này cần phải có độ chính xác cao và có sẵn đúng thời điểm.

Target-Host - Chương trình phần mềm, đang được phát triển trong tổ chức, cần được thiết kế cho các máy chủ khách hàng

Nhưng đôi khi, không thể thiết kế một phần mềm hoạt động trên các máy mục tiêu.

3.3 Những thách thức khi triển khai phần mềm

Ngày đăng: 20/06/2021, 09:11

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