Báo cáo khoá luận: Xây dựng ứng dụng luyện thi tiếng Anh TOEIC cho sinh viên trên iOS

Luận văn trình bày chi tiết quá trình xây dựng ứng dụng luyện thi TOEIC cho sinh viên trên nền tảng iOS, từ cơ sở lý thuyết đến triển khai thực tế.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2017

64
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn khoá luận xây dựng App luyện thi TOEIC trên iOS

Trong bối cảnh toàn cầu hóa, tiếng Anh đã trở thành một công cụ không thể thiếu, đặc biệt đối với sinh viên sắp ra trường. Chứng chỉ TOEIC (Test of English for International Communication) là một tiêu chuẩn phổ biến để đánh giá khả năng sử dụng tiếng Anh trong môi trường làm việc quốc tế. Nắm bắt xu hướng này, đề tài khoá luận tốt nghiệp công nghệ thông tin với chủ đề “Xây dựng App luyện thi TOEIC trên nền tảng iOS” mang lại giá trị thực tiễn cao. Bài viết này sẽ phân tích sâu các khía cạnh kỹ thuật và học thuật của đề tài, từ việc lựa chọn công nghệ, phân tích thiết kế hệ thống, đến triển khai và đánh giá kết quả. Mục tiêu chính là cung cấp một tài liệu tham khảo chi tiết cho các sinh viên và nhà phát triển quan tâm đến lĩnh vực phát triển ứng dụng di động giáo dục. Đề tài không chỉ giải quyết nhu cầu học tập cấp thiết mà còn là một bài toán thú vị về kỹ thuật phần mềm, bao gồm việc thiết kế giao diện người dùng (UI) và tối ưu trải nghiệm người dùng (UX), quản lý cơ sở dữ liệu cho ứng dụng di động, và áp dụng các mô hình phát triển phần mềm hiện đại. Việc xây dựng một ứng dụng hoàn chỉnh từ ý tưởng đến khi có thể triển khai là một quá trình đòi hỏi sự kết hợp nhuần nhuyễn giữa lý thuyết và thực hành, đặc biệt là trong môi trường lập trình iOS với những đặc thù riêng.

1.1. Tầm quan trọng của ứng dụng di động trong luyện thi TOEIC

Sự bùng nổ của công nghệ di động đã thay đổi hoàn toàn cách chúng ta tiếp cận thông tin và học tập. Các thiết bị iOS như iPhone và iPad đã trở nên phổ biến, tạo ra một nền tảng lý tưởng để phát triển các ứng dụng giáo dục. Một ứng dụng luyện thi TOEIC trên di động cho phép người học tận dụng mọi khoảng thời gian rảnh rỗi, từ việc chờ xe buýt đến giờ nghỉ trưa, để ôn luyện. Theo báo cáo khoá luận, lý do chọn đề tài xuất phát từ nhu cầu thực tế của sinh viên cần một công cụ học tập linh hoạt, tiện lợi và bám sát cấu trúc đề thi TOEIC thực tế. Ứng dụng này không chỉ cung cấp một ngân hàng câu hỏi TOEIC phong phú mà còn tích hợp các tính năng thông minh như theo dõi tiến độ, thống kê kết quả và đưa ra nhận xét, tạo động lực cho người học. Điều này giúp khắc phục những hạn chế của phương pháp học truyền thống qua sách vở, vốn thiếu tính tương tác và khả năng cập nhật.

1.2. Mục tiêu và phạm vi nghiên cứu của đồ án tốt nghiệp CNTT

Mục tiêu cốt lõi của đề tài là nghiên cứu và phát triển một ứng dụng hoàn chỉnh cho việc luyện thi TOEIC Listening and Reading trên nền tảng iOS. Phạm vi nghiên cứu được giới hạn một cách rõ ràng để đảm bảo tính khả thi trong khuôn khổ một đồ án tốt nghiệp công nghệ thông tin. Cụ thể, ứng dụng tập trung vào hai kỹ năng chính là Nghe và Đọc, mô phỏng chính xác cấu trúc của một bài thi TOEIC thực tế. Về mặt công nghệ, dự án sử dụng ngôn ngữ Swift và môi trường phát triển Xcode, là những công nghệ cốt lõi và hiện đại nhất cho lập trình iOS tại thời điểm thực hiện. Cơ sở dữ liệu của ứng dụng được quản lý bằng Core Data, một framework mạnh mẽ của Apple cho phép lưu trữ dữ liệu cục bộ hiệu quả. Các chức năng chính bao gồm: Luyện tập theo từng phần, làm bài thi thử với giới hạn thời gian, chấm điểm TOEIC tự động, và xem thống kê tiến độ học tập. Đề tài không đi sâu vào việc phát triển các API cho app giáo dục phía máy chủ mà tập trung vào trải nghiệm người dùng trên thiết bị.

