Tải bản đầy đủ - 0 (trang)
1 Cơ sở lý thuyết

1 Cơ sở lý thuyết

Tải bản đầy đủ - 0trang

Gần đây, một số ngôn ngữ xuất hiện với chức năng chính là định hướng đối

tượng nhưng lại tương thích được với phương pháp thủ tục như là Python và Ruby.

Bên cạnh Java, C#và Visual Basic.NET là hai ngôn ngữ OOP quan trọng hiện tại thiết

kế bởi Microsoft.

Giống như lập trình thủ tục đã dẫn tới việc tinh lọc các kỹ thuật như là lập trình

cấu trúc, phần mềm hướng đối tượng hiện đại thiết kế các phương pháp bao gồm các

sự tinh lọc. Chẳng hạn như là việc ứng dụng các dạng thức thiết kế, thiết kế bởi hợp

đồng và các ngơn ngữ mơ hình trong đó có UML.

b) Đặc trưng cơ bản

- Tính bao bọc (encapsulation): quan niệm mối quan hệ giữa đối tượng nhận và

đối tượng cung cấp thông qua khái niệm hộp đen. Nghĩa là đối tượng nhận chỉ truy

xuất đối tượng cung cấp qua giao diện được định nghĩa bởi đối tượng cung cấp, phân

tích thiết kế hệ thống hướng đối tượng UML, đối tượng nhận không được truy cập đến

các đặc trưng được xem là “nội bộ” của đối tượng cung cấp.

- Tính phân loại (classification): gom nhóm các đối tượng có cùng cấu trúc và

hành vi vào một lớp (class).

- Tính kết hợp (aggregation): kết hợp các đối tượng và các đối tượng cấu thành nó

để mơ tả cấu trúc cục bộ của đối tượng (ví dụ: tồ nhà <-> phòng, xe <-> sườn xe,

bánh xe,... ) , hoặc sự liên kết phụ thuộc lẫn nhau giữa các đối tượng.

- Tính thừa kế (heritage): phân loại tổng quát hoá và chuyên biệt hoá các đối tượng,

và cho phép chia sẽ các đặc trưng của một đối tượng.

 Phân loại

Phương pháp lập trình hướng đối tượng được chia thành 2 hướng như sau:

- Hướng lập trình: từ lập trình đơn thể chuyển sang lập trình hướng đối tượng với

lý thuyết cơ bản dựa trên việc trừu tượng hóa kiểu dữ liệu.

- Hướng hệ quản trị CSDL: phát triển thành CSDL hướng đối tượng

Có 2 cách tiếp cận riêng biệt:

- Phương pháp kỹ thuật: hướng công nghệ phần mềm như OOD, HOOD, BON,

BOOCH, MECANO, OODA,...

- Phương pháp toàn cục: hướng về HTTT như OOA, OOSA, OOAD, OMT,

OOM,...

 Ưu điểm

- Cấu trúc hoá được các cấu trúc phức tạp và sử dụng được cấu trúc đệ qui: các

phương pháp đối tượng đều sử dụng các mô hình bao gồm nhiều khái niệm để biểu

diễn nhiều ngữ nghĩa khác nhau của hệ thống. Ví dụ: trong mơ hình lớp của OMT có

khái niệm mối kết hợp thành phần cho phép mô tả một đối tượng là một thành phần

của đối tượng khác, trong khi nếu dùng mô hình ER truyền thống khơng có khái niệm

này do đó không thể biểu diễn được quan hệ thành phần.



- Xác định được đối tượng của hệ thống qua định danh đối tượng

- Tính thừa kế được đưa ra tạo tiền đề cho việc tái sử dụng

c) Các khái niệm cơ bản của phân tích thiết kế hướng đối tượng





Đối tượng



Đối tượng là thành phần trọng tâm của cách tiếp cận hướng đối tượng. Một đối

tượng là một đại diện của bất kỳ sự vật nào cần được mơ hình trong hệ thống và đóng

một vai trò xác định trong lãnh vực ứng dụng.

- Là một biểu diễn từ thế giới thực sang thể hiện của tin học (ví dụ : một chiếc xe ô

tô trong thế giới thực được biểu diễn trong tin học dùng một khái niệm đối tượng xe ơ

tơ).

- Là một sự trừu tượng hố, một khái niệm có ý nghĩa trong lãnh vực ứng dụng.

