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ẽ đ[r]
(1)(2)1 Tổng quan thiết kế 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
(3)Thiết kế thực phần mềm một giai đoạn trong quy
trình công nghệ phần mềm.
Hoạt động thiết kế và hiện thực phần mềm xen kẽ nhau.
Thiết kế phần mềm là hoạt động sáng tạo trong kỹ sư phần
mềm phải xác định thành phần phần mềm mối quan hệ chúng, dựa yêu cầu khách hàng
Hiện thực phần mềm là trình thực thiết kế chương
trình
(4)Thơng thường, có giai đoạn thiết kế riêng biệt thiết kế
được mơ hình hóa ghi dạng bảng vẽ thiết kế.
Ngồi ra, có thiết kế từ lập trình viên
phác họa sơ giấy cách giải vấn đề.
Tuy nhiên, cần mô tả chi tiết thiết kế hệ thống
bằng cách sử dụng UML hoặc ngôn ngữ mô tả thiết kế khác.
(5)Một quyết định quan trọng phải đưa
giai đoạn đầu dự án phần mềm là nên mua hay xây dựng
phần mềm mới
Hiện nay, số lĩnh vực, có giải pháp đóng gói (COTS
-Commercial off-the-shelf) gồm đầy đủ dịch vụ, sau điều chỉnh để đáp ứng nhu cầu người dùng
Ví dụ, nếu muốn thực hệ thống hồ sơ y tế, người dùng mua một gói sử dụng bệnh viện Nó rẻ nhanh thay
phát triển hệ thống theo ngơn ngữ lập trình thơng thường
(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 mơ hình hệ thống khác nhau.
Quy trình thiết kế hướng đối tượng đòi hỏi nhiều nỗ lực để phát triển
và bảo trì, hệ thống nhỏ, điều khơng hiệu chi phí
Tuy nhiên, hệ thống lớn phát triển nhóm khác
nhau, mơ hình thiết kế chế giao tiếp quan trọng
(7)Các giai đoạn xử lý: Có nhiều quy trình thiết kế hướng đối tượng
khác phụ thuộc vào tổ chức sử dụng quy trình.
Các hoạt động phổ biến quy trình thiết kế hướng đối tượng:
– Xác định bối cảnh phương thức sử dụng hệ thống; – Thiết kế kiến trúc hệ thống;
– Xác định đối tượng hệ thống chính; – Xây dựng mơ hình thiết kế;
– Chỉ định giao diện đối tượng
(8)Hiểu mối quan hệ phần mềm đang thiết kế mơi trường bên ngồi của điều cần thiết để quyết định cách cung cấp chức hệ thống cần thiết cách cấu trúc hệ thống để giao tiếp với mơi trường nó.
Hiểu biết ngữ cảnh giúp thiết lập ranh giới (boundary)
của hệ thống và quyết định tính triển khai trong hệ thống và tính trong hệ thống liên kết khác.
(9)Mơ hình ngữ cảnh hệ thống là mơ hình cấu trúc thể
các hệ thống con môi trường hệ thống phát triển.
Mơ hình ngữ cảnh hệ thống như bản đồ cấp cao hệ
thống và môi trường xung quanh, được sử dụng xác định phạm vi hoạt động hệ thống
Sơ đồ ngữ cảnh hệ thống gồm ba phần tử biểu đồ: Phần tử ngữ
cảnh, thực thể bên luồng liệu
(10)Ví dụ: Mơ hình ngữ
cảnh hệ thống đặt hàng hiển thị tất hướng dẫn nội xử lý tự động
(11)Mơ hình tương tác là mơ hình động thể hiển cách mà hệ
thống tương tác với mơi trường khi sử dụng.
Hiển thị tương tác thành phần hệ thống hoặc
giữa hệ thống với hệ thống khác
(12)Vai trị 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 yêu cầu người
dùng
Mơ hình hóa hệ thống làm bật vấn đề giao tiếp phát sinh.
Mơ hình hóa tương tác thành phần giúp hiểu cấu trúc hệ thống
đề xuất có khả cung cấp yêu cầu phi chức cần thiết
(13)Sơ đồ use case: mơ hình hóa tương tác hệ thống
tác nhân bên (người dùng hệ thống khác).
Xác định actor: Các đối tượng tương tác với hệ thống, người
hoặc hệ thống khác bên hệ thống xây dựng
Xác định use case: Một use case đại diện cho hành vi hoàn
chỉnh, thực qua nhiều bước, có hoạt động bắt đầu kết thúc
Cách xác định use case:
– dựa vào đặc tả yêu cầu người dùng, yêu cầu chức năng, chọn tập động từ – Từ tập động từ, chọn động từ đại diện cho chức hồn chỉnh
(14)Ví dụ:
2.3 Các sơ đồ mơ hình tương tác
(15)Sơ đồ use case Đặc tả use case
– Truyền đạt yêu cầu kỹ thuật yêu cầu phần mềm cho người kỹ thuật,
– Là cách để nhà phát triển phần mềm đảm bảo người dùng đạt yêu cầu từ hệ thống phần mềm
Cách đặc tả use case
– Đặc tả dạng văn – Đặc tả dạng bảng
(16)Các nội dung đặc tả use case
Luồng kiện (main flow): các bước thực use case,
tương tác actor hệ thống, từ lúc bắt đầu đến kết thúc
– Mỗi bước đánh số thứ tự – Actor thực bước bắt đầu – Hệ thống đáp trả
– Actor thực bước …
Luồng kiện thay (alternate flow): tại bước luồng kiện
chính, buộc actor phải chọn nhánh khác để thực bước cuối quay lại bước luồng kiện
– Luồng kiện thay đánh số thứ tự theo bước mà có luồng rẻ nhánh
(17)Ví dụ: Viết đặc tả
use case Đặt mua sách khách hàng hệ thống
BookstoreOnline
Tên use case: Đặt mua sách
Mô tả sơ lược: Khách hàng thực yêu cầu đặt mua sách hệ thống BooksotreOnline
Actor chính: khách hàng
Actor phụ: không
Tiền điều kiện: khách hàng phải đăng nhập thành công Hậu điều kiện: Một đơn hàng lưu hệ thống
Số lượng sách kho cập nhật Luồng kiện
Actor System
1 Khách hàng click nút Đặt hàng
3 Khách hàng điền thông tin đặt hàng click nút Gửi
6 Khách hàng xác nhận kết thúc hoạt động đặt mua sách
2 Hệ thống hiển thị Form đặt hàng Hệ thống kiểm tra (rẽ nhánh)
5 Hệ thống hiển thị thông báo đặt hàng thành công Hệ thống cập nhật số lượng sách
Luồng kiện thay
4.1.a Khách hàng chọn kết thúc 4.1.b Khách hàng chọn tiếp tục
(18)Sơ đồ sequence: mô hình tương tác đối tượng
các thành phần hệ thống.
Sơ đồ biểu diễn tương tác đối tượng
trong hệ thống thông điệp (messages), từ thông điệp tương tác đối tượng, xác định hành vi đối tượng.
2.3 Các sơ đồ mơ hình tương tác
(19)(20)Hệ thống (subsystem)
Một hệ thống thường chia thành hệ thống con, hệ thống
thực cơng việc hồn chỉnh
Hệ thống con chia nhỏ cách đệ quy thành hệ thống con đơn giản
(21)Sơ đồ Package
Để dễ dàng phần thiết kế hướng đối tượng, domain model
được tổ chức thành package.
Tổ chức domain model thành package thủ tục phức
tạp, dựa hai nguyên tắc bản: sự gắn kết và độc lập.
(22)Sơ đồ Package
Nhóm lớp vào Package: nhóm lớp vào package phải thỏa tiêu
chí gắn kết (coherence) sau:
– Mục tiêu: lớp phải trả dịch vụ đáp ứng yêu cầu người dùng
– Ổn định: cô lập lớp package phải thực ổn định trình phát triển dự án, sau
– Thời gian sống đối tượng: tiêu chí giúp phân biệt lớp mà đối tượng có thời gian sống khác
(23)Ví dụ: Package Dịch vụ theo dõi
đặt hàng cửa hàng mua sắm trực tuyến Dịch vụ theo dõi đặt hàng có trách nhiệm cung cấp thơng tin theo dõi cho sản phẩm đặt hàng khách hàng Các loại khách hàng số sê-ri theo dõi,
Dịch vụ theo dõi đặt hàng đề cập đến hệ thống cập nhật trạng thái giao hàng cho khách hàng.
(24)Sơ đồ thành phần (Component diagrams): được sử dụng để
trực quan hóa tổ chức mối quan hệ Component một hệ thống
Các sơ đồ sử dụng để tạo hệ thống thực
thi.
Các thành phần Component diagrams Component
Interface Port
(25)Component là khối đơn vị logic hệ thống, sử dụng
để mơ hình hóa khía cạnh vật lý hệ thống, yếu tố tệp thực thi, thư viện, tệp, tài liệu, v.v
Thông thường Component tạo thành từ nhiều class,
package class Component khác
Ký hiệu UML
(26)Interface: Đây điểm nhập cung cấp dịch vụ
nhìn thấy mà Component cung cấp cho
Component lớp phần mềm khác
Ký hiệu UML
(27)Loại Interface
Required interfaces: xác định tập thuộc tính hoạt động
chung (Public) yêu cầu lớp thực interface cho
Provided interfaces xác định tập thuộc tính hoạt động
chung (Public) cần cung cấp lớp thực interface cho
(28)Port: chỉ component khơng cung cấp interfaces,
component ủy quyền interfaces cho lớp bên Port sử dụng để giúp hiển thị interfaces của component.
Ký hiệu UML
(29)Sơ đồ triển khai (Deployment diagrams): được sử dụng để mơ
hình hóa khía cạnh vật lý của hệ thống hướng đối tượng Nó thể cách mà hệ thống triển khai.
Các thiết bị phần cứng, xử lý môi trường thực thi phần mềm
được phản ánh dạng Nút cấu trúc bên mơ tả cách nhúng Nút lồng
(30)Các thành phần Deployment diagrams: Nodes
Artifacts
Communication Association Devices
(31)Nodes: là thực thể vật lý thực thi nhiều thành phần
(components, subsystems) tệp thực thi
Một nút yếu tố phần cứng phần mềm. Ký hiệu UML
(32)Devices:
Ví dụ: Sơ đồ triển khai hệ thống gồm: Một máy chủ web
Một máy chủ sở liệu
Máy mà người dùng xem trang web
(33)Các phương pháp lập trình Tài liệu phần mềm
Thách thức triển khai phần mềm
(34)Lập trình hướng cấu trúc: là phương pháp lập trình logic, tiền
thân 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 dễ sửa đổi.
Cách tiếp cận thiết kế từ xuống: hệ thống chia thành
hệ thống thành phần module riêng biệt, module sử dụng lại chương trình khác
Sau module thử nghiệm riêng lẻ, tích hợp với
các module khác vào cấu trúc chương trình tổng thể
(35)Lập trình hướng chức năng: Đây phương pháp cận truyền
thống ngành công nghiệp phần mềm đó, phần mềm được xem tập hợp chương trình chức
năng và liệu giả lập.
Chương trình = thuật giải + cấu trúc liệu
Ngôn ngữ lập trình chức được dùng để xử lý ứng
dụng tính tốn xử lý danh sách Lập trình chức dựa các hàm tốn học
Các ngơn ngữ lập trình chức phổ biến: Lisp, Python, vv
(36)Lập trình hướng đối tượng: là phương pháp lập trình mà
theo giải pháp cho vấn đề lập trình mơ hình hóa một tập hợp đối tượng hợp tác
Các đối tượng bao gồm thuộc tính hành vi, tương tác với
nhau cách gửi thơng điệp
Phương pháp lập trình hướng đối tượng tập trung vào đối tượng hơn logic cần thiết để thao tác chúng.
Phù hợp cho hệ thống lớn, phức tạp, có khả sử
dụng lại mã, khả mở rộng hiệu quả.
(37)Phong cách lập trình: thiết lập quy tắc mã hóa để lập
trình viên tuân thủ viết mã
Khi nhiều lập trình viên làm việc dự án phần mềm,
họ cần phải làm việc với mã chương trình viết nhà phát triển khác, đó, nhà phát triển phải tuân theo số phong cách lập trình tiêu chuẩn để mã hóa chương trình.
(38)Phong cách lập trình:
Sử dụng hàm tên biến có liên quan đến tác vụ thực Sử dụng thụt lề đặt 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ể cho mã chương trình đọc dễ
hiểu tất thành viên, giúp việc gỡ lỗi giải lỗi dễ dàng
Ngoài ra, phong cách lập trình phù hợp giúp dễ dàng viết cập nhật tài
liệu phần mềm
(39)Tài liệu phần mềm phần quan trọng quy trình phần
mềm Một tài liệu viết tốt cung cấp công cụ hữu ích,
phương tiện lưu trữ thơng tin cần thiết để biết quy trình phát triển phần mềm
Tài liệu phần mềm cung cấp thông tin về cách sử dụng sản
phẩm.
(40)Nội dung tài liệu phần mềm:
Tài liệu yêu cầu (Requirement documentation):
– Cơng cụ cho nhà thiết kế phần mềm, nhà phát triển và nhóm thử
nghiệm để thực nhiệm vụ tương ứng họ
– Tài liệu chứa tất mô tả chức năng, phi chức hành vi
của phần mềm dự định
– Là tảng cho phần mềm được phát triển sử dụng
giai đoạn xác minh xác nhận Hầu hết trường hợp thử nghiệm xây dựng trực tiếp từ tài liệu yêu cầu
(41)Nội dung 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 thông tin cần thiết để mã hóa triển khai, bao gồm nội dung: – Kiến trúc phần mềm cấp cao,
– Chi tiết thiết kế phần mềm, – Sơ đồ luồng liệu,
– Thiết kế sở liệu
(42)Nội dung tài liệu phần mềm:
Tài liệu kỹ thuật (Technical documentation): được tạo trì
nhà phát triển lập trình viên thực tế
– Các tài liệu chứa thông tin mã chương trình Trong viết mã, lập trình viên đưa mục tiêu mã, viết nó, yêu cầu đâu, làm làm nào, tài nguyên khác mà mã sử dụng, v.v
– Làm tăng hiểu biết lập trình viên khác làm việc mã
– Nó tăng cường khả tái sử dụng và giúp việc gỡ lỗi dễ dàng
(43)Nội dung tài liệu phần mềm:
Tài liệu người dùng (User documentation):
– Giải thích cách sản phẩm phần mềm nên hoạt động cách sử dụng để có kết mong muốn
– Các tài liệu 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 tài liệu tham khảo đặc biệt để có thêm thông tin cập nhật giấy phép,
(44)Các thách thức mà nhóm phát triển phải đối mặt
thực phần mềm:
Tái sử dụng mã: các ngôn ngữ ngày trang bị 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ã tạo trước cho số phần mềm khác Do đó, lập trình viên phải đối mặt để kiểm tra tính tương thích định sử dụng lại mã
(45)Quản lý phiên - Mỗi phần mềm phát hành cho
khách hàng, nhà phát triển phải trì tài liệu liên quan đến phiên cấu hình Tài liệu cần phải có độ xác cao có sẵn thời điểm
Target-Host - Chương trình phần mềm, phát triển tổ chức,
cần thiết kế cho máy chủ khách hàng Nhưng đôi khi, thiết kế phần mềm hoạt động máy mục tiêu