SlideShare una empresa de Scribd logo
1 de 45
Chương 3: Phân tích Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Khoa Công Nghệ Thông Tin Bộ môn Công Nghệ Phần Mềm GVLT: ThS. Trần Minh Triết
Nội dung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Một số khái niệm mở đầu ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nhắc lại về hướng đối tượng
Nhắc lại về hướng đối tượng  Tên class Một số ký hiệu Tên class (Các) phương thức (Các) thuộc tính
Public/Protected/Private + Thuộc tính/Phương thức  public - Thuộc tính/Phương thức  private # Thuộc tính/Phương thức  protected Phương thức Public Phương thức Protected  Phương thực Private Class - privateAttribute # protectedAttribute +publicOp() # protectedOp() - privateOp()
Tầm vực ,[object Object],Class -  classifierScopeAttribute classifierScopeOperation () - instanceScopeAttribute instanceScopeOperation()
Ví dụ Student - name - address -  nextAvailID : int + addSchedule(theSchedule : Schedule, forSemester : Semester) + getSchedule(forSemester : Semester) : Schedule + hasPrerequisites(forCourseOffering : CourseOffering) : boolean # passed(theCourseOffering : CourseOffering) : boolean +  getNextAvailID() : int - studentID
Nhận xét Bình thường: Class bình thường In nghiêng : Class thuần ảo Gạch dưới : Object (không phải class) Bình thường: Thuộc tính bình thường In nghiêng : không sử dụng Gạch dưới : Thuộc tính static Bình thường: Phương thức bình thường In nghiêng : Phương thức virtual Gạch dưới : Phương thức static Tên class (Các) phương thức (Các) thuộc tính
Ví dụ
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quan hệ giữa các lớp đối tượng ,[object Object],[object Object],[object Object],class A { void  F(B  x) { … } }; class A { B  F() { … } }; class A { void  F() { B  x; } }; Trong ClassA có sử dụng biến toàn cục (kiểu B), hoặc sử dụng phương thức/thuộc tính static của ClassB Tham số truyền vào Kết quả trả ra Biến cục bộ
Xây dựng sơ đồ lớp ở mức phân tích
Lập danh sách các đối tượng ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lập danh sách các đối tượng ,[object Object],Đối tượng đề nghị Không là đối tượng Là đối tượng Được quan tâm Không được quan tâm Đối tượng chính Đối tượng phụ Tiêu chuẩn nhận dạng đối tượng: có rất nhiều trường phái
Ví dụ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ví dụ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ví dụ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lập danh sách các quan hệ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nhận dạng thuộc tính ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Các bước xây dựng  sơ đồ lớp ở mức phân tích ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Các bước xây dựng  sơ đồ lớp ở mức phân tích ,[object Object],[object Object]
Các bước xây dựng  sơ đồ lớp ở mức phân tích ,[object Object],[object Object],[object Object],[object Object],[object Object]
Các bước xây dựng  sơ đồ lớp ở mức phân tích ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kết quả: Sơ đồ lớp ở mức phân tích ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],STT Tên lớp/quan hệ Loại Ý nghĩa/ghi chú … … … … STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú … … … … … STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú … … … … …
Áp dụng ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sơ đồ trạng thái
Các khái niệm ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Một số ký hiệu Tên trạng thái Tên biến cố (tham số) Tên hành động (tham số) [ Điều kiện ] Trạng thái Chuyển đổi trạng thái Tên trạng thái stateVar : type = value entry/ entry action do/ activity exit/ exit action
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Các trạng thái đặc biệt Tr/thái bắt đầu Tr/thái kết thúc
Sơ đồ trạng thái ,[object Object],Tên trạng thái stateVar : type = value entry/ entry action do/ activity exit/ exit action Biến cố(tham số)  [Biểu thức điều kiện] / Hành động (tham số) Trạng thái Biến cố Chuyển đổi trạng thái Hành động Hành động
Sơ đồ trạng thái B1, B2 : biến cố sinh B4, B8, B9 : biến cố mất B3, B5, B6, B7 : biến cố hoạt động S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9
Sơ đồ trạng thái ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sơ đồ trạng thái ,[object Object],Sẵn sàng Tạm dừng Hoạt động Chấm dứt
Cách xây dựng sơ đồ trạng thái ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kết quả: Sơ đồ trạng thái Bảng mô tả các trạng thái Bảng mô tả các biến cố Sơ đồ trạng thái S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9 STT Trạng thái Ý nghĩa Xử lý liên quan Ghi chú … … … … … STT Biến cố Ý nghĩa Xử lý liên quan Ghi chú … … … … …
Ví dụ Unassigned Assigned removeProfessor addProfessor
Ví dụ add student / numStudents = numStudents + 1 Unassigned Assigned Full Cancelled do: Send cancellation notices Committed do: Generate class roster closeRegistration [ has Professor assigned ] close / numStudents = 0 addProfessor closeRegistration remove student / numStudents = numStudents - 1 cancel removeProfessor [ numStudents = 10 ] close[ numStudents < 3 ] closeRegistration[ numStudents >= 3 ] close[ numStudents >= 3 ] add student / numStudents = numStudents + 1 cancel remove student / numStudents = numStudents - 1 close [ numStudents = 10 ] cancel
Ví dụ: trạng thái lồng nhau superstate substate add student / numStudents = numStudents + 1 Open Unassigned Assigned H add a professor Closed Cancelled do: Send cancellation notices Full Committed do: Generate class roster closeRegistration close remove a professor close[ numStudents < 3 ] [ numStudents = 10 ] closeRegistration[ numStudents >= 3 ] close[ numStudents >= 3 ] closeRegistration [ has Professor assigned ] close / numStudents = 0 remove student / numStudents = numStudents - 1 cancel cancel
Luyện tập ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
xcode_esvn
 