II. Phân tích thách thức khi xây dựng App luyện thi TOEIC

Việc phát triển một ứng dụng giáo dục, đặc biệt là App luyện thi TOEIC, đối mặt với nhiều thách thức cả về kỹ thuật lẫn nội dung. Thách thức lớn nhất là làm thế nào để tạo ra một trải nghiệm người dùng (UX) hấp dẫn, giữ chân người học và thực sự mang lại hiệu quả. Người dùng các ứng dụng học tập thường dễ mất tập trung và động lực. Do đó, việc thiết kế một giao diện người dùng (UI) trực quan, đơn giản nhưng không nhàm chán là yếu tố sống còn. Một thách thức kỹ thuật quan trọng khác là quản lý và tổ chức ngân hàng câu hỏi TOEIC. Dữ liệu này bao gồm văn bản, hình ảnh và đặc biệt là các tệp âm thanh cho phần Listening, đòi hỏi một cấu trúc cơ sở dữ liệu cho ứng dụng di động được tối ưu hóa. Việc lựa chọn giữa Firebase, Realm database hay Core Data cần được cân nhắc kỹ lưỡng dựa trên yêu cầu về hiệu năng, khả năng làm việc ngoại tuyến và sự phức tạp của dữ liệu. Ngoài ra, việc mô phỏng chính xác cấu trúc đề thi TOEIC và thuật toán chấm điểm TOEIC tự động cũng là một bài toán phức tạp. Hệ thống cần tính điểm một cách chính xác dựa trên số câu trả lời đúng cho mỗi phần Nghe và Đọc, sau đó quy đổi ra thang điểm 990 theo tiêu chuẩn của ETS. Cuối cùng, việc đảm bảo ứng dụng hoạt động mượt mà trên nhiều thiết bị iOS khác nhau cũng là một yêu cầu không thể bỏ qua.

2.1. Yêu cầu về thiết kế UI UX cho ứng dụng giáo dục di động

Đối với một ứng dụng giáo dục, UI/UX không chỉ là về thẩm mỹ mà còn ảnh hưởng trực tiếp đến hiệu quả học tập. Một thiết kế tốt phải đảm bảo luồng sử dụng tự nhiên, giúp người dùng dễ dàng truy cập các chức năng như luyện tập, thi thử, xem lại kết quả. Các yếu tố như màu sắc, font chữ, bố cục phải được thiết kế hài hòa, tránh gây mỏi mắt khi sử dụng trong thời gian dài. Quá trình phân tích thiết kế hệ thống phải đặt người dùng làm trung tâm, nghiên cứu hành vi và nhu cầu của đối tượng sinh viên. Ví dụ, các nút bấm phải đủ lớn, các câu hỏi và câu trả lời phải được trình bày rõ ràng. Đặc biệt, phần thi nghe cần có giao diện điều khiển audio tiện lợi. Việc quản lý trạng thái trong SwiftUI (hoặc UIKit) cũng rất quan trọng để đảm bảo giao diện luôn phản ánh đúng dữ liệu, chẳng hạn như cập nhật tiến trình làm bài hoặc hiển thị câu trả lời đã chọn. Một UX tốt còn thể hiện ở các yếu tố tạo động lực như thông báo, phần thưởng ảo, hoặc biểu đồ thống kê trực quan, giúp người dùng cảm thấy hứng thú với quá trình học.

2.2. Khó khăn trong việc xây dựng ngân hàng câu hỏi TOEIC chất lượng