- Diễn đạt một thực thể vật lý, hoặc một thực thể quan niệm, hoặc một thực thể

phần mềm.

- Đối tượng có thể là một thực thể hữu hình trực quan (ví dụ : một con người, một

vị trí, một sự vật,...) hoặc một khái niệm, một sự kiện (ví dụ : phòng ban, bộ phận, kết

hơn, đăng ký, ...).





Class



Lớp là khái niệm dùng để mô tả một tập hợp các đối tượng có cùng một cấu trúc,

cùng hành vi và có cùng những mối quan hệ với các đối tượng khác:











Lớp = các thuộc tính + các phương thức







Lớp là một bước trừu tượng hóa







Tìm kiếm các điểm giống, bỏ qua các điểm khác nhau của đối tượng







Trừu tượng hóa làm giảm độ phức tạp.

Gói (package)



Là một cách tổ chức các thành phần, phần tử trong hệ thống thành các nhóm.

Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống con (subsystem).





Kế thừa



Trong phương pháp hướng đối tượng, một lớp có thể có sử dụng lại các thuộc tính

và phương thức của một hoặc nhiều lớp khác. Kiểu quan hệ này gọi là quan hệ kế

thừa, được xây dựng dựa trên mối quan hệ kế thừa trong bài tốn thực tế.



3.2. Cơng nghệ sử dụng

3.2.1. Hệ quản trị CSDL MySQL

Hệ thống sử dụng hệ quản trị cơ sở dữ liệu MySQL.



3.2.1.1. Khái niệm



MySQL là một hệ quản trị cơ sở dữ liệu quan hệ miễn phí hiện nay đã được hãng

Oracle mua lại từ hãng Sun. Nó thường được sử dụng kết hợp với PHP để lưu trữ dữ

liệu của ứng dụng website khi người dùng thao tác trên website của chúng ta. Nếu các

bạn đã từng học SQL Server một hệ cơ sở dữ liệu quan hệ của Microsoft thì khi tiếp

cận với MySQL sẽ dễ dàng hơn, vì chúng vẫn được xây dựng giống nhau về tư tưởng,

kiến trúc.[4]



3.2.1.2. Một số câu lệnh cơ bản[4]





Lệnh Insert



Lệnh Insert là câu lệnh SQL dùng để chèn một bản ghi vào table.

Cú pháp:

INSERT INTO table_name (field1, field2) VALUES (‘value1’, ‘value2’);

table_name: là tên của bảng

field: là trường dữ liệu, các field được tách nhau bởi dấu phẩy

value: là giá trị tương ứng với các field cũng được tách nhau bởi dấu phẩy





Lệnh Update



Lệnh Update là câu lệnh SQL dùng để cập nhật giá trị cho một hoặc nhiều bản

ghi đang có trong bảng (tùy vào điều kiện giới hạn số bản ghi thực hiện).

Cú pháp:

UPDATE table_name SET field1 = ‘value1’, field2 = ‘value2’ WHERE

điều_kiện

table_name: là bảng dữ liệu cần cập nhật

field = ‘value’: các trường và giá trị tương ứng cần cập nhật

WHERE điều_kiện: Điều kiện giới hạn số bản ghi cần thực hiện (nếu khơng có

điều kiện WHERE) MySQL sẽ xử lý toàn bộ các bản ghi trên bảng.

Câu lệnh này sẽ thực hiện sửa tên của bản ghi có mã giảng viên = 1, chính là bản

ghi mình vừa thực hiện INSERT vào.





Lệnh Delete



Lệnh Delete là câu lệnh SQL dùng để xóa một hay nhiều bản ghi

Cú pháp:

DELETE FROM table_name WHERE điều_kiện

table_name: là tên bảng dữ liệu cần xóa

WHERE điều_kiện: là các điều kiện để giới hạn số bản ghi bị tác động (nếu bỏ

trống toàn bộ các bản ghi trong bảng này sẽ bị xóa bỏ)





Lệnh SELECT



Câu lệnh SELECT là câu lệnh SQL dùng để truy vấn các bản ghi trong cơ sở dữ

liệu của bạn. Đây là câu lệnh SQL được sử dụng nhiều nhất, tùy biến nhất để giải

quyết mọi yêu cầu khai thác dữ liệu của bài toán.

Cú pháp:

SELECT field1, field2, FROM table_name WHERE điều_kiện ORDER BY field

