Thiết kế

Một phần của tài liệu Phân tích thiết kế hệ thống quản lí thư viện (BÁO CÁO BÀI TẬP LỚN Môn: Phân tích thiết kế hệ thống hướng đối tượng) (Trang 40)

1.Phân rã thành gói các chức năng

2.Mô hình phân tầng theo công nghệ

Ở đây chúng em sử dụng framework Yii được viết bằng ngôn ngữ PHP.Dưới đây,chúng em xin trình bày kiến trúc của framework và cách thức hoạt động của nó.

2.1. Giới Thiệu Yii Framework

- Yii Framework là framework sử dụng ngôn ngữ PHP được thiết kế theo mô hình MVC .Yii ra đời lần đầu tiên năm 2008 do một tác giả là Quiang Xue viết ra .Quiang Xeng cũng chính là người đứng đầu nhóm xây dựng Prado một framework khác của PHP.

- Trong quá trình phát triển Prado,nhận thấy nhiều nhược điểm của Prado đặc biệt là về hiệu năng,Quiang và nhóm phát triển Prado đã quyết định xây dựng lại một framework mới kế thừa những ưu điểm của Prado và mang rất nhiều cải tiến mới mẻ,độc đáo khiến cho Yii Framework trở thành một trong những framework có hiệu năng cao nhất và thích hợp cho việc xây dựng các ứng dụng web rất đa dạng ở nhiều loại hình,quy mô với sự tiết kiệm rất nhiều thời gian và công sức cho người phát triển.

- Yii là có nhiều ưu điểm nổi bật so với các framework ra đời trước.Sau đây là một số ưu điểm nổi bật của Yii

+Yii được thiết kế theo mô hình Framework ,mô hình phổ biến được áp dụng cho phần lớn các framework PHP giúp thuận tiện cho người phát triển trong quá trình phát triển,sửa lỗi ,bảo dưỡng.

+Yii sử dụng ActiveRecord Design Pattern để biểu diễn và thao tác với dữ liệu một cách trong sáng và chặt chẽ.Đồng thời ,Yii cũng cung cấp 2 cách nữa để làm việc với CSDL là DAO (Data Access Object) và Query Builder.Mỗi cách lại có những ưu ,nhược điểm riêng,người phát triển có thể chọn lựa cách thức phù hợp nhất trong từng trường hợp

+Yii sử dụng Jquery là thư viện Javascript mặc định,hỗ trợ rất tốt cho Ajax +Yii có các widget giúp cho người phát triển rất dễ dàng trong xây dựng giao diện người dùng

+Yii cho phép dễ dàng tích hợp các thư viện thứ 3 giúp người phát triển có thể dễ dàng tích hợp các thư viện đa dạng cho ứng dụng của mình

2.2. Các thành phần trong Project dùng Yii Framework:

Một website sử dụng Framework Yii sẽ có cấu trúc tĩnh cơ bản như sau: +Một file Bootrap index.php

Là bootrap script để xử lý yêu cầu ban đầu của người dùng.Nó là script duy nhất mà người dùng có thể trực tiếp yêu cầu thực thi

+Application: Đối tượng các đối tượng gom nhóm các ngữ cảnh thực thi mà trong đó có thể sử dụng yêu cầu người dùng,quản lý các controller và các

component của hệ thống.

+Các component của ứng dụng:

Yii có kiến trúc component.Có thể thêm các component cho Yii để thực hiện các chức năng cụ thể một cách dễ dàng.Để sử dụng các component của Yii,ta cần thêm các thông tin cấu hình trong file config.

+Controller

Là một thể hiện của lớp Ccontroller.Nó được tạo bởi đối tượng application khi có yêu cầu từ người dùng được gửi đến.Khi một yêu cầu được thực

hiện,controller sẽ thực thi action được yêu cầu.action của Yii đơn giản chỉ là phương thức mở đầu bằng từ khóa “action”.Controller đọc dữ liệu từ model ,xử lý và trả về kết quả cho view tương ứng

+Model