Chất lượng của một App luyện thi phụ thuộc rất lớn vào chất lượng của ngân hàng câu hỏi TOEIC. Việc xây dựng một bộ dữ liệu lớn, đa dạng, bám sát độ khó và định dạng của đề thi thật là một công việc tốn nhiều công sức. Các câu hỏi cần được phân loại rõ ràng theo 7 phần của bài thi TOEIC Listening and Reading. Đối với các câu hỏi nghe, tệp âm thanh phải có chất lượng tốt, giọng đọc đa dạng (Anh-Mỹ, Anh-Anh, Anh-Úc) tương tự bài thi thật. Một thách thức nữa là cấu trúc dữ liệu để lưu trữ. Như trong đề tài tham khảo, việc sử dụng Core Data yêu cầu thiết kế các thực thể (Entities) một cách hợp lý cho Category, Practice, Question, Answer... để đảm bảo các mối quan hệ và truy vấn dữ liệu hiệu quả. Việc cập nhật và mở rộng ngân hàng câu hỏi trong tương lai cũng cần được tính đến ngay từ giai đoạn thiết kế.

III. Phương pháp phân tích và thiết kế hệ thống App luyện thi

Để xây dựng một ứng dụng bền vững và dễ bảo trì, giai đoạn phân tích thiết kế hệ thống đóng vai trò nền tảng. Đề tài đã áp dụng phương pháp phân tích và thiết kế hướng đối tượng (OOAD), một cách tiếp cận hiện đại và hiệu quả cho các dự án phần mềm phức tạp. Việc sử dụng Ngôn ngữ Mô hình hóa Hợp nhất (UML) giúp trực quan hóa kiến trúc và hoạt động của hệ thống. Các sơ đồ UML như Sơ đồ ca sử dụng (Use Case Diagram), Sơ đồ lớp (Class Diagram), và Sơ đồ tuần tự (Sequence Diagram) được sử dụng để mô tả chi tiết các yêu cầu chức năng và phi chức năng, cũng như sự tương tác giữa các thành phần. Ví dụ, Sơ đồ ca sử dụng xác định rõ các tác nhân (người dùng) và các hành động họ có thể thực hiện, như "Luyện tập", "Luyện thi", "Xem thống kê". Về kiến trúc phần mềm, đề tài lựa chọn kiến trúc MVC (Model – View – Controller), một mẫu thiết kế kinh điển trong phát triển ứng dụng di động trên iOS. Kiến trúc này giúp tách biệt rõ ràng giữa logic nghiệp vụ (Model), giao diện hiển thị (View), và phần điều khiển luồng xử lý (Controller), từ đó giúp mã nguồn trở nên có tổ chức, dễ kiểm thử và tái sử dụng. Đây là một lựa chọn phù hợp, đặc biệt khi làm việc với UIKit, framework giao diện truyền thống của Apple.

3.1. Áp dụng mô hình MVC trong lập trình iOS cho App TOEIC

Mô hình kiến trúc MVC cho iOS là một lựa chọn chiến lược trong dự án này. Model chịu trách nhiệm quản lý dữ liệu và logic nghiệp vụ. Trong App luyện thi TOEIC, Model bao gồm các đối tượng đại diện cho câu hỏi, bài thi, kết quả người dùng và tương tác trực tiếp với Core Data để lấy hoặc lưu trữ dữ liệu. View là lớp giao diện, có nhiệm vụ hiển thị dữ liệu từ Model và nhận tương tác từ người dùng. Các thành phần như màn hình danh sách bài tập, màn hình làm bài thi, biểu đồ thống kê đều thuộc lớp View. Cuối cùng, Controller đóng vai trò trung gian, nhận yêu cầu từ View, xử lý chúng, yêu cầu Model cập nhật dữ liệu và sau đó cập nhật lại View. Ví dụ, khi người dùng chọn một câu trả lời (tương tác trên View), Controller sẽ nhận sự kiện này, cập nhật trạng thái trong Model, và ra lệnh cho View đánh dấu câu trả lời đó. Việc phân tách này giúp các lập trình viên có thể làm việc song song trên các thành phần khác nhau và đơn giản hóa quá trình gỡ lỗi.

3.2. Thiết kế cơ sở dữ liệu cho App với framework Core Data

