Tổng quan về giáo trình

Tài liệu học tập học phần Phân Tích và Thiết Kế Hệ Thống Thông Tin (Information System Analysis & Design) được biên soạn phục vụ chương trình đào tạo bậc đại học khối ngành Công nghệ thông tin và Kỹ thuật phần mềm tại Học viện Công nghệ Bưu chính Viễn thông (do Viện Kinh tế Bưu điện và các bộ môn chuyên ngành trực tiếp quản lý chuyên môn). Học phần giữ vị trí bản lề trong khối kiến thức cơ sở ngành và chuyên ngành, đóng vai trò cầu nối trung gian giữa giai đoạn tiếp nhận bài toán thực tế và giai đoạn lập trình, kiểm thử phần mềm.

Mục tiêu học tập của giáo trình hướng tới việc trang bị cho người học năng lực thực hiện đầy đủ quy trình kỹ thuật yêu cầu phần mềm (Requirements Engineering), phương pháp mô hình hóa dữ liệu và hành vi hệ thống, cùng kỹ năng phân tích nghiệp vụ (Business Analysis). Người học được trang bị phương pháp luận để xác định ranh giới bài toán, phân tích tính khả thi, quản lý thuộc tính chất lượng phi chức năng và lựa chọn tiến trình phát triển phần mềm phù hợp giữa mô hình tuyến tính (Waterfall) và các khung làm việc lặp linh hoạt (Agile).

Cấu trúc giáo trình được thiết kế theo cách tiếp cận hệ thống: bắt đầu từ khung lý thuyết 4 pha của tiến trình phát triển yêu cầu, tiến tới phân định năng lực - vai trò của chuyên viên phân tích nghiệp vụ, phân tích so sánh các tiến trình phát triển phần mềm, phân loại hệ thống biểu đồ mô hình hóa trực quan theo chuẩn UML 2.5 và phi UML, chuẩn hóa các thuộc tính chất lượng (NFR), cuối cùng là các ca khảo sát thực tế như Hệ thống Quản lý Thư viện (LibMaS). Điểm đặc thù của giáo trình là tính kết hợp chặt chẽ giữa các tiêu chuẩn quốc tế (như khung năng lực IIBA 2011, chuẩn UML 2.5) với các ví dụ thực hành phân tích chi tiết.


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