La actualidad más candente (15)

Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG DỤNG VỚI C#
Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG  DỤNG VỚI C# Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG  DỤNG VỚI C#
Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG DỤNG VỚI C#
 
Bai11 ooad bieu_dolop
Bai11 ooad bieu_dolopBai11 ooad bieu_dolop
Bai11 ooad bieu_dolop
 
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
 
C2 2
C2 2C2 2
C2 2
 
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Bài Giảng Hiểu Dữ Liệu Và Tiền Xử Lý Dữ Liệu
Bài Giảng Hiểu Dữ Liệu Và Tiền Xử Lý Dữ Liệu Bài Giảng Hiểu Dữ Liệu Và Tiền Xử Lý Dữ Liệu
Bài Giảng Hiểu Dữ Liệu Và Tiền Xử Lý Dữ Liệu
 
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethua
 
Bai01 oop overview
Bai01 oop overviewBai01 oop overview
Bai01 oop overview
 
Chapter1
Chapter1Chapter1
Chapter1
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
Lecture02(1)
Lecture02(1)Lecture02(1)
Lecture02(1)
 
C2 1
C2 1C2 1
C2 1
 

Similar a Phân tích

Chuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuongChuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuong
barrister90
 
[123doc] mo-hinh-thuc-the-moi-ket-hop
[123doc]   mo-hinh-thuc-the-moi-ket-hop[123doc]   mo-hinh-thuc-the-moi-ket-hop
[123doc] mo-hinh-thuc-the-moi-ket-hop
May Trang
 
Giao trinh-co-so-du-lieu06
Giao trinh-co-so-du-lieu06Giao trinh-co-so-du-lieu06
Giao trinh-co-so-du-lieu06
Phi Phi
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_
Hồ Lợi
 

Similar a Phân tích (20)

4a domain model
4a domain model4a domain model
4a domain model
 
lopvadoituong.pdf
lopvadoituong.pdflopvadoituong.pdf
lopvadoituong.pdf
 
Csdl hdt
Csdl hdtCsdl hdt
Csdl hdt
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
Chuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuongChuong 03-lop-kieudulieutruutuong
Chuong 03-lop-kieudulieutruutuong
 
