Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình

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

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ế và 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.

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 giải quyết vấn đề.

Tuy nhiên, luôn cần một mô tả chi tiết các 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.

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.

 

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 1

Trang 1

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 2

Trang 2

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 3

Trang 3

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 4

Trang 4

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 5

Trang 5

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 6

Trang 6

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 7

Trang 7

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 8

Trang 8

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 9

Trang 9

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình trang 10

Trang 10

Tải về để xem bản đầy đủ

pptx 45 trang duykhanh 9440
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình

Bài giảng Công nghệ phần mềm - Thiết kế và hiện thực chương trình
và phương thức sử dụng của hệ thố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. 
7 
2. Q uy trình thiết kế hướng đối tượng 
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 . 
8 
2.1. Ngữ cảnh hệ thống và các tương tác  
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 
9 
2.2. Mô hình ngữ cảnh  
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 
10 
2.2. Mô hình ngữ cảnh 
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. 
Hiển thị các tương tác giữa các thành phần của hệ thống hoặc giữa hệ thống với các hệ thống khác 
11 
2.3 Mô hình t ư ơng tác 
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. 
12 
2.3 Mô hình t ư ơng tác 
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 hoặc các hệ thống khác). 
Xác định các actor: Các đối t ư ợng t ư ơng tác với hệ thống, có thể là ng ư ời hoặc các hệ thống khác bên ngoài hệ thống đang xây dựng. 
Xác định các use case: Một use case đại diện cho một hành vi hoàn chỉnh, được thực hiện qua nhiều bước, có hoạt động bắt đầu và kết thúc. 
Cách xác định use case : 
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. 
13 
2.3 Các s ơ đồ trong mô hình t ư ơng tác 
Ví dụ: 
14 
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. 
S ơ đồ use case 
Đặc tả use case 
Truyền đạt các yêu cầu kỹ thuật hoặc các yêu cầu phần mềm cho một người không biết về kỹ thuật, 
Là cách để các nhà phát triển phần mềm đảm bảo người dùng đạt được những yêu cầu từ hệ thống phần mềm. 
Cách đặc tả use case 
Đặc tả d ư ới dạng văn bản 
Đặc tả dạng bảng 
15 
2.3 Các s ơ đồ trong mô hình t ư ơng tác 
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 
16 
2.3 Các s ơ đồ trong mô hình t ư ơng tác 
GV: Từ Thị Xuân Hiền 
17 
Ví dụ : Viết đặc tả use case Đặt mua sách của khách hàng trong hệ thống BookstoreOnline 
Tên use case: 
Đặt mua sách 
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. 
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 được lưu trong hệ thống 
Số lượng sách trong kho được cập nhật 
Luồng sự kiện chính 
Actor 
System 
Khách hàng click nút Đặt hàng 
Khách hàng điền thông tin đặt hàng và click nút Gửi 
Khách hàng xác nhận và kết thúc hoạt động đặt mua sách 
Hệ thống hiển thị Form đặt hàng 
Hệ thống kiểm tra (rẽ nhánh) 
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 sự kiện thay thế 
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. 
4.1. Hệ thống hiển thị thông báo thông tin nhập không hợp lệ 
4.1. b1. Hệ thống chuyển điều khiển sang bước 2 
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. 
18 
2.3 Các s ơ đồ trong mô hình t ư ơng tác 
attribute = message_name (arguments): return_type 
19 
2.3 Các s ơ đồ trong mô hình t ư ơng tác 
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 
20 
2.4 Thiết kế các thành phần của hệ thống 
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 . 
21 
2.4 Thiết kế các thành phần của hệ thống 
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: 
Mục tiêu : các lớp phải trả về các dịch vụ đáp ứng yêu cầu người dùng 
Ổn định : sự cô lập các lớp trong một package phải thực sự ổn định trong quá trình phát triển dự án, và sau đó. 
Thời gian sống của các đối tượng : tiêu chí này giúp phân biệt được các lớp mà đối tượng có thời gian sống rất khác nhau. 
22 
2.4 Thiết kế các thành phần của hệ thống 
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 hàng có trách nhiệm cung cấp thông tin theo dõi cho các sản phẩm được đặt hàng của khách hàng. Các loại khách hàng trong số sê-ri theo dõi, Dịch vụ theo dõi đặt hàng đề cập đến hệ thống và cập nhật trạng thái giao hàng hiện tại cho khách hàng. 
23 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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. 
Các thành phần trong Component diagrams 
Component 
Interface 
Port 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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 
Ký hiệu trong UML 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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. 
Ký hiệu trong UML 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
27 
Loại Interface 
Required interfaces : xác định một tập các thuộc tính và các hoạt động chung (Public) được yêu cầu bởi các lớp hiện thực interface đã cho. 
Provided interfaces xác định một tập các thuộc tính và các hoạt động chung (Public) cần được cung cấp bởi các lớp hiện thực interface đã cho. 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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. 
Ký hiệu trong UML 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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 
GV: Từ Thị Xuân Hiền 
30 
Các thành phần trong Deployment diagrams: 
Nodes 
Artifacts 
Communication Association 
Devices 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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. 
Ký hiệu trong UML 
2.4 Thiết kế các thành phần của hệ thống 
GV: Từ Thị Xuân Hiền 
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 
Các ph ư ơng pháp lập trình 
Tài liệu phần mềm 
Thách thức trong triển khai phần mềm 
33 
3. Hiện thực phần mềm ( Software Implementation ) 
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ể. 
34 
3.1 Các ph ư ơng pháp lập trình 
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 mềm trong đó , phần mềm đ ư ợc xem như là một tập hợp các ch ư ơng trình hoặc chức năng và dữ liệu giả lập. 
Chương trình = thuật giải + cấu trúc dữ liệu 
N gô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 
35 
3.1 Các ph ư ơng pháp lập trình 
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. 
P hù 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ả. 
36 
3.1 Các ph ư ơng pháp lập trình 
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 . 
37 
3.1 Các ph ư ơng pháp lập trình 
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. 
38 
3.1 Các ph ư ơng pháp lập trình 
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 . 
Tài liệu phần mềm cũng cung cấp thông tin về cách sử dụng sản phẩm . 
39 
3.2 Tài liệu phần mềm 
Nội dung trong t ài liệu phần mềm : 
Tài liệu yêu cầu (Requirement documentation): 
C ông cụ chính cho nhà thiết kế phần mềm , nhà phát triển và nhóm thử 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 . 
Là nền tảng cho phần mềm được phát triển và được sử dụng trong các 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. 
40 
3.2 Tài liệu phần mềm 
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: 
Kiến trúc phần mềm cấp cao, 
C hi tiết thiết kế phần mềm, 
Sơ đồ luồng dữ liệu, 
Thiết kế cơ sở dữ liệu 
41 
3.2 Tài liệu phần mềm 
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ử dụng, v.v. 
L àm tăng sự hiểu biết giữa các lập trình viên khác nhau làm việc trên cùng một mã. 
Nó tăng cường khả năng tái sử dụng và giúp việc gỡ lỗi dễ dàng 
42 
3.2 Tài liệu phần mềm 
Nội dung trong t ài liệu phần mềm : 
Tài liệu người dùng (User documentation): 
G iải thích cách sản phẩm phần mềm nên hoạt động và cách sử dụng nó để 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, 
43 
3.2 Tài liệu phần mềm 
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ã . 
44 
3.3 Những thách thức khi triển khai phần mềm 
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. 
45 
3.3 Những thách thức khi triển khai phần mềm 

File đính kèm:

  • pptxbai_giang_cong_nghe_phan_mem_thiet_ke_va_hien_thuc_chuong_tr.pptx