Nội dung học thuật của giáo trình tập trung vào các nhóm chủ đề trọng tâm sau:

  1. Khung phát triển yêu cầu phần mềm (Requirements Engineering Framework): Trình bày tiến trình 4 pha mang tính lặp đi lặp lại:

    • Thu thập yêu cầu (Requirements Elicitation): Xác định tầm nhìn và phạm vi dự án; phân loại và lựa chọn đại diện lớp người dùng; tổ chức các cuộc họp tập trung (focus groups), phỏng vấn cá nhân/nhóm nhỏ; quan sát người dùng thao tác thực tế; phân phát bảng câu hỏi khảo sát; phân tích tài liệu hiện hành; kiểm tra báo cáo lỗi hệ thống cũ và tái sử dụng các yêu cầu sẵn có.
    • Phân tích yêu cầu (Requirements Analysis): Phân rã yêu cầu cấp cao; mô hình hóa môi trường qua biểu đồ ngữ cảnh (Context Diagram) và bản đồ hệ sinh thái; xây dựng mẫu thử nghiệm giao diện (UI Prototype) và thử nghiệm kỹ thuật; đánh giá tính khả thi về chi phí - hiệu năng; ưu tiên hóa yêu cầu; xây dựng từ điển dữ liệu (Data Dictionary); phân tích giao diện kết nối bên ngoài và phân bổ yêu cầu cho các hệ thống con.
    • Đặc tả yêu cầu (Requirements Specification): Thiết lập tài liệu đặc tả yêu cầu phần mềm (SRS); ứng dụng biểu mẫu chuẩn; thiết lập mã định danh duy nhất; truy xuất nguồn gốc yêu cầu (traceability); tài liệu hóa quy tắc kinh doanh (business rules) và các yêu cầu phi chức năng (NFR).
    • Xác minh yêu cầu (Requirements Validation): Thẩm định yêu cầu qua kỹ thuật kiểm tra đồng đẳng (peer review) và kiểm tra chính thức (inspection); xây dựng bộ kiểm tra chấp nhận (acceptance criteria); mô phỏng hệ thống giải lập để khách hàng kiểm thử thực nghiệm.
  2. Vai trò và năng lực của Chuyên viên Phân tích Nghiệp vụ (Business Analyst - BA):

    • Định vị vai trò trung tâm của BA trong mối tương tác đa chiều với các bên liên quan: Nhà tài trợ dự án (Project Sponsor), Quản lý dự án (Project Management), Nhóm phát triển (Development), Đại diện người dùng (Users Representatives), Nhóm kiểm thử (Testing) và các bên liên quan khác (Other Stakeholders).
    • Khảo sát các lộ trình chuyển đổi nghề nghiệp sang BA từ các vị trí: Người dùng nghiệp vụ trước đây, Lập trình viên, Người kiểm thử (Tester), Quản lý dự án (Project Manager), Chuyên gia lĩnh vực chuyên môn (Subject Matter Expert - SME theo Young 2001) và Người mới tốt nghiệp.
  3. Tiến trình phát triển phần mềm Waterfall và Agile:

    • Mô hình Thác nước (Waterfall): Phân tích trình tự 6 pha tuần tự: Phân tích yêu cầu, Thiết kế hệ thống, Thực hiện (mã hóa), Kiểm thử hệ thống (QA/Tester, kiểm thử chức năng và phi chức năng), Triển khai hệ thống, Bảo trì hệ thống.
    • Các phương pháp Agile: Phân tích 6 bước triển khai (Lập kế hoạch dự án, Thiết lập lộ trình sản phẩm, Kế hoạch phát hành, Kế hoạch từng Sprint, Họp đánh giá hàng ngày, Họp đánh giá Sprint). Trình bày chi tiết các khung phương pháp: Scrum (3 vai trò: Scrum Master, Product Owner, Scrum Team; các tạo phẩm: Product Backlog, Sprint Backlog; quy trình Sprint); Extreme Programming - XP (chu kỳ lặp 14 ngày, 6 giai đoạn: Planning, Analysis, Design, Coding, Wrapping, Closure, công cụ Story Cardboard/Online Storyboard); Crystal Methodologies (Chartering, Cyclic delivery, Wrap Up); DSDM (tiếp cận RAD, tạo prototype qua 7 giai đoạn); Feature Driven Development - FDD (phát triển theo tính năng); Lean Software Development (nguyên tắc sản xuất đúng lúc, 7 bước tối ưu); Kanban (quản lý trực quan với các cột To Do, Doing, Done và nguyên tắc giới hạn công việc đang thực hiện - WIP limit).
    • Vai trò của BA trong Agile: Hợp tác cùng Product Owner, xác định mức độ tài liệu hóa vừa đủ (lightweight requirements theo Gottesdiener 2009), hỗ trợ phân loại thẻ Story, thương lượng ưu tiên và hướng tới kết quả đôi bên cùng có lợi (win-win-win).
  4. Kỹ thuật mô hình hóa yêu cầu phần mềm và Chuẩn UML 2.5:

    • Mô hình cấu trúc và phi UML: Sơ đồ dòng dữ liệu (Data Flow Diagrams - DFD gồm Process, Data Flow, Data Store, External Entity); Sơ đồ luồng quy trình làn bơi (Swimlane Process Flow); Sơ đồ chuyển trạng thái (State-Transition Diagrams - STD) và Bảng trạng thái; Bản đồ đối thoại (Dialog Maps); Bảng quyết định và Cây quyết định (Decision Tables/Trees); Bảng phản ứng sự kiện (Event-Response Tables); Cây tính năng (Feature Trees); Sơ đồ quan hệ thực thể (Entity-Relationship Diagrams - ERD).
    • Hệ thống biểu đồ UML 2.5: Phân định hai nhánh chính:
      • Sơ đồ cấu trúc (Structure Diagrams): Sơ đồ lớp (Class Diagram), Sơ đồ thành phần (Component Diagram), Sơ đồ triển khai (Deployment Diagram - cấp đặc tả và cấp phiên bản), Sơ đồ biểu hiện (Manifestation Diagram), Sơ đồ kiến trúc mạng (Network Architecture Diagram), Sơ đồ hồ sơ (Profile Diagram).
      • Sơ đồ hành vi (Behavior Diagrams): Sơ đồ ca sử dụng (Use Case Diagram), Sơ đồ hoạt động (Activity Diagram), Sơ đồ máy trạng thái (State Machine Diagram), Sơ đồ tương tác (Interaction Diagrams gồm: Sơ đồ trình tự - Sequence Diagram, Sơ đồ giao tiếp - Communication Diagram, Sơ đồ thời gian - Timing Diagram, Sơ đồ tổng quan tương tác - Interaction Overview Diagram).
  5. Phân loại và xác định thuộc tính chất lượng phần mềm (Quality Attributes / NFR):

    • Chất lượng bên ngoài (External Quality): Tính sẵn có (Availability - định lượng qua tỷ lệ thời gian hoạt động dựa trên MTBF và MTTR), Tính cài đặt được (Installability), Tính toàn vẹn (Integrity), Tính tương tác (Interoperability), Hiệu suất (Performance), Độ tin cậy (Reliability), Độ chắc chắn (Robustness), Tính an toàn (Safety), Tính bảo mật (Security), Tính khả dụng (Usability).
    • Chất lượng bên trong (Internal Quality): Tính hiệu quả (Efficiency), Tính sửa đổi được (Modifiability), Tính di động (Portability), Tính tái sử dụng (Reusability), Tính mở rộng (Scalability), Tính kiểm chứng được (Verifiability / Testability).
    • Quy trình 5 bước xác định thuộc tính chất lượng theo Jim Brosseau (2010): Bắt đầu với phân loại tổng quát -> Giảm danh sách -> Ưu tiên các thuộc tính -> Đưa ra kỳ vọng cụ thể -> Đặc tả các yêu cầu chất lượng có cấu trúc.
  6. Phân tích ca hệ thống điển hình (Case Studies):

    • Khảo sát Hệ thống Quản lý Thư viện (LibMaS): Phân tích mục đích, phạm vi nghiệp vụ cho ba nhóm tác nhân (Thủ thư, Độc giả, Quản trị viên), luồng hoạt động các chức năng chính, cấu trúc thuộc tính dữ liệu đối tượng và quan hệ liên kết thực thể;
    • Hệ thống Thương mại điện tử (EcoMaS) và Hệ thống Đăng ký tín chỉ đại học (RegMaS).