ASC|field DESC|rand() LIMIT Số bản ghi|Giá trị đầu, giá trị cuối

Field1, Field2 là các trường dữ liệu cần truy vấn

table_name là bảng dữ liệu cần truy suất

WHERE điều_kiện là các điều kiện để có được dữ liệu mong muốn

ORDER BY field ASC lệnh sắp xếp dữ liệu tăng dần

ORDER BY field DESC lệnh sắp xếp dữ liệu giảm dần

ORDER BY rand() lệnh lấy ngẫu nhiên

LIMIT số_bản_ghi lấy n bản ghi

LIMIT o,n: lấy n bản ghi từ vị trí o

3.2.2. Ngơn ngữ PHP



Ngơn ngữ lập trình cho hệ thống là ngôn ngữ PHP

 Giới thiệu về ngơn ngữ lập trình PHP

PHP – viết tắt của cụm từ “Hypertext Preprocessor”, là một ngơn ngữ lập

trình kịch bản được chạy phía server nhằm sinh ra mã html trên client. PHP đã

trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách

viết mã rõ ràng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngơn ngữ lập

trình web rất phổ biến và được ưa chuộng.

PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản

trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành

Linux(LAMP).

-



Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ

trình dụt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại

cho trình duyệt.



-



MySQl cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgres,

Oracle, SQL server...) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu.



-



Linux là hệ điều hành mã nguồn mở được sử dụng rộng rãi cho các

webserver. Thông thường các phiên bản được sử dụng nhiều nhất là

RedHat Enterprise Linux, Ubuntu…



 Đặc trưng của PHP

PHP là một ngôn ngữ lập trình web rất được ưa chuộng, hiện là ngơn ngữ

lập trình web phổ biến nhất. Nhờ vào một số đặc điểm sau:





PHP dễ học và linh động







Rất nhiều hàm hỗ trợ và nhiều phần mở rộng phong phú







Đặc biệt mã nguồn mở, thường xuyên nâng cấp, chạy được trên nhiều

máy chủ web, nhiều hệ điều hành (đa nền tảng)







Cộng đồng sử dụng và hỗ trợ đơng đảo







Ngồi phần code chính (thường gọi là code thuần), các phần mở rộng

cũng rất phong phú mà lại miễn phí như nhiều frame work, nhiều

CMS







Các mã nguồn chia sẻ trên mạng tìm được rất nhiều và dễ dàng







Được tích hợp và sử dụng ổn định trong một mơ hình LAMP =

Linux+Apache+Mysql+Php, mã nguồn mở, chi phí thấp.







Các hosting hỗ trợ nhiều



 Chức năng của PHP

Trước hết và cũng là quan trọng nhất, nó đảm nhiệm vai trò của: ngơn ngữ kịch

bản phía máy chủ (Server Side script) - máy chủ sẽ tiếp nhận request (yêu cầu) từ máy

khách (client) - máy chủ web sẽ triệu gọi file mã nguồn tương ứng. Trong file mã

nguồn này chứa các mã php để xử lý request - trình thơng dịch sẽ dịch mã php sang mã

HTML, CSS, XML,...trả ra cho máy chủ web, máy chủ web trả lại thông tin (reponse)

cho máy khách. Dữ liệu nhận được từ máy khách là các đoạn mã dạng text như

HTML, CSS,...mà khơng thể thấy mã php ( vì đã được thực thi thành dạng text ) - đảm

bảo được tính bảo mật, đây cũng là chức năng cơ bản và quan trọng của một ngơn ngữ

phía server.

Ngồi ra PHP còn có thể:





Xử lý ảnh







Cho phép và xử lý file upload ( tải file lên server )







Thiếp lập và xử lý cookie, session







(*) Thao tác tới cơ sở dữ liệu







Gửi email







(*) Xử lý dữ liệu nhận được từ form nhập liệu



Thông qua php, một trang web tĩnh (static webpage), thường chỉ phần

giao diện tại máy khách - tương tác tới máy chủ web , trở thành một trang web

động ( nội dung thay đổi, tùy biến theo các sự kiện, yêu cầu) - hay được gọi là

dynamic webpage. Học lập trình php vì thế cũng hay được gọi là: lập trình web

động với php, lập trình ứng dụng web…



 Một số trình soạn thảo PHP

-



Netbeans – miễn phí và nhiều plugin