Việc lựa chọn Core Data làm giải pháp lưu trữ dữ liệu cục bộ là một quyết định kỹ thuật quan trọng. Core Data không phải là một cơ sở dữ liệu, mà là một framework ORM (Object-Relational Mapping) của Apple. Nó cho phép lập trình viên làm việc với dữ liệu dưới dạng các đối tượng ngôn ngữ Swift thay vì viết các câu lệnh SQL. Trong báo cáo khoá luận, cấu trúc cơ sở dữ liệu được thiết kế chi tiết với các bảng (thực thể) như Category (danh mục các phần thi), Practice (bài luyện tập), Question (câu hỏi), Test (bài thi thử), và TestRecord (lịch sử làm bài). Các mối quan hệ (relationships) giữa các thực thể này được định nghĩa rõ ràng, ví dụ, một Practice có nhiều Question. Thiết kế này cho phép truy vấn dữ liệu một cách linh hoạt, chẳng hạn như lấy tất cả câu hỏi cho một bài luyện tập cụ thể hoặc tính toán điểm số dựa trên lịch sử làm bài. Sử dụng Core Data cũng giúp quản lý vòng đời của đối tượng và tối ưu hóa bộ nhớ, điều rất quan trọng đối với các ứng dụng di động.

IV. Công nghệ và quy trình phát triển App luyện thi TOEIC

Việc lựa chọn đúng công nghệ là yếu tố quyết định đến sự thành công của dự án phát triển ứng dụng di động. Khoá luận này đã sử dụng một bộ công cụ tiêu chuẩn và mạnh mẽ của Apple. Nền tảng chính là hệ điều hành iOS, môi trường phát triển tích hợp (IDE) là Xcode, và ngôn ngữ lập trình chính là ngôn ngữ Swift. Tại thời điểm thực hiện, dự án sử dụng Swift 3.1 và Xcode 8, thể hiện sự cập nhật với các công nghệ mới nhất của Apple. Swift là một ngôn ngữ hiện đại, an toàn và có hiệu năng cao, được thiết kế để việc lập trình iOS trở nên dễ dàng và hiệu quả hơn so với Objective-C. Quy trình phát triển tuân thủ theo một mô hình phát triển phần mềm linh hoạt, bao gồm các giai đoạn: phân tích yêu cầu, thiết kế, lập trình, kiểm thử ứng dụng (testing), và triển khai. Mỗi chức năng được phát triển theo từng module nhỏ, sau đó tích hợp và kiểm thử cẩn thận. Đặc biệt, việc thiết kế giao diện người dùng (UI)trải nghiệm người dùng (UX) được chú trọng ngay từ đầu, với mục tiêu tạo ra một ứng dụng thân thiện và dễ sử dụng cho đối tượng sinh viên. Các thư viện và framework của Apple như UIKit và Core Data được tận dụng tối đa để xây dựng ứng dụng.

4.1. Lựa chọn ngôn ngữ Swift và môi trường phát triển Xcode

Việc sử dụng ngôn ngữ SwiftXcode là lựa chọn tự nhiên và tối ưu cho việc phát triển ứng dụng di động trên nền tảng của Apple. Swift cung cấp cú pháp rõ ràng, ngắn gọn, giúp giảm thiểu lỗi và tăng tốc độ phát triển. Các tính năng như an toàn kiểu dữ liệu (type safety) và quản lý bộ nhớ tự động (ARC) giúp xây dựng các ứng dụng ổn định và ít gặp sự cố. Xcode không chỉ là một trình soạn thảo mã nguồn mà còn là một bộ công cụ toàn diện, tích hợp trình gỡ lỗi (debugger), trình thiết kế giao diện (Interface Builder), và trình giả lập (Simulator) để kiểm tra ứng dụng trên nhiều thiết bị ảo. Theo báo cáo, các tính năng của Xcode đã hỗ trợ đắc lực trong việc xây dựng giao diện, quản lý mô hình dữ liệu Core Data và gỡ lỗi trong suốt quá trình thực hiện đồ án tốt nghiệp công nghệ thông tin.

4.2. Quy trình kiểm thử ứng dụng và chuẩn bị đưa lên App Store

Trước khi một ứng dụng có thể đến tay người dùng cuối, giai đoạn kiểm thử ứng dụng (testing) là cực kỳ quan trọng. Quy trình này bao gồm kiểm thử đơn vị (unit testing) để xác minh từng thành phần nhỏ hoạt động đúng, và kiểm thử tích hợp (integration testing) để đảm bảo các module phối hợp với nhau một cách chính xác. Các trường hợp sử dụng chính như làm bài thi, nộp bài, xem đáp án, và tính năng chấm điểm TOEIC tự động đều được kiểm tra kỹ lưỡng. Sau khi ứng dụng đã ổn định, bước tiếp theo là chuẩn bị để đưa ứng dụng lên App Store. Quá trình này bao gồm việc tạo tài khoản nhà phát triển Apple, chuẩn bị các tài sản đồ họa (icon, screenshot), viết mô tả ứng dụng hấp dẫn và tuân thủ các nguyên tắc xét duyệt của Apple. Công cụ App Store Connect được sử dụng để quản lý quá trình tải lên, gửi ứng dụng để xét duyệt và theo dõi hiệu suất sau khi phát hành. Đây là một bước quan trọng để biến một báo cáo khoá luận thành một sản phẩm thực tế.

