Tải bản đầy đủ (.pptx) (34 trang)

chuong7classdesigndiagam xuanhiens weblog

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (645.79 KB, 34 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Chương 7</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>Thiết kế cấu trúc của hệ thống</b>



• Giai đoạn thiết kế hệ thống gồm các cơng việc:



• Tinh chỉnh các mơ hình trong giai đoạn phân tích
• Xác định kiến trúc của hệ thống


• Sử dụng sơ đồ tương tác xác định tương tác giữa các đối tượng phần
mềm


<b>• Sử dụng các mẫu stereotype bổ sung vào sơ đồ lớp: <<boundary>>, </b>
<<control>> và <<entity>>


• Bổ sung các phương thức vào sơ đồ lớp thiết kế


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>Thiết kế cấu trúc của hệ thống</b>



<b>• Tinh chỉnh các mơ hình trong giai đoạn phân tích</b>



• Sử dụng package để tổ chức lại các mơ hình trong giai đoạn phân tích:
use case model, domain model.


• Có thể dựa trên các tiêu chí:


• Theo nhóm actor
• Theo chức năng, …


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>Thiết kế cấu trúc của hệ thống</b>




• Ví dụ: cấu trúc lại sơ đồ use case của hệ thống ATM



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>Thiết kế cấu trúc của hệ thống</b>



<b>• Xác định kiến trúc của hệ thống</b>



• Tùy theo loại dự án, chọn một kiến trúc phù hợp


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Thiết kế cấu trúc của hệ thống</b>



• Ví dụ: kiến trúc 3 tầng



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>Thiết kế cấu trúc của hệ thống</b>



<b>• Sử dụng sơ đồ tương tác:</b>



• Xác định tương tác giữa các đối tượng phần mềm.


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>Thiết kế cấu trúc của hệ thống</b>



• Sử dụng các stereotype vào sơ đồ lớp để hiện thực use case


• Các stereotype classes:



• <<boundary>>
• <<control>>


• <<entity>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>Lớp phân tích</b>




<b>• Lớp phân tích đại diện cho một mơ hình khái niệm ban đầu </b>


bao gồm các đối tượng trong hệ thống với trách nhiệm và hành


vi, lớp phân tích được phát triển thành các lớp phần mềm và


hệ thống con trong mơ hình thiết kế.



<b>• Trong thiết kế các lớp phân tích cần được phân loại và bổ </b>



<b>sung các lớp khác để có thể hiện thực được các lớp thực thể.</b>



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>Lớp phân tích</b>



• Có ba khía cạnh của hệ thống có khả năng thay đổi



<b>• Giao diện giữa hệ thống và các actor của hệ thống,</b>
<b>• Các thơng tin hệ thống sử dụng,</b>


<b>• Điều khiển logic của hệ thống.</b>


• Ngun tác thực hiện:



• Đóng gói giao diện người dùng thành các lớp riêng biệt
• Tách chức năng điều khiển khỏi giao diện người dùng


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>Lớp phân tích</b>



<b>• Để cô lập các phần của hệ thống mà có thể sẽ thay đổi, lớp </b>



<b>phân tích được chia thành 3 loại khác nhau được xác định </b>



theo tập trách nhiệm




• Lớp giao diện - Boundary classes,
• Lớp thực thể - Entity classes


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>Lớp phân tích - stereotype</b>



<i>System </i>


<i>boundary</i> <i>Use-case </i>
<i>behavior </i>
<i>coordination</i>


<i>System </i>
<i>information</i>


<<boundary>>


<<control>>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>Lớp thực thể - Entity class</b>



<b>• Lớp thực thể: được sử dụng để mơ hình hóa thơng tin được </b>


lưu trữ và cập nhật trong hệ thống.



• Lớp thực thể có các thuộc tính, các mối quan hệ và được lưu trữ lâu
dài trong hệ thống


• Các lớp thực thể thể hiện cấu trúc dữ liệu trong hệ thống, giúp người
dùng hiểu những gì hệ thống cung cấp cho người dùng.



• Lớp thực thể vẫ tồn tại sau khi use case kết thúc.


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>Lớp thực thể - Entity class</b>



<b>• Tìm lớp thực thể</b>



• Dựa vào đặc tả use case
• Danh mục các thuật ngữ


• Tập các danh từ trong yêu cầu của bài tốn


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Lớp giao diện – Boundary class</b>



<b>• Lớp giao diện là một lớp dùng để mơ hình tương tác giữa môi </b>


trường xung quanh của hệ thống và hoạt động bên trong của


nó.



• Khi thay đổi giao diện hoặc giao thức truyền thơng thì chỉ ảnh hưởng
đến lớp giao diện mà không ảnh hưởng đến những thành phần trong
hệ thống.


<b>• Có ít nhất là một giao diện (boundary object) ứng với một cặp actor và </b>
một use case.


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>Loại lớp giao diện</b>



<b>• Lớp giao diện người dùng - User interface classes: </b>



• Lớp trung gian giao tiếp giữa người dùng và hệ thống



• Tập trung vào những thơng tin gì cần cung cấp cho người
dùng


<b>• Cách tìm lớp giao diện người dùng:</b>



<b>• Ứng với một cặp actor và use case thì xác định một đối tượng của lớp </b>
giao diện.


• Đối tượng này có trách nhiệm điều phối việc tương tác với các actor


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>Loại lớp giao diện</b>



<b>• Lớp giao diện hệ thống - System interface classes</b>



• Lớp trung gian giữa hệ thống với hệ thống khác.
• Tập trung vào việc xác định giao thức


<b>• Lớp giao diện thiết bị - Device interface classes</b>



• Lớp cung cấp giao diện để kiểm tra các sự kiện bên ngồi.


• Lớp giao diện nắm bắt những trách nhiệm của thiết bị hoặc
cảm biến.


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>Lớp điều khiển - Control Class</b>



<b>• Lớp điều khiển là một lớp được sử dụng để mơ hình hóa việc </b>



<i>điều khiển các hành vi của các use case. </i>




• Hoạt động của lớp điều khiển là loại điều phối,


• Thơng thường, một đối tượng của lớp điều khiển liên quan đến việc
hiện thực một use case,


• Tuy nhiên, một số trường hợp, một đối tượng của lớp điều khiển có thể
liên quan đến việc hiện thực nhiều use case, và ngược lại.


• Khi hệ thống thực hiện use case thì một đối tượng của lớp điều khiển
được tạo ra và bị hủy khi hoạt động của use case hoàn tất.


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Lớp điều khiển - Control Class</b>



<b>• Ký hiệu trong UML</b>



<b>• Đặc tính của lớp điều khiển</b>



<b>• Liên kết giữa các lớp thực thể và các lớp giao diện, đảm bảo lớp </b>
thực thể không bị truy cập trực tiếp từ lớp giao diện.


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>Ví dụ</b>



• Hệ thống quản lý đào tạo



Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 20


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21></div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>Sử dụng lớp phân tích trong sơ đồ tương tác</b>



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23></div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<b>Xây dựng sơ đồ lớp thiết kế</b>




<b>• Từ các sơ đồ tương tác cho phép phát triển các sơ đồ lớp thiết </b>



<b>kế, và được thực hiện bằng cách thêm các thông tin sau vào </b>



các lớp trong mơ hình phân tích



<b>• Hoạt động: một thơng báo chỉ có thể được nhận bởi một đối tượng </b>
nếu lớp của nó có khai báo một hoạt động tương ứng.


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

<b>Xây dựng sơ đồ lớp thiết kế</b>



<b>• Hướng của các kết hợp hoặc quan hệ phụ thuộc giữa các lớp</b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<b>Xây dựng sơ đồ lớp thiết kế</b>



<b>• Xác định hoạt động của lớp thiết kế</b>



• Dựa vào hoạt động của lớp phân tích tương ứng


<b>• Cú pháp:</b>



<b>• operationName(parameter : class,..) : returnType</b>


<b>• Tầm vực của hoạt động</b>



• Tầm vực hoạt động là ngun tắc chính trong đóng gói của thiết kế và
lập trình hướng đối tượng


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

<b>Xây dựng sơ đồ lớp thiết kế</b>




<b>• Tầm vực của hoạt động</b>



<b>• Public: có thể truy cập trực tiếp bởi các thành viên khác.</b>


<b>• Protected: chỉ được truy cập bởi những thể hiện của lớp con </b>
<b>• Private: chỉ được truy cập bởi chính lớp định nghĩa nó.</b>


<b>• Ký hiệu</b>



<b>+ Public access </b>
<b># Protected access</b>


<b>- </b>

Private access


<b>- privateAttribute</b>


<b>Class</b>


<b># protectedAttribute</b>
<b>+publicOp()</b>


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

<b>Ví dụ</b>



• Hồn chỉnh sơ đồ lớp thiết kế của hoạt động tạo khóa học trong


hệ thống quản lý đào tạo. Các đối tượng trong hệ thống



• Một khóa học (course) c1


• Một đối tượng nội dung (content), c2,
• c2 có liên quan đến c1;



• Một đối tượng học kỳ (session);


• các đối tượng học kỳ (session) liên kết với c1;
• c1 có liên quan đến ít nhất một chủ đề (Theme)


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

<b>Ví dụ</b>



</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>Ví dụ</b>



<b>• Sơ đồ tuần tự của hoạt động tạo thêm đối tượng content</b>



</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

<b>Ví dụ</b>



</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

<b>Ví dụ</b>



<i>• Tách sơ đồ </i>
<i>trên thành 2 </i>
<i>phần</i>


<i>• Một phần của </i>


<i>hoạt </i> <i>động </i>


<i><b>createCourse: </b></i>


<i>tầng trình diễn </i>
<i>và liên kết với </i>
<i>tầng ứng dụng</i>



</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

<b>Ví dụ</b>



</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

<b>Ví dụ</b>



<i>• Từ các sơ đồ </i>
<i>hợp tác, phát </i>
<i>triển các biểu </i>
<i>đồ lớp thiết kế</i>


</div>

<!--links-->

×