ly thuyet uml
Câu 1: Mô hình là gì? Tại sao phải mô hình hóa? Vd.
Môhình(Model)làmộtdạngtrừu tượnghoácủa hệthốngthực.Nóicách khác,môhình làhìnhảnh
Câu 1: Mô hình là gì? Tại sao phải mô hình hóa? Vd.
Môhình(Model)làmộtdạngtrừu tượnghoácủa hệthốngthực.Nóicách khác,môhình làhìnhảnhthựctạicủabàitoánmàchúngta đang xét,đượcdiễntảởmộtmứcđộtrừutượnghoá nào đó,theomộtquanđiểm và đượcthể hiệnbởimộthìnhthức(bằngvănbản, bảngbiểu,biểuđồ, đồthị,công thứchayphươngtrìnhtoánhọc,v.v.).
Mục đích chính của mô hình hóa :
- Môhình giúptahiểuvàthựchiệnđượcsựtrừutượng, tổngquáthoácác kháiniệmcơ sở để giảmthiểu độ phứctạpcủahệ thống.Quamôhình chúngtabiếtđượchệthốnggồm nhữnggì?vàchúnghoạtđộngnhưthế nào?
- Môhìnhgiúpchúngtaquansátđượchệthốngnhưnóvốncótrongthực tếhoặc nó phảicó như tamongmuốn.
- Môhìnhchophéptađặctảđượccấutrúcvàhànhvicủahệthốngđể hoànchỉnh.
- Môhìnhhoálànhằmtạorakhuônmẫu(template)vàhướngdẫncách xâydựnghệthống;chophépthửnghiệm,môphỏngvàthựchiệntheo mô hình.
- Môhìnhlàcơ sở đểtraođổi, ghilạinhữngquyếtđịnhđãthực hiệntrong nhómthamgiadựánpháttriểnphầnmềm.
Câu 2:trình bày mô hình thác nước?
Quy trình ptrien phần mềm được chia thành dãy các pha liên tiếp nhau.
Phân tích yêu cầu -> thiết kế -> xây dựng -> thử nghiệm
Pha sau chỉ được bắt đầu khi pha trước đã hoàn thành. Mô hình này được tiếp cận theo hướng chức năng, phù hợp với các dự án lớn và phức tạp.
· Ưu điểm :
- Thích hợp cho các dự án lớn.
- Dự án thực hiện lần lượt theo các pha của 1 tiến trình nên quá trình quản lý sẽ dễ dàng thuận tiện.
· Nhược điểm :
- Yêu cầu của người dùng không phản ánh, trao đổi được với nhóm phát triển cho đến khi hoàn tất từng giai đoạn phát triển.
- Không cho phép thay đổi nhiều theo các đặc tả yêu cầu của hệ thống.
Câu 3:UML ra đời từ các ngôn ngữ $ phương pháp mô hình hóa nào?
UML được xây dựng dựa vào :
- CáchtiếpcậncủaBooch(BoochApproach)
- Kỹthuậtmôhìnhđốitượng(OMT–ObjectModelingTechnique)củaRumbaugh
- Côngnghệphầnmềmhướngđốitượng(OOSE–Object-OrientedSoftware Engineering)củaJacobson.
- Đồngthờithốngnhấtđượcnhiềukýpháp,kháiniệmcủacácphươngpháp khác.QuátrìnhhìnhthànhUMLbắtđầutừngônngữAda(Booch) trước năm1990
Sơ đồ
Câu 4 : Hướng nhìn là gì? UML bao gồm các hướng nhìn nào? Giải thích.
Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được mô hình hóa. Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau.
Khung nhìn UC
- Khung nhìn này được hình thành từ giai đoạn phân tích yêu cầu và được sử dụng để điều khiển và thúc đẩy phần việc còn lại của thiết kế.
- Nó mô tả các hành vi hệ thống theo cách nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm.
- Khung nhìn UC chứa các tác nhân, UC, biểu đồ UC (khía cạnh tĩnh của khung nhìn) trong hệ thống. Chúng cũng có thể bao gồm vài biểu đồ trình tự, biểu đồ cộng tác và gói.
- Khung nhìn UC tập trung vào mức độ cao của cái hệ thông sẽ làm, không quan tâm đến hệ thống làm như thế nào. Chúng không xác định tổ chức của hệ thống.
Khung nhìn thiết kế
- Rose gọi khung nhìn này là khung nhìn logic (logical view). Khung nhìn logic biểu diễn tổ chức của các lớp có ý nghĩa nhất và các quan hệ của chúng với nhau.
- Khung nhìn logic tập trung vào hệ thống cài đặt hành vi trong UC như thế nào.
- Nó bao gồm các lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái và các gói.
Khung nhìn thực thi
- Rose gọi khung nhìn này là khung nhìn thành phần (component view). Thành phần là mođun vật lý hay tiệp mã trình để lắp ráp thành hệ thống vật lý.
- Khung nhìn thành phần bao gồm: thành phần, biểu đồ thành phần và gói.
Khung nhìn triển khai
- Khung nhìn này tập trung vào phân bổ vật lý của tài nguyên và phân bổ nhiệm vụ giữa các tài nguyên.
- Khung nhìn triển khai liên quan đến triển khai vật lý của hệ thống, khác với kiến trục logic.
- Khung nhìn triển khai bao gồm tiến trình, bộ xử lý và thiết bị.
- Khung nhìn triển khai chỉ ra các tiến trình và thiết bị trên mạng và các kết nối vật lý giữa chúng.
- Biểu đồ triển khai cũng hiển thị tiến trình và chỉ ra tiến trình nào chạy trên máy nào.
Khung nhìn tiến trình
- Khung nhìn tiến trình biểu diễn phân tách các luồng thực hiện chương trình, đồng bộ giữa các luồng, phân bổ các đối tượng và lớp cho các luồng thực hiện khác nhau.
- Khung nhìn tiến trình tập trung vào các nhiệm vụ tương tranh tương tác với nhau như thế nào trong hệ thông đa nhiệm.
Câu 5: so sánh UC view và Logic view?
UC view
Logic view
- Nó mô tả các hành vi hệ thống theo cách nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm.
- Khung nhìn UC tập trung vào mức độ cao của cái hệ thông sẽ làm, không quan tâm đến hệ thống làm như thế nào. Chúng không xác định tổ chức của hệ thống.
- Khung nhìn UC chứa các tác nhân, UC, biểu đồ UC trong hệ thống. Chúng cũng có thể bao gồm vài biểu đồ trình tự, biểu đồ cộng tác và gói.
- Là cái nhìn của người sử dụng, người ptich, người kiểm định.
- Khung nhìn logic biểu diễn tổ chức của các lớp có ý nghĩa nhất và các quan hệ của chúng với nhau.
- Khung nhìn logic tập trung vào hệ thống cài đặt hành vi trong UC như thế nào.
- Nó bao gồm các lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái và các gói.
- Là cái nhìn của người ptrien ht.
Câu 6: Liệt kê các bước phát triển phần mềm hướng đối tượng sử dụng UML.
Gồm 7 bước :
1. Giai đoạn nghiên cứu sơ bộ:
UML sử dụng biểu đồ Use case (Use Case Diagram) để nêu bật mối quan hệ cũng như sự giao tiếp với hệ thống. Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm đến hệ thống sẽ được mô hình hóa song song với chức năng mà họ đòi hỏi từ phía hệ thống (tức là Use case).
2. Giai đoạn phân tích:
Sau khi nhà phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ giữa chúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng công cụ biểu đồ lớp (class diagram) của UML.
3. Giai đoạn thiết kế:
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành một giải pháp kỹ thuật. Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ sở kỹ thuật. Giai đoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng hệ thống.
4. Giai đoạn xây dựng:
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế sẽ được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đối tượng cụ thể. Khi tạo ra các mô hình phân tích và thiết kế trong UML, tốt nhất nên cố gắng né tránh việc ngay lập tức biến đổi các mô hình này thành các dòng code.
5. Thử nghiệm:
Các nhóm sử dụng nhiều loại biểu đồ UML khác nhau làm nền tảng cho công việc của mình: Thử nghiệm đơn vị sử dụng biểu đồ lớp (class diagram) và đặc tả lớp, thử nghiệm tích hợp thường sử dụng biểu đồ thành phần (component diagram) và biểu đồ cộng tác (collaboration diagram), và giai đoạn thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo hệ thống có phương thức hoạt động đúng như đã được định nghĩa từ ban đầu trong các biểu đồ này.
6. Thực hiện, triển khai:Trong giai đoạn này, hệ thống vừa phát triển sẽ được triển khai sao cho phía người dùng.
7. Bảo trì, nâng cấp:Tùy theo các biến đổi trong môi trường sử dụng, hệ thống có thể trở nên lỗi thời hay cần phải được sửa đổi nâng cấp để sử dụng có hiệu quả.
Câu 7: Tiến trình RUP là gì? Giải thích.
Rational Unified Process hay RUP là một qui trình công nghệ phần mềm. Nó cung cấp các phương pháp, các nguyên tắc phân công nhiệm vụ và trách nhiệm trong các tổ chức phát triển phần mềm. Nó cho ra một sản phẩm phần mềm có chất lượng cao đảm bảo các dự thảo về thời gian và và kinh phí với khách hàng.
RUP gồm 4 pha nối tiếp thời gian:
- Pha khởi đầu:
Cho cái nhìn tổng quát về ht sẽ xây dựng (chức năng, hiệu năng, công nghệ...) về dự án sẽ triển khai (phạm vi, mục tiêu và tính khả thi…). Từ đó đưa ra kết luận nên phát triển hay hủy bỏ dự án.
- Pha triển khai:
Bao gồm sự ptich chi tiết hơn về ht cả về chức năng cấu trúc tĩnh, đồng thời 1 kiến trúc ht cũng được đề xuất. kiến trúc này có thể dựng thành nguyên mẫu, trên đó có thể dựng thành nhiều ý đồ với ht.
- Pha xây dựng:
Tập trung thiết kế, thực thi ht. kiến trúc được xây dựng ở pha triển khai được tinh chế và chi tiết hóa. Pha xậy dựng kết thúc là đưa ra 1 ht hoàn chỉnh với các tư liệu kèm theo, pha này kéo dài thời gian.
- Pha chuyển giao:
Chuyển ht đã xây dựng từ người ptrien ht tới người dùng cuối, gồm các công việc chuyển đối DL, tạo người dùng, lắp đặt và hướng dẫn sử dụng.
Câu 8: UML là gì? Trình bày thành phần chủ yếu của ngôn ngữ UML?
Uml là ngôn ngữ phù hợp cho việc mô hình đặc tả, xây dựng và tài liệu hóa, thích hợp với ngôn ngữ lập trình HDT C++, java. Uml phù hợp với nhiều chương trình ptrien phần mềm.
Một số những thành phần chủ yếu của ngôn ngữ UML:
Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được mô hình hóa. Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau.
Biểu đồ (diagram): Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng nhìn. UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống.
Phần tử mô hình hóa (model element): Các khái niệm được sử dụng trong các biểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng quen thuộc.Một phần tử mô hình thường được sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luôn có chỉ một ý nghĩa và một kí hiệu.
Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét bổ sung, các thông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình.
Câu 9: Trình bày tiến trình 10 bước?
- Tiến trình này thực hiện theo mô hình hóa của uml.
- Tuân thủ các quy tắc của RUP.
- Có thể đươc triển khai theo phương pháp lặp và tăng trưởng và nguyên tắc khống chế bởi các nguy cơ.
· 1.nghiên cứu sơ bộ: đưa ra khái quát về ht sẽ xây dựng và về dự án sẽ triển khai -> từ đó đưa ra kết luận nên triển khai tiếp hay chấm dứt dự án.
· 2.nhận định, đặc tả UC: từ việc nắm bắt các nhu cầu người sử dụng mà đưa ra các ca sử dụng.
· 3.mô hình hóa lĩnh vực ứng dụng: đưa ra 1 mô hình (dạng biểu đồ lớp) nhằm phản ánh mọi khái niệm nghiệp vụ mà người dùng cũng như người xây dựng ht, khi đề cập đến ht và ứng dụng đều phải sử dụng đến.
· 4.xác định đối tượng lớp tham gia ca sử dụng: với mỗi ca sử dụng phải phát hiện các lớp lĩnh vực cùng các lớp điều khiển và các lớp biên tham gia thực hiện ca sử dụng đó.
· 5.mô hình tương tác trong ca sử dụng : bước nghiên cứu sự tương tác giữa các đối tượng tham gia trong ca sử dụng. kết quả là tạo ra 1 kịch bản của ca sử dụng này.
· 6.MHH ứng xử:các đối tượng điều khiển khác với đối tượng thực thể là có khả năng ứng xử với các sự kiện bên ngoài để đưa ra các quyết định điều khiển phù hợp. bước này mô tả hành vi ứng xử giữa các đối tượng điều khiển.
· 7.làm nguyên mẫu giao diện user :tạo ra giao diện người dùng
· 8.thiết kế hệ thống :thiết kế kiến trúc tổng thể của hệ thống
· 9.thiết kế chi tiết :thiết kế các lớp, các liên kết, các thuộc tính, các thao tác thực hiện trên từng tầng của kiến trúc, dịch vụ và xác định các giải pháp cài đặt trên mạng.
· 10.cài đặt : thực thi ht gồm lập trình và kiểm thử.
Câu 10: Trình bày và phân biệt các dạng quan hệ trong biểu đồ lớp như: quan hệ khái quát hóa, quan hệ kết hợp, quan hệ phụ thuộc.
Phụ thuộc (dependency). Phụ thuộc là quan hệ kết nối giữa 2 lớp, là quan hệ 1 chiều, chỉ ra 1 lớp phụ thuộc vào lớp khác (1 lớp tham chiếu đến lớp khác).
Quan hệ phụ thuộc
Kết hợp (association). Quan hệ kết hợp là kết nối ngữ nghĩa giữa hai lớp. Khi có quan hệ kết hợp, mỗi lớp có thể gửi thông điệp đến lớp khác trong biểu đồ tương tác. Kết hợp có thể một chiều hay hai chiều.
Khái quát hóa (generalization). là tiến trình khá khó khăn, nó đòi hỏi khả năng trừu tượng cao để có được phân cấp tối ưu. Cây của lớp không phát triển từ gốc mà được hình thành từ lá của nó vì lá thuộc về thế giới thực. Khái quát hóa gộp các thành phần chung của tập lớp để hình thành lớp tổng quát hơn và nó được gọi là lớp cha.
Câu 11: Trình bày các khái niệm trong hướng đối tượng : lớp , đối tượng, gói, thành phần, kế thừa. Cho ví dụ.
- Lớp : Lớplàmộtmôtảvềmộtnhóm cácđốitượngcónhữngtínhchất(thuộctính)giốngnhau,cóchungcáchànhviứng xử(thao tácgầnnhưnhau),cócùng mốiliênquan vớicácđốitượngcủacáclớpkhác vàcóchungngữnghĩatronghệthống. vd: SinhVien, HocSinh, KhachHang…
- Đốitượng làmộtkháiniệm, mộtsựtrừutượng hoáhaymộtsựvậtcónghĩa trong bài toánđangkhảosát.Đốitượnglàthựcthểcủahệthống,củaCSDLvàđượcxácđịnhthôngqua địnhdanhcủachúng. Vd :hoTen, danhsachSV…
Sv1:Sinhvien
hoTen=VanBa
tuoi=20
“VanBa”và20làhaigiátrịtương ứngvớihaithuộc tínhhoTen,tuoicủađối tượngsv1tronglớpSinhVien.
- Gói : Gói làmộtnhóm cácphần tửcủamôhìnhgồmcáclớp,các mốiquan hệvàcácgóinhỏhơn.
Vd: Gói A
- Thành phần : Thành phầnbiểudiễnvậtlýmãnguồn,cáctệpnhịphântrong quátrìnhpháttriểnhệthống.
- Kế thừa : cơ chế biểu diễn tính tương tự của các lớp, đơn giản hóa định nghĩa những lớp tương tự từ các lớp khác đã được định nghĩa. Miêu tả tổng quát hóa, đặc biệt hóa, tạo ra thuộc tính và phương thức chung cho các lớp trong phân cấp.
Câu 12 : Phân biệt biểu đồ tuần tự, biểu đồ cộng tác. Các chú ý khi biểu diễn 2 biểu đồ này.
- Biểu đồ trình tự là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng.
- Tương tự như biểu đồ trình tự, biểu đồ cộng tác chỉ ra luồng sự kiện sinh ra kịch bản của UC. Biểu đồ cộng tác tập trung nhiều hơn vào quan hệ giữa các đối tượng, vào tổ chức cấu trúc của các đối tượng gửi hay nhận thông điệp.
Sự khác nhau giữa biểu đồ cộng tác với biểu đồ trình tự là : biểu đồ trinh tự tập trung vào luồng điều khiển giữa 2 đối tượng còn biểu đồ cộng tác hiển thị luồng dữ liệu giữa 2 đối tượng.
Câu 13 : Biểu đồ Use case là gì? Vai trò của biểu đồ use case trong xác định yêu cầu khách hàng?
Mô hình UC trong UML được mô tả bằng một hay nhiều biểu đồ UC. Các biểu đồ UC là công cụ mạnh để thu thập yêu cầu hệ thống. chúng hiển thị các UC, làm dễ dàng các giao tiếp giữa các phân tích viên hệ thống, người sử dụng và giữa phân tích viên hệ thống vời khách hàng. Biểu đồ UC chỉ ra quan hệ giữa các UC và tác nhân. thông thường phải tạo ra vài biểu đồ UC cho một hệ thống.
Vai trò của biểu đồ use case trong xác định yêu cầu khách hàng:
Mục tiêu xây dựng UC trong tiến trình phát triển hệ thống phần mềm được tóm tắt như sau:
- Hình thành quyết định và mô tả yêu cầu chức năng hệ thống. Là kết quả của thỏa thuận giữa khách hàng và người phát triển hệ thống phần mềm.
- Cho phép mô tả rõ ràng và nhất quán cái hệ thống sẽ làm, sao cho mô hình có khả năng được sử dụng xuyên suốt quá trình phát triển.
- Cung cấp cơ sở để kiểm tra, thử nghiệm hệ thống.
- Cho khả năng dễ thay đổi hay mở rộng yêu cầu hệ thống.
Cáccasửdụngđóngvaitròrấtquantrọngtrongcảquátrìnhpháttriểnphần mềm,tấtcảcácphaphântích,thiếtkếsaunày đềudựavàocáccasửdụng.Nhưvậy, quátrìnhđượchướngdẫnbởicasửdụnglàmộtcáchhữuhiệuđểmôhìnhhoáhệ thốngvớiUML.Người sửdụngphảinêuđượccácyêucầucủahệthống, phântíchviênphải hiểuđượccáccôngviệccủahệthống, ngườithiếtkế(kiếntrúcsư)phải kiếntrúcsư phảiđưara đượccácthànhphầnđểthựchiệncácca sửdụng,ngườilậptrìnhthựchiện càiđặtchúngvàcuốicùngnhânviênkiểmtrahệthốngdựavàonhữngcasửdụngđó.
Câu 14: Usecase là gì? Các phương pháp để tìm usecase?
Khái niệm Usecase :
Kháiniệmcasửdụng,haytrườnghợpsửdụng(UseCase)đượcIvanJacobson đềxuấttừnăm1994nhằmmôtảcácdịchvụcủahệthốngchokháchhàngvà xác định mốiquanhệtươngtácgiữahệthốngphầnmềmvớiNSDtrongnghiệpvụ.
Mộtcáchhìnhthứchơn,casửdụng môtảtậpcáchoạtđộngcủahệthốngtheo quanđiểmcủacáctácnhân(Actor).Nómôtảcácyêucầucủahệthốngvàtrảlờicho câuhỏi: Hệthốngphảilàmcáigì(What?).
Casửdụng môtảmộtquátrìnhtừbắtđầuchođếnkhikếtthúc,gồmdãycácthao tác,cácgiaodịchcần thiếtđểsảnsinhracáigìđó(giátrị,thông tin)theoyêucầucủa mộttổchức,củatácnhân,v.v.
Cóhaiphươngphápchínhhỗtrợgiúpta xácđịnhcác casửdụng:
1. Phươngphápthứnhấtlàdựavàocáctácnhân:
a. Xácđịnh những tácnhânliênquanđếnmộthệthốnghoặcđếnmộttổchức, nghĩalàtìmvàxácđịnhnhững tácnhânlàNSDhaynhững hệthốngkhác tươngtácvớihệthốngcầnxâydựng.
b. Vớimỗitácnhân,tìmnhữngtiếntrình(chứcnăng) đượckhởiđầu,haygiúp cáctácnhânthựchiện,giaotiếp/tươngtácvớihệthống.
2. Phươngphápthứhaiđểtìmcácca sửdụnglà dựavàocácsựkiện.
a.Xácđịnhnhữngsựkiệnbênngoàicótácđộngđếnhệthốnghayhệthống phảitrảlời.
b. Tìmmốiliênquangiữacácsựkiệnvàcácca sửdụng.
Tươngtựnhưtrên,hãytrảlờinhữngcâuhỏisauđâyđểtìmracácca sửdụng:
1. Nhiệmvụchínhcủacáctácnhânlà gì?
2. Tácnhâncầnphảiđọc,ghi,sửađổi,cậpnhật,haylưutrữthôngtinhaykhông?
3. Nhữngthayđổibênngoàihệthốngthìtácnhâncócầnphảithôngbáochohệ
thốnghaykhông?
4. Nhữngtácnhânnàocầnđượcthôngbáovềnhữngthayđổicủahệthống?
5. Hệthốngcầncónhữngđầuvào/ranào?,từđâuvàđếnđâu?
Câu 15 : Tác nhân là gì? Các phương pháp tìm tác nhân?
· Tác nhân :lànhững thựcthểbênngoài có tươngtácvớihệthống,baogồmngười,vật,thiếtbịhay cáchệthốngkháccótraođổi thôngtinvớihệthống.Nóicáchkhác,tácnhânđạidiệnchongườihaymộtbộphận củatổchứcmongmuốnnhậnđượccácthôngtin(dữliệu)hoặccáccâutrảlờitừ nhữngcasửdụngtươngứng.
· Các phương pháp tìm kiếm tác nhân:
Mộttrong các kỹthuậthỗtrợđểxácđịnhcáctácnhânlàdựatrêncáccâutrảlời nhữngcâuhỏisau:
Aisẽsửdụngcácchứcnăngchínhcủahệthống?
Aicầnsựhỗtrợcủahệthốngđểthựchiệncáccôngviệchàngngày?
Aiquảntrị,bảodưỡngđểđảmbảochohệthốnghoạtđộngthườngxuyên?
Hệthốngquảnlý,sửdụngnhữngthiếtbịnào?
Hệthốngcầntươngtácvớinhữngbộphận,hệthốngnàokhác?
Aihaycáigìquantâmđếnkếtquảxửlýcủahệthống?
Câu 16: Phân biệt quan hệ <<include>> và <<extend>> trong biểu đồ use case.
- Quan hệ <<include>> cho phép một UC sử dụng chức năng của UC khác. Quan hệ này thường được sử dụng để mô hình hóa một vài chức năng sử dụng lại, dùng chung cho hai hay nhiều UC.
- Quan hệ <<extend>> cho phép UC mở rộng tùy ý chức năng do UC khác cấp. nó chỉ ra rằng trong một điều kiện nào đó một UC được mở rộng bằng UC khác (mở rộng là gộp vài hành vi của UC tổng quát hơn để sử dụng lại). nó tương tự như quan hệ <<include>> ở chỗ cả hai quan hệ đều tách phần chức năng chung ra một UC mới, đó là UC trừu tượng.
Câu 17 : Biểu đồ trạng thái dung để làm gì?
Biểu đồ chuyển trạng thái bao gồm các thông tin về các trạng thái khác nhau của đối tượng, thể hiện các đối tượng chuyển đổi từ trạng thái này sang trạng thái khác thế nào, hành vi của mỗi đối tượng trong mỗi trạng thái ra sao. Biểu đồ trạng thái chỉ ra chu kỳ sống của đối tượng, từ khi nó được tạo ra đến khi bị phá hủy. Nó còn cho biết các sự kiện ( thông điệp nhận được, kết thúc khoảng thời gian, điều kiện nào đó thành true ) tác động lên các trạng thái như thế nào.Biểu đồ này là giải pháp tốt nhất để mô hình hóa hành vi động của lớp.
Câu 18: Trạng thái là gì? Thế nào là quá độ trong biểu đồ trạng thái?
· Trạng thái : Mọi đối tượng đều có trạng thái; trạng thái là kết quả của các hoạt động do các đối tượng thực hiện trước đó. Trạng thái là một trong các điều kiện có thể để đối tượng tồn tại. Trạng thái được xãc định từ hai vùng: thuộc tính và quan hệ giữa các lớp.
Có 3 loại trạng thái : trạng thái đầu, trạng thái trung gian và trạng thái cuối.
· Quá độ : là chuyển động từ trạng thái này sang trạng thái khác. Quá độ có thể phản thân, khi xảy ra hiện tượng là đối tượng chuyển tiếp trở lại trạng thái củ của nó.
Chuyển tiếp trạng thái
Câu 19: Phân biệt các kiểu lớp: Lớp thực thể, lớp biên, lớp điều khiển, lớp trừu tượng.
Lớp biên (boundary class). là lớp nằm trên biên hệ thống và phần thế giới còn lại. Chúng có thể là biểu mẫu (form), báo cáo (report), giao diện với phần cứng như máy in, máy quyét… và là giao diện với các hệ thống khác. Ký pháp trong UML của lớp biên như sau:
Lớp biên là cái cho phép tác nhân tương tác với hệ thống.
Lớp thực thể (entity class). lưu trữ thông tin mà nó sẽ được ghi vào bộ nhớ ngoài. Thí dụ lớp Employee là lớp thực thể. Trong UML, ký pháp của lớp thực thể như sau:
Thông thường ta phải tạo ra một bảng trong CSDL cho mỗi lớp loại này. Mỗi thuộc tính của lớp thực thể trở thành trường torng CSDL.
Lớp điều khiển (control class). Lớp điều khiển có trách nhiệm điều phối hoặt động của các lớp khác. Thông thường mỗi UC có một lớp điều khiển để điều khiển trình tự các sự kiện trong nó. Chú ý rằng lớp điều khiển không tự thực hiện chức năng nào nhưng chúng lại gửi nhiều thông điệp đi đến lớp khác. Do vậy, lớp điều khiển còn gọi là lớp quản lý. Trong UML, lớp điều khiển được ký hiệu như sau:
Lớp trừu tượng: làlớpkhông cóthểhiện(đốitượng) cụthểtronghệthốngthực, chỉ dùng cho việc mô tả đặc điểm chung của những lớp duới. Một lớp trừu tượng thường chứa các taho tác trừu tượng, là các thao tác chỉ có tiêu đề mà không có cài đặt. Thao tác trừu tượng phải được định nghĩa lại và kèm cài đặt ở các lớp dưới. Tên của lớp trừu tượng và tiêu đề của thao tác trừu tượng phải được viết nghiêng và có thể kèm thêm xâu tính chất {abstract}.
Câu 20 : Biểu đồ lớp là gì? Phân loại lớp trong UML.
Biểuđồlớpmôtảquansáttĩnhcủahệthốngthông quacáclớpvàcácmốiquan hệcủachúng.Nóđượcsửdụngđểhiểnthịcáclớpvàgóicáclớpcùngcácmốiquan hệcủachúng. Biểu đồlớpgiúp ngườipháttriểnphầnmềmquan sátvàlậpkếhoạch cấutrúchệthốngtrướckhilậptrình.Nóđảmbảorằng hệthống được thiết kếtốtngay từđầu.
Cácloạilớptrongbiểuđồ: Biểuđồlớpcóthểchứanhiềuloạilớpkhácnhau,chúngcóthểlànhữnglớp thôngthường,lớpthamsốhoá,lớphiệnthực,lớptiệních,vàlớpmetaclass(siêulớp).
Lớp tham số (parameterized class). Lớp tham số là lớp được sử dụng để tạo ra họ các lớp khác. Nó còn có tên là lớp mẫu (template). Ngôn ngữ C++ hổ trợ đầy đủ lớp này, nhưng Java lại không hoàn toàn như vậy. Thí dụ từ lớp tham số List có thể tạo ra các lớp hiện thực Employeelist, AccountList… Trong UML, lớp tham số được biểu diễn như trên hình 5.2.
Lớp hiện thực (instantiated class). Lớp hiện thực là lớp tham số mà đối số của nó có giá trị. Thí dụ, lớp tham số trên đây chứa danh sách phần tử. Bây giờ ta có thể cung cấp giá trị cho đối số của phần tử, kết quả là ta có danh sách các nhân viên. Trong UML, ký pháp lớp hiện thực là lớp có tên đối số trong ngoặc <> như trên hình 5.3.
Hình 5.2 Lớp tham số
Hình 5.3 Lớp hiện thực tham số
Lớp tiện ích (class utility). Lớp tiện ích là tập hợp các thao tác. Thí dụ có tập hàm toán học như squareroot(), cuberoot()… sẽ được sử dụng nhiều nơi trong hệ thống, chúng có thể được gói vào lớp tiện ích để lớp khác trong hệ thống cùng sử dụng. Trong biểu đồ lớp, lớp tiện ích được thể hiện bằng lớp đường viền bóng như trên hình 5.4.
Hình 5.4 Lớp tiện ích
Hình 5.5 Lớp tiện ích tham số
Lớp tiện ích tham số (parameterized class utility). Lớp tiện ích tham số là lớp tham số chứa tập các thao tác. Đó là mẫu để tạo lập ra lớp tiện ích. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng như trên hình 5.5.
Hình 5.6 Lớp tiện ích hiện thực
Hình 5.7 Metaclass
Lớp tiện ích hiện thực (instantiated class utility). Lớp tiện ích hiện thực là lớp ham số mà đối của chúng có giá trị. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng như trên hình 5.6.
Metaclass. Metaclass là lớp mà hiện thực của nó là lớp chức không phải là đối tượng. Lớp tham số và lớp tiện ích là những thí dụ của metaclass. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng trên hình 5.7
Câu 21: Điểm khác nhau cơ bản giữa phương pháp (method) và một ngôn ngữ mô hình hoá (modeling language) là gì?
Phương pháp (method). Phương pháp (hay phương thức) là cách thức cấu trúc các suy nghĩ và hành động của con người. Nó cho biết chúng ta phải làm cái gì, làm như thế nào, làm khi nào và tại sao phải làm như vậy để hình thành hệ thông phần mềm.
UML là ngôn ngữ phù hợp cho việc mô hình đặc tả, xây dựng và tài liệu hóa, thích hợp với ngôn ngữ lập trình HDT C++, java. Uml phù hợp với nhiều chương trình ptrien phần mềm.
Điểm khác nhau chính giữa một phương pháp và một ngôn ngữ mô hình hoá (modeling language) là ngôn ngữ mô hình hoá không có một tiến trình (process) hay các câu lệnh (instruction) mô tả những công việc người sử dụng cần làm hay cho biết làm cái gì, làm như thế nào, khi nào làm việc đó và tại sao lại làm nhu vậy.
Câu 22: Trình bày tóm tắt 4 loại biểu đồ động của UML?
Biểu đồ trình tự: là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng; biểu đồ được đọc từ đỉnh xuống đáy. Mỗi uc có nhiều luồng dữ liệu. mỗi biểu đồ trình tự biểu diễn một luồng dữ liệu.Đọc biểu đồ trình tự bằng cách quan sát các đối tượng và thông điệp. biểu đồ trình tự bao gồm các phần tử để biểu đồ đối tượng, thông điệp và thời gian. Thông điệp là phương tiện giao tiếp giữa các đối tượng. nó được biểu diễn trong biểu đồ hợp tác bởi mũi tên giữa nơi gửi và nơi nhận. kiểu mũi tên chỉ ra loại thông điệp, nói cách khác là loại đồng bộ của thông điệp. uml có các loại đồng bộ thông điệp như sau đây:
Đơn: là giá trị mặc định của thông điệp. phần tử biểu đồ này chỉ ra rằng thông điệp sẽ chạy trong luồng đơn của điều khiển.
Đồng bộ: thuộc tính này được sử dụng khi đối tượng gửi thông điệp và chờ đến khi nó được xử lý xong.
Cản trở : đối tượng gửi thông điệp đến nơi nhận. nếu nơi nhận chưa xử lý ngay thì đối tượng gửi bãi bỏ thông điệp.
Hết hạn (time out): đối tượng gửi thông điệp đến đối tượng nhận và chờ một khoảng thời gian. Nếu sau thời gian đó mà thông điệp chưa được xử lý thì đối tượng gửi bãi bỏ chúng.
Dị bộ: đối tượng gửi thông điệp đến đối tượng nhận. đối tượng gửi tiếp tục làm việc khác không quan tâm đến thông điệp đó có được xử lý hay không.
Biểu đồ cộng tác:
Tương tự như biểu đồ trình tự, biểu đồ cộng tác (collaboration diagram) chỉ ra luồng sự kiện xuyên qua kịch bản của uc. Trong khi biểu đồ trình tự có trật tự theo thời gian, thì biểu đồ cộng tác tập trung nhiều hơn vào quan hệ giữa các đối tượng, tập trung vào tổ chức cấu trúc của các đối tượng gửi hay nhận thông điệp.một sự khác nhau giữa biểu đồ cộng tác và biểu đồ trình tự đã đề cập trên là biểu đồ trình tự tập trung vào luồng điều khiển còn biểu đồ cộng tác thì không. Sự khác nhau giữa chúng là biểu đồ cộng tác hiển thị luồng dữ liệu (data flows) còn biểu đồ trình tự thì không.
BIỂU ĐỒ CHUYỂN TRẠNG THÁI
Biểu đồ chuyển trạng thái bao gồm các thông tin về các trạng thái khác nhau của đối tượng, thể hiện các đối tượng chuyển đổi từ trạng thái này sang trạng thái khác thế nào, hành vi của mỗi đối tượng trong mỗi trạng thái ra sao. Biểu đồ trạng thái chỉ ra chu kỳ sống của đối tượng, từ khi nó được tạo ra đến khi bị phá hủy. Nó còn cho biết các sự kiện ( thông điệp nhận được, kết thúc khoảng thời gian, điều kiện nào đó thành true ) tác động lên các trạng thái như thế nào.Biểu đồ này là giải pháp tốt nhất để mô hình hóa hành vi động của lớp. Thông thường trong một dự án sẽ không phải tạo ra mọi biểu đồ trạng thái cho mọi lớp. Biểu đồ trạng thái có điểm khởi đầu (hình tròn đen) và vài điểm kết thúc (hình tròn đen có đường bao); các hoạt động trong biểu đồ được đặt trong chữ nhật góc tròn. Trong chữ nhật có các dòng văn bản để chỉ ra các hành động. Giữa các trạng thái là quá độ trạng.
BIỂU ĐỒ HOẠT ĐỘNG
Biểu đồ này chỉ ra trình tự các bước, tiến trình, các điểm quyết định và các nhánh. Biểu đồ hoạt động được sử dụng để mô hình hóa khía cạnh động của hệ thống, mô hình hóa các bước trình tự hay tương tranh trong quá trình tính toán. Biểu đồ hoạt động còn được sử dụng để mô hình hóa luồng đối tượng đi từ trạng thái này sạng trạng thái khác tại từng vị trí trong luồng điều khiển. biểu đồ hoạt động tập trung vào luồng điều khiển từ hoạt động đến hoạt động. Biểu đồ hoạt động bao gồm trạng thái hoạt động và trạng thái hành động, quá độ và đối tượng.
Câu 23: Phân biệt hoạt động(activity) và hành động(action)?
Hoạt động (activity) là hành vi mà đối tượng thực thi khi nó ở trong trạng thái cụ thể. Thí dụ, khi tài khoản ở trong trạng thái đóng thì máy đọc thẻ không chấp nhập thể tín dụng của khách hàng, nếu đã mở tài khoản thì trạng thái có thể là gửi thông điệp, chờ hay tính toán. Hoạt động là hành vi có thể ngắt được, nó có thể được hoàn thành khi đối tượng đang trong trạng thái hay nó bị ngắt vì đối tượng chuyển sang trạng thái khác.
Hành động (action). Hành động là hành vi không ngắt được, xảy ra như một phần của chuyển tiếp. Hành động vào và hành động ra được thể hiện trong trạng thái. Phần lớn hành động được vẽ theo mũi tên chuyển tiếp. Thí dụ, khi chuyển từ trạng thái mở sang trạng thái đóng, hành động Lưu thời điểm yêu cầu đóng tài khoản xảy ra. Đó là hành vi không ngắt được, xảy ra khi tài khoản chuyển tiếp từ trạng thái mở sang trạng thái đóng.
Câu 24: Một chuyển tiếp trong biểu đồ hoạt động biểu diễn cái gì?
Khi hành động hay hoạt động của trạng thái hoàn thành, luồng điều khiển chuyển sang trạng thái hành động hay hoạt động khác. Luồng này được mô tả bởi quá độ (transition), nó cho thấy đường đi từ trạng thái hành động hay hoạt động đến trạng thái hành động hay hoạt động khac. Trong UML, quá độ được biểu diễn bằng mũi tên đơn.
Câu 25 : Thế nào là biểu đồ tương tác (Interactive Diagram) của UML? Hãy chỉ ra những điểm giống nhau và khác nhau giữa biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram).
Biểu đồ tương tác mô hình hóa khía cạnh động của hệ thống. biểu đồ tương tác chỉ ra một tương tác, bao gồm tập đối tượng, quan hệ và các thông điệp trao đổi giữa chúng. Biểu đồ này chỉ ra từng bước của một luồng điều khiển cụ thể trong uc.
Uml có hai loại biểu đồ tương tác, đó là biểu đồ trình tự và biểu đồ cộng tác. Biểu đồ trình tự theo trật tự thời gian, biểu đồ cộng tác chỉ ra cùng loại thông tin nhưng có cách tổ chức khác. Trong khi biểu đồ trình tự tập trung vào điều khiển thì biểu đồ cộng tác tập trung vào luồng dữ liệu. các biểu đồ này đều liên quan đến các đối tượng cài đặt chức năng thực hiện trong uc. Hai biểu đồ này được xây dựng cho đối tượng lớp hay cả hai.biểu đồ trình tự là trật tự theo thời gian của các thông điệp, nó có ích khi ai đó muốn quan sát luồng logic trong kịch bản. biểu đồ cộng tác có ích khi ta muốn quan sát giao tiếp giữa các đối tượng.
Câu 26: Một hoạt động trong biểu đồ hoạt động mô tả điều gì?
Hoạt động (Activity) là một công việc, có thể đựoc xử lý bằng tay như Điền mẫu hoặc xử lý bằng máy tính như Hiển thị màn hình đăng ký. Trong biểu đồ thì một họat động được biểu diễn bằng một hình chữ nhật tròn góc có mang tên của họat động.
Câu 27: Thành phần trong biểu đồ thành phần là gì? Mô tả vắn tắt một vài kiểu thành phần trong UML. Cho ví dụ.
Thành phần là mô đun vật lý mã trình, thành phần phần mềm có thể là thư viện mã nguồn và các tệp chạy được. Mặc định mỗi lớp trong mô hình logíc sẽ có phần đặc tả phần thân. Đặc tả chứa ghép nối lớp, thân chứa cài đặt của cùng lớp đó. UML có các biểu tượng đồ họa để gán cho các kiểu thành phần khác nhau (hình 7.1).
Hình 7.1 Biểu đồ thành phần của UML
Dưới đây là mô tả vắn tắt một vài kiểu thành phần của UML
Thành phần mã nguồn. Thành phần mã nguồn có ý nghĩa vào thời điểm dịch chương trình. Thông thường đó là tệp mã nguồn cài đặt một hay nhiều lớp. Thí dụ C++, mỗi tệp .cpp và tệp .h là thành phần. Trước khi phát sinh mã nguồn, ta phải ánh xạ từng tệp vào thành phần tương ứng; trong C++, mỗi lớp được ánh xạ vào hai tệp (.cpp và .h).
Thành phần nhị phân. Thành phần nhị phân thường là mã trình có được sau khi dịch thành phần mã nguồn. Nó có thể là tệp mã đối tượng (obj), tệp thư viện tĩnh (lib) hay tệp thư viện động (Dynamic Linking library-dll). Thành phần nhị phân có ý nghĩa vào thời điểm liên kết, hoặc thời điểm chạy chương trình (thí dụ thư viện động).
Thành phần khả thi. Thành phần thực hiện được là tệp chương trình thực hiện được (các tệp .EXE), là kết quả của liên kết các thành phần nhị phân (liên kết tĩnh hay liên kết động). Thành phần thực hiện được biểu diễn đơn vị thực hiện được chạy trên bộ xử lý (máy tính).
Một khi thành phần được tạo lập, ta có thể gộp chúng vào biểu đồ thành phần và vẽ các quan hệ giữa chúng. Giữa các thành phần chỉ có một loại quan hệ phụ thuộc. Kết nối quan hệ giữa các thành phần cho biết một thành phần cần một thành phần khác để có được định nghĩa đầy đủ. Thí dụ, kết nối phụ thuộc cho biết thành phần này phải được dịch trước thành phần kia. Thí dụ khác là với thành phần khả thi thì kết nối phụ thuộc được sử dụng để nhận ra thư viện động nào cần phải có để thành phần khả thi chạy được.
Câu 29: Biểu đồ triển khai dùng để làm gì? Biểu đồ triển khai trong UML có các phần tử mô hình nào?
Biểu đồ triển khai mô tả kiến trúc hệ thống phần cứng (nút) khác nhau như bộ xử lý, các thiết bị và các thành phần phần mềm thực hiện nên kiến trúc đó. Nó là mô tả vật lý của tôpô hệ thống, mô tả cấu trúc của các đơn vị phần cứng và phần mềm chạy trên nó. Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng.
Nút là đối tượng vật lý (các thiết bị) có tài nguyên tính toán. Chúng có thể là máy tính, máy in, đọc thẻ từ, thiết bị truyền tin… Các nút được kết nối thông qua kết hợp giao tiếp. Các nút trao đổi thông điệp hay đối tượng theo đường dẫn kết nối. Kiểu giao tiếp được thể hiện bằng stereotype, chỉ ra thủ tục giao tiếp hay mạng được sử dụng.
Phần tử mô hình của biểu đồ
Bộ xử lý (processor). Bộ xử lý là máy xử lý. Các máy chủ (server), trạm làm việc…thuộc loại này.
Chi tiết cho bộ xử lý. Trong đặc tả bộ xử lý có thể bổ sung các thông tin: stereotype, đặc tính và scheduling.
Stereotype: Tương tự như thành phần mô hình, sử dụng nó để phân nhóm bộ xử lý.
Đặc tính: Là mô tả vật lý của bộ xử lý, thí dụ tốc độ và dung lượng nhớ.
Scheduling: Mô tả loại lập biểu thời gian (scheduling) xử lý, bao gồm: Preemptive (tiến trình có mức ưu tiên cao hơn có thể chiếm quyền ưu tiên của các tiến trình có mức ưu tiên thấp hơn), Non Preemptive (các tiến trình không có mức ưu tiên, tiến trình đang thực hiện chỉ dừng khi nó tự kết thúc), Cyclic (chỉ ra chu kỳ điều khiển giữa các tiến trình), Executive (một vài thuật toán tính toán điều khiển scheduling), Manual (tiến trình được người sử dụng điều khiển).
Thiết bị. Thiết bị là máy móc hay bộ phận phần cứng không phải là bộ xử lý trung tâm. Thiết bị bao gồm màn hình, máy in…Cả thiết bị và bộ xử lý được xem như nút trong mạng
Chi tiết thiết bị.Tương tự bộ xử lý, thiết bị cũng có nhiều thông tin chi tiết như stereotype và đặc tính. Sự khác nhau giữa thiết bị và bộ xư lý phụ thuộc mạnh vào quan điểm. Máy tính đầu cuối nối với máy chủ được người sử dụng xem như thiết bị, nhưng đôi khi người khác lại coi nó là bộ xử lý.
Kết nối. Kết nối là liên kết vật lý giữa hai bộ xử lý, hai thiết bị hay giữa thiết bị và bộ xử lý. Thông thường, kết nối biểu diễn kết nối mạng vật lý giữa các nút trong mạng. Chúng cũng có thể liên kết Internet giữa các nút. Có thể gán stereotype cho kết nối, đồng thời nó cũng được gán đặc tính nói về chi tiết của kết nối vật lý.
Tiến trình
Tiến trình là luồng thực hiện đơn chạy trong bộ xử lý. Một tệp khả thi được xem là tiến trình. Tiến trình có thể được hiển thị trong biểu đồ triển khai, nếu được hiển thị thì nó được liệt kê ngay dưới bộ xử lý nơi nó chạy. Các tiến trình được gán mức ưu tiên. Nếu bộ xử lý mà trên đó các tiến trình chạy sử dụng scheduling theo mức ưu tiên. Thì mức ưu tiên của tiến trình sẽ được xác định khi nó chạy.
thựctạicủabàitoánmàchúngta đang xét,đượcdiễntảởmộtmứcđộtrừutượnghoá nào đó,theomộtquanđiểm và đượcthể hiệnbởimộthìnhthức(bằngvănbản, bảngbiểu,biểuđồ, đồthị,công thứchayphươngtrìnhtoánhọc,v.v.).
Mục đích chính của mô hình hóa :
- Môhình giúptahiểuvàthựchiệnđượcsựtrừutượng, tổngquáthoácác kháiniệmcơ sở để giảmthiểu độ phứctạpcủahệ thống.Quamôhình chúngtabiếtđượchệthốnggồm nhữnggì?vàchúnghoạtđộngnhưthế nào?
- Môhìnhgiúpchúngtaquansátđượchệthốngnhưnóvốncótrongthực tếhoặc nó phảicó như tamongmuốn.
- Môhìnhchophéptađặctảđượccấutrúcvàhànhvicủahệthốngđể hoànchỉnh.
- Môhìnhhoálànhằmtạorakhuônmẫu(template)vàhướngdẫncách xâydựnghệthống;chophépthửnghiệm,môphỏngvàthựchiệntheo mô hình.
- Môhìnhlàcơ sở đểtraođổi, ghilạinhữngquyếtđịnhđãthực hiệntrong nhómthamgiadựánpháttriểnphầnmềm.
Câu 2:trình bày mô hình thác nước?
Quy trình ptrien phần mềm được chia thành dãy các pha liên tiếp nhau.
Phân tích yêu cầu -> thiết kế -> xây dựng -> thử nghiệm
Pha sau chỉ được bắt đầu khi pha trước đã hoàn thành. Mô hình này được tiếp cận theo hướng chức năng, phù hợp với các dự án lớn và phức tạp.
· Ưu điểm :
- Thích hợp cho các dự án lớn.
- Dự án thực hiện lần lượt theo các pha của 1 tiến trình nên quá trình quản lý sẽ dễ dàng thuận tiện.
· Nhược điểm :
- Yêu cầu của người dùng không phản ánh, trao đổi được với nhóm phát triển cho đến khi hoàn tất từng giai đoạn phát triển.
- Không cho phép thay đổi nhiều theo các đặc tả yêu cầu của hệ thống.
Câu 3:UML ra đời từ các ngôn ngữ $ phương pháp mô hình hóa nào?
UML được xây dựng dựa vào :
- CáchtiếpcậncủaBooch(BoochApproach)
- Kỹthuậtmôhìnhđốitượng(OMT–ObjectModelingTechnique)củaRumbaugh
- Côngnghệphầnmềmhướngđốitượng(OOSE–Object-OrientedSoftware Engineering)củaJacobson.
- Đồngthờithốngnhấtđượcnhiềukýpháp,kháiniệmcủacácphươngpháp khác.QuátrìnhhìnhthànhUMLbắtđầutừngônngữAda(Booch) trước năm1990
Sơ đồ
Câu 4 : Hướng nhìn là gì? UML bao gồm các hướng nhìn nào? Giải thích.
Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được mô hình hóa. Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau.
Khung nhìn UC
- Khung nhìn này được hình thành từ giai đoạn phân tích yêu cầu và được sử dụng để điều khiển và thúc đẩy phần việc còn lại của thiết kế.
- Nó mô tả các hành vi hệ thống theo cách nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm.
- Khung nhìn UC chứa các tác nhân, UC, biểu đồ UC (khía cạnh tĩnh của khung nhìn) trong hệ thống. Chúng cũng có thể bao gồm vài biểu đồ trình tự, biểu đồ cộng tác và gói.
- Khung nhìn UC tập trung vào mức độ cao của cái hệ thông sẽ làm, không quan tâm đến hệ thống làm như thế nào. Chúng không xác định tổ chức của hệ thống.
Khung nhìn thiết kế
- Rose gọi khung nhìn này là khung nhìn logic (logical view). Khung nhìn logic biểu diễn tổ chức của các lớp có ý nghĩa nhất và các quan hệ của chúng với nhau.
- Khung nhìn logic tập trung vào hệ thống cài đặt hành vi trong UC như thế nào.
- Nó bao gồm các lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái và các gói.
Khung nhìn thực thi
- Rose gọi khung nhìn này là khung nhìn thành phần (component view). Thành phần là mođun vật lý hay tiệp mã trình để lắp ráp thành hệ thống vật lý.
- Khung nhìn thành phần bao gồm: thành phần, biểu đồ thành phần và gói.
Khung nhìn triển khai
- Khung nhìn này tập trung vào phân bổ vật lý của tài nguyên và phân bổ nhiệm vụ giữa các tài nguyên.
- Khung nhìn triển khai liên quan đến triển khai vật lý của hệ thống, khác với kiến trục logic.
- Khung nhìn triển khai bao gồm tiến trình, bộ xử lý và thiết bị.
- Khung nhìn triển khai chỉ ra các tiến trình và thiết bị trên mạng và các kết nối vật lý giữa chúng.
- Biểu đồ triển khai cũng hiển thị tiến trình và chỉ ra tiến trình nào chạy trên máy nào.
Khung nhìn tiến trình
- Khung nhìn tiến trình biểu diễn phân tách các luồng thực hiện chương trình, đồng bộ giữa các luồng, phân bổ các đối tượng và lớp cho các luồng thực hiện khác nhau.
- Khung nhìn tiến trình tập trung vào các nhiệm vụ tương tranh tương tác với nhau như thế nào trong hệ thông đa nhiệm.
Câu 5: so sánh UC view và Logic view?
UC view
Logic view
- Nó mô tả các hành vi hệ thống theo cách nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm.
- Khung nhìn UC tập trung vào mức độ cao của cái hệ thông sẽ làm, không quan tâm đến hệ thống làm như thế nào. Chúng không xác định tổ chức của hệ thống.
- Khung nhìn UC chứa các tác nhân, UC, biểu đồ UC trong hệ thống. Chúng cũng có thể bao gồm vài biểu đồ trình tự, biểu đồ cộng tác và gói.
- Là cái nhìn của người sử dụng, người ptich, người kiểm định.
- Khung nhìn logic biểu diễn tổ chức của các lớp có ý nghĩa nhất và các quan hệ của chúng với nhau.
- Khung nhìn logic tập trung vào hệ thống cài đặt hành vi trong UC như thế nào.
- Nó bao gồm các lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái và các gói.
- Là cái nhìn của người ptrien ht.
Câu 6: Liệt kê các bước phát triển phần mềm hướng đối tượng sử dụng UML.
Gồm 7 bước :
1. Giai đoạn nghiên cứu sơ bộ:
UML sử dụng biểu đồ Use case (Use Case Diagram) để nêu bật mối quan hệ cũng như sự giao tiếp với hệ thống. Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm đến hệ thống sẽ được mô hình hóa song song với chức năng mà họ đòi hỏi từ phía hệ thống (tức là Use case).
2. Giai đoạn phân tích:
Sau khi nhà phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ giữa chúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng công cụ biểu đồ lớp (class diagram) của UML.
3. Giai đoạn thiết kế:
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành một giải pháp kỹ thuật. Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ sở kỹ thuật. Giai đoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng hệ thống.
4. Giai đoạn xây dựng:
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế sẽ được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đối tượng cụ thể. Khi tạo ra các mô hình phân tích và thiết kế trong UML, tốt nhất nên cố gắng né tránh việc ngay lập tức biến đổi các mô hình này thành các dòng code.
5. Thử nghiệm:
Các nhóm sử dụng nhiều loại biểu đồ UML khác nhau làm nền tảng cho công việc của mình: Thử nghiệm đơn vị sử dụng biểu đồ lớp (class diagram) và đặc tả lớp, thử nghiệm tích hợp thường sử dụng biểu đồ thành phần (component diagram) và biểu đồ cộng tác (collaboration diagram), và giai đoạn thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo hệ thống có phương thức hoạt động đúng như đã được định nghĩa từ ban đầu trong các biểu đồ này.
6. Thực hiện, triển khai:Trong giai đoạn này, hệ thống vừa phát triển sẽ được triển khai sao cho phía người dùng.
7. Bảo trì, nâng cấp:Tùy theo các biến đổi trong môi trường sử dụng, hệ thống có thể trở nên lỗi thời hay cần phải được sửa đổi nâng cấp để sử dụng có hiệu quả.
Câu 7: Tiến trình RUP là gì? Giải thích.
Rational Unified Process hay RUP là một qui trình công nghệ phần mềm. Nó cung cấp các phương pháp, các nguyên tắc phân công nhiệm vụ và trách nhiệm trong các tổ chức phát triển phần mềm. Nó cho ra một sản phẩm phần mềm có chất lượng cao đảm bảo các dự thảo về thời gian và và kinh phí với khách hàng.
RUP gồm 4 pha nối tiếp thời gian:
- Pha khởi đầu:
Cho cái nhìn tổng quát về ht sẽ xây dựng (chức năng, hiệu năng, công nghệ...) về dự án sẽ triển khai (phạm vi, mục tiêu và tính khả thi…). Từ đó đưa ra kết luận nên phát triển hay hủy bỏ dự án.
- Pha triển khai:
Bao gồm sự ptich chi tiết hơn về ht cả về chức năng cấu trúc tĩnh, đồng thời 1 kiến trúc ht cũng được đề xuất. kiến trúc này có thể dựng thành nguyên mẫu, trên đó có thể dựng thành nhiều ý đồ với ht.
- Pha xây dựng:
Tập trung thiết kế, thực thi ht. kiến trúc được xây dựng ở pha triển khai được tinh chế và chi tiết hóa. Pha xậy dựng kết thúc là đưa ra 1 ht hoàn chỉnh với các tư liệu kèm theo, pha này kéo dài thời gian.
- Pha chuyển giao:
Chuyển ht đã xây dựng từ người ptrien ht tới người dùng cuối, gồm các công việc chuyển đối DL, tạo người dùng, lắp đặt và hướng dẫn sử dụng.
Câu 8: UML là gì? Trình bày thành phần chủ yếu của ngôn ngữ UML?
Uml là ngôn ngữ phù hợp cho việc mô hình đặc tả, xây dựng và tài liệu hóa, thích hợp với ngôn ngữ lập trình HDT C++, java. Uml phù hợp với nhiều chương trình ptrien phần mềm.
Một số những thành phần chủ yếu của ngôn ngữ UML:
Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được mô hình hóa. Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau.
Biểu đồ (diagram): Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng nhìn. UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống.
Phần tử mô hình hóa (model element): Các khái niệm được sử dụng trong các biểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng quen thuộc.Một phần tử mô hình thường được sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luôn có chỉ một ý nghĩa và một kí hiệu.
Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét bổ sung, các thông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình.
Câu 9: Trình bày tiến trình 10 bước?
- Tiến trình này thực hiện theo mô hình hóa của uml.
- Tuân thủ các quy tắc của RUP.
- Có thể đươc triển khai theo phương pháp lặp và tăng trưởng và nguyên tắc khống chế bởi các nguy cơ.
· 1.nghiên cứu sơ bộ: đưa ra khái quát về ht sẽ xây dựng và về dự án sẽ triển khai -> từ đó đưa ra kết luận nên triển khai tiếp hay chấm dứt dự án.
· 2.nhận định, đặc tả UC: từ việc nắm bắt các nhu cầu người sử dụng mà đưa ra các ca sử dụng.
· 3.mô hình hóa lĩnh vực ứng dụng: đưa ra 1 mô hình (dạng biểu đồ lớp) nhằm phản ánh mọi khái niệm nghiệp vụ mà người dùng cũng như người xây dựng ht, khi đề cập đến ht và ứng dụng đều phải sử dụng đến.
· 4.xác định đối tượng lớp tham gia ca sử dụng: với mỗi ca sử dụng phải phát hiện các lớp lĩnh vực cùng các lớp điều khiển và các lớp biên tham gia thực hiện ca sử dụng đó.
· 5.mô hình tương tác trong ca sử dụng : bước nghiên cứu sự tương tác giữa các đối tượng tham gia trong ca sử dụng. kết quả là tạo ra 1 kịch bản của ca sử dụng này.
· 6.MHH ứng xử:các đối tượng điều khiển khác với đối tượng thực thể là có khả năng ứng xử với các sự kiện bên ngoài để đưa ra các quyết định điều khiển phù hợp. bước này mô tả hành vi ứng xử giữa các đối tượng điều khiển.
· 7.làm nguyên mẫu giao diện user :tạo ra giao diện người dùng
· 8.thiết kế hệ thống :thiết kế kiến trúc tổng thể của hệ thống
· 9.thiết kế chi tiết :thiết kế các lớp, các liên kết, các thuộc tính, các thao tác thực hiện trên từng tầng của kiến trúc, dịch vụ và xác định các giải pháp cài đặt trên mạng.
· 10.cài đặt : thực thi ht gồm lập trình và kiểm thử.
Câu 10: Trình bày và phân biệt các dạng quan hệ trong biểu đồ lớp như: quan hệ khái quát hóa, quan hệ kết hợp, quan hệ phụ thuộc.
Phụ thuộc (dependency). Phụ thuộc là quan hệ kết nối giữa 2 lớp, là quan hệ 1 chiều, chỉ ra 1 lớp phụ thuộc vào lớp khác (1 lớp tham chiếu đến lớp khác).
Quan hệ phụ thuộc
Kết hợp (association). Quan hệ kết hợp là kết nối ngữ nghĩa giữa hai lớp. Khi có quan hệ kết hợp, mỗi lớp có thể gửi thông điệp đến lớp khác trong biểu đồ tương tác. Kết hợp có thể một chiều hay hai chiều.
Khái quát hóa (generalization). là tiến trình khá khó khăn, nó đòi hỏi khả năng trừu tượng cao để có được phân cấp tối ưu. Cây của lớp không phát triển từ gốc mà được hình thành từ lá của nó vì lá thuộc về thế giới thực. Khái quát hóa gộp các thành phần chung của tập lớp để hình thành lớp tổng quát hơn và nó được gọi là lớp cha.
Câu 11: Trình bày các khái niệm trong hướng đối tượng : lớp , đối tượng, gói, thành phần, kế thừa. Cho ví dụ.
- Lớp : Lớplàmộtmôtảvềmộtnhóm cácđốitượngcónhữngtínhchất(thuộctính)giốngnhau,cóchungcáchànhviứng xử(thao tácgầnnhưnhau),cócùng mốiliênquan vớicácđốitượngcủacáclớpkhác vàcóchungngữnghĩatronghệthống. vd: SinhVien, HocSinh, KhachHang…
- Đốitượng làmộtkháiniệm, mộtsựtrừutượng hoáhaymộtsựvậtcónghĩa trong bài toánđangkhảosát.Đốitượnglàthựcthểcủahệthống,củaCSDLvàđượcxácđịnhthôngqua địnhdanhcủachúng. Vd :hoTen, danhsachSV…
Sv1:Sinhvien
hoTen=VanBa
tuoi=20
“VanBa”và20làhaigiátrịtương ứngvớihaithuộc tínhhoTen,tuoicủađối tượngsv1tronglớpSinhVien.
- Gói : Gói làmộtnhóm cácphần tửcủamôhìnhgồmcáclớp,các mốiquan hệvàcácgóinhỏhơn.
Vd: Gói A
- Thành phần : Thành phầnbiểudiễnvậtlýmãnguồn,cáctệpnhịphântrong quátrìnhpháttriểnhệthống.
- Kế thừa : cơ chế biểu diễn tính tương tự của các lớp, đơn giản hóa định nghĩa những lớp tương tự từ các lớp khác đã được định nghĩa. Miêu tả tổng quát hóa, đặc biệt hóa, tạo ra thuộc tính và phương thức chung cho các lớp trong phân cấp.
Câu 12 : Phân biệt biểu đồ tuần tự, biểu đồ cộng tác. Các chú ý khi biểu diễn 2 biểu đồ này.
- Biểu đồ trình tự là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng.
- Tương tự như biểu đồ trình tự, biểu đồ cộng tác chỉ ra luồng sự kiện sinh ra kịch bản của UC. Biểu đồ cộng tác tập trung nhiều hơn vào quan hệ giữa các đối tượng, vào tổ chức cấu trúc của các đối tượng gửi hay nhận thông điệp.
Sự khác nhau giữa biểu đồ cộng tác với biểu đồ trình tự là : biểu đồ trinh tự tập trung vào luồng điều khiển giữa 2 đối tượng còn biểu đồ cộng tác hiển thị luồng dữ liệu giữa 2 đối tượng.
Câu 13 : Biểu đồ Use case là gì? Vai trò của biểu đồ use case trong xác định yêu cầu khách hàng?
Mô hình UC trong UML được mô tả bằng một hay nhiều biểu đồ UC. Các biểu đồ UC là công cụ mạnh để thu thập yêu cầu hệ thống. chúng hiển thị các UC, làm dễ dàng các giao tiếp giữa các phân tích viên hệ thống, người sử dụng và giữa phân tích viên hệ thống vời khách hàng. Biểu đồ UC chỉ ra quan hệ giữa các UC và tác nhân. thông thường phải tạo ra vài biểu đồ UC cho một hệ thống.
Vai trò của biểu đồ use case trong xác định yêu cầu khách hàng:
Mục tiêu xây dựng UC trong tiến trình phát triển hệ thống phần mềm được tóm tắt như sau:
- Hình thành quyết định và mô tả yêu cầu chức năng hệ thống. Là kết quả của thỏa thuận giữa khách hàng và người phát triển hệ thống phần mềm.
- Cho phép mô tả rõ ràng và nhất quán cái hệ thống sẽ làm, sao cho mô hình có khả năng được sử dụng xuyên suốt quá trình phát triển.
- Cung cấp cơ sở để kiểm tra, thử nghiệm hệ thống.
- Cho khả năng dễ thay đổi hay mở rộng yêu cầu hệ thống.
Cáccasửdụngđóngvaitròrấtquantrọngtrongcảquátrìnhpháttriểnphần mềm,tấtcảcácphaphântích,thiếtkếsaunày đềudựavàocáccasửdụng.Nhưvậy, quátrìnhđượchướngdẫnbởicasửdụnglàmộtcáchhữuhiệuđểmôhìnhhoáhệ thốngvớiUML.Người sửdụngphảinêuđượccácyêucầucủahệthống, phântíchviênphải hiểuđượccáccôngviệccủahệthống, ngườithiếtkế(kiếntrúcsư)phải kiếntrúcsư phảiđưara đượccácthànhphầnđểthựchiệncácca sửdụng,ngườilậptrìnhthựchiện càiđặtchúngvàcuốicùngnhânviênkiểmtrahệthốngdựavàonhữngcasửdụngđó.
Câu 14: Usecase là gì? Các phương pháp để tìm usecase?
Khái niệm Usecase :
Kháiniệmcasửdụng,haytrườnghợpsửdụng(UseCase)đượcIvanJacobson đềxuấttừnăm1994nhằmmôtảcácdịchvụcủahệthốngchokháchhàngvà xác định mốiquanhệtươngtácgiữahệthốngphầnmềmvớiNSDtrongnghiệpvụ.
Mộtcáchhìnhthứchơn,casửdụng môtảtậpcáchoạtđộngcủahệthốngtheo quanđiểmcủacáctácnhân(Actor).Nómôtảcácyêucầucủahệthốngvàtrảlờicho câuhỏi: Hệthốngphảilàmcáigì(What?).
Casửdụng môtảmộtquátrìnhtừbắtđầuchođếnkhikếtthúc,gồmdãycácthao tác,cácgiaodịchcần thiếtđểsảnsinhracáigìđó(giátrị,thông tin)theoyêucầucủa mộttổchức,củatácnhân,v.v.
Cóhaiphươngphápchínhhỗtrợgiúpta xácđịnhcác casửdụng:
1. Phươngphápthứnhấtlàdựavàocáctácnhân:
a. Xácđịnh những tácnhânliênquanđếnmộthệthốnghoặcđếnmộttổchức, nghĩalàtìmvàxácđịnhnhững tácnhânlàNSDhaynhững hệthốngkhác tươngtácvớihệthốngcầnxâydựng.
b. Vớimỗitácnhân,tìmnhữngtiếntrình(chứcnăng) đượckhởiđầu,haygiúp cáctácnhânthựchiện,giaotiếp/tươngtácvớihệthống.
2. Phươngphápthứhaiđểtìmcácca sửdụnglà dựavàocácsựkiện.
a.Xácđịnhnhữngsựkiệnbênngoàicótácđộngđếnhệthốnghayhệthống phảitrảlời.
b. Tìmmốiliênquangiữacácsựkiệnvàcácca sửdụng.
Tươngtựnhưtrên,hãytrảlờinhữngcâuhỏisauđâyđểtìmracácca sửdụng:
1. Nhiệmvụchínhcủacáctácnhânlà gì?
2. Tácnhâncầnphảiđọc,ghi,sửađổi,cậpnhật,haylưutrữthôngtinhaykhông?
3. Nhữngthayđổibênngoàihệthốngthìtácnhâncócầnphảithôngbáochohệ
thốnghaykhông?
4. Nhữngtácnhânnàocầnđượcthôngbáovềnhữngthayđổicủahệthống?
5. Hệthốngcầncónhữngđầuvào/ranào?,từđâuvàđếnđâu?
Câu 15 : Tác nhân là gì? Các phương pháp tìm tác nhân?
· Tác nhân :lànhững thựcthểbênngoài có tươngtácvớihệthống,baogồmngười,vật,thiếtbịhay cáchệthốngkháccótraođổi thôngtinvớihệthống.Nóicáchkhác,tácnhânđạidiệnchongườihaymộtbộphận củatổchứcmongmuốnnhậnđượccácthôngtin(dữliệu)hoặccáccâutrảlờitừ nhữngcasửdụngtươngứng.
· Các phương pháp tìm kiếm tác nhân:
Mộttrong các kỹthuậthỗtrợđểxácđịnhcáctácnhânlàdựatrêncáccâutrảlời nhữngcâuhỏisau:
Aisẽsửdụngcácchứcnăngchínhcủahệthống?
Aicầnsựhỗtrợcủahệthốngđểthựchiệncáccôngviệchàngngày?
Aiquảntrị,bảodưỡngđểđảmbảochohệthốnghoạtđộngthườngxuyên?
Hệthốngquảnlý,sửdụngnhữngthiếtbịnào?
Hệthốngcầntươngtácvớinhữngbộphận,hệthốngnàokhác?
Aihaycáigìquantâmđếnkếtquảxửlýcủahệthống?
Câu 16: Phân biệt quan hệ <<include>> và <<extend>> trong biểu đồ use case.
- Quan hệ <<include>> cho phép một UC sử dụng chức năng của UC khác. Quan hệ này thường được sử dụng để mô hình hóa một vài chức năng sử dụng lại, dùng chung cho hai hay nhiều UC.
- Quan hệ <<extend>> cho phép UC mở rộng tùy ý chức năng do UC khác cấp. nó chỉ ra rằng trong một điều kiện nào đó một UC được mở rộng bằng UC khác (mở rộng là gộp vài hành vi của UC tổng quát hơn để sử dụng lại). nó tương tự như quan hệ <<include>> ở chỗ cả hai quan hệ đều tách phần chức năng chung ra một UC mới, đó là UC trừu tượng.
Câu 17 : Biểu đồ trạng thái dung để làm gì?
Biểu đồ chuyển trạng thái bao gồm các thông tin về các trạng thái khác nhau của đối tượng, thể hiện các đối tượng chuyển đổi từ trạng thái này sang trạng thái khác thế nào, hành vi của mỗi đối tượng trong mỗi trạng thái ra sao. Biểu đồ trạng thái chỉ ra chu kỳ sống của đối tượng, từ khi nó được tạo ra đến khi bị phá hủy. Nó còn cho biết các sự kiện ( thông điệp nhận được, kết thúc khoảng thời gian, điều kiện nào đó thành true ) tác động lên các trạng thái như thế nào.Biểu đồ này là giải pháp tốt nhất để mô hình hóa hành vi động của lớp.
Câu 18: Trạng thái là gì? Thế nào là quá độ trong biểu đồ trạng thái?
· Trạng thái : Mọi đối tượng đều có trạng thái; trạng thái là kết quả của các hoạt động do các đối tượng thực hiện trước đó. Trạng thái là một trong các điều kiện có thể để đối tượng tồn tại. Trạng thái được xãc định từ hai vùng: thuộc tính và quan hệ giữa các lớp.
Có 3 loại trạng thái : trạng thái đầu, trạng thái trung gian và trạng thái cuối.
· Quá độ : là chuyển động từ trạng thái này sang trạng thái khác. Quá độ có thể phản thân, khi xảy ra hiện tượng là đối tượng chuyển tiếp trở lại trạng thái củ của nó.
Chuyển tiếp trạng thái
Câu 19: Phân biệt các kiểu lớp: Lớp thực thể, lớp biên, lớp điều khiển, lớp trừu tượng.
Lớp biên (boundary class). là lớp nằm trên biên hệ thống và phần thế giới còn lại. Chúng có thể là biểu mẫu (form), báo cáo (report), giao diện với phần cứng như máy in, máy quyét… và là giao diện với các hệ thống khác. Ký pháp trong UML của lớp biên như sau:
Lớp biên là cái cho phép tác nhân tương tác với hệ thống.
Lớp thực thể (entity class). lưu trữ thông tin mà nó sẽ được ghi vào bộ nhớ ngoài. Thí dụ lớp Employee là lớp thực thể. Trong UML, ký pháp của lớp thực thể như sau:
Thông thường ta phải tạo ra một bảng trong CSDL cho mỗi lớp loại này. Mỗi thuộc tính của lớp thực thể trở thành trường torng CSDL.
Lớp điều khiển (control class). Lớp điều khiển có trách nhiệm điều phối hoặt động của các lớp khác. Thông thường mỗi UC có một lớp điều khiển để điều khiển trình tự các sự kiện trong nó. Chú ý rằng lớp điều khiển không tự thực hiện chức năng nào nhưng chúng lại gửi nhiều thông điệp đi đến lớp khác. Do vậy, lớp điều khiển còn gọi là lớp quản lý. Trong UML, lớp điều khiển được ký hiệu như sau:
Lớp trừu tượng: làlớpkhông cóthểhiện(đốitượng) cụthểtronghệthốngthực, chỉ dùng cho việc mô tả đặc điểm chung của những lớp duới. Một lớp trừu tượng thường chứa các taho tác trừu tượng, là các thao tác chỉ có tiêu đề mà không có cài đặt. Thao tác trừu tượng phải được định nghĩa lại và kèm cài đặt ở các lớp dưới. Tên của lớp trừu tượng và tiêu đề của thao tác trừu tượng phải được viết nghiêng và có thể kèm thêm xâu tính chất {abstract}.
Câu 20 : Biểu đồ lớp là gì? Phân loại lớp trong UML.
Biểuđồlớpmôtảquansáttĩnhcủahệthốngthông quacáclớpvàcácmốiquan hệcủachúng.Nóđượcsửdụngđểhiểnthịcáclớpvàgóicáclớpcùngcácmốiquan hệcủachúng. Biểu đồlớpgiúp ngườipháttriểnphầnmềmquan sátvàlậpkếhoạch cấutrúchệthốngtrướckhilậptrình.Nóđảmbảorằng hệthống được thiết kếtốtngay từđầu.
Cácloạilớptrongbiểuđồ: Biểuđồlớpcóthểchứanhiềuloạilớpkhácnhau,chúngcóthểlànhữnglớp thôngthường,lớpthamsốhoá,lớphiệnthực,lớptiệních,vàlớpmetaclass(siêulớp).
Lớp tham số (parameterized class). Lớp tham số là lớp được sử dụng để tạo ra họ các lớp khác. Nó còn có tên là lớp mẫu (template). Ngôn ngữ C++ hổ trợ đầy đủ lớp này, nhưng Java lại không hoàn toàn như vậy. Thí dụ từ lớp tham số List có thể tạo ra các lớp hiện thực Employeelist, AccountList… Trong UML, lớp tham số được biểu diễn như trên hình 5.2.
Lớp hiện thực (instantiated class). Lớp hiện thực là lớp tham số mà đối số của nó có giá trị. Thí dụ, lớp tham số trên đây chứa danh sách phần tử. Bây giờ ta có thể cung cấp giá trị cho đối số của phần tử, kết quả là ta có danh sách các nhân viên. Trong UML, ký pháp lớp hiện thực là lớp có tên đối số trong ngoặc <> như trên hình 5.3.
Hình 5.2 Lớp tham số
Hình 5.3 Lớp hiện thực tham số
Lớp tiện ích (class utility). Lớp tiện ích là tập hợp các thao tác. Thí dụ có tập hàm toán học như squareroot(), cuberoot()… sẽ được sử dụng nhiều nơi trong hệ thống, chúng có thể được gói vào lớp tiện ích để lớp khác trong hệ thống cùng sử dụng. Trong biểu đồ lớp, lớp tiện ích được thể hiện bằng lớp đường viền bóng như trên hình 5.4.
Hình 5.4 Lớp tiện ích
Hình 5.5 Lớp tiện ích tham số
Lớp tiện ích tham số (parameterized class utility). Lớp tiện ích tham số là lớp tham số chứa tập các thao tác. Đó là mẫu để tạo lập ra lớp tiện ích. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng như trên hình 5.5.
Hình 5.6 Lớp tiện ích hiện thực
Hình 5.7 Metaclass
Lớp tiện ích hiện thực (instantiated class utility). Lớp tiện ích hiện thực là lớp ham số mà đối của chúng có giá trị. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng như trên hình 5.6.
Metaclass. Metaclass là lớp mà hiện thực của nó là lớp chức không phải là đối tượng. Lớp tham số và lớp tiện ích là những thí dụ của metaclass. Lớp này được vẽ trong biểu đồ lớp bằng biểu tượng trên hình 5.7
Câu 21: Điểm khác nhau cơ bản giữa phương pháp (method) và một ngôn ngữ mô hình hoá (modeling language) là gì?
Phương pháp (method). Phương pháp (hay phương thức) là cách thức cấu trúc các suy nghĩ và hành động của con người. Nó cho biết chúng ta phải làm cái gì, làm như thế nào, làm khi nào và tại sao phải làm như vậy để hình thành hệ thông phần mềm.
UML là ngôn ngữ phù hợp cho việc mô hình đặc tả, xây dựng và tài liệu hóa, thích hợp với ngôn ngữ lập trình HDT C++, java. Uml phù hợp với nhiều chương trình ptrien phần mềm.
Điểm khác nhau chính giữa một phương pháp và một ngôn ngữ mô hình hoá (modeling language) là ngôn ngữ mô hình hoá không có một tiến trình (process) hay các câu lệnh (instruction) mô tả những công việc người sử dụng cần làm hay cho biết làm cái gì, làm như thế nào, khi nào làm việc đó và tại sao lại làm nhu vậy.
Câu 22: Trình bày tóm tắt 4 loại biểu đồ động của UML?
Biểu đồ trình tự: là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng; biểu đồ được đọc từ đỉnh xuống đáy. Mỗi uc có nhiều luồng dữ liệu. mỗi biểu đồ trình tự biểu diễn một luồng dữ liệu.Đọc biểu đồ trình tự bằng cách quan sát các đối tượng và thông điệp. biểu đồ trình tự bao gồm các phần tử để biểu đồ đối tượng, thông điệp và thời gian. Thông điệp là phương tiện giao tiếp giữa các đối tượng. nó được biểu diễn trong biểu đồ hợp tác bởi mũi tên giữa nơi gửi và nơi nhận. kiểu mũi tên chỉ ra loại thông điệp, nói cách khác là loại đồng bộ của thông điệp. uml có các loại đồng bộ thông điệp như sau đây:
Đơn: là giá trị mặc định của thông điệp. phần tử biểu đồ này chỉ ra rằng thông điệp sẽ chạy trong luồng đơn của điều khiển.
Đồng bộ: thuộc tính này được sử dụng khi đối tượng gửi thông điệp và chờ đến khi nó được xử lý xong.
Cản trở : đối tượng gửi thông điệp đến nơi nhận. nếu nơi nhận chưa xử lý ngay thì đối tượng gửi bãi bỏ thông điệp.
Hết hạn (time out): đối tượng gửi thông điệp đến đối tượng nhận và chờ một khoảng thời gian. Nếu sau thời gian đó mà thông điệp chưa được xử lý thì đối tượng gửi bãi bỏ chúng.
Dị bộ: đối tượng gửi thông điệp đến đối tượng nhận. đối tượng gửi tiếp tục làm việc khác không quan tâm đến thông điệp đó có được xử lý hay không.
Biểu đồ cộng tác:
Tương tự như biểu đồ trình tự, biểu đồ cộng tác (collaboration diagram) chỉ ra luồng sự kiện xuyên qua kịch bản của uc. Trong khi biểu đồ trình tự có trật tự theo thời gian, thì biểu đồ cộng tác tập trung nhiều hơn vào quan hệ giữa các đối tượng, tập trung vào tổ chức cấu trúc của các đối tượng gửi hay nhận thông điệp.một sự khác nhau giữa biểu đồ cộng tác và biểu đồ trình tự đã đề cập trên là biểu đồ trình tự tập trung vào luồng điều khiển còn biểu đồ cộng tác thì không. Sự khác nhau giữa chúng là biểu đồ cộng tác hiển thị luồng dữ liệu (data flows) còn biểu đồ trình tự thì không.
BIỂU ĐỒ CHUYỂN TRẠNG THÁI
Biểu đồ chuyển trạng thái bao gồm các thông tin về các trạng thái khác nhau của đối tượng, thể hiện các đối tượng chuyển đổi từ trạng thái này sang trạng thái khác thế nào, hành vi của mỗi đối tượng trong mỗi trạng thái ra sao. Biểu đồ trạng thái chỉ ra chu kỳ sống của đối tượng, từ khi nó được tạo ra đến khi bị phá hủy. Nó còn cho biết các sự kiện ( thông điệp nhận được, kết thúc khoảng thời gian, điều kiện nào đó thành true ) tác động lên các trạng thái như thế nào.Biểu đồ này là giải pháp tốt nhất để mô hình hóa hành vi động của lớp. Thông thường trong một dự án sẽ không phải tạo ra mọi biểu đồ trạng thái cho mọi lớp. Biểu đồ trạng thái có điểm khởi đầu (hình tròn đen) và vài điểm kết thúc (hình tròn đen có đường bao); các hoạt động trong biểu đồ được đặt trong chữ nhật góc tròn. Trong chữ nhật có các dòng văn bản để chỉ ra các hành động. Giữa các trạng thái là quá độ trạng.
BIỂU ĐỒ HOẠT ĐỘNG
Biểu đồ này chỉ ra trình tự các bước, tiến trình, các điểm quyết định và các nhánh. Biểu đồ hoạt động được sử dụng để mô hình hóa khía cạnh động của hệ thống, mô hình hóa các bước trình tự hay tương tranh trong quá trình tính toán. Biểu đồ hoạt động còn được sử dụng để mô hình hóa luồng đối tượng đi từ trạng thái này sạng trạng thái khác tại từng vị trí trong luồng điều khiển. biểu đồ hoạt động tập trung vào luồng điều khiển từ hoạt động đến hoạt động. Biểu đồ hoạt động bao gồm trạng thái hoạt động và trạng thái hành động, quá độ và đối tượng.
Câu 23: Phân biệt hoạt động(activity) và hành động(action)?
Hoạt động (activity) là hành vi mà đối tượng thực thi khi nó ở trong trạng thái cụ thể. Thí dụ, khi tài khoản ở trong trạng thái đóng thì máy đọc thẻ không chấp nhập thể tín dụng của khách hàng, nếu đã mở tài khoản thì trạng thái có thể là gửi thông điệp, chờ hay tính toán. Hoạt động là hành vi có thể ngắt được, nó có thể được hoàn thành khi đối tượng đang trong trạng thái hay nó bị ngắt vì đối tượng chuyển sang trạng thái khác.
Hành động (action). Hành động là hành vi không ngắt được, xảy ra như một phần của chuyển tiếp. Hành động vào và hành động ra được thể hiện trong trạng thái. Phần lớn hành động được vẽ theo mũi tên chuyển tiếp. Thí dụ, khi chuyển từ trạng thái mở sang trạng thái đóng, hành động Lưu thời điểm yêu cầu đóng tài khoản xảy ra. Đó là hành vi không ngắt được, xảy ra khi tài khoản chuyển tiếp từ trạng thái mở sang trạng thái đóng.
Câu 24: Một chuyển tiếp trong biểu đồ hoạt động biểu diễn cái gì?
Khi hành động hay hoạt động của trạng thái hoàn thành, luồng điều khiển chuyển sang trạng thái hành động hay hoạt động khác. Luồng này được mô tả bởi quá độ (transition), nó cho thấy đường đi từ trạng thái hành động hay hoạt động đến trạng thái hành động hay hoạt động khac. Trong UML, quá độ được biểu diễn bằng mũi tên đơn.
Câu 25 : Thế nào là biểu đồ tương tác (Interactive Diagram) của UML? Hãy chỉ ra những điểm giống nhau và khác nhau giữa biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram).
Biểu đồ tương tác mô hình hóa khía cạnh động của hệ thống. biểu đồ tương tác chỉ ra một tương tác, bao gồm tập đối tượng, quan hệ và các thông điệp trao đổi giữa chúng. Biểu đồ này chỉ ra từng bước của một luồng điều khiển cụ thể trong uc.
Uml có hai loại biểu đồ tương tác, đó là biểu đồ trình tự và biểu đồ cộng tác. Biểu đồ trình tự theo trật tự thời gian, biểu đồ cộng tác chỉ ra cùng loại thông tin nhưng có cách tổ chức khác. Trong khi biểu đồ trình tự tập trung vào điều khiển thì biểu đồ cộng tác tập trung vào luồng dữ liệu. các biểu đồ này đều liên quan đến các đối tượng cài đặt chức năng thực hiện trong uc. Hai biểu đồ này được xây dựng cho đối tượng lớp hay cả hai.biểu đồ trình tự là trật tự theo thời gian của các thông điệp, nó có ích khi ai đó muốn quan sát luồng logic trong kịch bản. biểu đồ cộng tác có ích khi ta muốn quan sát giao tiếp giữa các đối tượng.
Câu 26: Một hoạt động trong biểu đồ hoạt động mô tả điều gì?
Hoạt động (Activity) là một công việc, có thể đựoc xử lý bằng tay như Điền mẫu hoặc xử lý bằng máy tính như Hiển thị màn hình đăng ký. Trong biểu đồ thì một họat động được biểu diễn bằng một hình chữ nhật tròn góc có mang tên của họat động.
Câu 27: Thành phần trong biểu đồ thành phần là gì? Mô tả vắn tắt một vài kiểu thành phần trong UML. Cho ví dụ.
Thành phần là mô đun vật lý mã trình, thành phần phần mềm có thể là thư viện mã nguồn và các tệp chạy được. Mặc định mỗi lớp trong mô hình logíc sẽ có phần đặc tả phần thân. Đặc tả chứa ghép nối lớp, thân chứa cài đặt của cùng lớp đó. UML có các biểu tượng đồ họa để gán cho các kiểu thành phần khác nhau (hình 7.1).
Hình 7.1 Biểu đồ thành phần của UML
Dưới đây là mô tả vắn tắt một vài kiểu thành phần của UML
Thành phần mã nguồn. Thành phần mã nguồn có ý nghĩa vào thời điểm dịch chương trình. Thông thường đó là tệp mã nguồn cài đặt một hay nhiều lớp. Thí dụ C++, mỗi tệp .cpp và tệp .h là thành phần. Trước khi phát sinh mã nguồn, ta phải ánh xạ từng tệp vào thành phần tương ứng; trong C++, mỗi lớp được ánh xạ vào hai tệp (.cpp và .h).
Thành phần nhị phân. Thành phần nhị phân thường là mã trình có được sau khi dịch thành phần mã nguồn. Nó có thể là tệp mã đối tượng (obj), tệp thư viện tĩnh (lib) hay tệp thư viện động (Dynamic Linking library-dll). Thành phần nhị phân có ý nghĩa vào thời điểm liên kết, hoặc thời điểm chạy chương trình (thí dụ thư viện động).
Thành phần khả thi. Thành phần thực hiện được là tệp chương trình thực hiện được (các tệp .EXE), là kết quả của liên kết các thành phần nhị phân (liên kết tĩnh hay liên kết động). Thành phần thực hiện được biểu diễn đơn vị thực hiện được chạy trên bộ xử lý (máy tính).
Một khi thành phần được tạo lập, ta có thể gộp chúng vào biểu đồ thành phần và vẽ các quan hệ giữa chúng. Giữa các thành phần chỉ có một loại quan hệ phụ thuộc. Kết nối quan hệ giữa các thành phần cho biết một thành phần cần một thành phần khác để có được định nghĩa đầy đủ. Thí dụ, kết nối phụ thuộc cho biết thành phần này phải được dịch trước thành phần kia. Thí dụ khác là với thành phần khả thi thì kết nối phụ thuộc được sử dụng để nhận ra thư viện động nào cần phải có để thành phần khả thi chạy được.
Câu 29: Biểu đồ triển khai dùng để làm gì? Biểu đồ triển khai trong UML có các phần tử mô hình nào?
Biểu đồ triển khai mô tả kiến trúc hệ thống phần cứng (nút) khác nhau như bộ xử lý, các thiết bị và các thành phần phần mềm thực hiện nên kiến trúc đó. Nó là mô tả vật lý của tôpô hệ thống, mô tả cấu trúc của các đơn vị phần cứng và phần mềm chạy trên nó. Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng.
Nút là đối tượng vật lý (các thiết bị) có tài nguyên tính toán. Chúng có thể là máy tính, máy in, đọc thẻ từ, thiết bị truyền tin… Các nút được kết nối thông qua kết hợp giao tiếp. Các nút trao đổi thông điệp hay đối tượng theo đường dẫn kết nối. Kiểu giao tiếp được thể hiện bằng stereotype, chỉ ra thủ tục giao tiếp hay mạng được sử dụng.
Phần tử mô hình của biểu đồ
Bộ xử lý (processor). Bộ xử lý là máy xử lý. Các máy chủ (server), trạm làm việc…thuộc loại này.
Chi tiết cho bộ xử lý. Trong đặc tả bộ xử lý có thể bổ sung các thông tin: stereotype, đặc tính và scheduling.
Stereotype: Tương tự như thành phần mô hình, sử dụng nó để phân nhóm bộ xử lý.
Đặc tính: Là mô tả vật lý của bộ xử lý, thí dụ tốc độ và dung lượng nhớ.
Scheduling: Mô tả loại lập biểu thời gian (scheduling) xử lý, bao gồm: Preemptive (tiến trình có mức ưu tiên cao hơn có thể chiếm quyền ưu tiên của các tiến trình có mức ưu tiên thấp hơn), Non Preemptive (các tiến trình không có mức ưu tiên, tiến trình đang thực hiện chỉ dừng khi nó tự kết thúc), Cyclic (chỉ ra chu kỳ điều khiển giữa các tiến trình), Executive (một vài thuật toán tính toán điều khiển scheduling), Manual (tiến trình được người sử dụng điều khiển).
Thiết bị. Thiết bị là máy móc hay bộ phận phần cứng không phải là bộ xử lý trung tâm. Thiết bị bao gồm màn hình, máy in…Cả thiết bị và bộ xử lý được xem như nút trong mạng
Chi tiết thiết bị.Tương tự bộ xử lý, thiết bị cũng có nhiều thông tin chi tiết như stereotype và đặc tính. Sự khác nhau giữa thiết bị và bộ xư lý phụ thuộc mạnh vào quan điểm. Máy tính đầu cuối nối với máy chủ được người sử dụng xem như thiết bị, nhưng đôi khi người khác lại coi nó là bộ xử lý.
Kết nối. Kết nối là liên kết vật lý giữa hai bộ xử lý, hai thiết bị hay giữa thiết bị và bộ xử lý. Thông thường, kết nối biểu diễn kết nối mạng vật lý giữa các nút trong mạng. Chúng cũng có thể liên kết Internet giữa các nút. Có thể gán stereotype cho kết nối, đồng thời nó cũng được gán đặc tính nói về chi tiết của kết nối vật lý.
Tiến trình
Tiến trình là luồng thực hiện đơn chạy trong bộ xử lý. Một tệp khả thi được xem là tiến trình. Tiến trình có thể được hiển thị trong biểu đồ triển khai, nếu được hiển thị thì nó được liệt kê ngay dưới bộ xử lý nơi nó chạy. Các tiến trình được gán mức ưu tiên. Nếu bộ xử lý mà trên đó các tiến trình chạy sử dụng scheduling theo mức ưu tiên. Thì mức ưu tiên của tiến trình sẽ được xác định khi nó chạy.
Bạn đang đọc truyện trên: Truyen247.Pro