V. Kết quả đạt được và các chức năng chính của App TOEIC

Sản phẩm cuối cùng của khoá luận là một ứng dụng luyện thi TOEIC hoàn chỉnh trên nền tảng iOS, đáp ứng đầy đủ các mục tiêu và yêu cầu đã đề ra. Ứng dụng cung cấp một môi trường học tập toàn diện, cho phép người dùng ôn luyện hai kỹ năng quan trọng nhất là Nghe và Đọc. Giao diện được thiết kế trực quan, thân thiện, giúp người dùng dễ dàng điều hướng và sử dụng các tính năng. Chức năng cốt lõi của ứng dụng được chia thành hai phần chính: Luyện tập (Practice) và Luyện thi (Test). Phần Luyện tập cho phép người dùng ôn luyện theo từng phần cụ thể trong cấu trúc đề thi TOEIC, từ Part 1 (Photographs) đến Part 7 (Reading Comprehension). Phần Luyện thi mô phỏng một bài thi thật với số lượng câu hỏi và thời gian giới hạn, giúp người dùng làm quen với áp lực phòng thi. Một trong những thành công lớn của dự án là tính năng chấm điểm TOEIC tự động. Sau khi hoàn thành bài thi, hệ thống sẽ trả về điểm số ước tính dựa trên thang điểm chuẩn, cùng với bảng đáp án chi tiết và giải thích (nếu có). Ngoài ra, ứng dụng còn tích hợp các tính năng hỗ trợ học tập khác như thống kê kết quả theo thời gian và đánh giá cấp độ người dùng để mở khóa các bài thi mới, tạo thêm động lực cho quá trình ôn luyện.

5.1. Giao diện và trải nghiệm người dùng thực tế của ứng dụng

Thành công của một ứng dụng không chỉ nằm ở tính năng mà còn ở giao diện người dùng (UI)trải nghiệm người dùng (UX). Dựa trên các hình ảnh minh họa trong báo cáo khoá luận, ứng dụng có giao diện sạch sẽ, màu sắc hài hòa và bố cục rõ ràng. Màn hình chính (Menu) được thiết kế đơn giản với các nút chức năng lớn, dễ nhận biết. Khi vào phần luyện tập hoặc thi, giao diện hiển thị câu hỏi, hình ảnh và các lựa chọn được tối ưu hóa cho màn hình điện thoại, đảm bảo khả năng đọc tốt. Phần thi nghe có trình phát âm thanh tích hợp, cho phép người dùng nghe lại nếu cần. Các yếu tố tương tác như chọn đáp án, chuyển câu hỏi, nộp bài đều được xử lý mượt mà, phản hồi nhanh chóng. Trải nghiệm người dùng được nâng cao nhờ luồng điều hướng logic, giúp người dùng không bị rối khi chuyển đổi giữa các chức năng.

5.2. Chức năng thống kê và đánh giá cấp độ người dùng

Để hỗ trợ người dùng theo dõi tiến trình học tập, ứng dụng tích hợp chức năng thống kê mạnh mẽ. Hệ thống lưu lại lịch sử làm bài luyện tập và luyện thi, sau đó trực quan hóa dữ liệu bằng biểu đồ. Người dùng có thể xem được điểm số của mình qua các lần làm bài, cũng như tần suất luyện tập theo tháng. Tính năng này giúp người dùng tự đánh giá được điểm mạnh, điểm yếu của bản thân để có kế hoạch ôn tập phù hợp. Bên cạnh đó, cơ chế "đánh giá cấp độ" (Level) là một yếu tố game hóa (gamification) thú vị. Bằng cách hoàn thành các bài luyện tập, người dùng sẽ tích lũy kinh nghiệm và tăng cấp. Việc mở khóa các bài thi mới khi đạt cấp độ cao hơn không chỉ cung cấp thêm tài liệu học tập mà còn tạo ra cảm giác thành tựu, khuyến khích người dùng duy trì thói quen ôn luyện đều đặn. Đây là một phương pháp hiệu quả để cải thiện trải nghiệm người dùng (UX) trong các ứng dụng giáo dục.