Là một thể hiện của lớp CModel được được dùng để biểu diễn dữ liệu,các quy tắc biểu diễn dữ liệu và mối quan hệ giữa chúng.Mỗi model biểu diễn một đối tượng dữ liệu đơn.Nó có thể là một hàng của một bảng hoặc một trường của

HTML form.Mỗi trường của dữ liệu tương ứng với một thuộc tính của model. Trong Yii có 2 loại Model: Cform và CactiveRecord.Cả hai đều là lớp con của Cmodel.Cform được sử dụng để biểu diễn dữ liệu thu thập từ người dùng thông qua form.

Cactive Record sử dụng Active Record design pattern (Đối tượng truy cập dữ liệu trừu tượng) để biểu diễn dữ liệu trong các bảng của CSDL .

+View

Là các file PHP chủ yếu chứa các thành phần giao diện người dùng như Form,HTML,…

View được render bởi các action và hiển thị kết quả đến người dùng với dữ liệu được truyền từ Controller.

Trong View có thể chứa các vòng lặp,cấu trúc rẽ nhanh nhưng thường đơn giản.Trong View cũng có thể trực tiếp đọc dữ liệu từ Model nhưng điều này được khuyến cáo nên hạn chế theo tinh thần phân chia logic của mô hình MVC. (adsbygoogle = window.adsbygoogle || []).push({});

Layout là một view đặc biệt trong Yii.Nó quy định giao diện ,bố cục chung cho cả trang.Trong Layout ,view của action được thực hiện sẽ được truyền vào qua biến $content.

+Widget là thể hiện của lớp Cwidget và các lớp con của Cwidget.Widget chủ yếu dùng để tạo giao diện.Widget thường được dùng để tạo ra các đối tượng giao diện tương đối phức tạp như ClistView, CdetailedView, CgridView, Calendar ,…Widget tạo ra sự tiện dụng cho người phát triển ,giúp việc sử dụng lại code được thực hiện dễ dàng và hiệu quả hơn rất nhiều.

2.3. Luồng hoạt động trong Yii project

- hi có request từ người dùng,đầu tiên file bootrap index.php sẽ được thực thi và tạo ra đối tượng Cwebapplication.Đối tượng này làm nhiệm vụ quản lý các controller và component .

- Đối tượng Webapp sẽ xác định thông tin chi tiết về yêu cầu của người dùng thông qua component request

- Đối tượng Webapp xác định controller và action được gọi đến thông qua component URL Manager.

- Sau khi xác định được controller và action ,Webapp gọi đến controller và action đó . Một thể hiện của Controller được tạo ra.Trước khi action được thực thi,controller sẽ tạo ra và thực thi bộ lọc tương ứng với action đó.Nếu thỏa mãn các điều kiện của bộ lọc thì action sẽ được thực thi.Ngược lại ,nếu không thỏa mãn các yêu cầu thì sẽ có thông báo lỗi.

- Khi thực hiện action,action đọc dữ liệu từ model rồi render đến 1 view nào đó và truyền dữ liệu đến view đó.View đọc dữ liệu từ model.

- View thực thi widget

- View đã được render được nhúng vào layout - Cuối cùng ,action trả lại kết quả cho người dùng

Kết luận

Qua quá trình phân tích và thiết kế chúng em đã được tìm hiểu sâu thêm về phương pháp phân tích thiết kế hệ thống hướng đối tượng.

Trong quá trình làm, chúng em vẫn còn có nhiều thiếu sót, chúng em mong thầy đóng góp ý kiến để chúng em hoàn thiện hơn bài tập lớn của mình để xây dựng một hệ thống hoàn chỉnh.

Tài liệu tham khảo:

Bài giảng phân tích thiết kế hệ thống hướng đối tượng : TS.Nguyễn Hữu Đức Phân tích thiết kế hệ thống : Nguyễn Văn Ba

Một phần của tài liệu Phân tích thiết kế hệ thống quản lí thư viện (BÁO CÁO BÀI TẬP LỚN Môn: Phân tích thiết kế hệ thống hướng đối tượng) (Trang 40)