Tập bài giảng Công nghệ phần mềm (Phần 2)

pdf 154 trang Gia Huy 17/05/2022 3060
Bạn đang xem 20 trang mẫu của tài liệu "Tập bài giảng Công nghệ phần mềm (Phần 2)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftap_bai_giang_cong_nghe_phan_mem_phan_2.pdf

Nội dung text: Tập bài giảng Công nghệ phần mềm (Phần 2)

  1. Tập bài giảng Công nghệ phần mềm Chƣơng 5 THIẾT KẾ PHẦN MỀM 5.1. Đặc điểm của quá trình thiết kế phần mềm Xây dựng ứng dụng phần mềm là một dây chuyền các chuyển đổi, mà ở đó phân tích nhằm xác định ứng dụng sẽ thực hiện cái gì (what) còn thiết kế nhằm để trả lời câu hỏi phần mềm cụ thể sẽ nhƣ thế nào (how)? Tức là xác định cách thức thực hiện những gì đã đƣợc đặt ra ở phần phân tích. Trong ba giai đoạn: thiết kế, cài đặt và bảo trì thì thiết kế là giai đoạn quan trọng nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sản phẩm. Cài đặt là việc thực thi những gì đã thiết kế. Nếu trong quá trình cài đặt có xuất hiện vấn đề thì phải quay lại sửa bản thiết kế. Quá trình thiết kế tốt là cơ sở để quản lý và giảm chi phí cho công việc bảo trì phần mềm sau này. Nhiệm vụ của thiết kế là chuyển đổi những yêu cầu của hệ thống (kết quả của quá trình phân tích) sang dạng biểu diễn của hệ thống phần mềm. Nghĩa là xây dựng các mô tả văn bản (thiết kế chi tiết) nêu rõ mối quan hệ giữa tiền điều kiện và hậu điều kiện cho tất cả các chức năng (quá trình) của hệ thống. Tiền điều kiện xác định những cái sẽ nhận giá trị chân lý đúng trƣớc khi một quá trình thực hiện, còn hậu điều kiện xác định những điều sẽ nhận giá trị đúng khi chấp nhận tiền điều kiện và khi quá trình đó kết thúc thành công. Tầm quan trọng của thiết kế đƣợc thể hiện qua hình 5.1: Hình 5.1. Tầm quan trọng của quá trình thiết kế Nhƣ vậy, thiết kế là một thực tế về một quyết định chọn lựa, xây dựng một đặc tả về hành vi nhìn thấy đƣợc từ bên ngoài và bổ sung các chi tiết cần thiết cho việc cài đặt trên hệ thống máy tính bao gồm cả chi tiết về tổ chức quản lý dữ liệu, công việc và tƣơng tác với con ngƣời. Thiết kế phải nhờ vào các kinh nghiệm và phải học tập những cái có sẵn từ các hệ thống khác; không thể chỉ đọc sách là đủ. Bản thiết kế tốt là chìa khóa cho sự thành công của hệ thống. 124 Phạm Hùng Phú -Nguyễn Văn Thẩm
  2. Tập bài giảng Công nghệ phần mềm Mối liên quan của thiết kế phần mềm với công nghệ phần mềm đƣợc thể hiện qua sơ đồ hình 5.2: Hình 5.2. Mối liên quan của giai đoạn thiết kế với các giai đoạn khác Thiết kế phần mềm là hoạt động đƣợc xác lập dựa trên hai mặt: quản lý và kỹ thuật, chúng đan xen với nhau. Mối quan hệ giữa hai khía cạnh kỹ thuật và quản lý đƣợc thể hiện qua hình 5.3: Hình 5.3. Các giai đoạn thiết kế Trong quan điểm quản lý, thiết kế phần mềm đƣợc tiến hành 2 bƣớc: - Thiết kế sơ bộ: quan tâm đến việc dịch các yêu cầu thành các kiến trúc dữ liệu và phần mềm. - Thiết kế chi tiết: tập trung vào việc làm mịn biểu diễn kiến trúc để dẫn đến cấu trúc dữ liệu chi tiết và biểu diễn thuật toán cho phần mềm. Đối với khía cạnh kỹ thuật, xuất hiện một số hoạt động thiết kế nhƣ: - Thiết kế dữ liệu - Thiết kế kiến trúc Phạm Hùng Phú -Nguyễn Văn Thẩm 125
  3. Tập bài giảng Công nghệ phần mềm - Thiết kế thủ tục - Thiết kế đối tƣợng - Thiết kế giao diện Các hoạt động của giai đoạn thiết kế phần mềm theo khía cạnh kỹ thuật đƣợc biểu diễn nhƣ hình qua hình 5.4. Trong đó, hoạt động thiết kế xử lý gồm hai hoạt động: Thiết kế thủ tục và thiết kế đối tƣợng. Hình 5.4. Các giai đoạn thiết kế theo khía cạnh kỹ thuật Các kết quả cần có khi thiết kế hệ thống theo khía cạnh kỹ thuật Bảng 5.1. Kết quả của các giai đoạn thiết kế theo khía cạnh kỹ thuật STT Hoạt động Kết quả Kết quả chi tiết - Sơ đồ các màn hình - Danh sách các màn hình Thiết kế giao Hệ thống các màn 1 - Nội dung từng màn hình diện hình giao diện - Biến cố và xử lý trên từng màn hình. - Danh sách các hàm Hệ thống các hàm - Danh sách các kiểu dữ liệu 2 Thiết kế xử lý cùng với cấu trúc - Mô tả chi tiết từng hàm dữ liệu tƣơng ứng - Mô tả chi tiết các kiểu dữ liệu - Cấu trúc lƣu trữ Thiết kế dữ Tổ chức lƣu trữ - Danh sách các thành phần lƣu trữ 3 liệu trên bộ nhớ phụ - Mô tả chi tiết các thành phần - Danh sách các ràng buộc Trong tiến trình thiết kế, mô hình để biểu diễn công việc thiết kế là đồ thị. Các đỉnh của đồ thị dùng để biểu diễn các thực thể (các tiến trình, các chức năng, các kiểu ) và các cạnh là các mối liên hệ giữa chúng. Quá trình thiết kế thƣờng đƣợc mô tả bằng nhiều mức khác nhau của cách tiếp cận trừu tƣợng hóa, nhằm tách các bộ phận cấu thành của bài toán nhằm nâng cao độ chắc chắn, độ tin cậy của hệ thống. 126 Phạm Hùng Phú -Nguyễn Văn Thẩm
  4. Tập bài giảng Công nghệ phần mềm Hình 5.5. Tiến trình thiết kế 5.2. Chiến lƣợc thiết kế Do các hệ phần mềm lớn là phức tạp nên ngƣời ta thƣờng dùng các phƣơng pháp tiếp cận khác nhau trong việc thiết kế các phần khác nhau của một hệ thống. Chẳng có một chiến lƣợc tốt nhất nào cho các dự án. Hai chiến lƣợc thiết kế hiện đang đƣợc dùng rộng rãi trong việc phát triển phần mềm đó là thiết kế hƣớng chức năng và thiết kế hƣớng đối tƣợng. Mỗi chiến lƣợc thiết kế đều có ƣu và nhƣợc điểm riêng phụ thuộc vào ứng dụng phát triển và nhóm phát triển phần mềm. Cách tiếp cận hƣớng chức năng hay hƣớng đối tƣợng là bổ sung và hỗ trợ cho nhau chứ không phải là đối kháng nhau. Kỹ sƣ phần mềm sẽ chọn cách tiếp cận thích hợp nhất cho từng giai đoạn thiết kế. 5.2.1. Thiết kế hƣớng chức năng Thiết kế hƣớng chức năng là một cách tiếp cận thiết kế phần mềm trong đó bản thiết kế đƣợc phân giải thành một bộ các đơn thể đƣợc tác động lẫn nhau, mà một đơn thể có một chức năng đƣợc xác định rõ ràng. Các chức năng có các trạng thái cục bộ nhƣng chúng chia sẻ với nhau trạng thái hệ thống, trạng thái này là tập trung và mọi chức năng đều có thể truy cập đƣợc. Một số quan niệm cho rằng thiết kế hƣớng chức năng đã lỗi thời và nên đƣợc thay thế bởi cách tiếp cận hƣớng đối tƣợng. Thế nhƣng, nhiều tổ chức đã phát triển các chuẩn và các phƣơng pháp dựa trên sự phân giải chức năng. Nhiều phƣơng pháp thiết kế kết hợp với các công cụ CASE đều là hƣớng chức năng và có nhiều hệ thống đã đƣợc phát triển bằng cách sử dụng phƣơng pháp tiếp cận hƣớng chức năng. Các hệ thống đó sẽ phải đƣợc bảo trì cho một tƣơng lai xa xôi. Bởi vậy thiết kế hƣớng chức năng vẫn sẽ còn đƣợc tiếp tục sử dụng rộng rãi. Chiến lƣợc thiết kế hƣớng chức năng dựa trên việc phân giải hệ thống thành một bộ các chức năng có tƣơng tác nhau với trạng thái hệ thống tập trung dùng chung cho các chức năng đó. Các chức năng này có thể có các thông tin trạng thái cục bộ nhƣng chỉ dùng cho quá trình thực hiện chức năng đó mà thôi. Phạm Hùng Phú -Nguyễn Văn Thẩm 127
  5. Tập bài giảng Công nghệ phần mềm Thiết kế hƣớng chức năng gắn với các chi tiết của một thuật toán của chức năng đó nhƣng các thông tin trạng thái hệ thống là không bị che dấu. Điều này có thể gây ra một vấn đề vì rằng một chức năng có thể thay đổi trạng thái theo một cách mà các chức năng khác không ngờ tới. Việc thay đổi một chức năng và cách nó sử dụng trạng thái hệ thống có thể gây ra những tƣơng tác bất ngờ đối với các chức năng khác. Do đó cách tiếp cận chức năng để thiết kế là thắng lợi nhất khi mà khối lƣợng thông tin trạng thái hệ thống là đƣợc làm nhỏ nhất và thông tin dùng chung nhau là rõ ràng. 5.2.2. Thiết kế hƣớng đối tƣợng Hệ thống đƣợc nhìn nhận nhƣ một bộ các đối tƣợng. Hệ thống đƣợc phân tán, mỗi đối tƣợng có những thông tin trạng thái riêng của nó. Đối tƣợng là một bộ các thuộc tính xác định trạng thái của đối tƣợng đó và các phép toán của nó. Nó đƣợc thừa kế từ một vài lớp đối tƣợng lớp cao hơn, sao cho dễ định nghĩa nó chỉ cần nêu đủ các khác nhau giữa nó và các lớp cao hơn nó. Che dấu thông tin là chiến lƣợc thiết kế dấu càng nhiều thông tin trong các thành phần càng hay. Cái đó ngầm hiểu rằng việc kết hợp điều khiển logic và cấu trúc dữ liệu đƣợc thực hiện trong thiết kế càng chậm càng tốt. Liên lạc thông qua các thông tin trạng thái dùng chung (các biến tổng thể) là ít nhất, nhờ vậy khả năng hiểu là đƣợc tăng lên. Thiết kế là tƣơng đối dễ thay đổi vì sự thay đổi một thành phần không thể không dự kiến các hiệu ứng phụ trên các thành phần khác. Thiết kế hƣớng đối tƣợng là dựa trên việc che dấu thông tin, nhìn hệ phần mềm nhƣ là một bộ các đối tƣợng tƣơng tác với nhau chứ không phải là một bộ các chức năng nhƣ cách tiếp cận chức năng. Các đối tƣợng này có một trạng thái đƣợc che dấu và các phép toán trên các trạng thái đó. Thiết kế biểu thị các dịch vụ đƣợc yêu cầu và đƣợc cung cấp bởi các đối tƣợng có tƣơng tác với nó. Thiết kế hƣớng đối tƣợng có ba đặc trƣng: - Vùng dữ liệu dùng chung là bị loại bỏ. Các đối tƣợng liên lạc với nhau bằng cách trao đổi thông báo chứ không phải bằng các biến dùng chung. - Các đối tƣợng là các thực thể độc lập mà chúng sẵn sàng đƣợc thay đổi vì rằng tất cả các trạng thái và các thông tin biểu diễn là chỉ ảnh hƣởng trong phạm vi chính đối tƣợng đó thôi. Các thay đổi về biểu diễn thông tin có thể đƣợc thực hiện không cần sự tham khảo tới các đối tƣợng hệ thống khác. - Các đối tƣợng có thể phân tán và có thể hành động tuần tự hoặc song song. Không cần có quyết định về tính song song ngay từ một giai đoạn sớm của quá trình thiết kế. Các ƣu điểm của phƣơng pháp thiết kế hƣớng đối tƣợng: 128 Phạm Hùng Phú -Nguyễn Văn Thẩm
  6. Tập bài giảng Công nghệ phần mềm - Dễ bảo trì vì các đối tƣợng là độc lập. Các đối tƣợng có thể hiểu và cải biên nhƣ là một thực thể độc lập. Thay đổi trong thực hiện một đối tƣợng hoặc thêm các dịch vụ sẽ không làm ảnh hƣởng tới các đối tƣợng hệ thống khác. - Các đối tƣợng là các thành phần dùng lại đƣợc thích hợp (do tính độc lập của chúng). Một thiết kế có thể dùng lại đƣợc các đối tƣợng đã đƣợc thiết kế trong các bản thiết kế trƣớc đó. - Đối với một vài lớp hệ thống, có một phản ánh rõ ràng giữa các thực thể có thực (chẳng hạn nhƣ các thành phần phần cứng) với các đối tƣợng điều khiển nó trong hệ thống. Điều này cải thiện đƣợc tính dễ hiểu của thiết kế. Các nhƣợc điểm của phƣơng pháp thiết kế hƣớng đối tƣợng: - Sự nhận minh các đối tƣợng hệ thống thích hợp là khó khăn. Cách nhìn tự nhiên nhiều hệ thống là cách nhìn chức năng và việc thích nghi với cách nhìn hƣớng đối tƣợng đôi khi là khó khăn. - Phƣơng pháp thiết kế hƣớng đối tƣợng vẫn còn là tƣơng đối chƣa chín muồi và đang thay đổi mau chóng. Ở đây, cần phân biệt hai khái niệm là thiết kế hƣớng đối tƣợng và lập trình (cài đặt) hƣớng đối tƣợng: - Thiết kế hƣớng đối tƣợng là một chiến lƣợc thiết kế nó không phụ thuộc vào một ngôn ngữ thực hiện cụ thể nào. Các ngôn ngữ lập trình hƣớng đối tƣợng và các khả năng bao gói đối tƣợng làm cho thiết kế hƣớng đối tƣợng đƣợc thực hiện một cách đơn giản hơn. Tuy nhiên một thiết kế hƣớng đối tƣợng cũng có thể đƣợc thực hiện trong một ngôn ngữ kiểu nhƣ Pascal hoặc C mà không có các đặc điểm nhƣ vậy. - Việc chấp nhận thiết kế hƣớng đối tƣợng nhƣ là một chiến lƣợc hữu hiệu đã dẫn đến sự phát triển phƣơng pháp thiết kế hƣớng đối tƣợng. Nhƣ Ada không phải là ngôn ngữ lập trình hƣớng đối tƣợng vì nó không trợ giúp sự thừa kế của các lớp, nhƣng lại có thể thực hiện các đối tƣợng trong Ada bằng cách sử dụng các gói hoặc các nhiệm vụ, do đó Ada đƣợc dùng để mô tả các thiết kế hƣớng đối tƣợng. - Thiết kế hƣớng đối tƣợng là một chiến lƣợc thiết kế, nó không phụ thuộc vào ngôn ngữ để thực hiện. Các ngôn ngữ lập trình hƣớng đối tƣợng và khả năng bao gói dữ liệu làm cho dễ thực hiện một thiết kế hƣớng đối tƣợng hơn. Tuy nhiên cũng có thể thực hiện một thiết kế hƣớng đối tƣợng trong một ngôn ngữ kiểu nhƣ Pascal hoặc C. 5.3. Thiết kế kiến trúc ứng dụng 5.3.1. Khái niệm Kiến trúc của phần mềm ứng dụng đƣợc suy dẫn ra qua tiến trình phân hoạch đặt mối quan hệ giữa các phần tử của giải pháp phần mềm với các bộ phận của thế giới thực đƣợc xác định không tƣờng minh trong phân tích yêu cầu. Các hệ thống lớn có thể đƣợc phân rã thành các phân hệ cung cấp các dịch vụ. Mỗi phân hệ có các module Phạm Hùng Phú -Nguyễn Văn Thẩm 129
  7. Tập bài giảng Công nghệ phần mềm và có một giao diện xác định để giao tiếp với các phân hệ khác. Nó là một hệ thống có quyền riêng của mình cho phép các hoạt động không phụ thuộc vào các dịch vụ của các phân hệ khác. Quy trình thiết kế khởi đầu để xác định các phân hệ của hệ thống và thiết lập một khuôn khổ điều khiển và truyền thông giữa các phân hệ đƣợc gọi là thiết kế kiến trúc cho ứng dụng. Thiết kế kiến trúc ứng dụng luôn đƣợc tiến hành trƣớc khi có các đặc tả chi tiết về hệ thống. Việc phân rã kiến trúc hệ thống là cần thiết cho việc cấu trúc và tổ chức đặc tả và chứa các hoạt động sau: - Cấu trúc hệ thống: Hệ thống đƣợc cấu trúc thành một số các phân hệ, mỗi phân hệ là một đơn vị phần mềm độc lập. Các liên kết thông tin giữa các phân hệ đƣợc xác định. - Mô hình hoá điều khiển: Một mô hình chung về các quan hệ điều khiển giữa các thành phần của hệ thống đƣợc thiết lập. - Phân rã mô hình: Mỗi phân hệ đã xác định sẽ đƣợc phân rã thành các module. Kiến trúc sƣ sẽ phải quyết định các kiểu module và các kết nối. Kết quả của thiết kế kiến trúc ứng dụng là tài liệu thiết kế kiến trúc. Tài liệu thiết kế kiến trúc bao gồm: - Các biểu diễn đồ hoạ về các mô hình hệ thống kèm theo các giải thích bằng văn bản. - Mô tả tại sao hệ thống đƣợc phân rã thành các phân hệ và các phân hệ lại đƣợc phân rã thành các module. Giai đoạn đầu tiên của thiết kế kiến trúc là việc phân rã hệ thống thành nhiều phân hệ tƣơng tác nhau. Tại mức trừu tƣợng nhất, một thiết kế kiến trúc có thể đƣợc coi nhƣ là một sơ đồ khối trong đó mỗi khối đại diện cho một phân hệ. Các hộp nằm trong một khối đƣợc coi là phân hệ con của phân hệ. Các mũi tên đại diện cho các điều khiển hoặc các dữ liệu giao tiếp giữa các phân hệ. Sau đó, một số mô hình đặc trƣng hơn đƣợc phát triển để biểu diễn các dữ liệu chia sẻ, các giao diện và phân phối dữ liệu giữa các phân hệ trong ứng dụng. 5.3.2. Các mô hình thiết kế ứng dụng 1) Mô hình kho dữ liệu (Data Warehouse Model) Các phân hệ cần trao đổi thông tin, và nó có thể tiến hành theo hai cách: - Mỗi phân hệ duy trì một cơ sở dữ liệu riêng của mình. Dữ liệu đƣợc trao đổi giữa các phân hệ bằng cách chuyển đổi các thông báo. - Mọi dữ liệu đƣợc lƣu trữ tại một cơ sở dữ liệu trung tâm có thể đƣợc truy cập bởi mọi phân hệ. Mô hình này gọi là mô hình kho dữ liệu. 130 Phạm Hùng Phú -Nguyễn Văn Thẩm
  8. Tập bài giảng Công nghệ phần mềm Hình 5.6. Mô hình kho dữ liệu Mô hình kho dữ liệu phù hợp cho các ứng dụng khi dữ liệu đƣợc tạo bởi một phân hệ và đƣợc sử dụng bởi các phân hệ khác. Đây là cách hữu hiệu để chia sẻ một số lƣợng lớn dữ liệu mà không cần chuyển đổi dữ liệu tƣờng minh từ một phân hệ này tới các phân hệ khác. Phân hệ phải chấp nhận mô hình này nếu muốn tham gia hệ thống. Sẽ rất khó tích hợp một phân hệ mới nếu nó không phù hợp với tiêu chuẩn của kho dữ liệu. Phân hệ tạo dữ liệu không cần liên quan đến việc dữ liệu đƣợc phân hệ khác sử dụng nhƣ thế nào. Việc phát triển mô hình sẽ khó khăn khi một số lƣợng lớn dữ liệu đã có theo tiêu chuẩn cũ. Việc chuyển đổi dữ liệu sẽ rất tốn kém. Các hoạt động nhƣ lƣu trữ, bảo mật, điều khiển truy nhập và khôi phục đƣợc tập trung hoá. Ví dụ kiến trúc của một bộ CASE tích hợp sử dụng mô hình kho dữ liệu: Hình 5.7. Kiến trúc của một bộ CASE tích hợp Tuy nhiên, các phân hệ có thể có các yêu cầu khác nhau về mức độ bảo mật, khôi phục và chiến lƣợc lƣu trữ. Mô hình này bắt buộc các phân hệ phải chấp nhận một chính sách chung. Mọi việc sẽ đơn giản nếu phân hệ mới cần tích hợp tƣơng thích với Phạm Hùng Phú -Nguyễn Văn Thẩm 131
  9. Tập bài giảng Công nghệ phần mềm dữ liệu cũ. Tuy nhiên sẽ khó khăn nếu phân phối dữ liệu tới nhiều máy khác nhau. Việc này sẽ phát sinh khả năng dƣ thừa dữ liệu, không toàn vẹn. 2) Mô hình khách - phục vụ Mô hình khách - phục vụ là một mô hình hệ thống phân tán biểu diễn việc phân tán các dữ liệu và xử lý trên nhiều máy tính khác nhau. Hình 5.8. Mô hình kho dữ liệu Các thành phần chính là: - Một tập các server độc lập phục vụ cho các phân hệ. - Một tập các khách hàng yêu cầu các dịch vụ. Chúng có thể là các phân hệ, hay là các thể hiện khác nhau của cùng một chƣơng trình. - Một mạng cho phép các khách hàng có thể truy nhập đƣợc các dịch vụ. Ví dụ kiến trúc của một thƣ viện phim và hình ảnh sử dụng mô hình kho dữ liệu: Hình 5.9. Kiến trúc của một thƣ viện phim và hình ảnh Khách hàng phải biết đƣợc định danh của các dịch vụ, còn các dịch vụ không cần biết các định danh của khách hàng. Ƣu điểm quan trọng nhất của mô hình này là sự phân tán rất rõ ràng. Mô hình này dễ dàng thêm một server và tích hợp dần dần khi có nhu cầu mà không ảnh hƣởng tới các thành phần cũ. Sự thiếu vắng của mô hình chia sẻ dữ liệu ở đây có nghĩa là sẽ khó dự đoán đƣợc các vấn đề khi tích hợp dữ liệu vào hệ thống cũ. Mỗi server phải có 132 Phạm Hùng Phú -Nguyễn Văn Thẩm
  10. Tập bài giảng Công nghệ phần mềm trách nhiệm với bản thân mình về lƣu trữ, khôi phục, Không có một trung tâm nên khách hàng phải tự biết và tìm server, đây là vấn đề khó khăn đối với các mạng lớn nhƣ WAN, Internet. 3) Mô hình máy trừu tƣợng Mô hình máy trừu tƣợng đôi khi gọi là mô hình lớp, mô hình hoá giao diện của các phần mềm. Mô hình phân lớp tổ chức hệ thống thành nhiều lớp và mỗi lớp cung cấp một tập các dịch vụ. Mỗi lớp có thể đƣợc coi nhƣ một máy trừu tƣợng (Abstract Machine) mà ngôn ngữ của máy đƣợc định nghĩa bởi các dịch vụ mà lớp đó cung cấp. Do đó, mô hình này thƣờng đƣợc sử dụng để mô hình hoá giao diện (Interface) của hệ thống con. Mô hình phân lớp hỗ trợ phát triển các hệ thống con theo kiểu tăng vòng ở nhiều lớp khác nhau. Khi giao diện của một lớp thay đổi thì chỉ những lớp liền kề nó mới bị ảnh hƣởng. Hình 5.10. Mô hình máy trừu tƣợng Ví dụ kiến trúc của hệ thống quản lý phiên bản sử dụng mô hình máy trừu tƣợng: Hình 5.11. Kiến trúc của hệ thống quản lý phiên bản Ví dụ kiến trúc của ứng dụng doanh nghiệp sử dụng mô hình máy trừu tƣợng: Hình 5.12. Kiến trúc của ứng dụng doanh nghiệp Phạm Hùng Phú -Nguyễn Văn Thẩm 133
  11. Tập bài giảng Công nghệ phần mềm 4) Mô hình điều khiển Là mô hình mà để vận hành, hệ thống phải đƣợc điều khiển làm việc đồng bộ và đúng. Mô hình cấu trúc không có các thông tin điều khiển mà các luồng điều khiển đƣợc chỉ ra ở mô hình điều khiển. Hai cách tiếp cận chung có thể xác định là: - Điều khiển tập trung, - Điều khiển trên cơ sở sự kiện Mô hình điều khiển bổ sung cho mô hình cấu trúc. Mỗi mô hình cấu trúc đã nói trên đều có thể dùng mô hình điều khiển tập trung hoặc mô hình điều khiển trên cơ sở sự kiện. Mô hình điều khiển tập trung Một phân hệ đƣợc thiết kế nhƣ bộ điều khiển hệ thống có trách nhiệm quản lý việc thực hiện các phân hệ khác. Các mô hình điều khiển tập trung phân lớp theo hai loại phụ thuộc việc điều khiển đƣợc tiến hành tuần tự hay song song. - Mô hình gọi - trả lời: Mô hình này phù hợp với các mô hình thủ tục top - down. Hình 5.13. Mô hình gọi - trả lời - Mô hình quản lý: Mô hình này thích hợp với các hệ thống đồng thời. Một cấu thành hệ thống đƣợc thiết kế nhƣ là một bộ quản trị và điều khiển việc khởi động, kết thúc và phối hợp các phân hệ khác. Hình 5.14. Mô hình quản lý Mô hình hệ thống điều khiển bởi sự kiện Mô hình hệ thống điều khiển bởi sự kiện có nhiều kiểu khác nhau của hệ thống hƣớng sự kiện, nhƣ: 134 Phạm Hùng Phú -Nguyễn Văn Thẩm
  12. Tập bài giảng Công nghệ phần mềm - Mô hình phát tin: Trong mô hình này, về nguyên tắc, một sự kiện đƣợc thông báo cho các phân hệ. Các phân hệ đƣợc thiết kế điều khiển sự kiện này sẽ tự quyết việc trả lời. Mô hình này hiệu quả với các phân hệ đƣợc phân bố trên các máy tính khác nhau trên mạng. + Ƣu điểm: Việc phát triển tƣơng đối đơn giản. Một phân hệ mới xử lý một lớp sự kiện mới có thể đƣợc tích hợp khi ghi nhận các sự kiện này vào bộ điều khiển sự kiện. Mỗi phân hệ có thể kích hoạt mọi phân hệ khác không cần biết tên và vị trí của các phân hệ đó. Phân bố trong suốt với các phân hệ. + Nhƣợc điểm: Phân hệ không biết sự kiện có đƣợc xử lý hay không và khi nào đƣợc xử lý. Rất có thể hai phân hệ khác nhau cùng sinh một sự kiện và có thể gây xung đột. Hình 5.15. Mô hình phát tin - Mô hình điều khiển ngắt: Có một hệ thống bên ngoài đƣợc sử dụng riêng cho việc theo dõi các ngắt bên ngoài và đƣợc chuyển tới các phân hệ tƣơng ứng. Mô hình này phù hợp với các hệ thống thời gian. Ƣu điểm của nó là cho phép đáp ứng nhanh nhất với các sự kiện. Nhƣợc điểm là việc lập trình phức tạp. Hình 5.16. Mô hình điều khiển ngắt 5) Mô hình đối tƣợng Hệ thống đƣợc phân thành các đối tƣợng giao tiếp với nhau. Phân tích hƣớng đối tƣợng chỉ ra các lớp đối tƣợng liên quan, các thuộc tính và các hoạt động của chúng. Phạm Hùng Phú -Nguyễn Văn Thẩm 135
  13. Tập bài giảng Công nghệ phần mềm Ƣu điểm của nó là tính bao đóng cho phép dấu các thực hiện của các đối tƣợng và cho phép dùng lại mã. Tuy nhiên nhƣợc điểm là để sử dụng các dịch vụ, các đối tƣợng phải gọi tƣờng minh các tên và giao diện của các đối tƣợng khác. Sự thay đổi giao diện sẽ làm ảnh hƣởng tới các đối tƣợng khác. 6) Mô hình luồng dữ liệu Hệ thống đƣợc phân hoá thành các module chức năng. Chúng nhận các dữ liệu chuyển hoá chúng rồi lại đƣa ra kết quả. Trong mô hình luồng dữ liệu, các bộ biến đổi xử lý dữ liệu đầu vào và tạo dữ liệu ra. Dữ liệu đƣợc chảy tuần tự theo luồng từ bộ biến đổi này sang bộ khác. Mỗi bƣớc của quy trình giống nhƣ một phép biến đổi. Hình 5.17. Mô hình luồng dữ liệu Ƣu điểm: - Hỗ trợ việc sử dụng lại các biến đổi. - Phù hợp với suy nghĩ của mọi ngƣời quan niệm về dữ liệu đƣợc xử lý theo luồng có đầu vào và đầu ra. - Thêm các xử lý khác vào hệ thống đơn giản. - Dễ thực hiện xử lý song song hoặc tuần tự. Nhƣợc điểm: - Cần phải có một định dạng chung cho các dữ liệu để có thể xử lý bởi mọi bộ biến đổi. - Các hệ thống tƣơng tác khó đƣợc viết theo mô hình luồng dữ liệu. Trong khi các giao diện vào và ra theo dạng văn bản có thể dùng mô hình luồng dữ liệu thì các giao diện đồ hoạ có các dạng vào ra phức tạp hơn dựa trên sự kiện khó có thể áp dụng mô hình luồng dữ liệu. 5.4. Thiết kế cơ sở dữ liệu 5.4.1. Cách tổ chức lƣu trữ dữ liệu Mục tiêu chính của thiết kế dữ liệu là mô tả cách thức tổ chức lƣu trữ các dữ liệu của phần mềm. 136 Phạm Hùng Phú -Nguyễn Văn Thẩm
  14. Tập bài giảng Công nghệ phần mềm Trong đó D1, D2 đƣợc lƣu trữ trong bộ nhớ chính; D3, D4 đƣợc lƣu trữ trong bộ nhớ phụ. Cách thức lƣu trữ dữ liệu trên bộ nhớ chính: Kiểu cấu trúc, kiểu mảng, kiểu xâu, kiểu cây, Cách thức lƣu trữ dữ liệu trên bộ nhớ phụ: Tập tin (Có cấu trúc/Không có cấu trúc), cơ sở dữ liệu (Quan hệ/Đối tƣợng): - Lƣu trữ dƣới dạng tập tin: Thích hợp với một số phần mềm đặc thù, chẳng hạn trò chơi, mô phỏng ứng dụng Word, Paint, ; đặc điểm chung của các phần mềm này là chú trọng rất nhiều vào các xử lý; hình thức giao diện và không chú trọng nhiều đến việc lƣu trữ lại các thông tin đƣợc tiếp nhận trong quá trình sử dụng phần mềm, các thông tin này thƣờng đƣợc tiếp nhận và xử lý ngay. - Lƣu trữ dƣới dạng cơ sở dữ liệu: Thƣờng sử dụng với các phần mềm quản lý, chẳng hạn các phần mềm quản lý học sinh, thƣ viện, bán hàng, nhân sự, ; có đặc điểm cần lƣu trữ lại các thông tin đƣợc tiếp nhận trong quá trình sử dụng phần mềm. Cách tiếp cận dùng cơ sở dữ liệu rất thông dụng và thƣờng dùng là cơ sở dữ liệu quan hệ: - Cách thức tổ chức lƣu trữ dữ liệu của phần mềm đƣợc mô tả thông qua hai loại thông tin: + Thông tin tổng quát: Cung cấp góc nhìn tổng quát về các thành phần lƣu trữ bao gồm danh sách các bảng dữ liệu và danh sách các liên kết. Việc lƣu trữ cần sử dụng bao nhiêu bảng dữ liệu và đó là các bảng nào, mối liên kết giữa các bảng dữ liệu. + Thông tin chi tiết: mô tả chi tiết từng thành phần lƣu trữ gồm danh sách các thuộc tính của từng thành phần, danh sách các miền giá trị toàn vẹn đó chính là các qui định về tính hợp lệ của các thông tin đƣợc lƣu trữ. - Danh sách các bảng dữ liệu Số thứ tự Tên bảng Ý nghĩa Ghi chú 1 - Danh sách các thuộc tính của bảng Loại Số thứ Thuộc Giá trị khởi Ràng buộc Ý nghĩa thuộc tự tính tạo tính 1 Phạm Hùng Phú -Nguyễn Văn Thẩm 137
  15. Tập bài giảng Công nghệ phần mềm Các loại thuộc tính: + Thuộc tính khóa + Thuộc tính có giá trị rời rạc: Thuộc tính phái của Sinh viên chỉ có 2 giá trị: Nam hoặc Nữ; thuộc tính phái của Sinh viên chỉ có 2 giá trị: 0 hoặc 1 (0: Nam, 1: Nữ); thuộc tính điểm học phần chỉ có các giá trị 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; thuộc tính loại nhân viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất. + Thuộc tính đa trị: Thuộc tính điện thoại của nhân viên là thuộc tính đa trị: 081234567, 09081234567, ; thuộc tính email của sinh viên cũng là một thuộc tính đa trị: dungspnd@yahoo.com, dungspnd@gmail.com, + Thuộc tính là đối tƣợng phụ: thuộc tính địa chỉ của sinh viên, nhân viên là một đối tƣợng phụ, bao gồm các thông tin: Số nhà, Đƣờng, Phƣờng/xã, Quận/huyện, Tỉnh thành; thuộc tính ngày sinh của sinh viên, nhân viên cũng là một đối tƣợng phụ gồm các thông tin: ngày, tháng, năm. + Thuộc tính tính toán: thuộc tính thành tiền trong hóa đơn là một thuộc tính tính toán, đƣợc tính bằng tổng số lƣợng * đơn giá của các mặt hàng; thuộc tính điểm trung bình của học sinh, sinh viên cũng là một thuộc tính tính toán. - Danh sách các miền giá trị toàn vẹn: Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú RB1 RB2 - Quan hệ giữa các bảng dữ liệu: Quan hệ “1-1”, Quan hệ “1-nhiều”, Quan hệ “nhiều-nhiều”. 5.4.2. Xây dựng sơ đồ logic dữ liệu Có nhiều phƣơng pháp, nhiều đề nghị khác nhau về việc mô tả thông tin của thành phần dữ liệu trong giai đoạn thiết kế. Để biểu diễn các thông tin tổng quát về bảng thuộc tính, miền giá trị mô tả chi tiết các thành phần ta dùng sơ đồ logic còn đƣợc gọi là mô hình vật lý. Mô hình vật lý này sẽ đƣợc xây dựng dựa trên mô hình ERD đã có ở giai đoạn phân tích, kèm theo vài thay đổi tùy theo ngƣời thiết kế. Nguyên tắc chuyển đổi từ mô hình ERD sang mô hình vật lý dựa trên mối kết hợp giữa các thực thể. Các bƣớc chuyển đổi từ mô hình ERD sang mô hình vật lý. Bƣớc 1: Chuyển các tập thực thể thành các lƣợc đồ quan hệ. - Tên tập thực thể thành tên của lƣợc đồ quan hệ. - Các thuộc tính của tập thực thể thành các thuộc tính của lƣợc đồ quan hệ. - Khóa của tập thực thể thành khóa của lƣợc đồ quan hệ. Bƣớc 2: Chuyển các mối liên hệ đƣợc chuyển thành các lƣợc đồ quan hệ. - Tên của mối liên hệ thành tên của lƣợc đồ quan hệ 138 Phạm Hùng Phú -Nguyễn Văn Thẩm
  16. Tập bài giảng Công nghệ phần mềm - Các thuộc tính khoá của tập thực thể tham gia vào mối liên hệ thành các thuộc tính của lƣợc đồ quan hệ. - Khoá của lƣợc đồ quan hệ đƣợc xác định tùy thuộc vào loại mối liên hệ, nếu mối liên hệ là: + Một-Một thì khoá của tập thực thể nào cũng có thể trở thành khoá của lƣợc đồ quan hệ. + Nhiều-Một thì khoá bên nhiều thành khoá tên của lƣợc đồ quan hệ. + Nhiều-Nhiều thì các thuộc tính khoá của tất cả các tập thực thể trở thành khoá của lƣợc đồ quan hệ. Bƣớc 3: Gộp các lƣợc đồ quan hệ có chung khóa thành một lƣợc đồ. - Tên của lƣợc đồ quan hệ mới là tên mới hoặc là tên của một trong các tên của các lƣợc đồ quan hệ đem gộp. - Tập thuộc tính là hợp các thuộc tính của các lƣợc đồ quan hệ đem gộp. - Khoá là khoá chung. Bƣớc 4: Chuẩn hóa các lƣợc đồ quan hệ để đƣa các lƣợc đồ quan hệ về dạng chuẩn 3NF. Sơ đồ logic: Là công cụ cho phép mô tả trực quan cách thức lƣu trữ dữ liệu trên bộ nhớ phụ với việc sử dụng cơ sở dữ liệu quan hệ và mối liên kết giữa các bảng. Các quy ƣớc: 5.4.3. Cách phƣơng pháp thiết kế cơ sở dữ liệu Có hai cách tiếp cận chính để thiết kế dữ liệu. 1) Phƣơng pháp trực tiếp: Từ các yêu cầu đã xác định, tạo lập trực tiếp sơ đồ logic cùng với bảng thuộc tính, bảng miền giá trị toàn vẹn. Cách tiếp cận này rất khó thực hiện đối với mô hình vật lý phức tạp. Chẳng hạn thiết kế những phần mềm phức tạp nhƣ phần mềm kế toán, nhân sự, tiền lƣơng, 2) Phƣơng pháp gián tiếp: Từ các yêu cầu đã xác định, tạo lập mô hình ERD, và sau đó dựa vào mô hình này sẽ tạo lập sơ đồ logic, bảng thuộc tính, bảng miền giá trị. Cách tiếp cận này dễ thực hiện hơn và mô hình ERD thƣờng đơn giản, dễ hiểu vì mô hình này chỉ chứa các thành phần dữ liệu cơ bản nhất của phần mềm. Các bƣớc thực hiện: Bƣớc 1: Xây dựng mô hình ERD Bƣớc 2: Chuyển mô hình ERD sang mô hình logic dữ liệu Phạm Hùng Phú -Nguyễn Văn Thẩm 139
  17. Tập bài giảng Công nghệ phần mềm Bƣớc 3: Vẽ sơ đồ logic dữ liệu Bƣớc 4: Lập bảng danh sách các bảng dữ liệu. Bƣớc 5: Lập bảng danh sách bảng thuộc tính. Bƣớc 6: Lập bảng danh sách bảng miền giá trị. Ví dụ Xét phần mềm quản lý thƣ viện với yêu cầu nghiệp vụ cho mƣợn sách có mẫu phiếu mƣợn: Hãy lập sơ đồ logic dữ liệu cho yêu cầu nghiệp vụ trên với các yêu cầu số lƣợng sách trong kho và số phiếu phải lớn hơn 0, ngày mƣợn phải nhỏ hơn hoặc bằng ngày trả. Bƣớc 1: Xây dựng mô hình ERD Bƣớc 2: Chuyển mô hình ERD sang mô hình logic dữ liệu - Docgia (Madg, Hoten, Ns, Diachi) - Sach(MaS, TenS, Tacgia, Nhaxb, Soluong) - Phieumuon(Sop, MaS, Madg, NgayM, NgayTr) Bƣớc 3: Vẽ sơ đồ logic dữ liệu Bƣớc 4: Lập bảng danh sách các bảng dữ liệu. Số thứ tự Tên bảng Ý nghĩa Ghi chú 1 Docgia Lƣu trữ thông tin về độc giả 2 Sach Lƣu trữ thông tin về sách 3 Phieumuon Lƣu trữ thông tin về quá trình mƣợn sách của độc giả Bƣớc 5: Lập bảng danh sách bảng thuộc tính. - Danh sách các thuộc tính của bảng Docgia 140 Phạm Hùng Phú -Nguyễn Văn Thẩm
  18. Tập bài giảng Công nghệ phần mềm Số thứ Ràng Giá trị Thuộc tính Ý nghĩa Loại thuộc tính tự buộc khởi tạo 1 Madg Mã độc giả Khóa 2 Hoten Họ tên độc giả Đối tƣợng phụ 3 Ns Ngày sinh Đối tƣợng phụ 4 Diachi Địa chỉ Đối tƣợng phụ - Danh sách các thuộc tính của bảng Sach Số thứ Ràng Giá trị Loại thuộc Thuộc tính Ý nghĩa tự buộc khởi tạo tính 1 MaS Mã sách Khóa 2 TenS Tên sách Rời rạc 3 Tacgia Họ tên tác giả Rời rạc 4 Nhaxb Nhà xuất bản Rời rạc 5 Soluong RB1 Số lƣợng Rời rạc - Danh sách các thuộc tính của bảng Phiếu mƣợn Số thứ Ràng Giá trị Loại thuộc Thuộc tính Ý nghĩa tự buộc khởi tạo tính 1 Sop RB1 Số phiếu Khóa chính 2 MaS Mã sách Khóa ngoại 3 Madg Mã độc giả Khóa ngoại 4 NgayM RB2 Ngày mƣợn Đối tƣợng phụ 5 NgayTr RB3 Ngày trả Đối tƣợng phụ Bƣớc 6: Lập bảng danh sách bảng miền giá trị. Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú RB1 Phải lớn hơn 0 Phiếu mƣợn, Sách RB2 Phải nhỏ hơn hoặc bằng Phiếu mƣợn ngày trả. RB3 Phải lớn hơn hoặc bằng Phiếu mƣợn ngày mƣợn. 5.4.4. Yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu Để đảm bảo các tiêu chuẩn về chất lƣợng thiết kế cơ sở dữ liệu cần xem xét đánh giá sơ đồ logic theo các yêu cầu về chất lƣợng và tiến hành cập nhật lại sơ đồ. Các yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu bao gồm tính đúng đắn, tính tiến hoá, tính hiệu quả, tính bảo mật. Bảng 5.2. Yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu STT Tiêu chuẩn Yêu cầu Lƣu trữ đầy đủ và đúng ngữ nghĩa các thông tin có trong 1 Tính đúng đắn nghiệp vụ liên quan Lƣu trữ thông tin về tổ chức và qui định có trong nghiệp vụ 2 Tính tiến hóa liên quan Lƣu trữ tiết kiệm nhất không gian bộ nhớ, truy xuất nhanh 3 Tính hiệu quả nhất thông tin cần thiết Lƣu trữ thông tin về các ngƣời sử dụng phần mềm cùng với 4 Tính bảo mật quyền hạn tƣơng ứng Phạm Hùng Phú -Nguyễn Văn Thẩm 141
  19. Tập bài giảng Công nghệ phần mềm 1) Xem xét tính tiến hoá: Để đảm bảo tính tiến hoá, sơ đồ logic sẽ còn bổ sung cập nhật lại nhiều thành phần qua các bƣớc thiết kế chi tiết. Thông thƣờng khi thiết kế dữ liệu ở bƣớc đầu tiên thì giới hạn xem xét đến các thuộc tính có giá trị rời rạc (A, B, C; 1, 2, 3, ). Thuộc tính có giá trị rời rạc là các thuộc tính mà miền giá trị chỉ bao gồm một giá trị nhất định nào đó. Các giá trị này thông thƣờng thuộc về một tập hợp có độ biến động rất ít trong quá trình sử dụng phần mềm. Ví dụ: - Khi xem xét quan hệ Độc giả, ta nhận thấy loại độc giả gồm có ba loại "Sinh viên", "Học sinh” ", "Cán bộ" thì khả năng thêm loại Độc giả mới là rất thấp. Khi xem xét quan hệ Sách, ta nhận thấy ngôn ngữ thể hiện của sách có ba loại ngôn ngữ đang dùng là "Tiếng Việt", "Tiếng Anh", "Tiếng Pháp" thì khả năng thêm loại ngôn ngữ mới là rất thấp. Nhƣ vậy loại độc giả và loại ngôn ngữ là kiểu chuỗi và là thuộc tính có giá trị rời rạc. Tuy là khả năng biến động thấp nhƣng không phải là không có, và nếu không chuẩn bị trƣớc, ngƣời dùng không thể khai báo đƣợc các biến động này. Để bảo đảm tính tiến hoá của hệ thống sau này, ta có thể tách các thuộc tính này thành các thành phần trong sơ đồ logic. Khi đó sơ đồ logic có thêm một số thành phần mới. 2) Xem xét tính hiệu quả Tính hiệu quả trong thiết kế dữ liệu sẽ đƣợc xem xét dƣới góc độ lƣu trữ tối ƣu. Vấn đề đặt ra là xây dựng sơ đồ logic sao cho vẫn bảo đảm lƣu trữ đầy đủ thông tin theo yêu cầu nhƣng với dung lƣợng lƣu trữ nhỏ nhất có thể có. Điều này đặc biệt quan trọng đối với các phần mềm với hệ thống lƣu trữ lớn và nhiều phát sinh thông tin cần lƣu trữ theo thời gian. Xem xét lại việc ánh xạ quan hệ nhiều-nhiều (m-n) để có thể lƣu trữ tốt hơn. Xét sơ đồ logic gồm 2 quan hệ A, B và mối kết hợp nhiều-nhiều C và đƣợc tách thành một quan hệ mới là C. Để có thể ánh xạ mô hình trên vào sơ đồ logic với 4 thành phần A, B, C, D. Với D là chi tiết của C. Các thuộc tính của A, B vẫn đƣợc bảo toàn, C trong trƣờng hợp này chỉ chứa các thuộc tính chung (có giá trị giống nhau) trong mỗi lần A quan hệ B, D sẽ gồm các thuộc tính riêng (có giá trị khác nhau) trong mỗi lần A quan hệ với B. 142 Phạm Hùng Phú -Nguyễn Văn Thẩm
  20. Tập bài giảng Công nghệ phần mềm Ví dụ: Xét phần mềm quản lý thƣ viện A: Độc giả, B: Sách, C: Phiếu mƣợn với các thuộc tính ngày mƣợn, ngày trả, số phiếu. Trong một lần độc giả mƣợn sách thì số phiếu là thuộc tính chung, ngày mƣợn, ngày trả là các thuộc tính riêng. Ta bổ sung thêm quan hệ chi tiết phiếu mƣợn (D) để lƣu trữ các thuộc tính riêng này. 5.5. Thiết kế giao diện 5.5.1. Quy trình thiết kế giao diện Màn hình giao diện đƣợc gọi tắt là giao diện (Interface) là một trong các hình thức giao tiếp giữa ngƣời sử dụng và phần mềm khi họ thực hiện các công việc của mình trên máy tính. Mục tiêu chính của thiết kế giao diện là mô tả hệ thống các màn hình giao diện này. Thiết kế giao diện ngƣời dùng là một quy trình lặp lại bao gồm sự cộng tác giữa ngƣời sử dụng và ngƣời thiết kế. Trong quy trình này gồm 3 hoạt động cơ bản: - Phân tích ngƣời sử dụng: Tìm hiểu những gì ngƣời sử dụng sẽ làm với hệ thống - Lập mẫu thử hệ thống: Xây dựng một tập các mẫu thử để thử nghiệm - Đánh giá giao diện: Thử nghiệm các mẫu thử cùng với ngƣời sử dụng. Hình 5.18. Quy trình thiết kế giao diện 1) Phân tích ngƣời sử dụng Nếu không hiểu rõ những gì ngƣời sử dụng muốn làm với hệ thống, thì sẽ không thể thiết kế đƣợc một giao diện hiệu quả. Phân tích ngƣời sử dụng phải đƣợc mô tả theo những thuật ngữ để ngƣời sử dụng và những ngƣời thiết kế khác có thể hiểu đƣợc. Phạm Hùng Phú -Nguyễn Văn Thẩm 143
  21. Tập bài giảng Công nghệ phần mềm Các kỹ thuật phân tích: - Phân tích nhiệm vụ: Mô hình hoá các bƣớc cần thực hiện để hoàn thành một nhiệm vụ. - Phân tích nhiệm vụ phân cấp - Phỏng vấn và trắc nghiệm: Hỏi ngƣời sử dụng về những gì mà họ làm. Khi phỏng vấn, nên dựa trên những câu hỏi có kết thúc mở. Sau đó, ngƣời sử dụng cung cấp những thông tin mà họ nghĩ rằng nó là cần thiết; nhƣng không phải tất cả các thông tin đó là có thể đƣợc sử dụng. Ngoài ra, có thể thực hiện phỏng vấn với cả nhóm ngƣời sử dụng, điều đó cho phép ngƣời sử dụng thảo luận với nhau về những gì họ làm. - Mô tả: Quan sát ngƣời sử dụng làm việc và hỏi họ về những cách mà không đƣợc biết tới. Nên nhớ rằng có nhiều nhiệm vụ của ngƣời sử dụng thuộc về trực giác và rất khó để mô tả và giải thích chúng. Dựa trên kỹ thuật này ta có thể hiểu thêm về các ảnh hƣởng xã hội và tổ chức tác động tới công việc đó. 2) Lập mẫu thử giao diện ngƣời dùng Mẫu thử cho phép ngƣời sử dụng có đƣợc những kinh nghiệm trực tiếp với giao diện. Nếu không có những kinh nghiệm trực tiếp nhƣ vậy thì không thể đánh giá đƣợc khả năng có thể sử dụng đƣợc của giao diện. Lập mẫu thử là một quy trình gồm 2 trạng thái: Lập các mẫu thử trên giấy, tinh chỉnh mẫu thử và xây dựng chúng Các kỹ thuật lập mẫu thử: - Mẫu thử hƣớng nguyên mẫu: Sử dụng công cụ chẳng hạn nhƣ Macromedia Director để xây dựng một tập hợp các nguyên mẫu và màn hình. Khi ngƣời sử dụng tƣơng tác với chúng thì màn hình sẽ thay đổi để hiển thị trạng thái kế tiếp. - Lập trình trực quan: Sử dụng các ngôn ngữ đƣợc thiết kế cho việc phát triển nhanh chẳng hạn nhƣ Visual Basic. - Mẫu thử dựa Internet: Sử dụng web browser và script. 3) Đánh giá giao diện ngƣời dùng Cần phải đánh giá bản thiết kế giao diện ngƣời dùng để xác định khả năng phù hợp của nó. Tuy nhiên, việc đánh giá trên phạm vi rộng tốn nhiều chi phí và không thể thực hiện đƣợc đối với hầu hết các hệ thống. Các kỹ thuật đánh giá đơn giản: - Trắc nghiệm lại các phản hồi của ngƣời sử dụng - Ghi lại quá trình sử dụng mẫu thử của hệ thống và đánh giá nó. - Lựa chọn những thông tin về việc sử dụng dễ dàng và các lỗi của ngƣời sử dụng. - Cung cấp mã lệnh trong phần mềm để thu thập những phản hồi của ngƣời sử dụng một cách trực tuyến. 5.5.2. Kết quả của thiết kế giao diện 144 Phạm Hùng Phú -Nguyễn Văn Thẩm
  22. Tập bài giảng Công nghệ phần mềm Kết quả thiết kế giao diện gồm 2 phần: Sơ đồ liên kết màn hình và mô tả chi tiết từng màn hình 1) Sơ đồ liên kết màn hình: Mô tả các thông tin tổng quát về hệ thống các màn hình cùng với quan hệ về việc chuyển điều khiển giữa chúng. Kí hiệu: Ví dụ: 2) Mô tả chi tiết từng màn hình Mô tả chi tiết về nội dung, hình thức trình bày và các thao tác mà ngƣời dùng có thể thực hiện trên từng màn hình. Các thông tin mô tả một màn hình bao gồm: a) Tên màn hình: Là tên công việc tƣơng ứng muốn thực hiện trên máy tính. Ví dụ màn hình tra cứu sách, màn hình lập hóa đơn, màn hình tính lƣơng. b) Nội dung mô tả: Cấu trúc các thành phần bên trong màn hình, các thành phần này có thể chia ra làm 2 loại: thành phần dữ liệu và thành phần xử lý - Thành phần dữ liệu: + Các thông tin liên quan đến công việc đang xét đƣợc chia thành 2 loại:  Thông tin nhập liệu: Loại thông tin này ngƣời dùng chịu trách nhiệm cung cấp giá trị. Ví dụ: mã sách, tên sách, ngày lập hóa đơn, hàng hóa, họ và tên học sinh vắng, lý do vắng, Phạm Hùng Phú -Nguyễn Văn Thẩm 145
  23. Tập bài giảng Công nghệ phần mềm  Thông tin kết xuất: Loại thông tin này phần mềm chịu trách nhiệm cung cấp giá trị. Ví dụ: lƣợng hàng tồn hiện tại, tổng tiền trả, tổng số ngày vắng của học sinh trong 1 học kỳ, + Thành phần dữ liệu đƣợc thiết kế dựa trên cơ sở của nội dung các biểu mẫu của công việc tƣơng ứng. Ví dụ nội dung màn hình lập hóa đơn bán hàng dựa trên nội dung của hóa đơn đƣợc sử dụng trong thế giới thực, nội dung màn hình điểm danh dựa trên nội dung bảng điểm danh sách hàng ngày của các lớp, nội dung màn hình nhập điểm kiểm tra dựa trên bảng điểm môn của lớp. - Thành phần xử lý: + Các nút điều khiển cho phép ngƣời dùng yêu cầu phần mềm thƣc hiện một xử lý nào đó. Ví dụ  Các nút điều khiển trong màn hình tra cứu sách: Nút tra cứu yêu cầu phần mềm thực hiện việc tìm sách, nút xem tình trạng chi tiết yêu cầu phần mềm cho biết sách hiện nay độc giả nào đang mƣợn và dự kiến trả vào lúc nào.  Các nút điều khiển trong màn hình lập hóa đơn: Nút ghi yêu cầu phần mềm thực hiện việc ghi thông tin về hóa đơn vào bộ nhớ phụ, Nút thêm hóa đơn mới yêu cần phần mềm cho phép bắt đầu lập một hóa đơn mới, nút thoát yêu cầu phần mềm thực hiện chuyển điều khiển về màn hình trƣớc đó. + Thành phần xử lý đƣợc thiết kế dựa trên các thao tác mà ngƣời dùng cần thực hiện trên máy tính để thực hiện công việc tƣơng ứng trong thế giới thực. Đây là thành phần áp đặt mà ngƣời sử dụng phải tuân theo và đƣợc trình bày trong tài liệu hƣớng dẫn sử dụng phần mềm hoặc hƣớng dẫn trực tuyến ngay khi dùng phần mềm. + Khi thiết kế ở phần này cần hƣớng đến tính đơn giản, tính tự nhiên giúp ngƣời dùng dễ học và dễ sử dụng phần mềm. c) Hình thức trình bày - Hình thức trình bày là việc bố trí, sắp xếp các thành phần trong màn hình nhƣ vị trí, màu sắc, kích thƣớc, .Với các màn hình có biểu mẫu liên quan, tốt nhất là trình bày màn hình đúng với biểu mẫu tƣơng ứng; Ví dụ hóa đơn bán hàng, phiếu mƣợn sách, danh sách lớp, bảng điểm danh. - Trong trƣờng hợp biểu mẫu liên quan cho ra kết quả cuối cùng cần ghi nhận thì trƣớc khi đạt đến kết quả đó cần thực hiện một số công việc trung gian không có biểu mẫu rõ ràng. Với các trƣờng hợp này cần bổ sung, sáng tạo hình thức trình bày các màn hình trung gian thể hiện các công việc trung gian. 146 Phạm Hùng Phú -Nguyễn Văn Thẩm
  24. Tập bài giảng Công nghệ phần mềm Ví dụ cần lập biểu mẫu thời khoá biểu dạy thực hiện thực hiện các công việc trung gian nhƣ chọn giáo viên, chọn tiêu chí phân lớp. - Với các màn hình không có biểu mẫu liên quan thì hình thức trình bày màn hình hoàn toàn là sự sáng tạo khi thiết kế. Ví dụ màn hình ra cứu sách, tra cứu hoá đơn. d) Các thao tác có thể thực hiện Mô tả hệ thống các thao tác mà ngƣời dùng có thể thực hiện trên màn hình cùng với ý nghĩa của chúng. Có rất nhiều loại thao tác khác nhau có thể cung cấp cho ngƣời sử dụng trên một màn hình, tuy nhiên chỉ giới hạn xem xét việc mô tả các thao tác khi ngƣời dùng nhấn vào một nút điều khiển hoặc kết thúc việc nhập liệu tại một thành phần nhập liệu nào đó. e) Các công cụ sử dụng để thiết kế màn hình - Microsoft Visio - Microsoft Publisher - Microsoft InfoPath Design - Photoshop - Corel Draw - Công cụ lập trình - Microsoft Expression Blend (Silverlight) 5.5.3. Phân loại màn hình Quá trình sử dụng phần mềm bao gồm các bƣớc sau: - Chọn công việc muốn thực hiện trên máy tính - Cung cấp các thông tin cần thiết tƣơng ứng với công việc đã chọn - Yêu cầu phần mềm thực hiện - Xem kết quả thực hiện Dựa vào quy trình trên, các màn hình có thể đƣợc chia thành nhiều loại tùy theo ý nghĩa sử dụng. Bảng liệt kê một số loại màn hình cơ sở quan trọng cùng với ý nghĩa và nội dung chính tƣơng ứng (thành phần dữ liệu của màn hình). Bảng 5.3. Danh mục các loại màn hình Nội dung STT Loại màn hình Ý nghĩa sử dụng chính Cho phép ngƣời sử dụng chọn việc Danh sách các 1 Màn hình chính thực hiện mong muốn trên máy tính công việc Màn hình giới Trình bày cho ngƣời sử dụng thông tin Thông tin giới 2 thiệu liên quan đến sản phẩm thiệu Màn hình đăng Cho phép ngƣời sử dụng đăng nhập vào Thông tin đăng 3 nhập hệ thống nhập Màn hình nhập liệu Cho phép ngƣời sử dụng thực hiện lƣu Các thông tin 4 lƣu trữ trữ các thông tin đƣợc phát sinh trong cần lƣu trữ Phạm Hùng Phú -Nguyễn Văn Thẩm 147
  25. Tập bài giảng Công nghệ phần mềm Nội dung STT Loại màn hình Ý nghĩa sử dụng chính thế giới thực Màn hình xử lý Cho phép ngƣời sử dụng cung cấp Các thông tin 5 tính toán thông tin cần thiết cho việc thực hiện phải cung cấp một công việc nào đó Trình bày cho ngƣời sử dụng kết quả 6 Màn hình kết quả việc thực hiện của một công việc nào Các kết quả đó Thông báo, nhắc nhở ngƣời sử dụng Màn hình thông 7 trong quá trình thực hiện một công việc Các thao tác báo nào đó Cho phép tìm kiếm các thông tin đã Các tiêu chí tra 8 Màn hình tra cứu đƣợc lƣu trữ cứu 5.5.4. Thiết kế màn hình chính 1) Mô tả màn hình chính: - Ý nghĩa sử dụng: Màn hình chính (MAIN, HOMEPAGE, DASHBOARD) là màn hình cho phép ngƣời dùng chọn đƣợc công việc mà họ muốn thực hiện với phần mềm. Thông thƣờng mỗi phần mềm chỉ có một màn hình chính duy nhất. - Nội dung: Danh sách các công việc có thể thực hiện với phần mềm. - Hình thức trình bày: Phím nóng, thực đơn, biểu tƣợng, sơ đồ, tích hợp - Thao tác ngƣời dùng: Trên màn hình này thao tác chính của ngƣời dùng là chọn công việc trong danh sách các công việc đƣợc đƣa ra bởi phần mềm. 2) Thiết kế màn hình chính dùng phím nóng: Các công việc không có dạng thể hiện tƣờng minh mà đƣợc chọn thông qua các phím chức năng trên bàn phím, thông thƣờng là tổ hợp các phím nhƣ Ctrl + F1, Shift + F2, Hình thức này chỉ có tác dụng cho phép chọn nhanh một công việc cần thiết đối với ngƣời sử dụng chuyên nghiệp. Thông thƣờng không đƣợc dùng riêng lẻ mà phải kết hợp với các màn hình khác. 3) Thiết kế màn hình chính dùng thực đơn: Các công việc có cùng ý nghĩa sử dụng nhóm lại trong từng nhóm chức năng, chẳng hạn nhóm các công việc về lƣu trữ, nhóm các công việc về kết xuất, nhóm các công việc về xử lý, . Đây là dạng trình bày thông dụng nhất. Tổ chức của thực đơn: Thực đơn bao gồm nhiều nhóm chức năng tƣơng ứng nhóm các công việc, mỗi nhóm chức năng bao gồm nhiều chức năng, mỗi chức năng tƣơng ứng với một công việc Phân loại thực đơn: có 3 loại - Thực đơn hƣớng chức năng: Các nhóm chức năng tƣơng ứng với các loại yêu cầu: + Tổ chức: Các công việc liên quan tổ chức 148 Phạm Hùng Phú -Nguyễn Văn Thẩm
  26. Tập bài giảng Công nghệ phần mềm + Lƣu trữ: Các công việc lƣu trữ + Tra cứu: Các công việc tìm kiếm, theo dõi + Tính toán: Các công việc tính toán + Kết xuất: Các báo cáo Ví dụ 1: Màn hình chính phần mềm quản lý học sinh Ví dụ 2: Màn hình chính phần mềm quản lý giải bóng đá Ví dụ 3: Màn hình chính phần mềm quản lý bán hàng - Thực đơn hƣớng đối tƣợng + Các nhóm chức năng tƣơng ứng với các lớp đối tƣợng. Với sơ đồ lớp gồm n đối tƣợng, thực đơn sẽ bao gồm n+1 nhóm chức năng. Một nhóm chức năng tƣơng ứng với đối tƣợng thế giới thực; chẳng hạn thƣ viện, trƣờng học, giải bóng đá. n nhóm chức năng tƣơng ứng n lớp đối tƣợng. + Các chức năng bên trong mỗi nhóm là các công việc liên quan đến lớp đối tƣợng tƣơng ứng. Các công việc này có thể đƣợc phân ra các loại: Lƣu trữ: Ghi nhận thông tin về đối tƣợng hoặc quan hệ của đối tƣợng với các đối tƣợng khác. Phạm Hùng Phú -Nguyễn Văn Thẩm 149
  27. Tập bài giảng Công nghệ phần mềm Tra cứu: tìm kiếm và theo dõi các hoạt động của đối tƣợng. Tính toán: các tính toán liên quan đối tƣợng Kết xuất: các báo cáo liên quan đến đối tƣợng. Ví dụ 1: Phần mềm quản lý thƣ viện Ví dụ 2: Phần mềm quản lý giải bóng đá - Thực đơn hƣớng qui trình + Các nhóm chức năng tƣơng ứng với các giai đoạn trong hoạt động của thế giới thực. Thông thƣờng thế giới thực bao gồm các giai đoạn sau: Tổ chức: xác định cơ cấu tổ chức, ban hành các qui định Kế hoạch: Lập các kế hoạch cho các hoạt động sắp tới Tiếp nhận: Tiếp nhận các thông tin cần thiết cho hoạt động Hoạt động: ghi nhận các thông tin phát sinh bởi các hoạt động Tổng kết: tính toán và lập các báo cáo tổng kết + Các giai đoạn trên không nhất thiết mỗi qui trình đều phải có mà chỉ có tính chất tham khảo. 150 Phạm Hùng Phú -Nguyễn Văn Thẩm
  28. Tập bài giảng Công nghệ phần mềm Ví dụ 1: Màn hình chính phần mềm quản lý học sinh Ví dụ 2: Màn hình chính phần mềm quản lý giải bóng đá 4) Thiết kế màn hình dùng biểu tƣợng: Các công việc đƣợc thể hiện trực quan qua một biểu tƣợng, chẳng hạn kí hiệu hoặc hình ảnh tƣợng trƣng cho công việc. Hình thức tƣơng tự nhƣng tiện dụng hơn phím nóng. Hình thức này thông thƣờng cũng phải kết hợp với các màn hình khác. Ví dụ: Hình 5.19. Màn hình chính phần mềm quản lý ngân hàng câu hỏi 5) Thiết kế màn hình dùng sơ đồ Tùy sơ đồ thể hiện trực quan các đối tƣợng chính yếu đƣợc quan tâm trong các công việc, chẳng hạn sơ đồ khách sạn, sơ đồ giao thông, sơ đồ bay, Các công việc lúc này đƣợc thể hiện qua các thao tác trực tiếp trên sơ đồ. Ví dụ: Màn hình sơ đồ của một khách sạn Phạm Hùng Phú -Nguyễn Văn Thẩm 151
  29. Tập bài giảng Công nghệ phần mềm Hình 5.20. Màn hình dùng sơ đồ 6) Thiết kế màn hình dùng tích hợp Sử dụng đồng thời nhiều hình thức, thông thƣờng hình thức thực đơn sẽ đƣợc ƣu tiên chọn trƣớc và kết hợp vào đó một hay nhiều hình thức khác. 5.5.5. Thiết kế màn hình giới thiệu Màn hình giới thiệu là màn hình đƣợc dùng để cung cấp thông tin về tên của sản phẩm phần mềm, mô tả sản phẩm, bản quyền, phiên bản, nhóm phát triển, địa chỉ liên hệ, logo, Ví dụ 1: Hình 5.21. Màn hình giới thiệu phần mềm Microsoft HTML Help Image Editor 152 Phạm Hùng Phú -Nguyễn Văn Thẩm
  30. Tập bài giảng Công nghệ phần mềm Ví dụ 2: Hình 5.22. Màn hình giới thiệu phần mềm Quản lý ngân hàng câu hỏi thi 5.5.6. Thiết kế màn hình đăng nhập Khi muốn truy cập hệ thống thì ngƣời dùng phải thực hiện việc đăng nhập. Các màn hình đăng nhập đƣợc phân loại nhƣ sau: 1) Màn hình đăng nhập với Username(Tên ngƣời đăng nhập)/Password(Mật khẩu) - Các thành phần của màn hình Hình 5.23. Mẫu màn hình đăng nhập - Ví dụ 1 Phạm Hùng Phú -Nguyễn Văn Thẩm 153
  31. Tập bài giảng Công nghệ phần mềm Hình 5.24. Màn hình đăng nhập hệ thống quản lý dữ liệu - Ví dụ 2: Hình 5.25. Màn hình đăng nhập Gmail 2) Màn hình đăng nhập với Username/Password và Secret Key (Khóa bí mật), Khóa bí mật đƣợc lƣu dƣới dạng tập tin sử dụng các phƣơng pháp mã hóa: RSA, AES, - Các thành phần của màn hình Hình 5.26. Mẫu màn hình đăng nhập với khóa bí mật - Ví dụ: Hình 5.27. Màn hình đăng nhập với Password và Secret Key 3) Màn hình đăng nhập sử dụng cơ chế khóa khác - Các loại khóa 154 Phạm Hùng Phú -Nguyễn Văn Thẩm
  32. Tập bài giảng Công nghệ phần mềm + SafeNet: Là giải pháp bảo mật thông tin và dữ liệu gồm hai giải pháp SafeNet ProtecFile (mã hóa file) và SafeNet ProtecDrive (mã hóa ổ cứng và các thiết bị lƣu trữ di động). Hai giải pháp này riêng biệt nhƣng có thể bổ sung cho nhau. Hình 5.28. Đăng nhập sử dụng SafeNet Ví dụ Hình 5.29. Màn hình đăng nhập sử dụng SafeNet Hình 5.30. Các ứng dụng bảo mật + RSA SecurID: Là một cơ chế phát triển bởi động lực an ninh Dynamics để thực hiện xác thực hai yếu tố (phần cứng và phần mềm) một ngƣời sử dụng tài nguyên mạng. Phạm Hùng Phú -Nguyễn Văn Thẩm 155
  33. Tập bài giảng Công nghệ phần mềm Hình 5.31. RSA SecurID Ví dụ Xét hệ thống rút tiền tự động ATM, để thực hiện việc rút tiền cần phải có đủ hai yếu tố một thẻ ATM (ATM card) và là một mã số cá nhân hay còn đƣợc gọi là PIN (Personal Identification Number). + Mã thẻ thông minh USB lai tích hợp công nghệ One-Time Password (OTP): Là phƣơng pháp tích hợp nhiều phƣơng pháp xác thực thành một thiết bị bảo mật duy nhất. Hình 5.32. Hybird USB Smartcard Token Ví dụ, một nhân viên có thể xác thực tổ chức mạng lƣới của mình bằng cách kết nối các eToken đến cổng USB của máy tính của mình khi ở trong văn phòng làm việc. Khi ở ngoài văn phòng thì kết nối USB là không thể. Do đó, ngƣời dùng có thể sử dụng mã thông báo tƣơng tự để truy cập an toàn mạng thông qua một kết nối VPN bằng mật khẩu OTP. 3) Quản lý đăng nhập hệ thống 156 Phạm Hùng Phú -Nguyễn Văn Thẩm
  34. Tập bài giảng Công nghệ phần mềm Hình 5.33. Quản lý đăng nhập hệ thống + Ví dụ: Khóa bí mật đƣợc lƣu dƣới dạng TokenCode, USB sử dụng các phƣơng pháp mã hóa RSA, AES, đƣợc đồng bộ với Server VPN. Phạm Hùng Phú -Nguyễn Văn Thẩm 157
  35. Tập bài giảng Công nghệ phần mềm Hình 5.34. Khóa bí mật đƣợc đồng bộ với Server VPN 5.5.7. Thiết kế màn hình nhập dữ liệu lƣu trữ 1) Mô tả - Ý nghĩa: Màn hình nhập liệu là màn hình cho phép ngƣời sử dụng thực hiện các công việc có liên quan đến nhập dữ liệu vào cơ sở dữ liệu của phần mềm - Nội dung: + Các thông tin nhập liệu: Là các loại thông tin mà ngƣời sử dụng chịu trách nhiệm nhập vào cơ sở dữ liệu của phần mềm, phần mềm sẽ tiến hành kiểm tra tính hợp lệ các giá trị nhập dựa vào các qui định ràng buộc có liên quan. + Các thông tin tính toán: Là các loại thông tin mà phần mềm chịu trách nhiệm tính toán dựa trên các thông tin đã có. Thông thƣờng, loại thông tin này giúp việc nhập liệu thuận tiện hơn. Ví dụ nhập số lƣợng, đơn giá thì tính ra số tiền nhờ công thức thành tiền= số lƣợng * đơn giá. - Hình thức trình bày: Danh sách, hồ sơ, phiếu, tích hợp - Thao tác ngƣời dùng: Có ba thao tác cơ bản trên màn hình nhập dữ liệu: + Nhấn nút Ghi: Lƣu trữ các thông tin + Nhấn nút Xóa: Xóa các thông tin đã lƣu trữ + Nhấn nút Tìm: tìm và cập nhật lại thông tin đã lƣu trữ Ngoài ra, để tăng tính tiện dụng có thể bổ sung các thao tác khác nhƣ: 158 Phạm Hùng Phú -Nguyễn Văn Thẩm
  36. Tập bài giảng Công nghệ phần mềm + Dùng các phím nóng: Định nghĩa các phím nóng tƣơng ứng với các giá trị nhập liệu thƣờng dùng, điều này cho phép tăng tốc độ nhập liệu. Ví dụ F1 ứng với chuỗi “Nguyễn”, F2 ứng với chuỗi “Trần”, + Dùng các nút chuyển điều khiển: Chuyển điều khiển trực tiếp đến màn hình khác có liên quan đến việc nhập liệu dữ liệu hiện hành. Ví dụ đang nhập sách có thể bổ sung thể loại sách mới, nhà xuất bản mới, - Các phƣơng pháp nhập dữ liệu + Nhập từ bàn phím (Dạng Textbox), + Nhập bằng cách chọn giá trị trên màn hình (Dạng combox, Listbox). + Import từ tập tin vào cơ sở dữ liệu thƣờng từ các tập tin: Excel, XML, CSV, file cơ sở dữ liệu, ; phƣơng pháp này thƣờng phải chỉ rõ đƣờng dẫn của file nguồn và điều kiện để lọc dữ liệu cần nhập. + Import dữ liệu từ các chƣơng trình khác. 2) Thiết kế màn hình nhập dữ liệu dạng danh sách - Màn hình nhập liệu dạng danh sách đƣợc thể hiện dƣới dạng lƣới nhập (dạng bảng biểu gồm các dòng và các cột) tƣơng ứng với các bản ghi trong cơ sở dữ liệu. - Màn hình nhập dữ liệu dạng danh sách chỉ thích hợp khi cần nhập liệu cho các bảng danh sách với kích thƣớc nhỏ. Ví dụ danh sách các thể loại sách, danh sách các môn học, các tham số, - Màn hình nhập dữ liệu dạng danh sách cho phép ngƣời sử dụng có thể tùy ý sửa đổi các thông tin trên các dòng hoặc thêm dòng mới (ở cuối danh sách), xóa dòng sau khi đã chọn dòng cần xóa và cuối cùng yêu cầu ghi lại các thay đổi trên bộ nhớ phụ. - Trong một số trƣờng hợp đặc biệt một số thao tác có thể bị cấm (không cho xóa, không cho thay đổi một số thuộc tính, ) tùy vào ý nghĩa cụ thể của danh sách (không thể thêm mới hoặc xóa các tham số mà chỉ có thể sửa giá trị). Mẫu màn hình nhập dữ liệu dạng danh sách Hình 5.35. Mẫu màn hình nhập dữ liệu dạng danh sách Ví dụ Phạm Hùng Phú -Nguyễn Văn Thẩm 159
  37. Tập bài giảng Công nghệ phần mềm Hình 5.36. Màn hình nhập thể loại sách 3) Thiết kế màn hình nhập dữ liệu dạng hồ sơ - Màn hình nhập liệu có dạng hồ sơ với nhiều thông tin chi tiết, thích hợp nhu cầu nhập liệu các hồ sơ của đối tƣợng. Ví dụ hồ sơ sinh viên, hồ sơ đội bóng, hồ sơ khách hàng, . - Thành phần xử lý: + Thêm: Yêu cầu thêm hồ sơ mới + Sửa: Sửa hồ sơ + Xóa: Xóa hồ sơ hiện hành. + Tìm: Chuyển sang màn hình tra cứu, tìm kiếm theo các tiêu chí để xem, sửa, xóa dữ liệu. + Ghi (Lƣu dữ liệu): Ghi nhận thay đổi trên hồ sơ mới cập nhật hay hồ sơ mới thêm vào. + Không ghi: Hủy bỏ các thao tác vừa thực hiện + Thoát: quay về màn hình trƣớc đó. - Ngƣời sử dụng thêm hồ sơ mới, tìm lại hồ sơ đã lƣu trữ. Sau đó, sửa đổi các thông tin trên hồ sơ tìm thấy, xóa hồ sơ tìm thấy và cuối cùng yêu cầu lƣu trữ hồ sơ. Tuy nhiên để tăng tính tiện dụng một số thao tác chuyển điều khiển có thể đƣợc bổ sung, cho phép di chuyển nhanh đến các màn hình nhập liệu liên quan khi cần thiết. Ví dụ thêm mặt hàng mới, thêm tác giả mới, thêm nhà xuất bản mới. Một mẫu màn hình nhập dữ liệu dạng hồ sơ: Hình 5.37. Mẫu màn hình nhập dữ liệu dạng hồ sơ 160 Phạm Hùng Phú -Nguyễn Văn Thẩm
  38. Tập bài giảng Công nghệ phần mềm Ví dụ 1: Hình 5.38. Màn hình nhập hồ sơ học sinh Ví dụ 2: Hình 5.39. Màn hình nhập thông tin sách mới Ví dụ 3: Hình 5.40. Màn hình nhập thông tin đội bóng 4) Thiết kế màn hình nhập dữ liệu dạng phiếu - Màn hình nhập dữ liệu có dạng phiếu với nhiều dòng chi tiết, thích hợp khi cần nhập dữ liệu cho các phiếu ghi nhận thông tin về hoạt động các đối tƣợng. Ví dụ hóa đơn bán hàng, phiếu nhập hàng, - Thành phần xử lý: + Thêm: Yêu cầu thêm một phiếu mới + Thêm chi tiết: Yêu cầu thêm một dòng chi tiết mới của phiếu. + Ghi (Lƣu dữ liệu): Chấp nhận thay đổi trên hồ sơ mới cập nhật và lƣu hồ sơ mới thêm vào + Xóa: Xóa phiếu hiện hành Phạm Hùng Phú -Nguyễn Văn Thẩm 161
  39. Tập bài giảng Công nghệ phần mềm + Xóa chi tiết: Xóa dòng chi tiết đƣợc chọn + Tìm: Chuyển sang màn hình tra cứu để tìm và cập nhật lại hoặc xóa dữ liệuộphiếu. + Lƣu chi tiết: Cập nhật dòng chi tiết đƣợc chọn. + Sửa: Chuyển sang màn hình tra cứu để tìm và cập nhật lại + Sửa chi tiết: Cập nhật dòng chƣơng trình đƣợc chọn + Thoát: Quay về màn hình trƣớc đó. Hình 5.41. Mẫu 1-Màn hình nhập dữ liệu dạng phiếu Hình 5.42. Mẫu 2-Màn hình nhập dữ liệu dạng phiếu Hình 5.43. Mẫu 3-Màn hình nhập dữ liệu dạng phiếu 162 Phạm Hùng Phú -Nguyễn Văn Thẩm
  40. Tập bài giảng Công nghệ phần mềm Hình 5.44. Mẫu 4-Màn hình nhập dữ liệu dạng phiếu Ví dụ 1: Hình 5.45. Màn hình nhập phiếu mƣợn sách Ví dụ 2: Hình 5.46. Màn hình nhập danh mục tên nƣớc Ví dụ 3: Phạm Hùng Phú -Nguyễn Văn Thẩm 163
  41. Tập bài giảng Công nghệ phần mềm Hình 5.47. Màn hình nhập dữ liệu hồ sơ sử dụng Tab Control Ví dụ 4: Hình 5.48. Màn hình nhập dữ liệu khen thƣởng sử dụng Tab Control Ví dụ 5: Hình 5.49. Màn hình nhập danh mục tên nƣớc 164 Phạm Hùng Phú -Nguyễn Văn Thẩm
  42. Tập bài giảng Công nghệ phần mềm Ví dụ 6: Hình 5.50. Màn hình nhập dữ liệu hóa đơn Ví dụ 7: Hình 5.51. Màn hình nhập dữ liệu hóa đơn liên kết đến màn hình khác 5) Thiết kế màn hình nhập dữ liệu bằng cách Import Hình 5.52. Màn hình nhập dữ liệu khách hàng bằng cách Import Phạm Hùng Phú -Nguyễn Văn Thẩm 165
  43. Tập bài giảng Công nghệ phần mềm 5.5.8. Thiết kế màn hình xử lý tính toán 1) Mô tả - Ý nghĩa sử dụng: Màn hình xử lý tính toán là màn hình cho phép ngƣời sử dụng cung cấp thông tin cần thiết cho việc thực hiện một công việc nào đó. - Nội dung: + Các thông tin cần thiết: Là các loại thông tin mà ngƣời sử dụng chịu trách nhiệm cung cấp để thực hiện xử lý tính toán. + Các thông tin tính toán: Là các loại thông tin mà phần mềm chịu trách nhiệm tính toán dựa trên các thông tin đã có. Ví dụ tính lƣơng tháng, tính điểm trung bình, tính doanh thu, tính tiền thƣởng. - Thao tác ngƣời dùng: Có hai thao tác cơ bản trên màn hình xử lý tính toán: + Nhấn nút Tính: Thực hiện tính toán + Nhấn nút Cập nhật: Lƣu thông tin đã đƣợc tính toán Hình 5.53. Màn hình tính lƣơng Hình 5.54. Màn hình lập phiếu mua hàng 5.5.9. Thiết kế màn hình kết quả 1) Kết quả tra cứu dùng thông báo: 166 Phạm Hùng Phú -Nguyễn Văn Thẩm
  44. Tập bài giảng Công nghệ phần mềm - Với hình thức này kết quả tra cứu chỉ đơn giản là câu thông báo cho biết có hay không có đối tƣợng cần tìm. - Đây là hình thức đơn giản nhất và có tính tiện dụng thấp nhất. Với hình thức này ngƣời sử dụng không biết thêm bất kỳ thông tin nào về đối tƣợng tìm thấy. - Ví dụ: + Kết quả tra cứu sách chỉ cho biết sách có trong thƣ viện hay không? Không cho biết tác giả, nhà xuất bản, ; đặc biệt là thông tin rất đƣợc quan tâm là sách hiện đang có cho mƣợn hay không? + Kết quả tra cứu sinh viên chỉ cho biết có sinh viên trong trƣờng hay không? Hình 5.55. Kết quả tra cứu dùng thông báo 2) Kết quả tra cứu dạng danh sách - Với hình thức này kết quả tra cứu là danh sách các đối tƣợng tìm thấy cùng với một số thông tin cơ bản về đối tƣợng. - Hình thức này cho phép ngƣời dùng biết thêm thông tin cơ bản về các đối tƣợng tìm thấy nhƣng không cho biết chi tiết về các hoạt động của đối tƣợng qua các quan hệ với các đối tƣợng khác. - Ví dụ: Tra cứu sách Hình 5.56. Kết quả tra cứu dạng danh sách + Kết quả tra cứu sách là danh sách thỏa tiêu chuẩn tra cứu cùng với các thông tin liên quan nhƣ tác giả, năm xuất bản, tình trạng mƣợn, kết quả này chƣa cho biết cụ thể họ tên, địa chỉ đọc giả đang mƣợn, thời hạn trả sách dự kiến. Phạm Hùng Phú -Nguyễn Văn Thẩm 167
  45. Tập bài giảng Công nghệ phần mềm 3) Kết quả tra cứu dùng nhiều danh sách - Với hình thức này kết quả tra cứu bao gồm nhiều danh sách gồm ds_1, ds_2, , ds_n. Trong đó danh sách thứ k (ds_k) chứa các thông tin mô tả cho một phần tử trong danh sách thứ k-1(ds_k-1). Danh sách đầu tiên là danh sách trong hình thức trên. - Hình thức này không những cho phép xem các thông tin cơ bản về đối tƣợng tìm thấy mà còn cho biết chi tiết về hoạt động của đối tƣợng qua các quan hệ với các đối tƣợng khác. - Ví dụ: Tra cứu sách, kết quả tra cứu sách bao gồm 2 danh sách: + Ds_1: Danh sách các sách tìm thấy. + Ds_2: Danh sách các độc giả cùng với địa chỉ, ngày mƣợn, của một quyển sách đƣợc chọn trong ds_1. Hình 5.57. Màn hình tra cứu dùng nhiều danh sách - Ví dụ: Tra cứu học sinh, kết quả tra cứu học sinh bao gồm 3 danh sách: + Ds_1: Danh sách các học sinh tìm thấy + Ds_2: Danh sách các môn học cùng với điểm trung bình tƣơng ứng của một học sinh đƣợc chọn trong ds_1. + Ds_3: Danh sách các cột điểm của môn học đƣợc chọn trong ds_2. Hình 5.58. Màn hình tra cứu dùng nhiều danh sách 168 Phạm Hùng Phú -Nguyễn Văn Thẩm
  46. Tập bài giảng Công nghệ phần mềm 4) Kết quả tra cứu dùng cây danh sách - Với hình thức này kết quả tra cứu là một cây mà các nút chính là các danh sách. Danh sách tƣơng ứng trong một nút con sẽ là các thông tin mô tả chi tiết về một phần tử đƣợc chọn trong danh sách của nút cha. Danh sách đầu tiên chính là danh sách trong hình thức phía trên. - Hình thức trình bày này cho phép xem đƣợc quá trình hoạt động của đối tƣợng với nhiều quan hệ, nhiều loại hoạt động khác nhau. - Ví dụ: Kết quả tra cứu học sinh bao gồm 4 danh sách: + Ds_1: Danh sách các học sinh tìm thấy + Ds_1.1: Danh sách các môn học cùng với điểm trung bình tƣơng ứng của một học sinh đƣợc chọn trong ds_1 + Ds_1.1.1: Danh sách các cột điểm của môn học đƣợc chọn trong ds_1.1 + Ds1.2: Danh sách các ngày vắng cùng với lý do của một học sinh đƣợc chọn trong ds_1. Hình 5.59. Màn hình tra cứu dùng cây danh sách 5.5.10. Thiết kế màn hình thông báo - Ý nghĩa sử dụng: Màn hình thông báo là màn hình đƣa ra thông tin nhắc nhở ngƣời sử dụng trong quá trình thực hiện một công việc nào đó - Nội dung: + Thông báo: Là dòng thông tin nhắc nhở ngƣời sử dụng. + Biểu tƣợng: Là hình ảnh tƣợng trƣng cho nội dung thông báo + Nút lệnh: Là hành động mà sẽ đƣợc thực thi sau khi ngƣời sử dụng chọn. - Hình thức trình bày: + Thông báo: Xâu kí tự và dấu câu Phạm Hùng Phú -Nguyễn Văn Thẩm 169
  47. Tập bài giảng Công nghệ phần mềm + Biểu tƣợng: Question, Error, Exclamation, Hand, Information, Stop, Warning, None, Astirisk. + Nút lệnh: OK, Cancel, Abort, Retry, Ignore, Retry, Yes, No, Help - Thao tác ngƣời dùng: Ngƣời sử dụng chọn nút lệnh. Hình 5.60: Mẫu màn hình thông báo Ví dụ: Hình 5.61. Màn hình thông báo 5.5.11. Thiết kế màn hình tra cứu 1) Mô tả: - Ý nghĩa: Màn hình cho phép ngƣời dùng tìm kiếm và xem các thông tin theo các tiêu chí tra cứu của các đối tƣợng. - Nội dung: + Tiêu chí tra cứu: Là các điều kiện về thông tin đƣợc sử dụng cho việc tìm kiếm, thƣờng là các điều kiện của các thuộc tính. + Kết quả tra cứu: Cho biết có tìm thấy hay không Các thông tin cơ bản về đối tƣợng tìm kiếm (các thuộc tính). Các thông tin về qui trình hoạt động của đối tƣợng (quan hệ với các đối tƣợng khác). - Hình thức trình bày: + Tiêu chí tra cứu: Biểu thức logic, cây, tích hợp. + Kết quả tra cứu: Thông báo, danh sách, xâu các danh sách, cây các danh sách - Thao tác ngƣời dùng: + Nhập giá trị cho các tiêu chí tra cứu. + Yêu cầu bắt đầu tra cứu + Xem chi tiết các kết quả tra cứu 2) Thiết kế màn hình tra cứu với biểu thức logic Tiêu chí tra cứu đƣợc thể hiện dƣới dạng một biểu thức logic thƣờng có dạng: 170 Phạm Hùng Phú -Nguyễn Văn Thẩm
  48. Tập bài giảng Công nghệ phần mềm - Biểu thức logic đơn giản: - Biểu thức logic phức tạp: gồm nhiều biểu thức đơn giản kết nối với nhau bằng các phép toán logic And, Or, Not. Hình 5.62. Mẫu màn hình tra cứu Hình 5.63. Ví dụ về màn hình tra cứu Phạm Hùng Phú -Nguyễn Văn Thẩm 171
  49. Tập bài giảng Công nghệ phần mềm Hình 5.64. Màn hình tra cứu tiếp nhận bƣu điện, bƣu phẩm 3) Thiết kế màn hình tra cứu với hình thức cây - Tiêu chuẩn tra cứu đƣợc thể hiện qua cây mà các nút chính là các bộ phận trong tổ chức, hình thức này rất thích hợp với các tổ chức có cấu trúc phân cấp. Chẳng hạn: Trƣờng có nhiều phòng, khoa; phòng, khoa có nhiều bộ môn; công ty có nhiều kho hàng, kho hàng chứa nhiều loại hàng. - Hình thức này cho phép tra cứu và có thể dùng thể hiện việc chuyển đổi các đối tƣợng từ bộ phận này sang bộ phận khác. Chẳng hạn: Chuyển giảng viên từ bộ môn này sang bộ môn khác. - Các thao tác trên màn hình chủ yếu qua việc sử dụng chuột hoặc các tổ hợp phím. Chẳng hạn: Các thao tác sao chép, cắt dán. Hình 5.65. Mẫu màn hình tra cứu với hình thức cây 172 Phạm Hùng Phú -Nguyễn Văn Thẩm
  50. Tập bài giảng Công nghệ phần mềm Hình 5.66. Màn hình cây tra cứu nhân viên Hình 5.67. Màn hình cây tra danh mục nhân viên 4) Thiết kế màn hình tra cứu tích hợp Hình 5.68. Màn hình tra cứu tích hợp Phạm Hùng Phú -Nguyễn Văn Thẩm 173
  51. Tập bài giảng Công nghệ phần mềm 5.6. Thiết kế xử lý - Mô tả chi tiết hệ thống các hàm xử lý (cùng với các hằng, biến, kiểu liên quan) của phần mềm. - Mô tả hàm xử lý: - Kết quả + Danh cách các đơn thể/đối tƣợng + Danh sách các hàm của mỗi đơn thể/đối tƣợng + Các sơ đồ phối hợp - Danh sách các kiểu dữ liệu xử lý STT Kiểu dữ liệu Ý nghĩa Ghi chú 1 - Danh sách các thuộc tính kiểu dữ liệu X STT Thuộc tính Kiểu Ràng buộc Giá trị khởi động Ghi chú 1 2 - Danh sách các biến STT Biến Kiểu Ý nghĩa Ghi chú 1 - Danh sách các hằng STT Hằng Kiểu Giá trị Ý nghĩa Ghi chú 1 - Danh sách các hàm xử lý Kết quả STT Hàm Tham số Thuật giải Ý nghĩa Ghi chú trả về 1 - Sơ đồ phối hợp: Mô tả cách thức phối hợp (gọi thực hiện) giữa các hàm + Các kí hiệu: 174 Phạm Hùng Phú -Nguyễn Văn Thẩm
  52. Tập bài giảng Công nghệ phần mềm Hàm xử lý Hàm của đơn thể A có gọi đến B, C theo thứ tự, không chuyển tham số, không nhận kết quả A gọi đến B có chuyển tham số, không nhận kết quả A gọi đến B không chuyển tham số, nhƣng nhận kết quả A gọi đến B hoặc C A gọi đến B nhiều lần (ít nhất là 0 lần) A gọi đến B nhiều lần (ít nhất là 1 lần) Ví dụ: Xét màn hình tiếp nhận học sinh mới nhƣ sau Hãy: 1) Mô tả các biến cố 2) Lập danh sách các hàm xử lý 3) Lập các sơ đồ phối hợp (Khi có ít nhất hai hàm tham gia trong cùng một biến cố) Trả lời: Phạm Hùng Phú -Nguyễn Văn Thẩm 175
  53. Tập bài giảng Công nghệ phần mềm 1) Mô tả các biến cố - Biến cố 0: Khởi động màn hình - Biến cố 1: Kiểm tra tuổi học sinh hợp lệ (tuổi từ 15 đến 20) - Biến cố 2: Khi chọn một lớp học trên combo box - Biến cố 3: Kiểm tra dữ liệu hợp lệ và ghi Bảng 5.4. Danh sách các biến cố Biến cố Điều kiện kích hoạt Xử lý Ghi chú 0 Khởi động màn hình Đọc danh sách lớp, danh sách học sinh, tham số Xuất danh sách lớp, danh sách học sinh, hồ sơ học sinh mới 1 Kết thúc nhập ngày Kiểm tra ngày sinh hợp lệ và xuất Tuổi theo sinh thông báo lỗi nếu không hợp lệ qui định 15 20 2 Kết thúc chọn lớp Ghi nhận vị trí của lớp đƣợc chọn Chuẩn bị trong danh sách lớp khi ghi hồ sơ 3 Nhút nút ghi Kiểm tra hồ sơ hợp lệ Mã và tên Nếu hợp lệ thì nhập hồ sơ học phải khác sinh và ghi hồ sơ học sinh. Xuất rỗng thông báo 2) Lập danh sách các hàm xử lý Bảng 5.5. Danh sách các hàm xử lý Kết quả Thuật STT Hàm Tham số Ý nghĩa trả về giải 1 Đọc danh Mã lớp Danh Đọc và ghi danh sách sách lớp Tên lớp sách lớp lớp từ cơ sở dữ liệu 2 Đọc danh Mã lớp Danh Đọc và ghi danh sách sách học sinh Tên lớp sách học sách học sinh từ cơ sở Họ tên sinh dữ liệu Ngày sinh Giới tính Địa chỉ 3 Đọc danh Mã lớp Danh Đọc và truyền sách sách tham số Tên lớp sách tham tham số do ngƣời Họ tên số dùng cung cấp Ngày sinh Giới tính Địa chỉ 4 Xuất danh Mã lớp Danh Lấy danh sách lớp từ sách lớp Tên lớp sách lớp cơ sở dữ liệu 5 Xuất danh Mã lớp Danh Lấy danh sách học sách học sinh Tên lớp sách học sinh từ cơ sở dữ liệu Họ tên sinh 176 Phạm Hùng Phú -Nguyễn Văn Thẩm
  54. Tập bài giảng Công nghệ phần mềm Kết quả Thuật STT Hàm Tham số Ý nghĩa trả về giải Ngày sinh Giới tính Địa chỉ 6 Xuất hồ sơ Mã lớp Hồ sơ Lấy danh sách học học sinh mới Tên lớp học sinh sinh mới nhập học từ Họ tên mới cơ sở dữ liệu Ngày sinh Giới tính Địa chỉ 3) Lập các sơ đồ phối hợp (Khi có ít nhất hai hàm tham gia trong cùng một biến cố) - Xử lý biến cố 0 - Xử lý biến cố 0: Phân rã hàm Phạm Hùng Phú -Nguyễn Văn Thẩm 177
  55. Tập bài giảng Công nghệ phần mềm 5.7. Các công việc của cán bộ thiết kế Sau đây là các công việc chính của cán bộ thiết kế phần mềm Bảng 5.6. Các công việc của cán bộ thiết kế STT Nhiệm vụ/Công việc 1. Xác định công nghệ giải quyết các vấn đề liên quan đến YC-NSD 2. Lập kế hoạch thiết kế 3. Xác định công cụ mô tả thiết kế 4. Xây dựng các chuẩn, qui ƣớc, thủ tục và hƣớng dẫn thiết kế 5. Xây dựng các tài liệu thiết kế 6. Thiết kế tổng thể 7. Thiết kế chi tiết 8. Xem xét thiết kế 9. Thực hiện thay đổi thiết kế 10. Hỗ trợ các vấn đề liên quan đến thiết kế 11. Báo cáo và tổng hợp kết quả thiết kế 12. Lập và lƣu trữ các hồ sơ liên quan đến thiết kế 13. Thu thập và kiểm soát các dữ liệu liên quan đến các hoạt động thiết kế 14. Tính toán và phân tích các chỉ tiêu liên quan đến các hoạt động thiết kế 178 Phạm Hùng Phú -Nguyễn Văn Thẩm
  56. Tập bài giảng Công nghệ phần mềm CÂU HỎI VÀ BÀI TẬP CHƢƠNG 5 1. Vẽ sơ đồ biểu diễn mối liên quan của giai đoạn thiết kế với các giai đoạn khác. 2. Đầu vào của giai đoạn thiết kế gồm các mô hình gì. Cho ví dụ. 3. Đầu ra của giai đoạn thiết kế gồm những gì. Cho ví dụ. 4. Nêu các hoạt động và kết quả trong thiết kế phần mềm theo góc độ kỹ thuật. 5. Nêu các hoạt động trong thiết kế phần mềm theo góc độ quản lý. 6. Nêu các chiến lƣợc thiết kế phần mềm. 7. Trình bày chiến lƣợc thiết kế hƣớng đối tƣợng. 8. Trình bày chiến lƣợc thiết kế hƣớng chức năng. 9. Nêu các mô hình cho thiết kế ứng dụng. 10. Mô hình điều khiển là mô hình hoạt động nhƣ thế nào. 11. Các thành phần của mô hình khách-phục vụ. 12. Nêu các mô hình cho thiết kế ứng dụng. Trình bày mô hình khách-phục vụ. 13. Nêu các hƣớng dẫn về tƣơng tác chung. 14. Nêu các mô hình cho thiết kế ứng dụng. Trình bày mô hình kho dữ liệu. 15. Nêu các cách thức và các loại thông tin lƣu trữ dữ liệu của phần mềm. 16. Nêu các loại thuộc tính. Cho ví dụ. 17. Nêu các bƣớc chuyển đổi từ mô hình ERD sang mô hình vật lý. 18. Nêu các cách tiếp cận chính để thiết kế dữ liệu. 19. Nêu các bƣớc thiết kế cơ sở dữ liệu bằng phƣơng pháp gián tiếp 20. Nêu các yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu. 21. Nêu quy trình thiết kế giao diện ngƣời sử dụng. 22. Nêu cách vẽ sơ đồ liên kết màn hình. Cho ví dụ. 23. Nêu các thông tin mô tả một màn hình. 24. Nêu các công cụ sử dụng để thiết kế màn hình. 25. Nêu các loại màn hình, ý nghĩa sử dụng, nội dung chính. 26. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, thao tác ngƣời dùng khi thiết kế màn hình chính. 27. Nêu các bƣớc thiết kế màn hình chính dùng thực đơn hƣớng chức năng. Nêu mẫu thiết kế. Cho ví dụ. 28. Nêu các bƣớc thiết kế màn hình chính dùng thực đơn hƣớng đối tƣợng. Nêu mẫu thiết kế. Cho ví dụ. 29. Nêu các bƣớc thiết kế màn hình chính dùng thực đơn hƣớng qui trình. Nêu mẫu thiết kế. Cho ví dụ. 30. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, thao tác ngƣời dùng khi thiết kế màn hình giới thiệu. Cho ví dụ. Phạm Hùng Phú -Nguyễn Văn Thẩm 179
  57. Tập bài giảng Công nghệ phần mềm 31. Nêu các loại màn hình đăng nhập. Cho ví dụ. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, thao tác ngƣời dùng khi thiết kế màn hình nhập dữ liệu lƣu trữ. 32. Nêu các phƣơng pháp nhập dữ liệu. 33. Nêu các dạng màn hình nhập dữ liệu lƣu trữ. 34. Nêu các thành phần, mẫu thiết kế màn hình nhập dữ liệu lƣu trữ dạng danh sách. 35. Nêu các thành phần, mẫu thiết kế màn hình nhập dữ liệu lƣu trữ dạng hồ sơ. 36. Nêu các thành phần, mẫu thiết kế màn hình nhập dữ liệu lƣu trữ dạng phiếu 37. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, thao tác ngƣời dùng khi thiết kế màn hình xử lý tính toán. 38. Nêu các dạng màn hình kết quả. Cho ví dụ. 39. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, mẫu khi thiết kế màn hình thông báo. Cho ví dụ. 40. Nêu ý nghĩa sử dụng, nội dung, hình thức trình bày, thao tác ngƣời dùng khi thiết kế màn hình tra cứu. 41. Nêu mẫu thiết kế màn hình tra cứu với biểu thức logic, hình thức cây, tích hợp. 42. Nêu các kí hiệu và ý nghĩa sử dụng của các thành phần trong sơ đồ phối hợp giữa các hàm xử lý. Cho ví dụ. 43. Hãy đề xuất một mô hình điều khiển thích hợp cho các hệ thống sau: - Bộ điều khiển của tivi có thể nhận tín hiệu từ một đơn vị điều khiển từ xa - Hệ thống thanh toán lƣơng, xử lý theo lô. Lấy thông tin về thời gian làm việc, hệ số lƣơng; in ra bảng lƣơng và chuyển thông tin vào tài khoản ngân hàng. 44. Hãy đề xuất một mô hình cấu trúc thích hợp và thiết kế kiến trúc cho các hệ thống dƣới đây - Hệ thống bán vé tàu hoả tự động - Hệ thống hội nghị trực tuyến, cho phép các dạng dữ liệu nhƣ âm thanh, hình ảnh, văn bản có thể đƣợc truyền tới ngƣời sử dụng một cách đồng thời. 45. Công ty FPT nhận đƣợc một đơn đặt hàng của Ngân hàng đầu tƣ và phát triển Việt Nam muốn xây dựng phần mềm rút tiền (VND) tự động. Ngân hàng có tất cả 64 chi nhánh đặt tại 64 tỉnh. Mỗi tỉnh sẽ có một Server để quản lý các tài khoản khách hàng mình quản lý. Ngân hàng muốn lắp đặt một hệ thống mạng để liên kết các chi nhánh tạo thành một mạng lƣới trên toàn quốc. Vậy công ty FPT nên chọn các mô hình nào cho thiết kế ứng dụng này. Vì sao ? 46. Công ty FPT nhận đƣợc một đơn đặt hàng của trƣờng Đại học Sƣ Phạm Kỹ thuật Nam Định muốn phát triển một phần mềm quản lý đào tạo gồm các chƣơng trình: quản lý tuyển sinh, quản lý điểm, quản lý học sinh sinh viên; nhà trƣờng yêu cầu 180 Phạm Hùng Phú -Nguyễn Văn Thẩm
  58. Tập bài giảng Công nghệ phần mềm tất cả dữ liệu của các chƣơng trình đƣợc lƣu trữ tại một cơ sở dữ liệu trung tâm để có thể đƣợc truy cập bởi mọi chƣơng trình. Vậy công ty FPT nên chọn các mô hình nào cho thiết kế ứng dụng này. Vì sao ? 47. Xét phần mềm quản lý giải bóng đá với yêu cầu tiếp nhận đăng ký tham gia. Biết rằng thông tin về mỗi đội bao gồm: Tên đội, danh sách các cầu thủ của đội; Thông tin về mỗi cầu thủ bao gồm: Tên cầu thủ, vị trí sở trƣờng. Hãy thiết kế màn hình giao diện cho yêu cầu tiếp nhận đăng ký tham gia. 48. Xét phần mềm quản lý giải bóng đá với yêu cầu xếp lịch thi đấu. Biết rằng các đội thi đấu vòng tròn hai lƣợt. Thông tin về trận đấu đƣợc xếp lịch: Hai đội bóng tham dự, ngày giờ thi đấu, sân thi đấu (giải diễn ra trên hai sân: A, B). Hãy thiết kế màn hình nhập liệu lƣu trữ, màn hình tra cứu theo thời gian thi đấu cho yêu cầu xếp lịch thi đấu. 49. Xét phần mềm quản lý giải bóng đá với yêu cầu ghi nhận kết quả thi đấu. Các thông tin cần ghi nhận: Tỉ số, tổng số thẻ vàng, tổng số thẻ đỏ. Hãy thiết kế màn hình nhập liệu lƣu trữ, màn hình xử lý tính toán cho yêu cầu ghi nhận kết quả thi đấu. 50. Xét phần mềm quản lý giải bóng đá với yêu cầu lập bảng xếp hạng. Biết rằng hạng đƣợc dựa trên các tiêu chí sau: Điểm số, hiệu số, số bàn thắng; Điểm cho mỗi trân thua là 0, hòa là 1, thắng là 3. Hãy thiết kế màn hình nhập liệu lƣu trữ, màn hình xử lý tính toán cho yêu cầu ghi nhận kết quả thi đấu. 51. Xét phần mềm quản lý tiết kiệm với chức năng mở sổ tiết kiệm. Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo chứng minh thƣ nhân dân, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 52. Xét phần mềm Quản lý học sinh với chức năng tiếp nhận học sinh mới Phạm Hùng Phú -Nguyễn Văn Thẩm 181
  59. Tập bài giảng Công nghệ phần mềm Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo chứng minh thƣ nhân dân, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 53. Xét phần mềm quản lý bán hàng với nghiệp vụ lập phiếu thu tiền của khách hàng Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo chứng minh thƣ nhân dân, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 54. Xét phần mềm quản lý nhân sự với nghiệp vụ tiếp nhận nhân viên Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo chứng minh thƣ nhân dân, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 55. Xét phần mềm quản lý học sinh với nghiệp vụ tiếp nhận hồ sơ học sinh có biểu mẫu và quy định nhƣ sau: Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo địa chỉ, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 182 Phạm Hùng Phú -Nguyễn Văn Thẩm
  60. Tập bài giảng Công nghệ phần mềm 56. Xét phần mềm quản lý các đại lý với nghiệp vụ tiếp nhận hồ sơ đại lý có biểu mẫu và quy định nhƣ sau: Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo loại đại lý, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 57. Xét phần mềm quản lý giải vô địch bóng đá quốc gia có biểu mẫu và quy định nhƣ sau: Hãy thiết kế dữ liệu và màn hình nhập liệu lƣu trữ, màn hình tra cứu theo tên đội, màn hình kết quả. Sau đó mô tả các biến cố, lập danh sách các hàm xử lý, lập các sơ đồ phối hợp cho các màn hình đã thiết kế. 58. Chọn một phƣơng án tốt nhất cho các câu hỏi sau: 1) Quá trình thiết kế phần mềm thể hiện qua các khía cạnh ? a. Quản lý b. Phƣơng pháp c. Kỹ thuật d. Cả a và c 2) Các bƣớc thiết kế phần mềm nào sau đây thuộc khía cạnh kỹ thuật ? a. Thiết kế sơ bộ b. Thiết kế chi tiết c. Thiết kế dữ liệu d. a và b 3) Chiến lƣợc thiết kế nào sau đây có vùng dữ liệu dùng chung ? a. Hƣớng chức năng b. Hƣớng đối tƣợng. c. Giao diện d. Cả b và c 4) Chiến lƣợc thiết kế nào sau đây mà các đối tƣợng độc lập với nhau ? a. Hƣớng chức năng b. Hƣớng đối tƣợng. c. Giao diện d. Cả a và c 5) Mô hình nào sau đây mà mọi dữ liệu đƣợc lƣu trữ tại một cơ sở dữ liệu trung tâm có thể đƣợc truy cập bởi mọi phân hệ ? a. Kho dữ liệu b. Khách-phục vụ c. Máy trừu tƣợng d. Điều khiển 6) Mô hình nào sau đây mà dữ liệu đƣợc phân tán tại nhiều nơi ? a. Khách-phục vụ b. Máy trừu tƣợng c. Đối tƣợng d. Luồng dữ liệu Phạm Hùng Phú -Nguyễn Văn Thẩm 183
  61. Tập bài giảng Công nghệ phần mềm Chƣơng 6 CÀI ĐẶT PHẦN MỀM 6.1. Giai đoạn cài đặt phần mềm Cài đặt là một công đoạn trong việc phát triển phần mềm và nó đƣợc xem là một hệ quả tất yếu của thiết kế, nhằm chuyển các đặc tả mịn của giai đoạn thiết kế sang một ngôn ngữ lập trình cụ thể. Tuy vậy, kỹ năng lập trình, các phƣơng pháp lập trình và các đặc trƣng của ngôn ngữ lập trình có ảnh hƣởng lớn đến chất lƣợng của phần mềm. Một chƣơng trình đƣợc cài đặt tốt đem lại cho ta thuận lợi trong việc bảo trì sau này. 6.2. Kỹ năng lập trình Sau khi sinh ra chƣơng trình đích, chức năng của mỗi module phải rõ ràng, không cần tham khảo tới đặc tả thiết kế - nói cách khác, chƣơng trình phải dễ hiểu. Viết một chƣơng trình máy tính là viết một dãy các câu lệnh trong ngôn ngữ hiện có. Cách thức mỗi mệnh đề này diễn tả trong chừng mực nào đó sẽ xác định ra tính dễ hiểu của toàn bộ chƣơng trình Các kỹ năng lập trình bao gồm: - Hiểu rõ ngôn ngữ (language-specific) - Sử dụng tên biến thích hợp và có nghĩa - Tên biến phải rõ ràng, tránh nhầm lẫn - Nên có các chú thích bên trong mô-đun - Mã lệnh chuẩn - Thống nhất về cách đặt tên Mô-đun, tên hàm, tên biến, - Khả năng tái sử dụng Các yếu tố của kỹ năng lập trình bao gồm tài liệu bên trong, phƣơng pháp khai báo dữ liệu, cách tiếp cận đến việc xây dựng câu lệnh, các kỹ thuật vào/ra 6.2.1. Tài liệu chƣơng trình Tài liệu chƣơng trình đƣợc hiểu là tài liệu bên trong của chƣơng trình gốc. Nó bắt đầu với việc chọn lựa các tên gọi định danh, tiếp đến là vị trí và thành phần của việc chú thích, và kết luận với cách tổ chức trực quan của chƣơng trình. Việc lựa chọn các tên gọi định danh có nghĩa chính là điều chủ chốt cho việc hiểu chƣơng trình. Những ngôn ngữ giới hạn tên biến hay nhãn chỉ có trong vài ký tự nên tự nó đã mang nghĩa mơ hồ. Nhƣng ý nghĩa thông thƣờng phải đƣợc áp dụng khi tên gọi đã đƣợc chọn, các tên gọi dài không cần thiết đôi lúc có thể đƣa ra tiềm năng lỗi. Các nghiên cứu đã chỉ ra rằng cho dù một chƣơng trình nhỏ thì một tên gọi có nghĩa cũng làm tăng tính dễ hiểu. Theo ngôn từ của mô hình cú pháp/ngữ nghĩa, tên có ý 184 Phạm Hùng Phú -Nguyễn Văn Thẩm
  62. Tập bài giảng Công nghệ phần mềm nghĩa làm "đơn giản hoá việc chuyển đổi từ cú pháp chƣơng trình sang cấu trúc ngữ nghĩa bên trong". Các chú thích mô tả đƣợc nhúng vào bên trong thân của chƣơng trình gốc và đƣợc dùng để mô tả cho các hàm xử lý. Lời chú thích nên đƣa ra một điều gì đó phụ trợ, không chỉ là lời diễn giải chƣơng trình. Định dạng cho lời chú thích gồm: - Một phát biểu về mục đích chỉ rõ chức năng module. - Mô tả giao diện bao gồm: + Mẫu lời gọi, + Mô tả về mọi đối số, + Danh sách tất cả các module thuộc cấp. - Thảo luận về dữ liệu thích hợp nhƣ các biến quan trọng và những hạn chế và giới hạn về cách dùng chúng, và các thông tin quan trọng khác. - Lịch sử phát triển bao gồm: + Tên ngƣời thiết kế module (tác giả), + Tên ngƣời xét duyệt (kiểm toán) và ngày tháng, + Ngày tháng sửa đổi và mô tả sửa đổi, 6.2.2. Khai báo dữ liệu Độ phức tạp và việc tổ chức cấu trúc dữ liệu đƣợc xác định trong bƣớc thiết kế nhƣng phong cách khai báo dữ liệu thì đƣợc thiết lập khi chƣơng trình đƣợc sinh ra. Thứ tự khai báo dữ liệu nên đƣợc chuẩn hoá cho dù ngôn ngữ lập trình không có yêu cầu bắt buộc. Điều này tạo điều kiện thuận lợi cho việc kiểm thử, gỡ rối và bảo trì. Thậm chí, khi có nhiều định danh đƣợc khai báo trong câu lệnh thì việc sắp xếp theo trật tự chữ cái cho các tên gọi đó cũng có giá trị. 6.2.3. Xây dựng câu lệnh Việc xây dựng các câu lệnh của chƣơng trình nên tuân theo phong cách lập trình cấu trúc. Các câu lệnh nên đơn giản và trực tiếp, không bị xoắn vào nhau để đảm bảo hiệu quả. Các chỉ dẫn: - Tránh dùng các phép kiểm tra điều kiện phức tạp, - Khử bỏ các phép kiểm tra điều kiện phủ định, - Tránh lồng nhau giữa các điều kiện hay chu trình, - Dùng các dấu ngoặc để làm sáng tỏ các biểu thức, - Dùng các dấu cách và các ký hiệu dễ đọc để làm sáng tỏ nội dung câu lệnh, 6.2.4. Kỹ thuật vào ra Khi cài đặt vào/ra, cần thoả mãn các tiêu chí cơ bản sau: - Làm hợp lệ mọi cái vào, - Kiểm tra sự tin cậy của các tổ hợp dữ liệu vào quan trọng, Phạm Hùng Phú -Nguyễn Văn Thẩm 185
  63. Tập bài giảng Công nghệ phần mềm - Giữ cho định dạng dữ liệu vào đơn giản, - Dùng các chỉ báo cuối dữ liệu thay vì yêu cầu ngƣời sử dụng xác định số các khoản mục vào, - Đặt nhãn cho các dữ liệu vào, - Giữ các định dạng dữ liệu vào thống nhất, 6.3. Các phƣơng pháp lập trình Vào những ngày đầu phát triển của máy tính, khi các phần mềm còn rất đơn giản chỉ cỡ vài chục dòng lệnh, chƣơng trình đƣợc viết tuần tự với các câu lệnh thực hiện từ đầu đến cuối. Cách viết chƣơng trình nhƣ thế này gọi là phƣơng pháp lập trình tuyến tính. Khoa học máy tính ngày càng phát triển, các phần mềm đòi hỏi ngày càng phức tạp và lớn hơn rất nhiều. Đến lúc này phƣơng pháp lập trình tuyến tính tỏ ra kém hiệu quả và có những trƣờng hợp ngƣời lập trình không thể kiểm soát đƣợc chƣơng trình. Thế là phƣơng pháp lập trình cấu trúc (LTCT) ra đời. Theo cách tiếp cận này, chƣơng trình đƣợc tổ chức thành các chƣơng trình con. Mỗi chƣơng trình con đảm nhận xử lý một công việc nhỏ trong toàn bộ hệ thống. Mỗi chƣơng trình con này lại có thể chia nhỏ thành các chƣơng trình con nhỏ hơn. Quá trình phân chia nhƣ vậy tiếp tục diễn ra cho đến các chƣơng trình con nhỏ nhận đƣợc đủ đơn giản. Ngƣời ta gọi đó là quá trình làm mịn dần. Các chƣơng trình con tƣơng đối độc lập với nhau, do đó có thể phân công cho từng nhóm đảm nhận viết các chƣơng trình con khác nhau. Ngôn ngữ lập trình thể hiện rõ nét nhất phƣơng pháp lập trình cấu trúc chính là Pascal. Tuy nhiên, khi sử dụng phƣơng pháp lập trình này vẫn còn gặp một khó khăn lớn là tổ chức dữ liệu của hệ thống nhƣ thế nào trong máy tính. Bởi vì theo quan điểm của LTCT thì Chƣơng trình = Cấu trúc dữ liệu + Giải thuật. Để làm đƣợc việc này đòi hỏi ngƣời lập trình phải có kiến thức rất vững về cấu trúc dữ liệu. Một khó khăn nữa gặp phải là giải thuật của chƣơng trình phụ thuộc rất chặt chẽ vào cấu trúc dữ liệu. Do vậy chỉ cần một sự thay đổi nhỏ ở cấu trúc dữ liệu cũng có thể làm thay đổi giải thuật và nhƣ vậy phải viết lại chƣơng trình. Điều này rõ ràng không thể thích hợp khi phải xây dựng một dự án phần mềm rất lớn. Một phƣơng pháp lập trình mới ra đời để khắc phục nhƣợc điểm này và đó chính là phƣơng pháp lập trình hƣớng đối tƣợng (LTHĐT). Điểm căn bản của phƣơng pháp này là thiết kế chƣơng trình xoay quanh dữ liệu của hệ thống. Nghĩa là lúc này các thao tác xử lý của hệ thống đƣợc gắn liền với dữ liệu và nhƣ vậy một sự thay đổi nhỏ của dữ liệu chỉ ảnh hƣởng đến các một số nhỏ các hàm xử lý liên quan. Sự gắn kết giữa dữ liệu và các hàm xử lý trên chúng tạo ra đối tƣợng. Một ƣu điểm nữa có ở phƣơng pháp LTHĐT là cách tiếp cận bài toán trở nên gần gũi với thực tế hơn 186 Phạm Hùng Phú -Nguyễn Văn Thẩm
  64. Tập bài giảng Công nghệ phần mềm 6.4. Ngôn ngữ lập trình 6.4.1. Nền tảng của ngôn ngữ lập trình 1) Kiểu dữ liệu, định nghĩa kiểu dữ liệu và kiểm tra kiểu dữ liệu Kiểu dữ liệu là loại dữ liệu đƣợc định nghĩa từ trƣớc của ngôn ngữ và mỗi ngôn ngữ hỗ trợ một số kiểu dữ liệu. Tất cả các ngôn ngữ đều hỗ trợ biến, hằng số dùng trong dữ liệu số và dữ liệu ký tự. Kiểu dữ liệu đƣợc hỗ trợ chung là: số nguyên, số thực, xâu ký tự. Một số ít ngôn ngữ hỗ trợ các kiểu dữ liệu khác nhƣ: Logical, Boolean, Pointer, Object, Bit, Date, hoặc kiểu dữ liệu tự định nghĩa. Các cấu trúc dữ liệu nhƣ mảng, bảng, danh sách tuyến tính, là loại thứ ba của cấu trúc dữ liệu của ngôn ngữ. Các ngôn ngữ có thể hỗ trợ hoặc không hỗ trợ kiểu này. Tuy nhiên, các kiểu dữ liệu đơn giản nhƣ mảng, danh sách tuyến tính, thƣờng đƣợc hầu hết các ngôn ngữ hỗ trợ. Kiểu dữ liệu tự định nghĩa là kiểu dữ liệu do lập trình viên định nghĩa và chỉ có giá trị trong một chƣơng trình hoặc ứng dụng nhất định. Kiểu dữ liệu tự định nghĩa có thể dùng để định nghĩa các kiểu dữ liệu khi ngôn ngữ không hỗ trợ kiểu dữ liệu đó. Kiểm tra kiểu dữ liệu là việc ngôn ngữ kiểm tra sự phù hợp của kiểu dữ liệu đƣợc định nghĩa trong các phép toán học và các toán tử logic. Có bốn mức kiểm tra kiểu, từ không kiểm tra kiểu đến kiểm tra chặt, mức độ chặt chẽ của kiểm tra phụ thuộc vào dạng ứng dụng. 2) Chƣơng trình con Sự tinh tế của ngôn ngữ thể hiện ở mức độ hỗ trợ module hoá và quản lý bộ nhớ. Module hoá là cách thức tạo ra chƣơng trình con và hàm. Các ngôn ngữ khác nhau ở cách hỗ trợ chƣơng trình con và dữ liệu của nó. Trƣớc hết, khả năng định nghĩa chƣơng trình con, hàm là quan trọng để có đƣợc các đặc trƣng chƣơng trình mong muốn. Thứ hai, dữ liệu trong các module đƣợc quản lý nhƣ thế nào? Dữ liệu có thể là cục bộ hoặc tổng thể. Khả năng có đƣợc dữ liệu cục bộ là quan trọng trong việc che giấu thông tin và giảm thiểu việc liên kết. Phạm vi dữ liệu tổng thể cần đƣợc giới hạn để đảm bảo chất lƣợng của chƣơng trình trong việc giấu thông tin và sự liên kết. Trong các ngôn ngữ, chƣơng trình con đƣợc gọi thông qua tên của nó. Tuỳ chọn cho xử lý việc gọi bao gồm cả việc truyền dữ liệu bằng biến, bằng tên, bằng địa chỉ, hoặc bằng giá trị. Truyền giá trị đòi hỏi sự định nghĩa dữ liệu cục bộ trong khi truyền dữ liệu bằng tên hoặc bằng địa chỉ đƣợc sử dụng với hoặc dữ liệu cục bộ hoặc dữ liệu tổng thể. 3) Cấu trúc điều khiển Cấu trúc điều khiển của ngôn ngữ là yếu tố quyết định thao tác gì và thao tác nhƣ thế nào trên dữ liệu đã mô tả. Chúng cung cấp các khả năng xử lý: tuần tự, lặp và cách thức lựa chọn các cấu trúc dữ liệu. Phạm Hùng Phú -Nguyễn Văn Thẩm 187
  65. Tập bài giảng Công nghệ phần mềm Sự tuần tự có hai dạng: giữa các dòng lệnh và trong dòng lệnh. Lập trình viên điều khiển sự tuần tự giữa các dòng lệnh nhƣ là một trật tự của các lệnh, còn sự tuần tự trong dòng lệnh đó chính là thứ tự ƣu tiên của các phép toán dùng trong thao tác dữ liệu, nó đƣợc các ngôn ngữ quy định sẵn. Cấu trúc lựa chọn trong ngôn ngữ lập trình thƣờng đƣợc mô tả dƣới các từ khoá If hoặc Case. Cấu trúc lặp trong ngôn ngữ lập trình đƣợc hỗ trợ bởi các dạng: lặp biết trƣớc số lần lặp (For), lặp với kiểm tra điều kiện lặp trƣớc - lính canh đặt trƣớc (While do), và lặp với kiểm tra điều kiện lặp sau (Do while). Ngoài việc cung cấp các cấu trúc điều khiển, các ngôn ngữ còn hỗ trợ các phƣơng thức nhƣ: Exits, Return, Fail, để thoát khỏi module hiện tại trở về module gọi hoặc tới module khác. 4) Vào và ra dữ liệu Có bốn dạng thông tin vào/ra (I/O) là: lệnh vào/ra cụ thể, hƣớng bản ghi, hƣớng tập hợp, và hƣớng mảng. Vào/ra hƣớng bản ghi đọc hoặc ghi các bản ghi vật lý, bản ghi này có thể chứa đựng một hoặc nhiều bản ghi logic. Các bản ghi (hoặc là bộ trong đại số quan hệ) sẽ nhóm các trƣờng dữ liệu có quan hệ với nhau. Vào/ra hƣớng bản ghi đòi hỏi đóng mở file, đọc ghi các bản ghi và quản lý ngƣời sử dụng tất cả các công việc xử lý file. Ví dụ: Cobol, Fortrans, Assembler, Ada là các ngôn ngữ hƣớng bản ghi. Hƣớng tập hợp giả sử rằng tất cả các bản ghi (hoặc các bộ) đƣợc coi nhƣ nhau. Ngôn ngữ điều khiển mọi file và mọi tiến trình đọc ghi theo sự lựa chọn mà ngƣời sử dụng định nghĩa. Ở cuối thủ tục, tập các bản ghi (là kết quả của thủ tục) đƣợc lƣu trữ trong bộ nhớ phục vụ cho việc in ấn, hiển thị. Ví dụ SQL là ngôn ngữ hƣớng tập hợp. Vào/ra hƣớng mảng là đọc và ghi chuỗi các trƣờng đƣợc giả thiết là kiểu mảng, ngƣời sử dụng có nhiệm vụ định nghĩa và thao tác kiểu dữ liệu của mảng. Ngôn ngữ chỉ đơn giản đọc và ghi cho đến cuối mảng dữ liệu. Pascal là ngôn ngữ hƣớng mảng. Vào/ra trực tiếp danh sách (list-directed I/O) là một biến thể của vào/ra hƣớng mảng. Fortrans sử dụng vào/ra trực tiếp danh sách để định nghĩa danh sách các tên biến, mỗi tên biến đƣợc truy cập trực tiếp khi chúng đƣợc đọc. Nó đọc cho đến khi danh sách đầy rồi xử lý cho đến khi lệnh đọc đƣợc thực hiện lại. Các mục dữ liệu không đƣợc định dạng cụ thể, mà khuôn dạng ngầm chỉ trong tên biến. 5) Quản lý bộ nhớ Quản lý bộ nhớ là khả năng chƣơng trình phân bổ bộ nhớ máy tính khi cần. Đây là tuỳ chọn nhƣng chúng đƣợc sử dụng nhiều khi xử lý danh sách biến và các ứng dụng thời gian thực quản lý tài nguyên nhiều ngƣời sử dụng. Các ngôn ngữ có độ tinh tế thấp sử dụng bộ nhớ tĩnh: chƣơng trình nhận lƣợng bộ nhớ lớn nhất tại thời điểm khởi tạo. Nếu chƣơng trình cần nhiều bộ nhớ hơn lƣợng đƣợc cấp phát thì chƣơng trình sẽ 188 Phạm Hùng Phú -Nguyễn Văn Thẩm
  66. Tập bài giảng Công nghệ phần mềm bị treo, ngôn ngữ điều khiển nhiệm vụ sẽ cấp phát lƣợng bộ nhớ thiếu đó để chƣơng trình chạy lại. Các ngôn ngữ tinh tế hơn sử dụng khả năng cấp phát bộ nhớ động, tức là chỉ cấp phát bộ nhớ khi nào cần thiết. 6) Quản lý lỗi Quản lý lỗi là mức chƣơng trình đƣợc cài đặt để phát hiện và quản lý lỗi mà không phải dừng chƣơng trình. Khả năng này sẽ làm tăng độ phức tạp và mở rộng phạm vi hữu ích của ngôn ngữ. Ví dụ Cobol cho phép ta chặn đứng lỗi dữ liệu nhƣ tràn, chia cho 0, nhƣng lại không chặn đƣợc lỗi nhƣ định nghĩa dữ liệu không hợp lệ, đọc quá cuối file, Ngƣợc lại Smalltalk cho phép chặn đƣợc bất kỳ lỗi nào. Tóm lại, ngôn ngữ lập trình khác nhau ở mức độ chúng hỗ trợ các cách khác nhau cho điều khiển dữ liệu, xử lý vào/ra, thao tác toán học, chƣơng trình con, và quản lý bộ nhớ. Ngôn ngữ hỗ trợ ít là ngôn ngữ đơn giản. Cấu trúc ngôn ngữ càng phức tạp thì phạm vi bao quát của nó càng lớn. 6.4.2. Các lớp ngôn ngữ lập trình Hiện nay có hàng trăm ngôn ngữ lập trình, tuy nhiên theo đánh giá có thể chia nó ra làm bốn thế hệ - từ thế hệ thứ nhất đến thế hệ thứ bốn. - Các ngôn ngữ thế hệ thứ nhất: Là các chƣơng trình đƣợc viết theo mã máy hoặc hợp ngữ. Các ngôn ngữ này phụ thuộc vào máy và có mức độ trừu tƣợng thấp. Ta chỉ nên dùng các ngôn ngữ này khi các ngôn ngữ cấp cao không thể đáp ứng đƣợc hay không hỗ trợ yêu cầu của ứng dụng. - Các ngôn ngữ thế hệ thứ hai: Đƣợc phát triển từ cuối những năm 1950 đến đầu những năm 1960, nhƣ FORTRAN, COBOL, ALGOL, BASIC, Nó đƣợc xem là nền tảng cho mọi ngôn ngữ lập trình hiện đại - thế hệ thứ ba. Các ngôn ngữ thế hệ thứ hai đƣợc đặt trƣng bởi việc sử dụng rộng rãi thƣ viện phần mềm khổng lồ và nó cũng đã đƣợc chấp nhận rộng rãi. - Các ngôn ngữ thế hệ thứ ba: Còn đƣợc gọi là ngôn ngữ lập trình hiện đại hay có cấu trúc. Nó đƣợc đặc trƣng bởi khả năng cấu trúc dữ liệu và thủ tục mạnh. Các ngôn ngữ thuộc thế hệ này nhƣ: PASCAL, C, ADA, MODULA-2, C++, C-OBJECTIVE, - Các ngôn ngữ thế hệ thứ tƣ: Trọng tâm của ngôn ngữ thế hệ thứ tƣ là nâng mức độ trừu tƣợng của chƣơng trình lên cao. Các ngôn ngữ này cũng giống nhƣ mọi ngôn ngữ nhân tạo khác đều chứa một cú pháp phân biệt để biểu diễn điều khiển và cấu trúc dữ liệu, tuy nhiên nó biểu thị các cấu trúc này ở mức độ trừƣ tƣợng cao hơn bằng cách xoá bỏ yêu cầu xác định chi tiết thuật toán. Một số ngôn ngữ thuộc thế hệ thứ tƣ nhƣ ngôn ngữ vấn đáp, ngôn ngữ hỗ trợ quyết định, ngôn ngữ làm bản mẫu, 6.4.3. Một số ngôn ngữ lập trình Ở đây, chúng ta đánh giá một số ngôn ngữ phổ biến đƣợc dùng trong các tổ chức kinh doanh ngày nay nhƣ: SQL, Focus, Basic, Cobol, Fortran, C, Pascal, Ada, Prolog, Phạm Hùng Phú -Nguyễn Văn Thẩm 189
  67. Tập bài giảng Công nghệ phần mềm Smalltalk, Foxpro, Visual Basic, Visual Basic.Net, Visual C++, Visual C#.Net, Visual C++.Net, Java, JavaScrip, . Những ngôn ngữ này đại diện cho những kiểu lập trình chủ yếu đã xét ở trên gồm: lập trình thủ tục (Basic, Cobol, Fortran, Pascal), hƣớng đối tƣợng (Smalltalk, Ada, Visual Basic.Net, Visual C++, Visual C#.Net, Visual C++.Net, Java, JavaScrip), xử lý khai báo (SQL, Prolog), các ngôn ngữ thế hệ thứ tƣ (Focus), và hệ chuyên gia (Prolog). 1) SQL- Structured Query Language Đƣợc xem là chuẩn American National Standards Institute đối với ngôn ngữ hỏi đáp cơ sở dữ liệu, SQL là một ngôn ngữ khá thành công. Ƣu điểm của SQL hầu hết không mang tính kỹ thuật: dễ dàng sử dụng, gọn gàng, đồng nhất, cục bộ, tuyến tính, tính khả chuyển và khả năng tự động của các công cụ. 2) Focus Là ngôn ngữ thế hệ bốn bao gồm một Database Engine cùng ngôn ngữ hỏi đáp tƣơng thích với SQL, bộ hiển thị, hệ hỗ trợ đồ hoạ, thiết kế, bảo trì và các tiến trình xử lý thông minh. Focus DB hỗ trợ các mô hình quan hệ, mô hình phân cấp và mô hình mạng, cung cấp một giao diện với nhiều khuôn dạng. 3) Basic - Beginers All purpose Symbolic Interchange Code Là một ngôn ngữ mạnh, cơ bản, trong ngôn ngữ không có những kỹ thuật phức tạp nhƣng có toàn bộ các thành phần sơ đẳng. Basic là một ngôn ngữ dễ học, dễ viết, có tính thống nhất, chặt chẽ và các hệ thống trợ giúp kiểm tra tự động tốt. Các đặc trƣng ngôn ngữ còn lại thay đổi tuỳ thuộc vào các phiên bản Basic khác nhau. 4) Cobol- Common Business Oriented Language Là một ngôn ngữ đƣợc sử dụng nhiều trong lịch sử máy tính, phù hợp với một số vấn đề thƣơng mại. 5) Fortran - Formula Tranlastion Là một ngôn ngữ của những năm 60. Điểm yếu của Fortran là trong lĩnh vực xử lý dữ liệu và hỗ trợ cấu trúc file. Fortran không đƣợc tích hợp với các phần mềm DBMS các giới hạn về tuần tự 6) C C là một ngôn ngữ cấp cao đƣợc phát triển để thực hiện các xử lý cấp thấp. Một chƣơng trình viết bằng C là một dãy các hàm và chúng đƣợc truy cập đến bởi một tên của chúng trong mã của chƣơng trình. 7) Pascal Pascal là một ngôn ngữ đƣợc thiết kế rất rõ ràng và đƣợc dùng làm tài liệu giảng dạy cho sinh viên của ngành khoa học máy tính. Một chƣơng trình viết bằng Pascal thƣờng có một khuôn dạng rất thoải mái và Pascal lại có cấu trúc cú pháp tự nhiên cho nên Pascal trở thành ngôn ngữ rất dễ đọc. 190 Phạm Hùng Phú -Nguyễn Văn Thẩm
  68. Tập bài giảng Công nghệ phần mềm 8) Prolog - Programming in Logic Là một ngôn ngữ đƣợc phát triển riêng cho lĩnh vực trí tuệ nhân tạo. Prolog đƣợc phát triển bởi một trƣờng đại học ở Marseiller từ rất sớm (những năm 70) nhƣng đƣợc phát triển rộng rãi ở Mỹ bởi David Warren. Prolog là một ngôn ngữ hƣớng mục đích, một ngôn ngữ đặc tả với cấu trúc là những mệnh đề và các luật. 9) Smalltalk Smalltalk đƣợc phát triển nhƣ là môi trƣờng điều hành và ngôn ngữ lập trình vào những năm 70 tại trung tâm nghiên cứu Xerox Palo Alto bởi nhóm Learning Research. Đó là một ngôn ngữ hƣớng đối tƣợng, coi mọi thứ nhƣ là đối tƣợng, thậm chí đối với thể hiện, các số nguyên. Smalltalk đƣợc tối ƣu ở mức cao và do vậy, đƣợc sử dụng để thiết kế các ứng dụng có hiệu quả. 10) Ada Ada, ngôn ngữ lập trình chính thức của Bộ Quốc phòng Mỹ với hàng trăm nghìn ngƣời sử dụng, có một lối tƣ duy khác về cách lập trình so với các ngôn ngữ khác. Phiên bản hiện hành của Ada là dựa trên đối tƣợng hơn là hƣớng đối tƣợng. 11) Visual Foxpro Visual FoxPro là một công cụ phát triển và ngôn ngữ lậptrình, nó sử dụng ngôn ngữ lập trình hƣớng đối tƣợng của Microsoft. Đƣợc phát triển từ FoxPro (có nguồn gốc từ FoxBASE – bắt đầu phát triển từ 1984 bởi Fox Technologies, sử dụng phong- cách lậptrình theo thủ tục). Phiên bản cuối cùng của FoxPro (2.6) làm việc trên Mac OS, MS-DOS, Windows và Unix. Visual FoxPro 3.0 là phiên bản "Visual" đầu tiên, có thể chạy trong Mac và Windows, các phiên bản sau chỉ dùng trong Windows. 12) Visual Basic Visual Basic (viết tắt VB) là một ngôn ngữ lập trình hƣớng sự kiện và môi trƣờng phát triển tích hợp (IDE) kết bó đƣợc phát triển đầu tiên bởi Alan Cooper dƣới tên Dự án Ruby (Project Ruby), và sau đó đƣợc Microsoft mua và cải tiến nhiều. Visual Basic đã đƣợc thay thế bằng Visual Basic .NET. Phiên bản cũ của Visual Basic bắt nguồn phần lớn từ BASIC và để lập trình viên phát triển các giao diện ngƣời dùng đồ họa (GUI) theo mô hình phát triển ứng dụng nhanh (Rapid Application Development, RAD); truy cập các cơ sở dữ liệu dùng DAO (Data Access Objects), RDO (Remote Data Objects), hay ADO (ActiveX Data Objects); và lập các điều khiển và đối tƣợng ActiveX. 13) Visual Basic.Net Visual Basic.NET (VB.Net) là một công cụ lập trình hỗ trợ ngôn ngữ lập trình VB.Net trong bộ công cụ lập trình Microsoft Visual Studio 2005 trở đi và là ngôn ngữ lập trình huớng đối tuợng. VB.Net có thể kết hợp với các dự án viết bằng các ngôn ngữ khác nhƣ C#, J#, VB.Net chạy trên nền NET Framework. Phạm Hùng Phú -Nguyễn Văn Thẩm 191
  69. Tập bài giảng Công nghệ phần mềm 14) Visual C++ Microsoft Visual C++ (còn đƣợc gọi là MSVC) là một sản phẩm Môi trƣờng phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C, C++, và C++/CLI của Microsoft. Nó có các công cụ cho phát triển và gỡ lỗi mã nguồn C++, đặc biệt là các mã nguồn viết cho Microsoft Windows API, DirectX API, và Microsoft .NET Framework. 15) Visual C#.Net Visual C#.Net là một ngôn ngữ lập trình hƣớng đối tƣợng đƣợc phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhƣng theo ECMA là C#, chỉ bao gồm dấu số thƣờng. Microsoft phát triển C# dựa trên C++ và Java. C# đƣợc miêu tả là ngôn ngữ có đƣợc sự cân bằng giữa C++, Visual Basic, Delphi và Java. 16) Java Java là một ngôn ngữ lập trình dạng lập trình hƣớng đối tƣợng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thƣờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đƣợc thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đƣợc môi trƣờng thực thi (runtime environment) chạy. Bằng cách này, Java thƣờng chạy chậm hơn những ngôn ngữ lập trình thông dịch khác nhƣ C++, Python, Perl, PHP, C#. 18) JavaScrip JavaScript là một ngôn ngữ lập trình kịch bản dựa trên đối tƣợng đƣợc phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này đƣợc dùng rộng rãi cho các trang web, nhƣng cũng đƣợc dùng để tạo khả năng viết script sử dụng các đối tƣợng nằm sẵn trong các ứng dụng. Nó vốn đƣợc phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tƣơng tự C, nhƣng nó gần với Self hơn Java. .js là phần mở rộng thƣờng đƣợc dùng cho tập tin mã nguồn JavaScript. 6.4.4. Chọn ngôn ngữ cho ứng dụng Lựa chọn ngôn ngữ lập trình cho một ứng dụng phụ thuộc vào các yếu tố sau: - Cấu hình máy - Số lƣợng ngôn ngữ lập trình sẵn có - Thói quen sử dụng ngôn ngữ lập trình - Vào khách hàng, Khi đã làm việc trên ứng dụng ta không có sự lựa chọn về ngôn ngữ. Nhƣng nếu ban đầu chọn sai ngôn ngữ thì chúng ta phải liên tục sửa đổi yêu cầu để phù hợp với những giới hạn của ngôn ngữ. Việc lựa chọn ngôn ngữ lập trình phải xem ngôn ngữ lập trình đó có phù hợp với kiểu ứng dụng hay không và xem nó có phù hợp với việc dùng để phát triển ứng dụng. 192 Phạm Hùng Phú -Nguyễn Văn Thẩm