04/10/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Phân tích thiết kế hệ thống Để xây dựng một hệ thống luyện tập và luyện thi thành công và đạt yêu cầu, cần tiến hành phân tích thiết kế hệ thống. Đây là bước quyết định đến tính thành công, bền vững của dự án với các ưu điểm như: • Có một cái nhìn đầy đủ, đúng đắn và chính xác về hệ thống thông tin được xây dựng trong tương lai. • Tránh sai lầm trong thiết kế và cài đặt. • Tăng vòng đời (life cycle) hệ thống • Dễ sửa chữa, bổ sung và phát triển hệ thống trong quá trình sử dụng hoặc khi hệ thống yêu cầu 1.2 Phân tích thiết kế hệ thống hướng đối tượng 1.1 Khái niệm về phân tích thiết kế hướng đối tượng (OOAD – Object Oriented Analysis and Design) Khác với phương pháp hướng cấu trúc chỉ tập trung hoặc vào dữ liệu hoặc vào hành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành động.

Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực. Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó. Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng. Các nguyên tắc cơ bản của phương pháp hướng đối tượng bao gồm: • Trừu tượng hóa (Abstraction): Trong phương pháp hướng đối tượng, các thực thể phần mềm được mô hình hóa dưới dạng các đối Phan Vũ Huy – 13CNTT GVHD: ThS.

Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 5 tượng. Các đối tượng này được trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp. Các lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ các lớp được kế thừa lẫn nhau. • Tính đóng gói (Encapsulation) và ẩn dấu thông tin: Các đối tượng có thể có những phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng khác không thể sử dụng được.

Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt của các đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với nhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng cũng như các hệ thống khác sử dụng kết quả của nó. • Tính mô-đun hóa (Modularity): Các bài toán sẽ được phân chia thành những vấn đề nhỏ hơn, đơn giản và quản lý được. • Tính phân cấp (Hierarchy): Cấu trúc chung của một hệ thống hướng đối tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp. Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được các vấn đề nảy sinh với phương pháp hướng cấu trúc: • Hỗ trợ sử dụng lại mã nguồn: Chương trình lập trình theo phương pháp hướng đối tượng thường được chia thành các gói là các nhóm của các lớp đối tượng khác nhau.

Các gói này hoạt động tương đối độc lập và hoàn toàn có thể sử dụng lại trong các hệ thống thông tin tương tự. • Phù hợp với các hệ thống lớn: Phương pháp hướng đối tượng không chia bài toán thành các bài toán nhỏ mà tập trung vào việc xác định các đối tượng, dữ liệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. Các đối tượng hoạt động độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ các đối tượng khác. Phan Vũ Huy – 13CNTT GVHD: ThS.

Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 6 Các khái niệm cơ bản của hướng đối tượng: • Đối tượng (object): Một đối tượng biểu diễn một thực thể vật lý, một thực thể khái niệm hoặc một thực thể phần mềm. Có thể định nghĩa một đối tượng là một khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể. • Lớp (Class): Là mô tả của một nhóm đối tượng có chung các thuộc tính, hành vi và các mối quan hệ. Như vậy, một đối tượng là thể hiện của một lớp và một lớp là một định nghĩa trừu tượng của đối tượng.

• Thành phần (Component): Là một phần của hệ thống hoạt động độc lập và giữ một chức năng nhất định trong hệ thống. • 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 (Inheritance): 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 toán thực tế. Vòng đời phát triển phần mềm hướng đối tượng cũng có các pha tương tự như các vòng đời phát triển phần mềm nói chung. Các pha cơ bản đặc trưng trong phát triển phần mềm hướng đối tượng bao gồm: • Phân tích hướng đối tượng: Xây dựng một mô hình chính xác để mô tả hệ thống cần xây dựng là gì. Thành phần của mô hình này là các đối tượng gắn với hệ thống thực.

• Thiết kế hướng đối tượng: Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp. Kết quả của pha thiết kế cho biết hệ thống sẽ được xây dựng như thế nào qua các bản thiết kế kiến trúc và thiết kế chi tiết. Phan Vũ Huy – 13CNTT GVHD: ThS. Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 7 • Lập trình và tích hợp: Thực hiện bản thiết kế bằng cách sử dụng các ngôn ngữ lập trình hướng đối tượng (C++, Java, …).2 Khái niệm về ngôn ngữ mô hình hoá hợp nhất (UML) UML là ngôn ngữ mô hình hóa hợp nhất dùng để biểu diễn hệ thống.

