Ôn tập Lý thuyết Phân tích Thiết kế Hệ thống thông tin

Câu 1: Hãy trình bày quy trình chi tiết phát triển hệ thống thông tin (Software Life Development Cycle). Theo các bạn, trong quy trình phát triển hệ thống, giai đoạn nào là quan trọng nhất? Tại sao?

Quy trình phát triển hệ thống thông tin trải qua 7 giai đoạn:
- Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là Feasibility Study): Khảo sát sơ bộ, tìm hiểu các yếu tố cơ bản;
- Phân tích yêu cầu (Analysis): Khảo sát chi tiết, thu thập các thông tin và làm rõ yêu cầu, mong muốn của khách hàng;
- Thiết kế hệ thống (Design of the System): Thiết kế hệ thống đã khuyến nghị. Thiết kế CSDL, thiết kế truy vấn, thủ tục, hàm, giao diện chương trình, chức năng,...
- Xây dựng phần mềm (Software Construction): Xây dựng hệ thống theo thiết kế đã xác định (lựa chọn hệ quản trị CSDL, công cụ lập trình, xây dựng giao diện, viết tài liệu hướng dẫn sử dụng, tài liệu kỹ thuật)
- Thử nghiệm hệ thống (System Testing): Kiểm chứng, thử nghiệm và khắc phục các lỗi (nếu có);
- Hiện thực, triển khai (System Implementation): Lắp đặt phần cứng, cài đặt phần mềm, chuyển đổi hoạt động của hệ thống cũ sang hệ thống mới;
- Bảo trì, nâng cấp (System Maintenance).

Giai đoạn Phân tích yêu cầu (Analysis) là quan trọng nhất, vì:
- Nhiệm vụ quan trọng nhất trong việc tạo ra một sản phẩm phần mềm là phải tách được các yêu cầu. Khách hàng thường biết những gì họ muốn, nhưng đó không phải là những gì phần mềm nên làm nếu các yêu cầu này không đầy đủ, không rõ ràng hoặc mâu thuẫn. Những yêu cầu này cần được xác nhận bởi các kỹ sư phần mềm có kỹ năng và kinh nghiệm. Hơn nữa, sản phẩm sau khi phát triển là dành cho khách hàng, nghĩa là sản phẩm phải đúng với yêu cầu và mục đích của khách hàng thì mới phù hợp và có giá trị hiện thực.


Câu 2: Hãy trình bày khái niệm thiết kế theo hướng từ trên xuống (top-down design) và thiết kế theo hướng từ dưới lên (bottom-up design). Theo các bạn, trong môi trường làm việc outsourcing thì thường sử dụng hình thức thiết kế nào? Tại sao?

Top-down design: Một phương pháp lập trình đã được chứng mình là hiệu quả nhất được gọi là sự phân hủy từ trên xuống. Thiết kế theo hướng từ trên xuống là quá trình thiết kế một giải pháp cho một vấn đề bằng phương pháp phá vỡ một cách có hệ thống toàn bộ quy trình hoặc công việc thành các bộ phận cấu thành cho tới khi đạt tới mức chi tiết thấp nhất.
Bottom-up design: Các thiết kế này bắt đầu với những chi tiết cụ thể và chuyển sang mục tiêu chung. Để bắt đầu thiết kế từ dưới lên, các nhà phân tích hệ thống sẽ kiểm tra tất cả các thành phần có sẵn và tiến hành xác định những thành phần cần sử dụng để xây dựng hệ thống.

Trong môi trường làm việc outsourcing thì thưởng sử dụng phương pháp thiết kế từ dưới lên hơn. Vì đa số dự án đều đã có source sẵn nên ta có thể sử dụng lại và phát triển nó lên.


Câu 3: Hãy trình bày chi tiết về quy trình Relational Unified Process (RUP).

Relational Unified Process – Tiến trình hợp nhất được phát triển bởi hãng IBM. Tiến trình này yêu cầu việc phát triển ứng dụng một cách chặt chẽ và nghiêm ngặt với việc đưa ra các mẫu được thực hiện nhanh chóng qua các cuộc làm việc với khách hàng và nhóm dự án, việc lập kế hoạch và đưa ra các chức năng hệ thống một cách tích cực. Kết quả sẽ đưa ra một ứng dụng đáp ứng các yêu cầu của người sử dụng và giúp cho quá trình lên kế hoạch và thực thi nhanh chóng. (phần này là khái niệm không học cũng được).
Bao gồm 4 giai đoạn:
1.     Inception
Tập trung thực hiện các công việc chính sau: 
Business modeling: Hoạt động này gồm các công việc thu thập các thông tin nghiệp vụ từ khách hàng.
          Requirement: Phân tích, thu thập các yêu cầu từ khách hàng, tài liệu và các nhân tố ảnh hưởng tới dự án.
          Analysis and design: Phân tích và thiết kế hệ thống, gia đoạn này nên bắt đầu triển khai khi chuẩn bị kết thúc giai đoan Inception sau khi công tác bussiness modeling và requirement đáp ứng phù hợp.
2.     Elaboration
Hoạt động cơ bản của giai đoạn này là phân tích và thiết kế (analysis and design). Áp dụng các mô hình phân tích, mô hình thiết kế, phân tích các đối tượng, các lớp,… và bước đầu hiện thực phần mềm (implementation).
3.     Construction
Trong gian đoạn này cần thực hiện các công việc chính là hiện thực (implementation) hệ thống theo từng cấp, component hay module và kiểm tra (test) hệ thống thường xuyên và liên tục.
4.     Transition
Giai đoạn này bao gôm các hoạt động chính là triển khai (deploy) ứng dụng, cấu hình để bàn giao cho khách hàng (config and change management), cung cấp các tài liệu hỗ trợ cho người dùng cuối là khách hàng

Câu 4: Hãy trình bày chi tiết về mô hình "4+1"view.

Mỗi một hướng nhìn trong UML là một tập con các biểu đồ UML được xác định để biểu diễn một khía cạnh nào đó của hệ thống.
        + Logical View: Cung cấp cái nhìn logic về chức năng/hành vi của hệ thống. Nhìn nhận các đối tượng. Các lớp và đối tượng. Các gói. Các quan hệ: kết nối, trừu tượng, đa hình, đồng nhất. Nhìn nhận các trạng thái/luồng công việc. Nhìn nhận về cách thức tương tác. Kịch bản của các ca sử dụng
        + Implementation View: Mô tả tổ chức của các module phần mềm tĩnh (như mã nguồn, tập tin dữ liệu, tập tin thực thi,...) trong môi trường phát triển.
        + Process View: Phân rã dựa trên nhiệm vụ và tiến trình. Phân loại được các nhóm tiến trình. Cung cấp các thông tin về hoạt động của hệ thống: thứ tự thực hiện, cách thức tương tác, ràng buộc thứ tự...
        + Development View: Phân rã theo module. Nhóm thành các module bằng các gói. Tổ chức thành các hệ thống con để: tăng độ chắc chắn, giảm sự kết dính và nhìn thấy. Giúp cho dễ dàng phát triển, nhìn thấy khả năng tái sử dụng, quản lý cấu hình.
        + Use Case View: Nhìn hệ thống bởi những người dùng cuối. Tác nhân, chức năng, kịch bản. Phân loại được các hành vi: chức năng, độ ưu tiên. Chỉ ra các ràng buộc giữa các hành vi: sử dụng, kế thừa.