Chương 2: Thiết Kế Phần Mềm Là Gì, Thiết Kế Phần Mềm Tối Ưu Nhất
Giới thiệu
Kh
E1;i niệm thiết kế được định nghĩa theo 2 c
E1;ch sau:
E0; quy tr
EC;nh định nghĩa ra kiến tr
FA;c, th
E0;nh phần, interfaces v
E0; c
E1;c thuộc t
ED;nh kh
E1;c của một hệ thống hoặc một th
E0;nh phần. Trong quy tr
EC;nh n
E0;y, y
EA;u cầu phần mềm được ph
E2;n t
ED;ch để đưa ra một cấu tr
FA;c của phần mềm l
E0;m cơ sở để l
E0;m ra phần mềm. Thiết kế l
E0; kết quả của một qu
E1; tr
EC;nh. N
F3; m
F4; tả kiến tr
FA;c của một phần mềm như l
E0; phần mềm được ph
E2;n r
E3; v
E0; tổ chức như thế n
E0;o vào c
E1;c th
E0;nh phần v
E0; c
E1;c interfaces giữa c
E1;c th
E0;nh phần như thế n
E0;o. N
F3; cũng c
F3; thể m
F4; tả c
E1;c th
E0;nh phần ở mức chi tiết cho ph
E9;p c
F3; thể x
E2;y dựng được phần mềm.
Bạn đang xem: Thiết kế phần mềm là gì
Thiết kế phần mềm đ
F3;ng vai tr
F2; quan lại trọng: vào suốt qu
E1; tr
EC;nh thiết kế, những kỹ sư phần mềm sẽ đề xuất c
E1;c m
F4; h
EC;nh tạo th
E0;nh loại kế hoạch đưa ra tiết mang đến giải ph
E1;p để c
F3; thể thực hiện được. Ch
FA;ng ta c
F3; thể ph
E2;n t
ED;nh v
E0; đ
E1;nh gi
E1; những m
F4; h
EC;nh n
E0;y c
F3; hay kh
F4;ng ph
F9; hợp với những y
EA;u cầu kh
E1;c nhau. Ch
FA;ng ta c
F3; thể sử dụng kiểm tra v
E0; thẩm định ráng thế những giải ph
E1;p v
E0; những đ
E1;nh đổi (tradeoffs). Cuối c
F9;ng ch
FA;ng ta sử dụng những m
F4; h
EC;nh kết quả để l
EA;n kế hoạch c
E1;c hoạt động ph
E1;t triển tiếp theo như l
E0;: thẩm định v
E0; kiểm thử hệ thống, th
EA;m v
E0;o đ
F3; sử dụng ch
FA;ng như l
E0; đầu v
E0;o tốt l
E0; điểm bắt đầu của x
E2;y dựng v
E0; kiểm thử phần mềm.
Trong danh s
E1;ch chuẩn của v
F2;ng đời ph
E1;t triển phần mềm như ISO/IEC/IEEE Software Life Cycle Process, thiết kế phần mềm bao gồm 2 hoạt động tương ứng với ph
E2;n t
ED;ch y
EA;u cầu phần mềm v
E0; x
E2;y dựng phần mềm:
Thiết kế kiến tr
FA;c (c
F2;n được gọi l
E0; thiết kế mức cao): l
E0; ph
E1;t triển mức kiến tr
FA;c cao nhất v
E0; đưa ra c
E1;ch tổ chức phần mềm v
E0; chỉ ra c
E1;c th
E0;nh phần kh
E1;c nhau trong phần mềm
Thiết kế bỏ ra tiết: chỉ ra bỏ ra tiết v
E0; đầy đủ về th
E0;nh phần tạo điều kiện x
E2;y dựng phần mềm trong trộn sau đ
F3;
Đầu ra của thiết kế phần mềm sẽ được sử dụng mang đến qu
E1; tr
EC;nh x
E2;y dựng v
E0; kiểm thử n
EA;n việc đ
E1;nh gi
E1; một thiết kế c
F3; ph
F9; hợp hay kh
F4;ng rất quan tiền trọng, nếu một thiết kế sai sẽ dẫn đến tất cả c
E1;c qu
E1; tr
EC;nh sau đ
F3; cũng không nên v
E0; cần phải chỉnh sửa nếu thiết kế được chỉnh sửa.
1. Nguy
EA;n tắc thiết kế phần mềm cơ bản
Phần n
E0;y đưa ra kh
E1;i niệm, quan niệm v
E0; thuật ngữ h
EC;nh th
E0;nh nền tảng cơ bản để hiểu biết về vai tr
F2; v
E0; phạm vi của thiết kế phần mềm
1.1 Kh
E1;i niệm thiết kế chung
Theo nghĩa chung, thiết kế c
F3; thể được xem như l
E0; một h
EC;nh thức giải quyết vấn đề. Thiết kế l
E0; một qu
E1; tr
EC;nh
E1;p dụng nhiều kỹ thuật v
E0; c
E1;c nguy
EA;n l
FD; để tạo ra m
F4; h
EC;nh của một thiết bị, một tiến tr
EC;nh xuất xắc một hệ thống đủ chi tiết m
E0; theo đ
F3; c
F3; thể chế tạo ra sản phẩm vật l
FD; tương ứng với n
F3;. Mục ti
EA;u thiết kế l
E0; để tạo ra một m
F4; h
EC;nh biểu diễn của một thực thể m
E0; sau n
E0;y sẽ được x
E2;y dựng
1.2 Bối cảnh của thiết kế phần mềm
Thiết kế phần mềm l
E0; một phần quan lại trọng của quy tr
EC;nh ph
E1;t triển phần mềm. Để hiểu vai tr
F2; của thiết kế phần mềm, ch
FA;ng ta c
F3; thể nh
EC;n v
E0; v
F2;ng đời ph
E1;t triển phần mềm để thấy n
F3; l
E0; một th
E0;nh phần gắn với v
F2;ng đời n
E0;y.
1.3 Quy tr
EC;nh thiết kế phần mềm
Thiết kế phần thường được xem như l
E0; một quy tr
EC;nh 2 bước:
Thiết kế kiến tr
FA;c (cũng được xem như l
E0; thiết kế mức cao high- cấp độ design or top- màn chơi design) m
F4; tả phầm mềm được tổ chức th
E0;nh c
E1;c th
E0;nh phần như thế n
E0;o
Thiết kế bỏ ra tiết m
F4; tả h
E0;nh động hy vọng muốn của những th
E0;nh phần
Đầu ra của 2 quy tr
EC;nh n
E0;y l
E0; tập m
F4; h
EC;nh v
E0; t
E0;i liệu ghi lại những những quyết định quan trọng đ
E3; được thực hiện c
F9;ng lời giải th
ED;ch mang đến mỗi l
FD; do. Bằng c
E1;ch ghi lại c
E1;c l
FD; vì chưng đ
F3; c
F4;ng việc bảo tr
EC; d
E0;i hạn của phần mềm được n
E2;ng cao
1.4 Nguy
EA;n tắc thiết kế phần mềm
Nguy
EA;n tắc l
E0; “một giả định, gi
E1;o l
FD; hoặc luật căn bản v
E0; to
E0;n diện”. Nguy
EA;n tắc thiết kế phần mềm l
E0; quan tiền niệm ch
ED;nh cung cấp kiến thức cơ bản cho kh
E1;i niệm v
E0; hướng tiếp cận thiết kế phần mềm kh
E1;c nhau. Nguy
EA;n tắc thiết kế phần mềm bao gồm: trừu tượng h
F3;a (abstraction); gh
E9;p nối v
E0; li
EA;n kết (coupling & conhesion); ph
E2;n r
E3; v
E0; modul h
F3;a (decomposition & modularization); đ
F3;ng g
F3;i/ẩn th
F4;ng tin (encapsulation/information hiding); t
E1;ch giao diện v
E0; thực hiện (separation of interface and implementation); đầy đủ, to
E0;n vẹn v
E0; nguy
EA;n thủy (sufficiency, completeness, và primitiveness); v
E0; t
E1;ch mối quan liêu t
E2;m (separation of cencerns)
Abstraction: l
E0; một c
E1;ch nh
EC;n của một đối tượng m
E0; tập trung v
E0;o th
F4;ng tin li
EA;n quan liêu để cụ thể h
F3;a mục đ
ED;ch v
E0; tr
E1;nh bỏ x
F3;t th
F4;ng tin”. Vào bối cảnh của thiết kế phần mềm, 2 cơ chế trừu tượng h
F3;a ch
EC;a kh
F3;a l
E0; tham số h
F3;a v
E0; cụ thể h
F3;a. Trừu tượng bởi tham số h
F3;a trừu tượng đến từ biểu diễn dữ liệu chi tiết bởi biểu diễn dữ liệu như t
EA;n những tham số. Trừu tượng h
F3;a bởi cụ thể h
F3;a dẫn đến 3 loại trừu tượng: trừu tượng thủ tục, trừu tượng dữ liệu v
E0; trừu tượng điều khiển (trừu tượng tương t
E1;c lẫn nhau)
E0;m) cung cấp cơ chế để trừu tượng những thủ tục dễ định nghĩa hoặc những thao t
E1;c th
E0;nh những thực thể. Trưu tượng thủ tục đ
E3; được
E1;p dụng rộng r
E3;i v
E0; c
E1;c ng
F4;n ngữ lập tr
EC;nh hầu như tất cả đều cung cấp hỗ trợ kh
E1;i niệm n
E0;y (v
ED; dụ pascal, java,...)Trừu tượng dữ liệu: đ
E2;y l
E0; nguy
EA;n tắc ch
ED;nh trong hướng đối tượng. Vào kiểu trừu tượng n
E0;y, ráng v
EC; chỉ tập trung v
E0;o thao t
E1;c, ch
FA;ng ta tập trung v
E0; dữ liệu đầu ti
EA;n v
E0; sau đ
F3; những thao t
E1;c t
E1;c động l
EA;n dữ liệu. Một v
ED; dụ đơn giản l
E0; queue data v
E0; những thao t
E1;c li
EA;n quan liêu như add() và delete(). Trong trừu tượng h
F3;a thủ tục, thao t
E1;c địa chỉ cửa hàng v
E0; delete chỉ l
E0; ri
EA;ng biệt kh
F4;ng c
F3; quan tiền hệ với dữ liệu. Điểm mạnh của trừu tượng h
F3;a dữ liệu so với trừu tượng h
F3;a thủ tục l
E0; dữ liệu v
E0; c
E1;c thao t
E1;c li
EA;n quan lại được đưa ra v
EC; vậy rất dễ để sửa code lúc dữ liệu rứa đổi.Trừu tượng điều khiển li
EA;n quan tiền để sử dụng c
E1;c chương tr
EC;nh con v
E0; li
EA;n quan liêu đến luồng điều khiển.
Coupling and Conhesion: Gh
E9;p nối l
E0; một độ đo của độ phụ thuộc lẫn nhau giữa c
E1;c module trong chương tr
EC;nh m
E1;y t
ED;nh, trong những lúc đ
F3; li
EA;n kết l
E0; độ đo độ mạnh của mối li
EA;n kết giữa c
E1;c phần tử vào một module.
Ph
E2;n r
E3; h
F3;a v
E0; module h
F3;a: Ph
E2;n r
E3; h
F3;a v
E0; modul h
F3;a nghĩa l
E0; phần mềm lớn được chia th
E0;nh một số th
E0;nh phần định danh (dễ định nghĩa interface) m
E0; m
F4; tả tương t
E1;c giữa c
E1;c th
E0;nh phần. Th
F4;ng thường mục ti
EA;u l
E0; cầm cố thế những chức năng v
E0; tr
E1;ch nhiệm vào những th
E0;nh phần kh
E1;c nhau.
Đ
F3;ng g
F3;i v
E0; ẩn th
F4;ng tin: nghĩa l
E0; nh
F3;m v
E0; đ
F3;ng g
F3;i chi tiết b
EA;n trong của một trừu tượng v
E0; l
E0;m cho những chi tiết kh
F4;ng thể được tầm nã cập từ b
EA;n ngo
E0;i
T
E1;ch giao diện v
E0; thực hiện li
EA;n quan liêu đến việc x
E1;c định mọt th
E0;nh phần bằng c
E1;ch x
E1;c định một giao diện public (được biết đến như l
E0; client) m
E0; l
E0; t
E1;ch từ chi tiết của th
E0;nh phần được hiện thực h
F3;a như thế n
E0;o.
T
ED;nh đầy đủ, to
E0;n vẹn v
E0; nguy
EA;n thủy: mục ti
EA;u của t
ED;nh đầy đủ, to
E0;n vẹn v
E0; nguy
EA;n thủy nghĩa l
E0; chắc rằng một th
E0;nh phần chỉ tương ứng với những đặc điểm quan lại trọng của một trừu tượng. Nguy
EA;n thủy nghĩa l
E0; thiết kế n
EA;n được dựa tr
EA;n m
F4; h
EC;nh dễ thực hiện
T
E1;ch mối quan liêu t
E2;m. Một mối quan lại t
E2;m l
E0; một “khu vực quan tiền t
E2;m với sự li
EA;n quan lại đến thiết kế phần mềm”. Một mối quan liêu t
E2;m thiết kế l
E0; một lĩnh vực của thiết kế m
E0; li
EA;n quan liêu đến một hay nhiều c
E1;c b
EA;n li
EA;n quan (stakeholders). Mỗi kiến tr
FA;c nh
EC;n một tuyệt nhiều khung nh
EC;n quan tiền t
E2;m. T
E1;ch mối quan lại t
E2;m bởi những khung nh
EC;n mang lại ph
E9;p quan liêu t
E2;m c
E1;c b
EA;n li
EA;n quan tiền (stakeholders) tập trung v
E0;o một việc tại một thời điểm v
E0; y
EA;u cầu v
E0; cung cấp một phương tiện quản l
FD; phức tạp.
2. Những vấn đề ch
ED;nh vào thiết kế kiến tr
FA;c phần mềm
Một số vấn đề quan trọng phải được xử l
FD; trong lúc thiết kế phần mềm. Đặc biệt l
E0; những lo ngại về chất lượng phần mềm m
E0; c
F3; thể kể đến như: hiệu suất, bảo mật, độ tin cậy, khả năng sử dụng, vv... Một số vấn đề quan lại trọng kh
E1;c l
E0; l
E0;m thế n
E0;o để ph
E2;n r
E3;, tổ chức v
E0; đ
F3;ng g
F3;i những th
E0;nh phần phần mềm. Đ
E2;y l
E0; nguy
EA;n tắc cơ bản m
E0; tất c
E1;c c
E1;c phương ph
E1;p thiết phải giải quyết n
F3; bằng c
E1;ch n
E0;y hay c
E1;ch kh
E1;c. Ngược lại, những vấn đề “li
EA;n quan đến c
E1;c kh
ED;a cạnh của c
E1;c h
E0;nh vi phần mềm m
E0; lại kh
F4;ng nằm trong miền ứng dụng m
E0; nằm ở c
E1;c miền kh
E1;c c
F3; li
EA;n quan” Những vấn đề đ
F3; thường xuy
EA;n chồng ch
E9;o với c
E1;c chức năng của hệ thống v
E0; được gọi những kh
ED;a cạnh m
E0; đa phần kh
F4;ng phải l
E0; đơn vị ph
E2;n r
E3; của phần mềm m
E0; l
E0; thuộc t
ED;nh ảnh hưởng đến hiệu suất hoặc ngữ nghĩa của c
E1;c th
E0;nh phần một c
E1;ch c
F3; hệ thống.
2.1 Đồng thời (concurrency)
Đồng thời l
E0; nhiều việc xảy ra tại c
F9;ng một thời điểm. Thiết kế để c
F3; t
ED;nh đồng thời c
F3; li
EA;n quan lại đến ph
E2;n r
E3; phần mềm th
E0;nh quy tr
EC;nh, nhiệm vụ, qu
E1; tr
EC;nh v
E0; đối ph
F3; với c
E1;c vấn đề li
EA;n quan liêu đến t
ED;nh hiệu quả, t
ED;nh nguy
EA;n tố, đồng bộ h
F3;a v
E0; lập kế hoạch. Thiết kế n
E0;y đảm bảo dễ ph
E2;n phân chia c
F4;ng việc cũng như c
F3; thể ho
E0;n th
E0;nh c
F4;ng việc trong thời gian ngắn nhất.
2.2 Điều khiển v
E0; xử l
FD; c
E1;c sự kiện
Vấn đề thiết kế n
E0;y li
EA;n qu
E1;n tới l
E0;m thế n
E0;o tổ chức dữ liệu v
E0; d
F2;ng dữ liệu cũng như l
E0;m thế n
E0;o để xử l
FD; c
E1;c sự kiện tạm thời v
E0; phản xạ qua c
E1;c cơ chế lời gọi ngầm v
E0; gọi lại.
2.3 Dữ liệu bền vững (data persistence)
Vấn đề của thiết kế n
E0;y li
EA;n quan liêu tới l
E0;m thế n
E0;o để xử l
FD; dữ liệu tồn tại l
E2;u d
E0;i
2.4 Ph
E2;n phối c
E1;c th
E0;nh phần
Vấn đề của thiết kế n
E0;y li
EA;n quan tiền đến l
E0;m thế n
E0;o để ph
E2;n phối c
E1;c phần mềm tr
EA;n phần cứng ( bao gồm phần cứng m
E1;y t
ED;nh v
E0; phần cứng mạng), l
E0;m thế n
E0;o c
E1;c th
E0;nh phần giao tiếp được với nhau, v
E0; l
E0;m thế n
E0;o tầng giữa c
F3; thể được sử dụng để đối ph
F3; với kh
F4;ng tương th
ED;ch phần mềm.
2.5 Lỗi v
E0; xử l
FD; ngoại lệ v
E0; lỗi dung nạp (error và exception handling and fault tolerance)
Vấn đề của thiết kế n
E0;y li
EA;n quan liêu đến l
E0;m thế n
E0;o để ph
F2;ng chống, chịu đựng v
E0; c
E1;c xử l
FD; lỗi v
E0; đối ph
F3; với c
E1;c điều kiện ngoại lệ
2.6 Tương t
E1;c v
E0; tr
EC;nh b
E0;y (Interaction và presentation)
Vấn đề thiết kế n
E0;y li
EA;n quan liêu tới l
E0;m thế n
E0;o để cấu tr
FA;c v
E0; tổ chức tương t
E1;c với những người d
F9;ng v
E0; biểu diễn th
F4;ng tin ( v
ED; dụ, phân tách giao diện v
E0; size nh
EC;n logic sử dụng hướng tiếp cận MVC)
Ch
FA;
FD; rằng chủ đề n
E0;y kh
F4;ng chỉ đưa ra tiết giao diện người d
F9;ng, đ
F3; l
E0; nhiệm vụ của thiết kế giao diện người d
F9;ng
2.7 Bảo mật (sercurity)
Thiết kế mang đến bảo mật li
EA;n quan đến l
E0;m thế n
E0;o để ngăn chặn tiết lộ tr
E1;i ph
E9;p, s
E1;ng tạo, cầm đổi, x
F3;a, hoặc từ chối truy cập đến th
F4;ng tin từ c
E1;c nguồn kh
E1;c. N
F3; cũng quan t
E2;m l
E0;m thế n
E0;o để chịu được c
E1;c cuộc tấn c
F4;ng bảo mật hoặc sự x
E2;m phạm bởi hạn chế thiệt hại, tiếp tục dịch vụ, tốc độ sửa chữa v
E0; phục hồi, v
E0; thất bại v
E0; phục hồi an to
E0;n. Kiểm so
E1;t truy nã cập l
E0; một kh
E1;i niệm an toàn cơ bản v
E0; ta cũng n
EA;n đảm bảo sử dụng đ
FA;ng mật m
E3;
3. Kiến tr
FA;c v
E0; cấu tr
FA;c phần mềm
Một kiến tr
FA;c phần mềm l
E0; “tập hợp c
E1;c cấu tr
FA;c cần thiết để suy luận về hệ thống, vào đ
F3; bao gồm c
E1;c yếu tố phần mềm, mối quan hệ giữa ch
FA;ng v
E0; đặc t
ED;nh của cả hai. Trong suốt những năm 1990, kiến tr
FA;c phần mềm bắt đầu nổi l
EA;n như một ng
E0;nh học rộng li
EA;n quan tiền đến việc nghi
EA;n cứu c
E1;c cấu tr
FA;c phần mềm v
E0; kiến tr
FA;c theo một c
E1;ch chung. Điều đ
F3; dẫn đến một số kh
E1;i niệm th
FA; vị về thiết kế phần mềm ở những mức độ kh
E1;c nhau của trừu tượng h
F3;a. Mội số kh
E1;i niệm c
F3; thể hữu
ED;ch vào việc thiết kế kiến tr
FA;c ( v
ED; dụ phong c
E1;ch kiến tr
FA;c) cũng như trong suốt qu
E1; tr
EC;nh thiết kế chi tiết (v
ED; dụ thiết kế pattern). Những kh
E1;i niệm thiết kế n
E0;y cũng được sử dụng để thiết kế những chương tr
EC;nh tương tự.
3.1 Cấu tr
FA;c v
E0; g
F3;c nh
EC;n
Kh
ED;a cạnh mức cao kh
E1;c nhau của thiết kế phần mềm c
F3; thể được m
F4; tả v
E0; t
E0;i liệu h
F3;a. Những kh
ED;a cạnh n
E0;y thường được gọi l
E0; c
E1;c g
F3;c nh
EC;n “Một g
F3;c nh
EC;n biểu diễn một phần kh
ED;a cạch của kiến tr
FA;c phần mềm m
E0; biểu diễn cụ thể ch
ED;nh x
E1;c của hệ thống phần mềm”. C
E1;c g
F3;c nh
EC;n th
ED;ch hợp với những vấn đề kh
E1;c nhau li
EA;n quan tiền đến phần mềm – v
ED; dụ, g
F3;c nh
EC;n xúc tích và ngắn gọn (đ
E1;p ứng c
E1;c y
EA;u cầu chức năng) với g
F3;c nh
EC;n tiến tr
EC;nh (vấn đề đồng thời) với g
F3;c nh
EC;n vật l
FD; (vấn đề ph
E2;n phối) với g
F3;c nh
EC;n ph
E1;t triển (l
E0;m thế n
E0;o để thiết kế được break down th
E0;nh c
E1;c th
E0;nh phần đơn vị với đại diện r
F5; r
E0;ng của sự phụ thuộc giữa c
E1;c đơn vị). Nhiều t
E1;c giả sử dụng những thuật ngữ kh
E1;c nhau- như h
E0;nh vi, chức năng, cấu tr
FA;c, g
F3;c nh
EC;n m
F4; h
EC;nh dữ liệu. T
F3;m lại, thiết kế phần mềm l
E0; một sản phẩm nhiều g
F3;c nh
EC;n được tạo bởi quy tr
EC;nh thiết kế v
E0; quan lại điểm độc lập tương đối v
E0; trực giao.
3.2 Kiểu kiến tr
FA;c
Kiểu kiến tr
FA;c l
E0; một chuy
EA;n m
F4;n h
F3;a của phần tử v
E0; c
E1;c loại li
EA;n quan, c
F9;ng với một bộ những hạn chế về c
E1;ch n
F3; c
F3; thể được sử dụng. M
F4;t v
E0;i t
E1;c giải chỉ ra một số kiểu kiến tr
FA;c ch
ED;nh như sau:
Kiến tr
FA;c thường (v
ED; dụ, ph
E2;n t
E2;ng, pipes & filter, blackboard)
C
E1;c hệ thống ph
E2;n t
E1;n (v
ED; dụ client- server, three- tiers, broker)
C
E1;c hệ thống tương t
E1;c (v
ED; dụ, MVC, Presentation- Abstraction- Control, WPF)
C
E1;c hệ thống m
F4; phỏng (v
ED; dụ, microkernel, reflection)
C
E1;c kiểu kh
E1;c (v
ED; dụ, batch, interperters, process control, rule- based)
3.3 Mẫu thiết kế (Design Patterns)
Mẫu l
E0; một giải ph
E1;p phổ biến để giải quyết c
E1;c vấn đề phồ biến vào ngữ cảnh đưa ra. Trong lúc kiểu kiến tr
FA;c c
F3; thể được nh
EC;n như mẫu m
F4; tả tổ chức mức cao của phần mềm, mẫu thiết kế c
F3; thể sử dụng m
F4; tả cụ thể ở mức thấp. Những mẫu thiết kế mức thấp bao gồm:
Mẫu tạo (v
ED; dụ, builder, factory, prototype, singleton)
Mẫu cấu tr
FA;c (v
ED; dụ, adapter, bridge, composite, decorator, fa
E7;ade, fly- weight, proxy)
Mẫu h
E0;nh vi (v
ED; dụ, command, interperter, iterator, mediator, memento, observer, state, strategy, template, visitor)
3.4 Những quyết định thiết kế kiến tr
FA;c
Thiết kế kiến tr
FA;c l
E0; một qu
E1; tr
EC;nh s
E1;ng tạo. Vào suốt quy tr
EC;nh thiết kế, nh
E0; thiết kế phần mềm phải tạo một số quyết định cơ bản ảnh hưởng s
E2;u sắc tới c
E1;c phần mềm v
E0; quy tr
EC;nh ph
E1;t triển phần mềm. N
EA;n nghĩ rằng thiết kế kiến tr
FA;c tạo th
E0;nh từ quan lại điểm quyết định hơn l
E0; quan lại điểm hoạt động. Th
F4;ng thường, t
E1;c động v
E0;o chất lượng thuộc t
ED;nh v
E0; ho
E1;n đổi giữa c
E1;c thuộc t
ED;nh cạnh trạnh l
E0; cơ sở mang lại quyết định thiết kế
3.5 Tương tự giữa chương tr
EC;nh v
E0; framework
Một c
E1;ch tiếp cận cung cấp mang đến việc sử dụng lại thiết kế phần mềm v
E0; th
E0;nh phần l
E0; sử dụng những chương tr
EC;nh tương tự. Điều n
E0;y c
F3; thể thực hiện bằng x
E1;c định sự tương đồng giữa c
E1;c phần mềm bằng c
E1;ch thiết kế c
E1;c th
E0;nh phần t
E1;i sử dụng v
E0; t
F9;y v
E0;o sự kh
E1;c nhau giữa c
E1;c phần mềm. Vào lập tr
EC;nh hướng đối tượng, một kh
E1;i niệm ch
EC;a kh
F3;a c
F3; li
EA;n quan đến khung l
E0; một khung: một phần hệ thống phần mềm ho
E0;n to
E0;n c
F3; thể được mở rộng bằng c
E1;ch c
E0;i đặt c
E1;c c
F4;ng cụ th
ED;ch hợp
F9;ng
Thiết kế giao diện người d
F9;ng l
E0; một phần quan liêu trọng qu
E1; tr
EC;nh thiết kế phần mềm. Thiết kế giao diện v
E0; xử l
FD; tương t
E1;c với người sử dụng l
E0; một yếu tố quan tiền trọng trong việc sử dụng phần mềm. Người thiết kế phải l
E0;m sao để ph
F9; hợp với kĩ năng, tởm nghiệm v
E0; mong đợi từ ph
ED;a người sử dụng phần mềm.
4.1: Nguy
EA;n tắc cơ bản vào thiết kế giao diện
Dễ học: Phần mềm cần phải dễ học cE1;ch sử dụng, vày đ
F3; người d
F9;ng c
F3; thể cấp tốc ch
F3;ng bắt đầu l
E0;m việc sử dụng phần mềm đ
F3;Quen thuộc với người sử dụng: Giao diện n
EA;n d
F9;ng c
E1;c thuật ngữ v
E0; kh
E1;i niệm r
FA;t ra từ ghê nghiệm của những người sẽ d
F9;ng hệ thống nhiều nhấtT
ED;nh nhất qu
E1;n: giao diện cần nhất qu
E1;n làm thế nào để cho c
E1;c thao t
E1;c gần giống nhau c
F3; thể được k
ED;ch hoạt theo c
F9;ng kiểu.Ngạc nhi
EA;n tối thiểu: Người d
F9;ng kh
F4;ng bao giờ bị bất ngờ về h
E0;nh vi của hệ thốngKh
F4;i phục được: Giao diện n
EA;n c
F3; c
E1;c cơ chế cho ph
E9;p người d
F9;ng kh
F4;i phục lại t
EC;nh trạng hoạt động b
EC;nh thường sau thời điểm gặp lỗiHướng dẫn người d
F9;ng: Giao diện n
EA;n c
F3; phản hồi c
F3; nghĩa khi xảy ra lỗi v
E0; cung cấp c
E1;c tiện
ED;ch trợ gi
FA;p theo ngữ cảnhNgười d
F9;ng đa dạng: Giao diện n
EA;n cung cấp c
E1;c tiện
ED;ch tương t
E1;c th
ED;ch hợp mang lại c
E1;c loại người d
F9;ng hệ thống kh
E1;c nhau
4.2: Vấn đề vào thiết kế giao diện
Hai vấn đề cần coi x
E9;t:
F9;ng cung cấp th
F4;ng tin mang lại hệ thống bằng c
E1;ch n
E0;o?Hệ thống n
EA;n tr
EC;nh b
E0;y th
F4;ng tin (output) mang đến người d
F9;ng như thế n
E0;o?
4.3: C
E1;c kiểu tương t
E1;c
C
E1;c kiểu tương t
E1;c phổ biến:
E1;c trực tiếp – Direct manipulationChọn lựa bằng menu – menu selectionĐiền form – size fill-inD
F2;ng lệnh – Command languageNg
F4;n ngữ tự nhi
EA;n – Natural language
Thao t E1;c trực tiếp | Tương t E1;c trực quan, cấp tốc ch F3;ng v E0; dễ hiểu | C F3; thể kh F3; c E0;i đặt. Chỉ th ED;ch hợp lúc c F3; ẩn dụ h EC;nh ảnh cho c E1;c t E1;c vụ v E0; đối tượng | Tr F2; chơi điện tử v E0; c E1;c ứng dụng c F3; drag và drop |
Chọn lựa bằng menu | Tr E1;nh lỗi mang đến người d F9;ng, kh F4;ng phải l E0;m nhiều thao t E1;c | Chậm chạp với người sử dụng c F3; kinh nghiệm. C F3; thể phức tạp nếu c F3; nhiều lựa chọn menu | Đa số c E1;c hệ thống th F4;ng dụng |
Điền form | Nhập dữ liệu đơn giản, dễ học, c F3; thể kiểm tra được | Tốn kh F4;ng gian hiển thị, rắc rối lúc lựa chọn của người d F9;ng kh F4;ng khớp với kiểu dữ liệu của form | Đăng k ED; th F4;ng tin c E1; nh E2;n, khai thuế |
D F2;ng lệnh | Mạnh v E0; linh động | Kh F3; học, xử l FD; lỗi k E9;m | Terminal, Autocad |
Ng F4;n ngữ tự nhi EA;n | Đ E1;p ứng được người d F9;ng kh F4;ng chuy EA;n, dễ mở rộng | Cần g F5; nhiều, c E1;c hệ thống hiểu ng F4;n ngữ tự nhi EA;n kh F4;ng đ E1;ng tin cậy | Trợ l FD; ảo |
4.4: Biểu diễn th
F4;ng tin
Th
F4;ng tin c
F3; thể được tr
EC;nh b
E0;y trực tiếp (v
ED; dụ text vào một tr
EC;nh soạn thảo) hoặc được biến đổi th
E0;nh một dạng biểu diễn kh
E1;c (v
ED; dụ dạng đồ họa)
Model-View-Controller l
E0; c
E1;ch tiếp cận hỗ trợ nhiều kiểu biểu diễn dữ liệu
C
F3; 2 loại th
F4;ng tin cần được biểu diễn:
F4;ng tin tĩnh: Tạo ở l
FA;c bắt đầu v
E0; kh
F4;ng ráng đổi trong phi
EA;n l
E0;m việc.Th
F4;ng tin động: thay đổi trong phi
EA;n l
E0;m việc v
E0; phải th
F4;ng b
E1;o cho người sử dụng
C
E1;c kĩ thuật hiển thị lượng lớn th
F4;ng tin:
EC;nh ảnh: c
F3; thể mang đến thấy quan tiền hệ giữa c
E1;c thực thể v
E0; c
E1;c xu hướng của dữ liệuM
E0;u sắc: thường d
F9;ng để highlight c
E1;c th
F4;ng tin đặc biệt
Hướng dẫn về việc sử dụng m
E0;u sắc:
E0;u v
E0; mức độ sặc sỡD
F9;ng sự nỗ lực đổi m
E0;u để b
E1;o hiệu núm đổi trạng th
E1;i hệ thống.D
F9;ng k
ED; hiệu m
E0;u (color coding) để hỗ trợ c
F4;ng việc người d
F9;ng đang cố l
E0;m. Highlight những điểm người d
F9;ng cần ch
FA;
FD;.D
F9;ng k
ED; hiệu m
E0;u một c
E1;ch cẩn trọng v
E0; nhất qu
E1;n
Cẩn thận về hiệu ứng cặp đ
F4;i của m
E0;u sắc. Một số tổ hợp m
E0;u g
E2;y kh
F3; đọc, v
ED; dụ như người ta kh
F4;ng thể c
F9;ng l
FA;c ch
FA;
FD; cả hai m
E0;u đỏ v
E0; xanh lam
4.5: Quy tr
EC;nh thiết kế giao diện
Thiết kế giao diện l
E0; một quy tr
EC;nh lặp đi lặp lại với sự li
EA;n lạc chặt chẽ giữa người d
F9;ng v
E0; người thiết kế. Bố hoạt động ch
ED;nh trong quy tr
EC;nh:
EC;m hiểu người d
F9;ng sẽ l
E0;m g
EC; với hệ thống;System prototyping: ph
E1;t triển một loạt c
E1;c bản mẫu để thử nghiệmInterface evaluation: thử nghiệm c
E1;c bản mẫu c
F9;ng với người d
F9;ng
4.6: Quốc tế h
F3;a v
E0; địa phương h
F3;a
Trong qu
E1; tr
EC;nh thiết kế cần phải xem x
E9;t đến việc ng
F4;n ngữ theo chuẩn quốc tế v
E0; chuẩn địa phương. Tức l
E0; giao diện phần mềm c
F3; thể th
ED;ch ứng với sự kh
E1;c nhau về khu vực vực, ng
F4;n ngữ v
E0; y
EA;u cầu kĩ thuật của thị trường.Quốc tế h
F3;a l
E0; qu
E1; tr
EC;nh thiết kế một ứng dụng bao gồm nhiều ng
F4;n ngữ để c
F3; thể th
ED;ch nghi với những khu vực vực kh
F4;ng c
F3; sự cầm đổi quan trọng về quy tr
EC;nh.Địa phương h
F3;a l
E0; sự th
ED;ch ứng của quốc tế h
F3;a với một khu vực vực hoặc ng
F4;n ngữ cụ thể bằng c
E1;ch th
EA;m v
E0;o c
E1;c th
E0;nh phần của địa phương v
E0; dịch văn bản.C
E1;c yếu tố cần được quan lại t
E2;m như biểu tượng, số, tiền tệ, thời gian v
E0; c
E1;c đơn vị đo lường.
4.7: Biểu tượng v
E0; kh
E1;i niệm quen thuộc
Người thiết kế giao diện sử dụng c
E1;c biểu tượng v
E0; kh
E1;i niệm để tạo được sự quen thuộc thuộc giữa c
E1;c phần mềm với những hệ thống đ
E3; được biết đến tr
EA;n thế giới.Như vậy người d
F9;ng sẽ dễ d
E0;ng hơn trong việc t
EC;m hiểu v
E0; sử dụng giao diện.
V
ED; dụ: Chức năng x
F3;a tập tin c
F3; thể gắn v
E0;o biểu tượng th
F9;ng r
E1;c.
Xem thêm: Làm Thế Nào Để Mở Và Đọc File Đuôi Dat Là Gì ? Cách Xem File Dat Trên May Tính
Khi thiết kế giao diện, nh
E0; thiết kế kh
F4;ng được sử dụng nhiều hơn một
FD; nghĩa, tốt chức năng trong một biểu tượng.Bằng c
E1;ch sử dụng những biểu tượng v
E0; kh
E1;i niệm quen thuộc thuộc, hỗ trợ biểu diễn tốt hơn c
E1;c th
F4;ng tin cần được quốc tế h
F3;a, nhưng cần phải ch
FA;
FD; kh
F4;ng n
EA;n
E1;p dụng theo c
F9;ng một c
E1;ch với tất cả c
E1;c địa phương v
E0; quần thể vực kh
E1;c nhau.
E2;n t
ED;ch v
E0; đ
E1;nh gi
E1; chất lượng thiết kế phần mềm
Phần n
E0;y gồm c
E1;c ph
E2;n t
ED;ch v
E0; đ
E1;nh gi
E1; chất lượng trong thiết kế phần mềm:
E1;nh gi
E1; UI để đ
E1;nh gi
E1; mức độ th
ED;ch hợpĐ
E1;nh gi
E1; đầy đủ v
E0; to
E0;n bộ th
EC; qu
E1; đắt v
E0; kh
F4;ng thực tế đến hầu hết c
E1;c hệ thống
Một giao diện cần được đ
E1;nh gi
E1; theo một đặc tả về t
ED;nh sử dụng.
5.1: C
E1;c thuộc t
ED;nh về t
ED;nh sử dụng
Khả năng học | Người d F9;ng mới cần bao l E2;u để c F3; thể hoạt động hiệu quả với hệ thống? |
Tốc độ vận h E0;nh | Tốc độ phản ứng của hệ thống c F3; đ E1;p ứng tốt c F4;ng việc của người d F9;ng? |
Chịu lỗi | Mức độ dung thứ lỗi của hệ thống đối với lỗi người d F9;ng. |
Khả năng kh F4;i phục | Khả năng hệ thống kh F4;i phục từ lỗi của người d F9;ng. |
Tương th ED;ch | Hệ thống gắn b F3; chặt chẽ với một kiểu l E0;m việc đến đ E2;u? |
5.2: Kĩ thuật đ
E1;nh gi
E1; v
E0; ph
E2;n t
ED;ch
CE2;u hỏi điều tra để lấy phản hồi của người d
F9;ng.Quay video clip về việc sử dụng hệ thống rồi sau đ
F3; đ
E1;nh gi
E1; nội dung.C
E0;i c
E1;c đoạn m
E3; thu thập th
F4;ng tin về c
E1;c tiện
ED;ch được sử dụng v
E0; lỗi của người d
F9;ng.Phần mềm c
F3; chức năng thu thập phản hồi trực tuyến của người d
F9;ng.
5.3: Biện ph
E1;p
C
E1;c biện ph
E1;p c
F3; thể được sử dụng để ph
E2;n t
ED;ch v
E0; đ
E1;nh gi
E1; c
E1;c kh
ED;a cạnh kh
E1;c nhau của việc thiết kế phần mềm.V
ED; dụ: cấu tr
FA;c, chất lượng, k
ED;ch thước, hiệu năng, ...
C
E1;c biện ph
E1;p n
E0;y được phân chia th
E0;nh 2 loại:
EA;n thiết kế: Chức năng được x
E2;y dựng bằng c
E1;ch ph
E2;n t
ED;ch c
E1;c giao diện của hệ thống, Thiết kế hướng đối tượng: Sử dụng lớp c
E1;c đối tượng l
E0;m trung t
E2;m, từ đ
F3; x
E2;y dựng ra chức năng v
E0; giao diện6. Quy ước thiết kế phần mềm
Tại sao cần c
F3; quy ước, k
FD; hiệu tầm thường hay tạo c
E1;c m
F4; h
EC;nh trong thiết kế phần mềm?
Truyền tải được nhiều thF4;ng tin về phần mềm đến mang đến người đọc hơn l
E0; d
F9;ng những dữ liệu th
F4; như văn bản m
F4; tả phần mềm.M
F4; h
EC;nh gi
FA;p ch
FA;ng ta tổ chức, tr
EC;nh b
E0;y trực quan, thấu hiểu v
E0; tạo n
EA;n c
E1;c hệ thống phức tạp
Tất cả mọi người c
F9;ng hiểu được phần mềm được x
E2;y dựng v
E0; hoạt động như thế n
E0;o.
C
E1;c loại k
FD; hiệu được sử dụng vào thiết kế phần mềm:
FD; hiệu d
F9;ng vào thiết kế kiến tr
FA;c, tổ chức của phần mềm (static view).K
FD; hiệu d
F9;ng đến qu
E1; tr
EC;nh thiết kế bỏ ra tiết, h
E0;nh vi của phần mềm (dynamic view).
6.1. M
F4; h
EC;nh tĩnh (Static view)
Những k
FD; hiệu, m
F4; h
EC;nh n
E0;y được d
F9;ng trong ph
E2;n r
E3; mức cao của thiết kế phần mềm, tức l
E0; m
F4; tả cấu tr
FA;c, c
E1;c th
E0;nh phần ch
ED;nh của phần mềm v
E0; sự kết nối giữa ch
FA;ng. Dưới đ
E2;y l
E0; một số m
F4; h
EC;nh thường d
F9;ng vào thiết kế phần mềm ở mức cao.
F4;n ngữ đặc tả kiến tr
FA;c (Architecture mô tả tìm kiếm languages - ADLs): được sử dụng để m
F4; tả một kiến tr
FA;c phần mềm. C
F3; nhiều ng
F4;n ngữ ADL kh
E1;c nhau được ph
E1;t triển bởi c
E1;c tổ chức như Wrigh (được ph
E1;t triển bởi Carnegie Mellon), ACME (Carnegie Mellon), x
ADL (UCI), Darwin (Imperial College London), DAOP-ADL (Trường đại học M
E1;laga - T
E2;y Ban Nha). C
E1;c th
E0;nh phần cơ bản của một ng
F4;n ngữ ADL l
E0; th
E0;nh phần, kết nối v
E0; cấu h
EC;nh hệ thống.Biểu đồ lớp (Class và object diagrams): m
F4; tả quan lại s
E1;t tĩnh của hệ thống th
F4;ng qua c
E1;c lớp v
E0; c
E1;c mối quan lại hệ của ch
FA;ngBiểu đồ th
E0;nh phần (Component diagrams): biểu đồ m
F4; tả c
E1;c th
E0;nh phần v
E0; sự phụthuộc của ch
FA;ng vào hệ thống. C
E1;c th
E0;nh phần của hệ thống c
F3; thể l
E0; m
E3; nguồn, th
E0;nh phần m
E3; nhị ph
E2;n (tệp m
E3; đ
ED;ch, thư viện,...) v
E0; th
E0;nh phần thực thi.Class responsibility collaborator cards (CRCs): được d
F9;ng trong thiết kế hướng đối tượng, sử dụng để biểu thị t
EA;n của c
E1;c th
E0;nh phần (class) c
F9;ng với tr
E1;ch nhiệm v
E0; c
E1;c th
E0;nh phần hợp t
E1;c với n
F3;. CRCs ban đầu được đề xuất bởi Ward Cunningham v
E0; Kent Beck như một c
F4;ng cụ giảng dạy, sau được ph
E1;t triển v
E0; sử dụng trong thực tế thiết kế phần mềm.Biểu đồ triển khai (Deployment diagrams): chỉ ra cấu h
EC;nh c
E1;c phần tử xử l
FD; l
FA;c chương tr
EC;nh chạy, c
E1;c n
FA;t tr
EA;n mạng v
E0; c
E1;c tiến tr
EC;nh phần mềm thực hiện tr
EA;n những phần tử đ
F3;. N
F3; chỉ ra mối quan hệ giữa c
E1;c phần cứng v
E0; phần mềm của hệ thống. Biểu đồ triển khai chỉ ra to
E0;n bộ c
E1;c n
FA;t tr
EA;n mạng, kết nối giữa ch
FA;ng v
E0; c
E1;c tiến tr
EC;nh chạy tr
EA;nch
FA;ng.Sơ đồ thực thể quan liêu hệ (Entity-relationship diagrams - ERD): được sử dụng để đại diện cho m
F4; h
EC;nh kh
E1;i niệm dữ liệu lưu trữ trong kho th
F4;ng tin.Ng
F4;n ngữ m
F4; tả giao diện (Interface mô tả tìm kiếm languages - IDLs): ng
F4;n ngữ lập tr
EC;nh được sử dụng để x
E1;c định c
E1;c giao diện (t
EA;n v
E0; c
E1;c loại xuất khẩu hoạt động) của c
E1;c th
E0;nh phần phần mềm.Biểu đồ cấu tr
FA;c (Structure charts): Ch
FA;ng được sử dụng trong lập tr
EC;nh c
F3; cấu tr
FA;c để sắp xếp module của chương tr
EC;nh v
E0;o một c
E1;i c
E2;y. Mỗi m
F4;-đun được đại diện bởi một c
E1;i hộp, trong đ
F3; c
F3; t
EA;n của module. Cấu tr
FA;c c
E2;y biểu thị mối quan liêu hệ giữa c
E1;c module.
6.2. M
F4; h
EC;nh động (Dynamic view)
C
F3; nhiều loại k
FD; hiệu, m
F4; h
EC;nh d
F9;ng đến qu
E1; tr
EC;nh thiết kế bỏ ra tiết đang được
E1;p dụng phổ biến hiện nay.
E0;o c
F4;ng việc được thực hiện trong những lúc thực thi một thủ tục (h
E0;m). N
F3; nắm bắt h
E0;nh động (c
F4;ng việc v
E0; những hoạt động phải được thực hiện) cũng như kết quả của ch
FA;ng theo sự biến đổi trạng th
E1;i.Biểu đồ giao tiếp (Communication diagram): được sử dụng để hiển thị sự tương t
E1;c xảy ra vào một nh
F3;m của c
E1;c đối tượng; trọng t
E2;m l
E0; về đối tượng, c
E1;c li
EA;n kết v
E0; những trao đổi giữa ch
FA;ng.iếpSơ đồ luồng dữ liệu (Data flow diagrams - DFDs): một c
F4;ng cụ m
F4; tả mối quan tiền hệ th
F4;ng tin giữa c
E1;c đối tượng, cung cấp bức tranh tổng thế của hệ thống v
E0; một thiết kế sơ bộ về thực hiện c
E1;c chức năng. Biều đồ luồng dữ liệu c
F3; thể được sử dụng để ph
E2;n t
ED;ch an ninh, v
EC; n
F3; cung cấp c
E1;c hướng c
F3; thể tấn c
F4;ng v
E0; tiết lộ th
F4;ng tin b
ED; mật.Bảng v
E0; biểu đồ quyết định (Decision tables and diagrams): sử dụng để m
F4; tả sự kết hợp phức tạp của c
E1;c h
E0;nh động vào phần mềm.Biểu đồ tiến tr
EC;nh / lưu