Chương 1
Tổng quan về phân tích và thiết kế
UML/NN
1
Nội dung
Phân tích, thiết kế là gì?
Quá trình phân tích thiết kế Phân tích thiết kế hướng đối tượng RUP (Rational Unified Process)
UML ((Unified Modeling g Language) g g )
UML/NN
Giới thiệu Các thành phần của UML Các loại mô hình UML
2
1.1 Phân tích thiết kế là gì?
Phân tích thiết kế phần mềm:
Quá trình tìm hiểu ể và mô phỏng lại hiện tượng, quy trình nghiệp vụ trong thế giới thực từ đó xây dựng hệ thống để giải quyết bài toán đặt ra trên máy tính. Thế giới thực
Thiết kế
Lập trình UML/NN
Kiểm thử
Phần mềm 3
Tại sao phải phân tích thiết kế?
Bảo trì Kiểm thử
Bảo trì
Cài đặt
Kiểm thử Cài đặt
Thiết kế Có ó thiết ế kế ế
UML/NN
Không thiết ế kế ế
4
Tại sao phải phân tích thiết kế?
Chất lượng thiết kế là nhân tố chính quyết đị h chất định hất lượ lượng phần hầ mềm ề Không thiết kế - hoặc thiết kế không tốt dẫn đến phần mềm chất lượng thấp
UML/NN
Không quản lý được những thay đổi yêu cầu Khó kiểm thử Khó bảo trì Không có tính tiến hóa Không tái sử dụng được 5
Phân tích, thiết kế trong CNPM
Quy trình thác nước:
Yêu cầu
Phân tích yêu cầu
Vị trí của Phân tích thiết kế trong g quy y trình phát triển PM Thiết kế Cài đặt & Kiểm thử Triển khai Phần mềm
UML/NN
6
Phân tích yêu cầu
Là bước đầu tiên trong xây dựng phần mềm Gồm có các bước
Phân tích viên phân tích hiện trạng và yêu cầu của khách hàng Mô hình hệ thống Lập bảng các chức năng của hệ thống
UML/NN
Yêu cầu chức năng Yêu cầu phi chức năng
Xác định phạm vi của hệ thống 7
Thiết kế
Là bước kế tiếp nhằm phác họa ra hệ thống Việc thiết kế bao gồim các công việc
UML/NN
Thiết Thiết Thiết Thiết
kế kế kế kế
dữ liệu kiến trúc thành phần p giao diện
8
Cài đặt, kiểm thử
Cài đặt theo thiết kế (sử dụng các công cụ để xây â dựng dự phần hầ mềm ề từ thiết kế) Kiểm thử:
UML/NN
Kiểm thử đơn vị (Unit Test) Kiểm thử hệ ệ thống g con (Sub-System ( y Test)) Kiểm thử hệ thống (System Test)
9
Triển khai
Cài đặt hệ thống
Giải pháp phần cứng Cài đặt phần mềm Chuyển giao công nghệ
Hướng dẫn sử dụng: đào tạo, tài liệu hướng dẫn
Bảo trì, nâng cấp
UML/NN
10
Phương pháp phân tích thiết kế
Phương pháp hướng chức năng
Là lối tiếp tiế cận ậ ttruyền ề thống thố của ủ Cô Công nghệ hệ phần hầ mềm ề Tập trung vào thông tin Dể dàng xử lý việc thay đổi dữ liệu, liệu nhưng lại khó trong thay đổi về nguyên tắc nghiệp vụ
Phương gp pháp p hướng g đối tượng ợ g
UML/NN
Chúng ta tập trung vào cả thông tin và hoạt động Xem xét các thành phần trong bài toán tương tự như các đối ố tượng trong thế ế giới ớ thực Dễ dàng tái sử dụng
11
Phân tích hướng đối tượng (OOA)
Là một giai đoạn của dự án nhằm tạo ra một mô ô hình hì h rõ õ ràng à và à súc ú tích tí h những hữ vấn ấ đề cần giải quyết theo những khái niệm và đối tượ của tượng ủ thế giới iới thực thự Việc phân tích cần xác định những đặc trưng, những tương tác và quan hệ có liên quan của các thực thể
UML/NN
12
Cửa hàng bán xe hơi
Xác định thực thể
Khách Khá h hàng hà Người bán hàng Đơn đặt hàng Xe hơi Hóa đơn
Những tương tác
UML/NN
Khách hàng g xem xe Khách hàng đặt hàng Khách hàng thanh toán Người bán hàng giao hóa đơn và giao xe 13
Ngân hàng bán lẻ
Xác định thực thể
LLoạii tài khoản: kh ả ATM, ATM Tiết kiệ kiệm, Không Khô kỳ hạn h Khách hàng Nhân viên
Những tương tác
UML/NN
Khách hàng mở tài khoản Chuyển tiền từ tài khoản Tiết kiệm đến tài khoản ATM Chuyển y tiền từ tài khoản Tiết kiệm ệ tới tiền g gởi Không g kỳỳ hạn Chuyển tiền từ tài khoản Không kỳ hạn tới tiền gởi tiết kiệm 14
Thiết kế hướng đối tượng (OOD)
Chương trình được xem như là một tập hợp những đối tượng cộng tác, tác đối tượng là thể hiện của lớp, các lớp tạo nên cây phân cấp có quan hệ thừa kế Nhà thiết kế xác định trách nhiệm, thuộc tính tác vụ và quan hệ của các lớp
UML/NN
15
Những thuận lợi của OOA&D
Phù hợp với suy nghĩ tự nhiên của con người giải quyết được một số vấn đề trong người, sản xuất phần mềm Tăng cường tái sử dụng đối tượng nhờ đó giảm được chi phí, lỗi, công sức, gia tăng tốc độ thiết kế và bảo trì Giúp phát triển những phần mềm phức tạp, hỗ trợ cho việc tạo ra những hệ thống phần mềm dẻo và có khả năng ráp nối cao
UML/NN
16
Qui trình RUP (Rational Unified Process)
Qui trình phát triển phần mềm thống nhất RUP là một ột ttrong những hữ quii trình t ì h phát hát triển t iể phần mềm theo hướng đối tượng, dùng N ô ngữ Ngôn ữ mô ô hình hì h thống thố nhất hất (UML Unified modeling language) RUP là qui trình do hãng Rational phát triển ể
UML/NN
17
Các vấn đề về phần mềm
UML/NN
18
Nguyên nhân
UML/NN
19
RUP
UML/NN
20
Các giai đoạn RUP
UML/NN
21
RUP: Nỗ lực
UML/NN
22
Qui trình RUP…
Giai đoạn 1 (Inception): khởi đầu
Giai đoạn 2 (Elaboration): Hình thành
23
Phạm vii dự án, Ph á yêu ê cầu ầ người ười dùng dù và à ràng à buộc b ộ Yêu cầu nghiệp vụ, rủi ro, kế hoạch dự án (phân công, chi phí) Thiết kế kiến trúc (chi phí, lịch, tài nguyên) Cấu hình môi trường làm việc, công cụ Tinh chỉnh tài liệu Hoạch định những bước lặp Kế hoạch phát triển: tiến trình, công cụ CASE Ti h chỉnh Tinh hỉ h kiến kiế trúc ú và à chọn h thành hà h phần hầ (component) ( ) CNPM/NN
…Qui trình RUP
Giai đoạn 3 (Construction): Xây dựng
Giai đoạn 4 (Transition): Chuyển giao
24
Quản ả lýý tiến ế trình ì tạo sản ả phẩm: ẩ năng suất, ấ đảm ả bảo ả chất lượng Tạo sản phẩm (alpha, (alpha beta, beta các phiên bản test khác) Kế hoạch triển khai ứng dụng: phần mềm, người sử dụng, hỗ trợ… Tạo sản phẩm xuất xưởng Kiểm tra sản phẩm, thu thập phản hồi
CNPM/NN
Unified Process A unit of work
A role played by an individual or a team
Activity
Worker Analyst
responsible for
Use case UML/NN
Describe a Use Case C
Artifact A piece of information that is produced, modified, or used by a process
Use case package
25
Qui trình thiết kế
UML/NN
26
1.2 UML (Unified Modeling Language)
Là ngôn ngữ biểu diễn hệ thống bằng mô hình Giải quyết ết vấn ấ đề trong t các á hệ thống thố phức hứ tạp, t các á hệ thống ràng buộc nghiêm ngặt nhờ các ưu điểm trong việc biểu diễn Tạo một mô hình có thể sử dụng được bởi người và máy máy.
UML/NN
27
Mô hình
Mô hình là một hình ảnh khái quát nhằm biểu diễn hệ thống thực. thực Nó chỉ ra được cấu trúc và ứng xử của hệ thống Ngôn ngữ để xây dựng mô hình được là ngôn ngữ mô hình Mô hình đối tượng là một mô hình biểu diễn hệ thống theo những đối tượng Nguyên tắc tạo mô hình
UML/NN
Phải sử dụng nhiều mô hình khác nhau trong biểu diễn Mô hình g giúp p cho việc ệ g giải q quyết y vấn đề và hình thành giải pháp 28
Tạo mô hình
Việc tạo mô hình phải thỏa mãn các yếu tố sau:
UML/NN
Chính xác (accurate): Mô tả đúng hệ thống cần xây dựng dựng. Nhất quán (consistent): Các khung nhìn (view) khác nhau không g được ợ mâu thuẩn với nhau. Có thể hiểu được (understandable): cho người xây dựng lẫn người sử dụng Dễ ễ thay đổi ổ (changeable) Dễ dàng trao đổi với các mô hình khác (exchangeable) 29
Các quy tắc ngôn ngữ mô hình
Syntactic (Cú pháp): cho biết hình dạng các biể tượng biểu tượ và à cách á h kết hợ hợp chúng hú trong t ngôn ngữ. Semantic (Ngữ nghĩa): cho biết ý nghĩa của mỗi biểu tượng, chúng được hiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểu tượng khác. Pragmatic (Thực dụng): Hữu dụng, mọi người g có thể hiểu được ợ mô hình,, có thể chia sẻ thông tin một cách thuận tiện
UML/NN
30
Lịch sử các phương pháp mô hình hóa
Thập niên 60
Phương pháp sơ đẳng ẳ với đặc tính chung là chuẩn ẩ hóa kỹ thuật của các nhà phát triển ứng dụng
Thập niên 70
Phương pháp Descartes với đặc trưng là phân rã chức năng của HTTT theo mô hình phân cấp và ứng dụng các phương pháp lập trình cấu trúc, trúc đơn thể. thể Một số phương pháp: HIPO, SADT, SA hay SSA, SA/SD,… Hướng tiếp cận:
Tính rõ ràng Tính dừng Sự rút g gọn
31
Lịch sử các phương pháp mô hình hóa
Thập niên 70 (tiếp)
Phân loại
Ưu điểm
Phân tích cấu trúc: phân rã chức năng HTTT (HIPO, SADT, PSL/PSA, SA-SD, SSA, SASS ) Khái niệm ệ cấu trúc: mô tả cấu trúc các đơn thể (PSL/PSA, ( / , JSD, SA-SD )
Tiếp cận theo hướng từ trên xuống (top – down) Dễ ễ dàng áp dụng cho các hệ thống được cấu thành bởi những thành phần ghép nối Tiếp cận từng bước
Khuyết điểm
Thiếu qui luật chính xác trong sự phân rã Thiếu các ràng buộc về việc bố trí xứ lý theo thời gian Khó khăn trong việc phân rã một hệ thống lớn 32
Lịch sử các phương pháp mô hình hóa
Thập niên 80: phương pháp hệ thống, tiếp cận dữ liệu và xử lý: ý MERISE,, IDA,, REMORA,, IA,… ,
Cách tiếp cận
Tính toàn thể Tính đúng đắn
Phâ loại Phân l i
Mô hình cấu trúc dữ liệu của hệ thống (hướng tiếp cận CSDL) Mô hình hành vi hệ thống (tiếp cận theo hướng xử lý) Bao gồm 2 trường phái
Ưu điểm
Lưỡng phần dữ liệu và xử lý: MCT, SADT, MERISE Không phân biệt rõ ràng giữa dữ liệu và xử lý: IDA, Remora, ACM-PCM, CIAM
Mô hình ERA được sử dụng rộng rãi nhất 2 cách tiếp cận của hệ thống về dữ liệu và xử lý Quan tâm đến những thành phần không tin học hóa
Kh ết điể Khuyết điểm
Lưỡng phần dữ liệu và xử lý 33
Lịch sử các phương pháp mô hình hóa
Thập niên 90: phương pháp hướng đối tượng, mô hình tiêu biểu là OOD, OOD HOOD, HOOD BON, BON OSA, OSA … và sau này là OOSA, OOA, OMT, CRC, OOM, OOAD, UML/RUP
Đặc trưng cơ bản Tính bao bọc (encapsulation) Tính phân loại (classification) Tính kết hợp (aggregation) Tính thừa kế (heritage) ( g ) Phân loại: 2 hướng
Lập trình:lập trình đơn thể -> hướng đối tượng Hệ quản trị CSDL: CSDL hướng đối tượng
Cách tiếp cận: 2 cách
Phương pháp kỹ thuật: CNPM (OOD, HOOD, BON, BOOCH, MECANO, OODA) Phương pháp toàn cục:HTTT (OOA, OOSA, OOAD, OMT, OOM ) 34
Lịch sử các phương pháp mô hình hóa
Thập niên 90
Ư điểm Ưu ể
Cấu trúc hoá được các cấu trúc phức tạp và sử dụng được cấu trúc đệ qui Xác định được đối tượng của hệ thống qua định danh đối tượng Tính thừa kế được đưa ra tạo tiền đề cho việc tái sử dụng
Khuyết điểm ể
Nhiều khái niệm biểu diễn, khá rắc rối trong việc phân biệt ngữ nghĩa một số khái niệm gần nhau Xác định một đối tượng khá khó khăn Hướng tiếp cận về hệ thống vẫn còn đơn giản
Kiểu đối tượng <-> hành vi Mô hình ER -> đối tượng 35
Lịch sử phương pháp tiếp cận UML/ RUP
Xöû ly Xö lyù OMT Sadt
CRC
OODa 90
Axial Sa/sd Ida Ssa
OOM OOA Tiếp ế cận đối ố tượng
Remora Merise
80
Hipo
OOSA
Thôøi gian Thôi
Tiếp cận hệ thống
Tiếp cận Descartes Jsd
70
Proteeù
Arianne
60 Corig
Niam
Döõ lieäu
36
Giới thiệu
Vài công ty hàng đầu đã sử dụng và góp phần hầ phát hát ttriển iể UML
UML/NN
Hewlett – Packard Microsoft Oracle IBM Unisys
37
Lịch sử của UML
UML/NN
38
Lịch sử của UML
Booch and Rumbaughmethods - Unified M th d v. 0.8 Method 0 8 (1995) Jacobson góp phần cho UML 0.9, 1996 UML là standard modelling language (OMG) 1996. UML 1.0 (1997), UML 1.1 (9 tháng sau). UML 1.4 1 4 (2001), (2001) UML 1.5 1 5 (2003) UML 2.0 (cuối 2004)
UML/NN
39
UML – ngôn ngữ đặc tả
Cung cấp khung nhìn (view) cho việc phát t iể và triển à triển t iể khai kh i UML không phụ thuộc qui trình UML được đề nghị sử dụng với những quá trình
UML/NN
Hướng theo use-case (chức năng – người dùng) Lấy kiến trúc làm trọng tâm Lặp lại Tăng thêm 40
Đích (goal) của UML
Cung cấp những kỹ thuật đặc tả, có thể mở rộng từ những khái niệm lõi Cung cấp những mô hình mô hình trực quan ((visual)) và trao đổi thuận ậ lợi ợ Cung cấp những đặc tả độc lập với ngôn ngữ lập trình và qui trình phát triển Hỗ ỗ trợ việc gia tăng thị trường công cụ (tool) hướng đối tượng Hỗ trợ mức phát triển cao hơn với những khái niệm mẫu (pattern) và thành phần (component)
UML/NN
41
Thành phần của ngôn ngữ UML
Hướng nhìn (view) Biể đồ (diagram) Biểu (di ) Phần tử mô hình hóa (model element) Cơ chế chung (General Mechanism)
UML/NN
42
“4+1” view
UML/NN
43
Biểu đồ (diagram)
UML/NN
44
Biểu đồ (diagram) 1. 2. 3. 4. 5. 6. 7. 8. 9 9. UML/NN
Biểu Biể Biểu Biểu Biểu ể Biểu Biểu Biểu Biểu Biểu
đồ đồ đồ đồ đồ đồ đồ đồ đồ
Use case (Use Case Diagram) lớ lớp (Cl (Class Diagram) Di ) đối tượng (Object Diagram) trạng thái (State Diagram) trình tự ự ((Sequence q Diagram) g ) cộng tác (Collaboration Diagram) hoạt động (Activity Diagram) thành phần (Component Diagram) triển khai (Deployment Diagram) 45
Biểu đồ Use case (Use Case Diagram)
UML/NN
46
Biểu đồ lớp (Class Diagram)
UML/NN
47
Biểu đồ đối tượng (Object Diagram)
UML/NN
48
Biểu đồ trạng thái (State Diagram)
UML/NN
49
Biểu đồ trình tự (Sequence Diagram)
: LoginForm
: People
1: submit(uname, psswd)
: Database
1.1: verify(uname, psswd)
1.2: welcome
UML/NN
50
Biểu đồ cộng tác (Collaboration Diagram)
UML/NN
51
Biểu đồ hoạt động (Activity Diagram)
UML/NN
52
Biểu đồ thành phần (Component Diagram)
People <
> Register <>
StudentInfo
Database
PeopleInfo LectureInfo RegisterForm
Login <> fil Index.shtml LoginForm
UML/NN
<>
53
Biểu đồ thành phần là gì?
Thành phần là một phần vật lý và có thể thay thế Một thà thành h phần hầ code d có ó thể là một ột tậ tập tin ti (source ( code), một thành phần nhị phân (binary) hay thực thi được (executable)… Chúng có thể được nhóm góp lại với nhau thành từng gói (package) Biểu đồ thành phần là loại biểu đồ cấu trúc, chỉ ra những sự phụ thuộc ộ giữa các á thành à phần ầ với ớ nhau, một thành phần thay đổi sẽ gây ra hiệu ứng đối với những thành phần khác
UML/NN
54
Giao diện (interface)
UML/NN
55
Biểu đồ triển khai
UML/NN
56
Mô hình Quản lý thư viện
Node 1 (phòng quản trị):Server CSDL
Node 2 (phòng quản trị):APP Server Tiện ích Cơ sở dữ liệu
Node 3 (đọc giả):APP Giao diện
Node 4 (thủ thư):APP Giao diện
Xử lý
57
Biểu đồ triển khai là gì?
Biểu đồ triển khai chỉ ra kiến trúc vật lý của phần hầ cứng ứ cũng ũ như hư phần hầ mềm ề trong t hệ thống. Biểu ể đồ có thể ể chỉ ra từng trang thiết bị cụ thể (node), sự kết nối, loại kết nối Bên trong các nốt (node) chứa các thành phần thực p ự thi cùng g sự ựp phụ ụ thuộc ộ g giữa các thành phần
UML/NN
58
NỐT (NODE)
Đối tượng vật lý thời gian thực thi mà biểu diễ một diễn ột tài nguyên ê tí tính h ttoán, á một ột cách á h tổng quát có ít nhất một bộ nhớ và thường có ó khả năng ă xử ử lý
UML/NN
59
Biểu đồ triển khai
Phân bổ các thành phần (thiết bị máy móc) trong công trình
UML/NN
60
Biểu đồ triển khai
UML/NN
61
Phần tử mô hình (model element)
Use case name
Component Name
Class Attributes Operations Dependency Generalization Association Aggregation (a form of Association)
UML/NN
62
Phần tử mô hình (model element)
Các biểu đồ được xây dựng từ các phần tử mô hình (model element). element) Một phần tử mô hình được định nghĩa với ngữ nghĩa (semantic) và được biểu diễn bằng ký hiệu Một phần tử mô hình có thể tồn tại trong nhiều dạng biểu đồ khác nhau nhau, theo những nguyên tắc xác định loại phần tử nào được dùng trong loại biểu đồ nào
UML/NN
63
Quan hệ (relationship)
Liên kết (Association) : liên kết các phần tử Khái quát át hóa hó (Generalization): (G li ti ) còn ò được đ gọii là tính tí h thừa kế, có ý nghĩa rằng một phần tử này có thể là một sự chuyên biệt hóa của một phần tử khác khác. Sự phụ thuộc (Dependency): chỉ ra rằng một phần tử này phụ thuộc trong một phương thức nào đó vào một phần tử khác. Kết tập (Aggregation): Một dạng của nối kết, trong đó một phần tử này chứa các phần tử khác.
UML/NN
64
Cơ chế chung (General Mechanism)
Biểu thị (Adornment) Ghi chú hú (Note) (N t ) Đặc tả (Specification)
UML/NN
65
Mở rộng UML
Khuôn mẫu (Stereotype) Giá trị đính kèm (Tagged Value) Ràng g buộc ộ ((Constraint))
UML/NN
66
Sử dụng lược đồ UML
UML/NN
67
UML Hello World
UML/NN
68
Công cụ (Tool) – chức năng
Vẽ biểu đồ H t độ Hoạt động như h một ột kh kho (R (Repository) it ) Hỗ trợ điều hướng (Navigation ) Hỗ ỗ trợ nhiều người sử dụng Tự động tạo code Tái tạo mô hình Tích hợp với các công cụ khác Bao quát mô hình ở tất cả các mức độ trừu tượng hóa khác nhau Trao đổi mô hình
UML/NN
69