Nói một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống. Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng để thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư v. (Giống như trong xây dựng người ta dùng các bản vẽ thiết kế để hướng dẫn và kiểm soát thi công, bán hàng căn hộ v.3 Phân tích thiết kế hướng đối tượng sử dụng UML OOAD sử dụng UML bao gồm các thành phần sau: • Góc nhìn (View): Việc sử dụng nhiều góc nhìn (View) trong phân tích thiết kế sẽ giúp cho phân tích viên nắm rõ được hệ thống ở nhiều khía cạnh. OOAD sử dụng UML có các góc nhìn sau: o Use Case View: Cung cấp góc nhìn về các cách sử dụng giúp chúng ta hiểu hệ thống có gì? Ai dùng và dùng nó như thế nào.

o Logical View: Cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào. o Process View: Cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào. o Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu cách phân bổ và sử dụng lại các thành phần trong hệ thống ra sao. o Deployment View: Cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh hưởng lớn đến kiến trúc hệ thống.

Phan Vũ Huy – 13CNTT GVHD: ThS. Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 8 • Bản vẽ (Diagram): Diagram các bạn có thể dịch là sơ đồ. Tuy nhiên ở đây chúng ta sử dụng từ bản vẽ cho dễ hình dung. Các bản vẽ được dùng để thể hiện các góc nhìn của hệ thống.

Trong đó: o Use Case Diagram: Bản vẽ mô tả về ca sử dụng của hệ thống. Bản vẽ này sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì. Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng. o Class Diagram: Bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống được cấu tạo từ những thành phần nào.

Nó mô tả khía cạnh tĩnh của hệ thống. o Object Diagram: Tương tự như Class Diagram nhưng nó mô tả đến đối tượng thay vì lớp (Class). o Sequence Diagarm: Là bản vẽ mô tả sự tương tác của các đối tượng trong hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian. o Collaboration Diagram: Tương tự như sequence Diagram nhưng nhấn mạnh về sự tương tác thay vì tuần tự theo thời gian.

o State Diagram: Bản vẽ mô tả sự thay đổi trạng thái của một đối tượng. Nó được dùng để theo dõi các đối tượng có trạng thái thay đổi nhiều trong hệ thống. o Activity Diagram: Bản vẽ mô tả các hoạt động của đối tượng, thường được sử dụng để hiểu về nghiệp vụ của hệ thống. o Component Diagram: Bản vẽ mô tả về việc bố trí các thành phần của hệ thống cũng như việc sử dụng các thành phần đó.

o Deployment Diagram: Bản vẽ mô tả việc triển khai của hệ thống như việc kết nối, cài đặt, hiệu năng của hệ thống v.v… Phan Vũ Huy – 13CNTT GVHD: ThS. Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 9 • Ký hiệu (Notations) • Quy tắc, cơ chế (Mechanisms): Là các qui tắc để lập nên bản vẽ, mỗi bản vẽ có qui tắc riêng và phân tích viên phải nắm được để tạo nên các bản vẽ thiết kế đúng.3 Nền tảng kĩ thuật 1.1 Mô hình MVC (Model - View - Controller) Hình 1.1: Mô hình MVC Giới thiệu mô hình MVC: • MVC là chữ viết tắt của Model – View – Controller, đây là bộ ba chứa các lớp được giới thiệu lần đầu tiên bởi Krasner và Pope vào năm 1988, được sử dụng để xây dựng giao diện người dùng trong Smalltalk-80. • MVC bao gồm 3 loại đối tượng. Model là đối tượng ứng dụng, View là đối tượng biểu diễn màn hình và đối tượng Controller định nghĩa các phản hồi từ khi người sử dụng tương tác với giao diện người sử dụng.

Mô hinh MVC tách các thành phần này ra để tăng tính linh hoạt và dễ sử dụng. Phan Vũ Huy – 13CNTT GVHD: ThS. Phạm Dương Thu Hằng Báo cáo khoá luận tốt nghiệp 10 • MVC tách các View và Model bằng cách thiết lập một giao thức đăng ký/thông báo giữa chúng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