Kiến thức nền tảng được xây dựng

Giáo trình cung cấp cơ sở lý thuyết có cấu trúc cho người học qua các nguyên lý:

  • Nguyên lý lặp của kỹ thuật yêu cầu: Phát triển yêu cầu không phải là tiến trình một chiều mà là quá trình lặp để tinh chỉnh chi tiết và phát hiện lỗi sớm.
  • Tính đối sánh văn bản - trực quan: Khẳng định mô hình trực quan không thay thế hoàn toàn văn bản mô tả mà đóng vai trò hỗ trợ giải quyết sự mơ hồ và giới hạn của ngôn ngữ tự nhiên trong các tài liệu SRS.
  • Mô hình định lượng hóa độ đo chất lượng: Cơ sở tính toán chỉ số sẵn sàng của hệ thống dựa trên mối quan hệ giữa Thời gian trung bình giữa các lần lỗi (Mean Time Between Failures - MTBF) và Thời gian sửa chữa trung bình (Mean Time To Repair - MTTR).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Kỹ năng xây dựng biểu đồ DFD, ERD; thành thạo các sơ đồ UML 2.5 (Use Case, Activity, Sequence, Class, Component, Deployment); kỹ năng lập từ điển dữ liệu và soạn thảo tài liệu đặc tả SRS.
  • Kỹ năng phân tích (Analytical Skills): Tư duy hệ thống; khả năng phân rã và trừu tượng hóa vấn đề; kỹ năng đánh giá tính khả thi kỹ thuật - chi phí; kỹ năng phân biệt giữa mong muốn chủ quan (wants) và nhu cầu thực sự (needs).
  • Kỹ năng mềm và thực hành (Practical Competencies): Kỹ năng phỏng vấn và đặt câu hỏi chuyên sâu (theo Gause & Weinberg 1989); lắng nghe tích cực; điều phối hội thảo khơi gợi yêu cầu; thiết lập kiến trúc thông tin (theo Beatty & Chen 2012); quản lý xung đột quyền lợi giữa các nhóm bên liên quan.