Final
FinalFinal
Final
 
[123doc] mo-hinh-thuc-the-moi-ket-hop
[123doc]   mo-hinh-thuc-the-moi-ket-hop[123doc]   mo-hinh-thuc-the-moi-ket-hop
[123doc] mo-hinh-thuc-the-moi-ket-hop
 
Các mô hình dữ liệu
Các mô hình dữ liệuCác mô hình dữ liệu
Các mô hình dữ liệu
 
Giao trinh-co-so-du-lieu06
Giao trinh-co-so-du-lieu06Giao trinh-co-so-du-lieu06
Giao trinh-co-so-du-lieu06
 
Giaoandientu bai10lop12
Giaoandientu bai10lop12Giaoandientu bai10lop12
Giaoandientu bai10lop12
 
csdl - buoi2-3-4
csdl - buoi2-3-4csdl - buoi2-3-4
csdl - buoi2-3-4
 
Thiet ke co so du lieu
Thiet ke co so du lieuThiet ke co so du lieu
Thiet ke co so du lieu
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_
 
Oop 2
Oop 2Oop 2
Oop 2
 
Bai 4 Phanlop
Bai 4 PhanlopBai 4 Phanlop
Bai 4 Phanlop
 
Bai 4 Phan Lop
Bai 4 Phan LopBai 4 Phan Lop
Bai 4 Phan Lop
 
01 database
01 database01 database
01 database
 
Mối quan hệ giữa class và object
Mối quan hệ giữa class và objectMối quan hệ giữa class và object
Mối quan hệ giữa class và object
 

Más de Nguyen Tran (20)

Se 06
Se 06Se 06
Se 06
 
12report
12report12report
12report
 
11script
11script11script
11script
 
10team
10team10team
10team
 
09componentdeployment
09componentdeployment09componentdeployment
09componentdeployment
 
08activity
08activity08activity
08activity
 
07state
07state07state
07state
 
06collaboration
06collaboration06collaboration
06collaboration
 
05sequence
05sequence05sequence
05sequence
 
04class
04class04class
04class
 
03usecase
03usecase03usecase
03usecase
 
02intro
02intro02intro
02intro
 
01about
01about01about
01about
 
Clear case
Clear caseClear case
Clear case
 
Business process excution language
Business process excution languageBusiness process excution language
Business process excution language
 
Vs doc man
Vs doc manVs doc man
Vs doc man
 
Cm mi
Cm miCm mi
Cm mi
 
Sql packager
Sql packagerSql packager
Sql packager
 
Snag it
Snag itSnag it
Snag it
 
Record mydesktop
Record mydesktopRecord mydesktop
Record mydesktop
 