Hình 3.1: IED Netbeans



-



Sublime – có phí và khá nhẹ



Hình 3.2: IDE Sublime



-



Codelobster – miễn phí có thể code được mã HTML, CSS, JavaScript



Hình 3.3: IDE Codelobster



-



PhpStorm



Hình 3.4: IED PhpStorm



-



Notepad++ - nhẹ và tiện dụng



Hình 3.5: IDE Notepad++



-



Dreamweaver – nhiều tính năng mạnh mẽ và có phí



Hình 3.6: IDE Dreamweaver



3.2.3. Framework Laravel



Framework đồ án sử dụng cho hệ thống là Laravel

 Giới thiệu về framework Laravel

Laravel là một Framework MVC (Model – View- Controller) với bundles,

migrations và Artisan CLI. Laravel cung cấp một bộ công cụ mạnh mẽ và một cấu trúc

ứng dụng kết hợp nhiều tính năng nổi trội của các framework khác như là Codeigniter,

Yii, Ruby on Rails, ASP.NET MVC, Sinatra và vân vân…

Laravel là một framework mã nguồn mở. Nó có một đống các tính năng mà có

thể giúp bạn tăng tốc quá trình phát triển website lên một cách nhanh chóng. Vận dụng

PHP khi học Laravel sẽ trở nên dễ dàng hơn rất nhiều. Nó sẽ giúp bạn tiết kiệm một

khối lượng thời gian đáng kể nếu như bạn đang có ý định xây dựng một website từ

đầu. Không chỉ vậy, website được xây dựng trên nền Laravel cực kì bảo mật tốt. Nó sẽ

ngăn chặn được rất nhiều các kiểu tấn cơng từ bên ngồi tới website của bạn.

 Tính năng nổi bật của Laravel





Dễ dàng sử dụng

Lý do đầu tiên khiến Laravel nhanh chóng được cộng đồng đón

nhận và sử dụng nhiều là do nó rất dễ để có thể sử dụng. Ngay cả khi bạn

chỉ mới chỉ có những kiến thức cơ bản nhất về lập trình web với PHP thì

việc bắt đầu sử dụng Laravel cũng chỉ mất vài giờ là bạn có thể bắt tay

vào việc làm một project nhỏ.

Document mà Laravel cung cấp trên trang chủ của mình được viết

rất rõ ràng và dể hiểu giúp cho bạn nhanh chóng có thể tìm được những

gì mình muốn.







Xây dựng theo mơ hình MVC

Laravel được xây dựng và phát triển theo mơ hình MVC (ModelView-Controller) nhờ đó mà cấu trúc và cách tổ chức code trong project

được sắp xếp một cách hợp lý dễ dàng cho việc maintain cũng như phát

triển về lâu dài



Hình 3.7: Mơ hình MVC





Các tính năng dựng sẵn

Bản thân Laravel đã cung cấp cho người dùng rất nhiều các nhóm

tính năng giúp q trình phát triển trở nên nhanh chóng hơn rất nhiều

lần.

Chỉ với một câu lệnh đơn giản:





$ php artisan make:auth



Là bạn đã dựng được cho mình tồn bộ các tính năng như đăng

nhập, đăng xuất, đăng kí, qn mật khẩu mà khơng tốn cơng code một

dòng nào cả. Tất nhiên bạn cũng có thể tự mình chỉnh sửa lại logic sao

cho hợp với nhu cầu sử dụng cá nhân.







Các tính năng bảo mật

Để giúp lập trình viên có thể tối đa thời gian tập chung vào việc

phát triển các tính năng, Laravel đã cung cấp sẵn cho người dùng các

tính năng bảo mật cơ bản như:





ORM của Laravel sử dụng PDO thay vì mysqli để chống lại tấn công

SQL Injection.











Laravel sử dụng một field token ẩn để chống lại tấn công kiểu CSRF.







Các biến được đưa ra view mặc định đều được Laravel escape để

tránh tấn công XSS



Blade template

Ở phần view, Laravel cung cấp sẵn cho người dùng một template

enigine có tên là blade, giúp người dùng có thể sử dụng code php bên

trong file giao diện của mình một cách thuật lợi và khơng bị rối mắt như

sử dụng cặp thẻ thông thường.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

1 Cơ sở lý thuyết

Tải bản đầy đủ ngay(0 tr)

×