Phương pháp giảng dạy và học tập

Giáo trình định hình phương pháp sư phạm kết hợp giữa truyền thụ cơ sở lý thuyết phân tích cấu trúc cổ điển, phương pháp hướng đối tượng tiêu chuẩn và các mô hình quản lý dự án linh hoạt đương đại. Cách tiếp cận này giúp sinh viên không bị bó hẹp trong một mô hình phát triển duy nhất.

Về phương pháp thực hành, giáo trình tích hợp các bài tập phân tích tình huống thực tế (case studies). Cụ thể, sinh viên được giao nhiệm vụ khảo sát chi tiết các hệ thống ứng dụng cụ thể như Hệ thống Quản lý Thư viện (LibMaS), Hệ thống Thương mại điện tử (EcoMaS) và Hệ thống Đăng ký học theo tín chỉ (RegMaS). Qua đó, sinh viên phải trực tiếp:

  • Viết mô tả bài toán bằng ngôn ngữ tự nhiên và thiết lập biểu đồ ngữ cảnh (Context Diagram);
  • Nhận diện và phân loại các tác nhân chính (Primary Actor) và tác nhân phụ (Secondary Actor);
  • Mô hình hóa luồng nghiệp vụ chi tiết của từng tác nhân;
  • Định nghĩa danh mục thuộc tính dữ liệu và thiết lập quan hệ liên kết giữa các thực thể.

Phương pháp đánh giá học phần được thiết kế đa thành phần:

  • Đánh giá quá trình: Thông qua các bài tập cá nhân (như Bài tập 1 về 4 pha kỹ thuật yêu cầu, so sánh các mô hình Agile/Waterfall, phân loại NFR) và các bài kiểm tra thực hành lập sơ đồ UML;
  • Đánh giá bài tập lớn theo nhóm: Triển khai phân tích và thiết kế hoàn chỉnh một hệ thống thông tin theo đề tài chỉ định (thực hiện theo nhóm từ 7-9 sinh viên, mô phỏng cấu trúc nhóm Scrum/Agile);
  • Đánh giá tự học: Sinh viên được hướng dẫn nghiên cứu độc lập thông qua việc đối chiếu tài liệu học phần với các chuẩn nghề nghiệp quốc tế (như khung năng lực BABOK của IIBA 2011) và các nghiên cứu chuyên khảo của các tác giả được trích dẫn trong bài giảng (Beatty & Chen 2012, Cohn 2010, Gottesdiener 2009, Jim Brosseau 2010).