Phân tích

  • 1. Chương 3: Phân tích Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Khoa Công Nghệ Thông Tin Bộ môn Công Nghệ Phần Mềm GVLT: ThS. Trần Minh Triết
  • 2.
  • 3.
  • 4. Nhắc lại về hướng đối tượng
  • 5. Nhắc lại về hướng đối tượng Tên class Một số ký hiệu Tên class (Các) phương thức (Các) thuộc tính
  • 6. Public/Protected/Private + Thuộc tính/Phương thức public - Thuộc tính/Phương thức private # Thuộc tính/Phương thức protected Phương thức Public Phương thức Protected Phương thực Private Class - privateAttribute # protectedAttribute +publicOp() # protectedOp() - privateOp()
  • 7.
  • 8. Ví dụ Student - name - address - nextAvailID : int + addSchedule(theSchedule : Schedule, forSemester : Semester) + getSchedule(forSemester : Semester) : Schedule + hasPrerequisites(forCourseOffering : CourseOffering) : boolean # passed(theCourseOffering : CourseOffering) : boolean + getNextAvailID() : int - studentID
  • 9. Nhận xét Bình thường: Class bình thường In nghiêng : Class thuần ảo Gạch dưới : Object (không phải class) Bình thường: Thuộc tính bình thường In nghiêng : không sử dụng Gạch dưới : Thuộc tính static Bình thường: Phương thức bình thường In nghiêng : Phương thức virtual Gạch dưới : Phương thức static Tên class (Các) phương thức (Các) thuộc tính
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Xây dựng sơ đồ lớp ở mức phân tích
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 33.
  • 34. Một số ký hiệu Tên trạng thái Tên biến cố (tham số) Tên hành động (tham số) [ Điều kiện ] Trạng thái Chuyển đổi trạng thái Tên trạng thái stateVar : type = value entry/ entry action do/ activity exit/ exit action
  • 35.
  • 36.
  • 37. Sơ đồ trạng thái B1, B2 : biến cố sinh B4, B8, B9 : biến cố mất B3, B5, B6, B7 : biến cố hoạt động S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9
  • 38.
  • 39.
  • 40.
  • 41. Kết quả: Sơ đồ trạng thái Bảng mô tả các trạng thái Bảng mô tả các biến cố Sơ đồ trạng thái S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9 STT Trạng thái Ý nghĩa Xử lý liên quan Ghi chú … … … … … STT Biến cố Ý nghĩa Xử lý liên quan Ghi chú … … … … …
  • 42. Ví dụ Unassigned Assigned removeProfessor addProfessor
  • 43. Ví dụ add student / numStudents = numStudents + 1 Unassigned Assigned Full Cancelled do: Send cancellation notices Committed do: Generate class roster closeRegistration [ has Professor assigned ] close / numStudents = 0 addProfessor closeRegistration remove student / numStudents = numStudents - 1 cancel removeProfessor [ numStudents = 10 ] close[ numStudents < 3 ] closeRegistration[ numStudents >= 3 ] close[ numStudents >= 3 ] add student / numStudents = numStudents + 1 cancel remove student / numStudents = numStudents - 1 close [ numStudents = 10 ] cancel
  • 44. Ví dụ: trạng thái lồng nhau superstate substate add student / numStudents = numStudents + 1 Open Unassigned Assigned H add a professor Closed Cancelled do: Send cancellation notices Full Committed do: Generate class roster closeRegistration close remove a professor close[ numStudents < 3 ] [ numStudents = 10 ] closeRegistration[ numStudents >= 3 ] close[ numStudents >= 3 ] closeRegistration [ has Professor assigned ] close / numStudents = 0 remove student / numStudents = numStudents - 1 cancel cancel
  • 45.

Notas del editor

  1. In Rose, you cannot underline the class scope operation and attribute names, but you can use an attribute and operation stereotype (e.g., &lt;&lt;class&gt;&gt;) to denote class scope attributes and operations on a diagram.
  2. There is exactly one start state and 0..* end states. To emphasize why a start state is mandatory, ask the students to think about how they would read a diagram with no start state. Re: &amp;quot;Only one initial state is permitted&amp;quot;. This is not strictly true. When you have nested states, there can be an initial state within each nested state in addition to the one outside of them. Note that, with this caveat, Rose enforces this.
  3. The use of statecharts varies widely: Some projects use them very extensively, while other projects may only have one or two, maybe even none. Statecharts should be used when they help to better understand and communicate the analysis and design of the project. Not all objects require state machines. If an object&apos;s behavior is simple, such that it simply store or retrieves data, the behavior of the object is state-invariant and its state machine is of little interest. Statecharts may be specified for classes, subsystems, interfaces, protocols, use cases, and/or entire systems. Note: Statecharts can also be used during early analysis if you need to model the state-controlled behavior of an analysis class. Briefly describe the icon representations in the diagram. Each of the statechart elements will be discussed ion subsequent slides.
  4. This diagram is not in the example model (the example model has nested states with history statechart).
  5. This is the statechart that is in the example model. Nested states can lead to substantial reduction of graphical complexity, allowing us to model larger and more complex problems. The Closed superstate was defined to simplify diagram (no add or remove events supported by this superstate and its substates). The Closed superstate is used for packaging reasons only (“Cancelled” and “Committed” are two “flavors” of closed).”