Upload
le-anh-khoa
View
1.144
Download
11
Embed Size (px)
Citation preview
Chương 1Chươ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ượngRUP (Rational Unified Process)
UML (Unified Modeling Language)( g g g )Giới thiệuCác thành phần của UMLCác thành phần của UMLCác loại mô hình UML
UML/NN 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êndựng hệ thống để giải quyết bài toán đặt ra trên máy tính.
Thiết kếThế giới thực
UML/NN 3
Lập trình Kiểm thử Phần mềm
Tại sao phải phân tích thiết kế?
Bảo trì Bảo trì
Cài đặtKiểm thử
Cài đặtKiểm thử
Bảo trì
Thiết kếCài đặt
ó ế ế ế ếCó thiết kế Không thiết kế
UML/NN 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 hất lượ hầ ềđịnh chất lượng phần mềmKhô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
Không quản lý được những thay đổi yêu cầuKhó kiểm thửKhó bảo trìKhông có tính tiến hóaKhông tái sử dụng được
UML/NN 5
Không tái sử dụng được
Phân tích, thiết kế trong CNPM
Quy trình thác nước:
Phân tích yêu cầu Vị trí của Phân tích thiết kế
trong quy trình phát triển PM
Yêu cầu
Thiết kế
g y
Cài đặt & Kiểm thử
Triển khai
UML/NN 6
Phần mềm
Phân tích yêu cầu
Là bước đầu tiên trong xây dựng phần mềmGồ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àngMô hình hệ thốngLập bảng các chức năng của hệ thống
Yêu cầu chức năngYêu cầu phi chức năng
Xác định phạm vi của hệ thống
UML/NN 7
Thiết kế
Là bước kế tiếp nhằm phác họa ra hệ thốngViệc thiết kế bao gồim các công việc
Thiết kế dữ liệuThiết kế kiến trúcThiết kế thành phầnpThiết kế giao diện
UML/NN 8
Cài đặt, kiểm thử
Cài đặt theo thiết kế (sử dụng các công cụ để â dự hầ ề từ thiết kế)để xây dựng phần mềm từ thiết kế)Kiểm thử:
Kiểm thử đơn vị (Unit Test)Kiểm thử hệ thống con (Sub-System Test)ệ g ( y )Kiểm thử hệ thống (System Test)
UML/NN 9
Triển khai
Cài đặt hệ thốngGiải pháp phần cứngCài đặt phần mềmChuyể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ăngLà lối tiế ậ t ề thố ủ Cô hệ hầ ềLà lối tiếp cận truyền thống của Công nghệ phần mềmTập trung vào thông tinDể dàng xử lý việc thay đổi dữ liệu nhưng lại khó trongDể dàng xử lý việc thay đổi dữ liệu, nhưng lại khó trong thay đổi về nguyên tắc nghiệp vụ
Phương pháp hướng đối tượngg p p g ợ gChúng ta tập trung vào cả thông tin và hoạt độngXem 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
UML/NN 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 ô hì h õ à à ú tí h hữ ấ đềmô hình rõ ràng và súc tích những vấn đề
cần giải quyết theo những khái niệm và đối tượ ủ thế iới thựtượng của thế giới thựcViệ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á h hàKhách hàngNgười bán hàngĐơn đặt hàngĐơn đặt hàngXe hơiHóa đơn
Những tương tácKhách hàng xem xegKhách hàng đặt hàngKhách hàng thanh toán
UML/NN 13
Người bán hàng giao hóa đơn và giao xe
Ngân hàng bán lẻ
Xác định thực thểL i tài kh ả ATM Tiết kiệ Khô kỳ hLoại tài khoản: ATM, Tiết kiệm, Không kỳ hạnKhách hàngNhân viênNhân viên
Những tương tácKhách hàng mở tài khoảnKhách hàng mở tài khoảnChuyển tiền từ tài khoản Tiết kiệm đến tài khoản ATMChuyển tiền từ tài khoản Tiết kiệm tới tiền gởi Không kỳ y ệ g g ỳhạnChuyển tiền từ tài khoản Không kỳ hạn tới tiền gởi tiết kiệm
UML/NN 14
kiệm
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 đối tượng là thểnhững đối tượng cộng 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ế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ớptá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 đề trongngười, giải quyết được một số vấn đề trong sản xuất phần mềmTăng cường tái sử dụng đối tượng nhờ đó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ìđộ 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ầnhỗ 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à ột t hữ i t ì h hát t iểRUP là một trong những qui trình phát triển phần mềm theo hướng đối tượng, dùng N ô ữ ô hì h thố hất (UMLNgôn ngữ mô hình thống nhấ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 đầuPh i dự á ê ầ ười dù à à b ộPhạm vi dự án, yêu cầu người dùng và ràng buộcYêu cầu nghiệp vụ, rủi ro, kế hoạch dự án (phân công, chi phí)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ụ
Giai đoạn 2 (Elaboration): Hình thànhTinh chỉnh tài liệuHoạch định những bước lặpKế hoạch phát triển: tiến trình, công cụ CASETi h hỉ h kiế ú à h hà h hầ ( )
23 CNPM/NN
Tinh chỉnh kiến trúc và chọn thành phần (component)
…Qui trình RUP
Giai đoạn 3 (Construction): Xây dựngả ý ế ì ả ẩ ấ ả ảQuản lý tiến trình tạo sản phẩm: năng suất, đảm bảo
chất lượngTạo sản phẩm (alpha beta các phiên bản test khác)Tạo sản phẩm (alpha, 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ợ…
Giai đoạn 4 (Transition): Chuyển giaoTạo sản phẩm xuất xưởngKiểm tra sản phẩm, thu thập phản hồi
24 CNPM/NN
Unified ProcessA role played by an individual or a team
Activity
A unit of work
Activity
Describe a CAnalyst
Worker
Use Case
responsible for
Analyst
Artifact
A piece of information that is produced, modified, or used by a process
UML/NN 25
Use case package
Use caseby a process
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ìnhGiải ết ấ đề t á hệ thố hứ t áGiải quyết vấn đề trong các hệ thống phức tạp, 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ễntrong việc biểu diễnTạo một mô hình có thể sử dụng được bởi người và máyvà 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 Nó chỉ ra được cấu trúc và ứng xửhệ thống thực. Nó chỉ ra được cấu trúc và ứng xử của hệ thốngNgôn ngữ để xây dựng mô hình được là ngôn ngữNgôn ngữ để xây dựng mô hình được là ngôn ngữ mô hìnhMô hình đối tượng là một mô hình biểu diễn hệMô hình đối tượng là một mô hình biểu diễn hệ thống theo những đối tượngNguyên tắc tạo mô hìnhNguyên tắc tạo mô hình
Phải sử dụng nhiều mô hình khác nhau trong biểu diễnMô hình giúp cho việc giải quyết vấn đề và hình thành
UML/NN 28
g p ệ g q ygiải pháp
Tạo mô hình
Việc tạo mô hình phải thỏa mãn các yếu tố sau:sau:
Chính xác (accurate): Mô tả đúng hệ thống cần xây dựngxây dựng.Nhất quán (consistent): Các khung nhìn (view) khác nhau không được mâu thuẩn với nhau.g ợ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)
UML/NN 29
(exchangeable)
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ượ à á h kết hợ hú tbiểu tượng và cách kết hợp chúng trong 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 có thể hiểu được mô hình, có thể chia
UML/NN 30
g ợ ,sẻ thông tin một cách thuận tiện
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 70Thậ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 đơn thể Một sốcác phương pháp lập trình cấu trúc, đơn 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àngTính dừngSự rút gọn
31
g
Lịch sử các phương pháp mô hình hóa
Thập niên 70 (tiếp)Phân loạiPhân loại
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 )
Ưu điểmTiế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ểmKhuyết điểmThiế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
Khó khăn trong việc phân rã một hệ thống lớn
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ậnTính toàn thể Tính đúng đắn
Phâ l iPhân loạiMô 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áiBao gồm 2 trường phái
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
Ưu điểmƯu điểmMô 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ể
33
Khuyết điểmLưỡng phần dữ liệu và xử lý
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 HOOD BON OSA và sau này làtiêu biểu là OOD, HOOD, BON, OSA, … và sau này là OOSA, OOA, OMT, CRC, OOM, OOAD, UML/RUP
Đặc trưng cơ bảnTính bao bọc (encapsulation)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ướngLập trình:lập trình đơn thể -> hướng đối tượngHệ quản trị CSDL: CSDL hướng đối tượngHệ quản trị CSDL: CSDL hướng đối tượng
Cách tiếp cận: 2 cáchPhương pháp kỹ thuật: CNPM (OOD, HOOD, BON, BOOCH, MECANO, OODA)
34
Phương pháp toàn cục:HTTT (OOA, OOSA, OOAD, OMT, OOM )
Lịch sử các phương pháp mô hình hóa
Thập niên 90Ư ểƯu điểm
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ểmNhiề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
35
Mô hình ER -> đối tượng
Lịch sử phương pháp tiếp cận
Xöû lyù UML/ Thôøi gian
ế ố
OMT OOM
CRCOODa
OOSA
Xö ly
Sadt OOA
RUPThôi gian
Tiếp cận đối tượng
Ida
Merise
Remora
Axial
Ssa
Tiếp cận hệ
90Sa/sd
Jsd
Hipo
Tiếp cận Descartes
Proteeù
Tiếp cận hệ thống80
70
Döõ lieäu
Arianne
Corig
60
Niam
36
Giới thiệu
Vài công ty hàng đầu đã sử dụng và góp hầ hát t iể UMLphần phát triển UMLHewlett – PackardMicrosoftOracleIBMUnisys
UML/NN 37
Lịch sử của UML
UML/NN 38
Lịch sử của UML
Booch and Rumbaughmethods - Unified M th d 0 8 (1995)Method v. 0.8 (1995)Jacobson góp phần cho UML 0.9, 1996UML là standard modelling language (OMG) 1996.UML 1.0 (1997), UML 1.1 (9 tháng sau).UML 1 4 (2001) UML 1 5 (2003)UML 1.4 (2001), UML 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ể à t iể kh itriển và triển khaiUML không phụ thuộc qui trìnhUML được đề nghị sử dụng với những quá trình
Hướng theo use-case (chức năng – người dùng)Lấy kiến trúc làm trọng tâmLấy kiến trúc làm trọng tâmLặp lạiTăng thêm
UML/NN 40
Tăng thêm
Đí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õinhững khái niệm lõiCung 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ượngHỗ trợ mức phát triển cao hơn với những khái niệmHỗ 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ể đồ (di )Biểu đồ (diagram)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. Biểu đồ Use case (Use Case Diagram)Biể đồ lớ (Cl Di )2. Biểu đồ lớp (Class Diagram)
3. Biểu đồ đối tượng (Object Diagram)ể4. Biểu đồ trạng thái (State Diagram)
5. Biểu đồ trình tự (Sequence Diagram)ự ( q g )6. Biểu đồ cộng tác (Collaboration Diagram)7. Biểu đồ hoạt động (Activity Diagram)7. Biểu đồ hoạt động (Activity Diagram)8. Biểu đồ thành phần (Component Diagram)9 Biểu đồ triển khai (Deployment Diagram)
UML/NN 45
9. Biểu đồ triển khai (Deployment Diagram)
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)
: Database: People : LoginForm
1: submit(uname, psswd) 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<<file>> Database
PeopleInfo
StudentInfo
LectureInfoRegister<<file>> RegisterForm
PeopleInfo LectureInfo
Loginfil
Index.shtml<<page>>
<<file>>
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à h hầ d ó thể là ột tậ ti (Một thành phần code có thể là một tập tin (source code), một thành phần nhị phân (binary) hay thực thi được (executable)… Chúng có thể được nhómthi đượ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ácnhữ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 3 (đọc giả):APP
Giao diệnGiao diện
Node 4 (thủ thư):APPTiện ích
Node 2 (phòng quản trị):APP Server
Cơ sở dữGiao diện
Cơ sở dữ liệu
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 hầ ứ ũ hư hầ ề t hệphần cứng cũng như phần mềm trong 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 thi cùng sự phụ thuộc giữa các p ự g ự p ụ ộ gthà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ễ ột tài ê tí h t á ột á hdiễn một tài nguyên tính toán, một cách tổng quát có ít nhất một bộ nhớ và thường ó khả ă ử lý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ìnhtrong 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
Class
Attributes
Component Name
Dependency
Operations
Dependency
Generalization
AssociationAssociation
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)(model 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ệunghĩa (semantic) và được biểu diễn bằng ký hiệuMột phần tử mô hình có thể tồn tại trong nhiều dạng biểu đồ khác nhau theo những nguyên tắcdạng biểu đồ khác 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 át hó (G li ti ) ò đ i là tí hKhái quát hóa (Generalization): còn được gọi là tính 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ácmột sự chuyên biệt hóa của một phần tử 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 đó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, trongKế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 hú (N t )Ghi chú (Note)Đặc tả (Specification)
UML/NN 65
Mở rộng UML
Khuôn mẫu (Stereotype)Giá trị đính kèm (Tagged Value)Ràng buộc (Constraint)g ộ ( )
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 độ h ột kh (R it )Hoạt động như một kho (Repository)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ìnhTí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
UML/NN 69
Trao đổi mô hình