Điểm nổi bật và cập nhật

  1. Chuẩn hóa hệ thống sơ đồ theo đặc tả UML 2.5: Giáo trình phân định rành mạch giữa nhóm sơ đồ cấu trúc (Structure Diagrams) và nhóm sơ đồ hành vi (Behavior Diagrams). Đặc biệt, giáo trình chỉ rõ sự khác biệt giữa các phiên bản UML (ví dụ: cách triển khai trực tiếp các thành phần lên nút trong UML 1.x so với việc triển khai thông qua các tạo phẩm - artifacts trong UML 2.x; đồng thời làm rõ các sơ đồ mở rộng thực tế như sơ đồ biểu hiện - Manifestation Diagram hay sơ đồ kiến trúc mạng - Network Architecture Diagram).

  2. Cập nhật toàn diện các phương pháp phát triển phần mềm Agile: Không chỉ dừng lại ở mô hình Thác nước truyền thống, tài liệu cập nhật và đối sánh chi tiết 7 khung phương pháp Agile phổ biến trong công nghiệp phần mềm:

    • Scrum: Cơ chế vận hành Sprint, Product Backlog, Sprint Backlog và phân định 3 vai trò nòng cốt.
    • Extreme Programming (XP): 6 giai đoạn phát triển theo chu kỳ ngắn 14 ngày, cơ chế quản lý yêu cầu qua "parking lot" và kỹ thuật bảng Story Cardboard/Online Storyboard.
    • Kanban: Phương pháp trực quan hóa luồng công việc qua các trạng thái To Do - Doing - Done và nguyên tắc áp đặt giới hạn công việc đang xử lý (WIP limit).
    • Các phương pháp khác: Crystal Methodologies, DSDM (tiếp cận RAD), Feature Driven Development (FDD), Lean Software Development (tối ưu hóa lãng phí theo nguyên tắc Just-In-Time).
  3. Khung định lượng và quy trình 5 bước đánh giá NFR: Tài liệu không dừng lại ở việc liệt kê định tính mà xây dựng bảng phân loại 16 thuộc tính chất lượng (10 thuộc tính bên ngoài và 6 thuộc tính bên trong), gắn liền với công thức tính toán khả năng sẵn sàng ($Availability = \frac{MTBF}{MTBF + MTTR}$) và quy trình 5 bước chuẩn mực của Jim Brosseau (2010) để biến đổi các kỳ vọng phi chức năng trừu tượng thành các tiêu chí kỹ thuật kiểm chứng được.


Đối tượng sử dụng giáo trình

  • Sinh viên đại học chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin: Phù hợp cho sinh viên từ năm thứ 3 trở đi (đã hoàn thành các học phần nền tảng về Lập trình hướng đối tượng, Cơ sở dữ liệu, Nhập môn Công nghệ phần mềm).
  • Học viên cao học: Sử dụng làm tài liệu hệ thống hóa khung lý thuyết kỹ thuật yêu cầu và mô hình hóa hệ thống phục vụ cho các đề tài nghiên cứu hoặc luận văn thạc sĩ ứng dụng.
  • Giảng viên: Sử dụng làm đề cương chuẩn và tài liệu tham khảo chính để biên soạn bài giảng, thiết kế đề bài tập lớn, bài tập thực hành trên lớp và xây dựng tiêu chí đánh giá cho học phần Phân tích Thiết kế Hệ thống Thông tin.
  • Chuyên viên phân tích nghiệp vụ (BA), Quản lý sản phẩm (PO/PM), Kỹ sư phần mềm: Tài liệu cung cấp cơ sở lý luận, hệ thống thuật ngữ chuẩn xác và các kỹ thuật thực hành giúp chuẩn hóa kỹ năng thu thập, lập mô hình và quản lý yêu cầu trong môi trường dự án thực tế.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu được biên soạn phục vụ trực tiếp cho sinh viên đại học ngành Công nghệ phần mềm, Công nghệ thông tin và Hệ thống thông tin thuộc Học viện Công nghệ Bưu chính Viễn thông và các trường đại học khối kỹ thuật. Ngoài ra, tài liệu phù hợp cho các lập trình viên, kiểm thử viên hoặc nhân sự nghiệp vụ đang có định hướng chuyển dịch chuyên môn sang vai trò Chuyên viên Phân tích Nghiệp vụ (Business Analyst).

2. Cần kiến thức nền nào để học?

Người học cần trang bị kiến thức nền tảng về:

  • Cơ sở dữ liệu quan hệ (để hiểu và xây dựng sơ đồ ERD, từ điển dữ liệu);
  • Lập trình hướng đối tượng (để tiếp cận các khái niệm về lớp, đối tượng, quan hệ kế thừa/kết tập trong sơ đồ UML);
  • Khái niệm cơ bản về vòng đời phát triển phần mềm (SDLC).

3. Điểm khác biệt với giáo trình khác?

Tài liệu có sự cân bằng chặt chẽ giữa 3 mảng kiến thức: Kỹ thuật yêu cầu học thuật (với 4 pha Elicitation, Analysis, Specification, Validation), Mô hình hóa hệ thống trực quan (chuẩn UML 2.5 và phi UML) và Khung năng lực thực tế của vị trí Business Analyst theo chuẩn IIBA (2011). Nội dung cũng bao quát đa dạng các phương pháp Agile (Scrum, XP, Kanban, Lean, DSDM, FDD, Crystal) thay vì chỉ trình bày mô hình Thác nước hoặc Scrum cơ bản.

4. Làm sao để tự học hiệu quả?

Người học nên kết hợp học lý thuyết song song với việc giải quyết ca nghiên cứu thực tế:

  • Đọc kỹ lý thuyết từng pha trong khung phát triển yêu cầu;
  • Thực hành vẽ lại các sơ đồ trực quan (DFD, Use Case, Activity, Sequence, Class) cho hệ thống mẫu LibMaS (Quản lý thư viện);
  • Áp dụng quy trình 5 bước của Jim Brosseau để tự xây dựng bảng chỉ số NFR cho một bài toán cụ thể;
  • Tham khảo thêm tài liệu BABOK và các ấn phẩm chuyên khảo được trích dẫn để mở rộng kiến thức.

5. Có tài liệu bổ trợ nào kèm theo?

Tài liệu tích hợp các danh mục tham khảo học thuật chuẩn mực, bao gồm:

  • Khung năng lực phân tích nghiệp vụ của Viện Quốc tế về Phân tích Kinh doanh (IIBA 2011);
  • Kỹ thuật phỏng vấn và khơi gợi yêu cầu của Gause và Weinberg (1989);
  • Phương pháp trực quan hóa yêu cầu của Beatty và Chen (2012);
  • Hướng dẫn điều chỉnh phân tích yêu cầu trong môi trường Agile của Ellen Gottesdiener (2009) và Mike Cohn (2010);
  • Khung quản lý thuộc tính chất lượng của Jim Brosseau (2010).

Kết luận

Tài liệu học tập Phân Tích và Thiết Kế Hệ Thống Thông Tin cung cấp hệ thống tri thức hoàn chỉnh và chuẩn mực về kỹ thuật yêu cầu phần mềm, phương pháp mô hình hóa trực quan và quản trị dự án theo cả hai trường phái Thác nước và Agile.

Lộ trình tiếp cận kiến thức được định hình rõ ràng: đi từ việc nắm vững 4 pha của khung phát triển yêu cầu (Elicitation -> Analysis -> Specification -> Validation), làm chủ hệ thống biểu đồ phân tích (DFD, ERD, UML 2.5), phân loại và định lượng các thuộc tính chất lượng NFR, đến việc ứng dụng trực tiếp vào phân tích các hệ thống thực tế như LibMaS, EcoMaS và RegMaS. Đây là tài liệu học thuật nền tảng hỗ trợ sinh viên và người làm nghề xây dựng tư duy kỹ thuật hệ thống và năng lực phân tích nghiệp vụ phần mềm chuyên nghiệp.