Tải bản đầy đủ (.doc) (52 trang)

Đề cương ôn tập môn Kỹ nghệ phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.45 MB, 52 trang )

1.Trình bày khái niệm phần mềm và KNPM?-----------------------------------------------------------------2
2.Phương pháp phân loại phần mềm?--------------------------------------------------------------------------4
3.Trình bày tổng quan về các ngôn ngữ lập trình?------------------------------------------------------------5
4.Trình bày khái niệm và mô hình thác nước biểu diễn vòng đời phát triển của phần mềm?---------7
5.Trình bày quy trình làm bản mẫu phần mềm. Phân tích các bước của quy trình này?---------------8
6.Trình bày các phương pháp thu thập thông tin cho quá trình phân tích trong KNPM?-------------10
7.Khái niệm mô hình BFD, các thành phần của BFD. Cho ví dụ minh họa?---------------------------11
8.Khái niệm sơ đồ ngữ cảnh, các thành phần của sơ đồ ngữ cảnh. Cho ví dụ minh họa?------------13
9.Khái niệm sơ đồ luồng dữ liệu DFD. Cho ví dụ minh họa? -------------------------------------------14
10.Vai trò của thiết kế phần mềm trong KNPM?------------------------------------------------------------15
11.Ký pháp lưu đồ trong KNPM. Cho ví dụ minh họa?----------------------------------------------------15
12.Tiến trình thiết kế phần mềm. Mối liên hệ giữa khía cạnh quản lý và khía cạnh kỹ thuật trong
thiết kế phần mềm?-----------------------------------------------------------------------------------------------17
13.Trình bày khái niệm kiến trúc phần mềm? Mối liên hệ giữa vần đề cần giải quyết P và giải pháp
phần mềm S. Cho một ví dụ minh họa? --------------------------------------------------------------------18
14.Trình bày phương pháp thiết kế Top Down Design. Cho ví dụ minh hoạ?-------------------------19
15.Trình bày phương pháp thiết kế Bottom Up Design. Cho ví dụ minh hoạ?-------------------------21
16.Trình bày vấn đề thiết kế dữ liệu trong KNPM. Cho ví dụ minh họa?-------------------------------23
17.Trình bày khái niệm thiết kế giải thuật trong KNPM. Cho ví dụ minh họa?-----------------------24
18.Trình bày khái niệm thiết giao diện trong KNPM. Cho ví dụ minh họa?---------------------------26
19.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình xác định yêu cầu
người sử dụng trong KNPM?-----------------------------------------------------------------------------------28
20.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình xây dựng và quản lý
hợp đồng phần mềm?--------------------------------------------------------------------------------------------29
21.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình thiết kế phần mềm?
31
22.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình lập trình?-----------33
23.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình Test phần mềm?- -35
24.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình triển khai phần
mềm?---------------------------------------------------------------------------------------------------------------38
25.Trình bày mục đích, dấu hiệu, lưu đồ và các hoạt động chính của quy trình quản lý dự án phần


mềm?---------------------------------------------------------------------------------------------------------------39
26.Trình bày phương pháp KLOC xác định quy mô phần mềm?----------------------------------------44
27.Trình bày phương pháp FP xác định quy mô phần mềm?---------------------------------------------45
28.Trình bày phương pháp lập lịch thực hiện dự án phần mềm?-----------------------------------------47
29.Vấn đề quản lý rủi ro trong KNPM?----------------------------------------------------------------------48
30.Trình bày mô hình tổng quát các quy trình sản xuất phần mềm ở quy mô công nghiệp? Phân
tích mối liên hệ giữa các quy trình?---------------------------------------------------------------------------50

1


1. Trình bày khái niệm phần mềm và KNPM?
a. Khái niệm phần mềm
Phần mềm là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập
trình theo một trình tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết
một vấn đề tính toán nào đó.
* Theo quan điểm của nhà tin học người Mỹ Regor Pressman phần mềm là một tổ hợp gồm
3 thành tố:
- Chương trình máy tính: mã nguồn, mã máy
- Các cấu trúc dữ liệu: Cấu trúc làm việc (bộ nhớ trong); Cấu trúc lưu trữ (bộ nhớ ngoài)
- Các tài liệu liên quan: Hướng dẫn sử dụng (người dùng); Tham khảo kỹ thuật (người
bảo trì); Tài liệu phát triển (nhà phát triển)
Trong đó
- Các thành phần vận hành được -> Mã nguồn, mã máy, cấu trúc dữ liệu: tự động hóa
được
- Các thành phần không không vận hành được – các phần còn lại: hầu như chưa tự động
hóa được
* Cấu hình phần mềm bao gồm: Kế hoạch phần mềm, Đặc tả yêu cầu, Thiết kế, Kiểm thử,
Chương trình
Kế hoạch

phần mềm

Đặc tả yêu
cầu

Thiết
kế

Lập
trình

Chươn
g trình
làm
việc

Tiêu chuẩn
kiểm thử

* Đặc trưng:
- Phần mềm được kỹ nghệ hóa, nó không được chế tạo theo nghĩa cổ điển
- Phần mềm không bị hỏng đi trong quá trình sử dụng
- Phần mềm được sáng chế theo đơn đặt hàng chứ không lắp ráp từ các thành phần có sẵn
* Các giai đoạn của quy trình phát triển phần mềm: mỗi phần mềm không phục thuộc vào
quy mô, lĩnh vực ứng dụng và chức năng đa dạng của nóm toàn bộ quy trình thực phát triển
phần mềm đều bao gồm 3 công đoạn:

2



Giai đoạn 1: XÁC ĐỊNH

=> Cái gì?

Giai đoạn 2: PHÁT TRIỂN

=> Như thế nào?

Giai đoạn 3: BẢO TRÌ

=> Thay đổi ra sao

-

Giai đoạn 1: Xác định (Phân tích hệ thống, kế hoạch, phân tích yêu cầu): Trả lời cho
câu hỏi cái gì? - đặc biệt quan trọng vì nó đưa ra mục tiêu dự án cần đạt được,
những phương tiện và công cụ để đạt tới mục tiêu đó. Thực tế cho thấy mục tiêu của
1 dự án cần phải được đặt ra 1 cách rõ ràng, cụ thể
- Giai đoạn 2: Phát triển (thiết kế, mã hóa, kiểm thử): Trả lời cho câu hỏi như thế
nào?- thực hiện nội dung của dự án.
- Giai đoạn 3: Bảo trì (sửa đổi, thích nghi, hoàn thiện): Trả lời cho câu hỏi Thay đổi
ra sao? - thực tiễn cho thấy công việc này có vai trò rất quyết định đến doanh thu
sản phẩm của 1 công ty phần mềm.
b. Khái niệm kỹ nghệ phần mềm
- Kỹ nghệ phần mềm là lĩnh vực nghiên cứu của tin học nhằm đề xuất các nguyên lý,
phương pháp, công cụ, cách tiếp cận và phương tiện phục vụ cho việc thiết kế và cài đặt
các sản phẩm phần mềm nhằm đạt được các chỉ tiêu cơ bản sau:
• Tính đúng đắn
• Tính khoa học
• Tính dễ đọc và tính dễ sửa đổi, cải tiến

• Tính dễ sử dụng
• Tính phổ thông
• Tính độc lập đối với thiết bị
- Kỹ nghệ phần mềm là việc áp dụng các công cụ, các kỹ thuật một cách có hệ thống trong
việc phát triển các ứng dụng dựa trên máy tính.
- Theo Roger Pressman kỹ nghệ phần mềm là 1 tổ hợp gồm 3 thành tố là công cụ, phương
pháp, thủ tục nhằm giúp cho quản trị viên dự án nắm được xu thế tổng quát phát triển dự án
phần mềm và giúp cho các kỹ sư lập trình có 1 nền tảng để triển khai các định hướng của
phần mềm.

3


Cấu trúc kỹ nghệ phần mềm
- KNPM chỉ được ĐN rõ trong giai đoạn phần mềm trở thành ngành CN vì trong giai đoạn
này quá trình sx phần mềm mới được chuyên môn hóa cao độ thành các chức danh, mỗi
chức danh thực hiện 1 nhiệm vụ cụ thể và đều có vai trò quan trọng như nhau đến chất
lượng của 1 sản phẩm phần mềm được tung ra thị trường.
*****
2. Phương pháp phân loại phần mềm?
Có nhiều cách phân loại phần mềm khác nhau như phân loại theo thời gian xuất hiện, phân
loại theo chức năng ứng dụng, phân loại theo sự tiến hóa của các ngôn ngữ biểu diễn phần
mềm.
* Phân loại theo chức năng: cách phân loại được sử dụng phổ biến
- Phần mềm hệ thống
+ Hệ điều hành: DOS, WIN, UNIX
+ Ngôn ngữ lập trình
+ Chương trình dịch
- Phần mềm ứng dụng
 Phần mềm ứng dụng đa năng

+ Hệ soạn thảo
+ Bảng tính: Excel, Lotus
+ Quản trị CSDL: FoxPro, Access
 PM chuyên dụng
+ Ngân hàng
+ Kế toán
+ Quản trị DN
4


* Phân loại theo khả năng ứng dụng
- Phần mềm được viết theo đơn đặt hàng của 1 khách hàng cụ thể: phần mềm hỗ trợ bán
hàng, phần mềm điều khiển thiết bị..
- Phần mềm không được viết theo 1 đơn đặt hàng cụ thể, nó có thể được bán cho bất kỳ
khách hàng nào.
*****
3. Trình bày tổng quan về các ngôn ngữ lập trình?
a. Khái niêm:
Ngôn ngữ lập trình chính là các công cụ để thiết kế nên phần mềm. Ngôn ngữ lập trình là 1
hệ thống được ký hiệu hóa để miêu tả những tính toán (qua máy tính) trong một dạng mà
cả con người và máy đều có thể đọc và hiểu được.
Việc lựa chọn NNLT có ý nghĩa rất lớn. Khi đánh giá về các ngôn ngữ lập trình, người ta
thường căn cứ và các tiêu chuẩn sau đây:
- Lĩnh vực ứng dụng tổng quát
- Độ phức tạp thuật toán của ngôn ngữ
- Môi trường hoạt động của phần mềm
- Hiệu năng của phần mềm
- Độ phức tạp của cấu trúc chương trình
- Trr thức của cán bộ phát triển phần mềm
- Có chương tình dịch tốt

b. Phân loại: Hiện nay có rất nhiều ngôn ngữ thiết kế phần mềm khác nhau được chia
thành 3 nhóm gọi là 3 thế hệ:
- Thế hệ 1: bắt đầu từ những năm 50 của thế kỷ trước, khi máy tính điện tử mới ra đời và
phần mềm chưa được thương mại hóa, trong giai đoạn này chủ yếu sử dụng các ngôn ngữ
máy. Ngôn ngữ máy – là ngôn ngữ duy nhất mà máy tính “hiểu được” (được viết ở dạng
nhị phân hoặc hệ đếm 16) là dãy các lệnh máy mà CPU có thể thực hiện trực tiếp. Việc lập
trình bằng ngôn ngữ máy làm cho máy tính có thể hiểu được ngay mà không cần chương
trình dịch nhưng tốn nhiều công sức của lập trình viên.
- Thế hệ 2: Người ta sử dụng một số từ tiếng anh để chuyển việc lập trình từ ngôn ngữ máy
cụ thể sang các câu lệnh viết bằng tiếng anh, nhờ thế việc lập trình trở nên đơn giản hơn
nhưng bản thân máy tính không hiểu được những câu lệnh tiếng anh này. Vì thế trong phần
mềm hệ thống phải bố trí các chương trình dịch để dịch các câu lệnh từ tiếng anh thành
ngôn ngữ máy.
Trong thế hệ 2 có thể liệt kê 3 đại diện tiêu biểu:
• FORTRAN (FORTRAN chuẩn, FORTRAN - 77): đây là ngôn ngữ chuyên dụng cho
khối kỹ thuật và công nghệ.
• COBOL: chủ yếu giải quyết các bài toán kinh tế và thương mại, nhờ khả năng mô tả
bảng biểu 1 cách cô đọng.
5


• BASIC: là ngôn ngữ lập trình phi cấu trúc, thuận tiện cho người mới sử dụng với
các phiên bản trên máy tính.
- Thế hệ 3: được gọi là thế hệ các ngôn ngữ lập trình vạn năng mà ngôn ngữ tiêu biểu đầu
tiên là Pascal được sử dụng rộng rãi nhất trong các trường đại học trên thế giới để biểu diễn
giải thuật nhờ khả năng cấu trúc cao của ngôn ngữ. Sau đó vào những năm 60 xuất hiện
thêm một ngôn ngữ là ALGOL-60, trên cơ sở ngôn ngữ này người ta phát triển thành nhiều
loại ngôn ngữ khác ứng dụng trong kỹ thuật và kinh tế, cũng phải kể đến ngôn ngữ ứng
dụng rộng hiện nay là C++ phát triển từ phòng làm việc Mỹ có tên là A. Ngôn ngữ C++
cho phép người sử dụng can thiệp vào phần cứng của máy và là nền tảng xây dựng lên hệ

điều hành UNIX.
=> Tóm lại khi nghiên cứu về các ngôn ngữ thiết kế phần mềm ta thấy có một xu hướng là
các ngôn ngữ ngày càng đa dạng, tính năng được nâng cao và đơn giản hóa cho người sử
dụng.
c. Đặc điểm:
- Mỗi ngôn ngữ lập trình có thể được xem như là một tập hợp của các chi tiết kỹ thuật chú
trọng đến cú pháp, từ vựng, và ý nghĩa của ngôn ngữ.
Những chi tiết kỹ thuật này thường bao gồm:
• Dữ liệu và cấu trúc dữ liệu
• Câu lệnh và dòng điều khiển
• Các tên và các tham số
• Các cơ chế tham khảo và sự tái sử dụng
- Các ngôn ngữ có kiểu động là ngôn ngữ mà các kiểu chỉ được gán lên các dữ liệu trong
thời gian chương trình được thực thi (ngôn ngữ Objective-C, Lisp, JavaScript, Tcl, Prolog,
Python và Ruby )
- Các ngôn ngữ có kiểu mạnh không cho phép dùng các giá trị của kiểu này như là một
kiểu khác. Việc phát hiện này sẽ xảy ra ở thời gian thi hành đối với các ngôn ngữ có kiểu
động và xảy ra ở thời gian dịch đối với các ngôn ngữ có kiểu tĩnh (ngôn ngữ ADA, Java,
ML và Oberon)
- Ngôn ngữ có kiểu yếu không quá khắt khe trong các quy tắc về kiểu hoặc cho phép một
cơ chế tường minh để xử lý các vi phạm ( C, ASM, C++, Tcl và Lua )
e. Vai trò
NNLT vừa là công cụ giúp các nhà tin học giải quyết các vấn đề thực tế nhưng đồng thời
cũng là nơi mà những nghiên cứu mới nhất của tin học được đưa vào. Lĩnh vực này vừa
mang tính truyền thống vừa mang tính hiện đại.
f. Lợi ích việc nghiên cứu NNLT
- Cho phép lựa chọn 1 NNLT phù hợp vs dự án thực tế
- Sử dụng 1 cách có hiệu quả các công cụ của ngôn ngữ
- Làm tăng vốn kinh nghiệm khi xây dựng các chương trình
- Tạo sự dễ dàng để học 1 ngôn ngữ mới

- Tạo tiền đề để thiết kế 1 ngôn ngữ mới.
*****
6


4. Trình bày khái niệm và mô hình thác nước biểu diễn vòng đời phát triển của phần
mềm?
a. Trình bày khái niệm vòng đời phát triển của phần mềm và mô hình thác nước biểu
diễn vòng đời phát triển của phần mềm
- Vòng đời phát triển phần mềm(SDLC), là nền tảng đối với sự phát triển của một sản
phẩm phần mềm. Là tập hợp các thao tác và các kết quả tương quan để sản xuất ra một sản
phẩm phần mềm. Hầu hết các thao tác này được tiến hành bởi các kỹ sư phần mềm.
- Theo nhà tin học người Mỹ Roger Pressman, bao gồm 6 công đoạn cơ bản và được biểu
diễn bằng mô hình gọi là mô hình thác nước
Tiếp cận
hệ thống

Phân
tích

Thiết
kế

 Mã
hóa

Kiểm
thử 

 Bảo

trì

+ Tiếp cận hệ thống:
- Đây là quá trình đầu tiên của mô hình thác nước -> tác động đến các quá trình còn lại
- Đây là một quan điểm bao trùm khi giải quyết các bài toán bằng công cụ phần mềm,
tiếp cận hệ thống tức là phải xem xét trong tổng thể có liên quan mật thiết với nhau,
không được tách rời hoặc biệt lập, đây cũng là quan điểm chung khi giải quyết các vấn
đề kinh tế - xã hội
+ Phân tích:
Bản chất của phân tích trong kỹ nghệ phần mềm khác với khái niệm phân tích thông
thường, phân tích ở đây được hiểu là thu thập thông tin từ đối tượng và mô hình hóa các
thực thể của đối tượng đó. Mục đích của phân tích là tìm hiểu kỹ về HT, đưa ra 1 cái nhìn
tổng thể về HT sẽ xây dựng phần mềm, phân tích hệ thống có cấu trúc bao gồm sử dụng
các công cụ như BFD, DFD, IFD, sơ đồ thông tin ma trận, mô hình dữ liệu, ngôn ngữ có
cấu trúc.
+ Thiết kế
Bản chất là giải quyết vấn đề, chuyển từ bài toán đặt ra thành giải pháp phần mềm.
Thiết kế tập trung vào bốn thuộc tính phân biệt của chương trình: cấu trúc dữ liệu, kiến trúc
phần mềm, các thủ tục, các đặc trưng giao diện. Trong quy trình này người ta tiến hành 2
bước quan trọng:
• B1: Thiết kế kiến trúc phần mềm.
7


• B2: Thiết kế chi tiết từng bộ phận (như thiết kế dữ liệu, giải thuật, giao diện).
Kết quả của giai đoạn thiết kế là 1 bộ hồ sơ thiết kế hoàn chỉnh.
+ Mã hóa
- Mã hóa trong KNPM được hiểu vs khái niệm mã hóa thông thường
- Bản chất của mã hóa trong KNPM là coding tức là lập trình viên sử dụng hồ sơ thiết kế
và lựa chọn 1 ngôn ngữ lập trình nào đó để cung cấp từ hồ sơ thiết kế thành phần mềm

+ Kiểm thử: là giai đoạn trước khi triển khai phần mềm cho khách hàng. ND thuộc giai
đoạn này không phải là kiểm tra lỗi và sửa lỗi thuộc chương trình mà là xây dựng 1 kịch
bản đế đánh giá chức năng phần mềm tùy vào mỗi bài toán khác nhau.
+ Bảo trì
Đây là công đoạn cuối cùng, còn gọi là công đoạn hậu mãi, là công việc sau khi bán
hàng cho khách hàng. Thực tế ở Việt Nam cho thấy tính năng của các phần mềm không
chênh nhau nhiều, nên công ty nào có chế độ hậu mãi tốt thì sẽ được khách hàng ưa
chuộng. Nội dung bảo trì gồm:
- Bảo trì sửa đổi để sửa chữa các lỗi nhỏ hơn thuộc phần mềm khi cài đặt cho khách
hàng
- Bảo trì thích nghi giữa máy tính để sản xuất phần mềm thuộc công ty tin học và máy
tính thuộc khách hàng đôi khi có cấu hình khác nhau do đó phải tiến hành bảo trì
thích nghi để phần mềm hoạt động tốt trong máy tính thuộc khách hàng.
- Bảo trì hoàn thiện: cán bộ thuộc công ty phần mềm nâng cấp ở mức độ nào đó sản
phẩm của PM cho KH
=> Toàn bộ 6 quá trình thuộc vòng đời trên phần mềm có mối liên quan mật thiết vs nhau
và trong các công ty PM được phân chia thành các chức năng giao cho các phòng ban thực
hiện.
**b. Vai trò việc nghiên cứu vòng đời phát triển của phần mềm.
- Nghiên cứu về SDLC cho thấy mối quan hệ mật thiết, thống nhất không tách rời giữa các
giai đoạn. Các công đoạn càng ở dưới càng phải chịu tác động của các giai đoạn phía trên.
-> Từ đó giúp nhà xây dựng PM có một cách nhìn đúng đắn trong việc quy chuẩn hóa các
giai đoạn phát triển của 1 PM nhằm đưa ra các giải pháp vận dụng hiệu quả nhất trước mỗi
giai đoạn.
*****
5. Trình bày quy trình làm bản mẫu phần mềm. Phân tích các bước của quy trình
này?
a. Trình bày quy trình làm bản mẫu phần mềm
* KN: Bản mẫu phần mềm là mô hình thuộc PM sẽ xây dựng gồm những chức năng chính
để KH đánh giá sơ bộ và để kỹ sư phần mềm có 1 phiên bản để tiếp tục hoàn thiện sản

phẩm.
- Bản mẫu phầm mềm có thể được thực hiện theo 3 phương án
+ Bản mẫu vẽ giấy
8


+ Bản mẫu là một mô hình bao gồm một vài chức năng tiêu biểu nhất của phần mềm
tương lai
+ Bản mẫu là 1 chương trình đã bao gồm các chức năng cơ bản của phần mềm nhưng
cần được chi tiết thêm tùy trình độ tin học của khách hàng mà kỹ sư phần mềm sử dụng
một hình thức nào đó cho phù hợp nhất.
* Quy trình làm bản mẫu

b. Phân tích các bước của quy trình
(1) Yêu cầu của khách hàng: là công đoạn đầu tiên khi KH đến công ty phần mềm để đặt
vấn đề ký kết hợp đồng và trình bày nguyện vọng của mình. Khách hàng đưa ra các yêu
cầu về sản phẩm của mình, các kỹ sư phần mềm ghi nhận và cố gắng đáp ứng tối đa yêu
cầu của khách hàng. Cán bộ KD cần phải nắm bắt được những vấn đề chính trước mong
muốn của KH để nhanh chóng đưa ra 1 bản mẫu cho phương án thích hợp
(2) Thiết kế nhanh: Sau khi đã thống nhất với KH về quá trình xây dựng phần mềm thì kỹ
sư phần mềm tiến hành thiết kế nhanh 1 bản mẫu thuộc 1 trong 3 phương án nêu ở trên, căn
cứ vào trình độ hiểu biết về tin học của KH. Yêu cầu quan trọng nhất là đơn giản, dễ hiểu
và dễ sử dụng cho khách hàng.
(3) Xây dựng bản mẫu: trong giai đoạn này, kỹ sư phần mềm tiến hành xây dựng bản mẫu
bao gồm những nét cơ bản nhất của phần mềm tương lai. Yêu cầu: cố gắng trình bày cho
KH nhìn thấy được hình dáng bên ngoài của PM mà không đi vào vấn đề kỹ thuật.
(4) KH đánh giá bản mẫu: Kỹ sư phần mềm trình bày bản mẫu để KH xem xét, đánh giá
trên quan điểm của người sử dụng, đồng thời ghi nhận yêu cầu của KH về mọi vấn đề liên
quan đến bản mẫu để chỉnh sửa để đáp ứng tối đa nguyện vọng KH.
(5) Làm mịn bản mẫu: là quy trình chi tiết hóa các chức năng từ tổng quát đến cụ thể, chi

tiết.

9


(6) Sản phẩm bản mẫu PM: kết thúc quá trình làm bản mẫu phần mềm chúng ta thu được 1
sản phẩm gọi là bản mẫu phần mềm - đây là phiên bản đầu tiên của 1 sp phần mềm nào đó,
sẽ được tiếp tục hoàn thiện cho các phiên bản tiếp theo ngay cả khi đã đưa vào thị trường.
=> Tóm lại, trong sản xuất phần mềm ở quy mô công nghiệp, quy trình làm bản mẫu là đặc
trung riêng, có vai trò quan trọng trong kinh doanh phần mềm
**c. Vai trò của bản mẫu trong sản xuất phần mềm công nghiệp
• Bản mẫu là phiên bản đầu tiên của phần mềm giúp phần hỗ trợ cho việc phân tích, thiết
kế và xây dựng phần mềm sau này.
• Giúp kỹ sư phần mềm nắm bắt được nguyện vọng của khách -> Tăng khả năng thuyết
phục khách hàng ký hợp đồng sản xuất phần mềm của công ty.
-> Như vậy, làm bản mẫu pm là một quy trình đặc thù của việc sản xuất phần mềm ở quy
mô công nghiệp và có vai trò rất quyết định đến hoạt động của một doanh nghiệp phần
mềm vì công đoạn này thực hiện tốt thì sẽ thu hút được khách hàng => thu hút được lợi
nhuận trong công ty.
*****
6. Trình bày các phương pháp thu thập thông tin cho quá trình phân tích trong
KNPM?
- Có 4 phương pháp thu thập thông tin đó là: Nghiên cứu tài liệu, quan sát, phỏng vấn và
điều tra bằng bảng hỏi.
(1) Nghiên cứu tài liệu về hệ thống
- Đây là phương pháp cơ bản và quan trọng nhất để tiến hành thu thập thông tin về hệ
thống đang nghiên cứu. Bản chất của phương pháp này là nghiên cứu đầy đủ tài liệu mô tả
hoạt động; các tài nguyên về phần cứng, phần mềm; những đặc điểm trước quá trình xử lý
thông tin của hệ thống.
- Các nội dung nghiên cứu : tổng quan về lịch sử phát triển hệ thống, cơ cấu tổ chức của hệ

thống, các đặc điểm về kinh tế - kỹ thuật, HTTT của hệ thống, các vấn đề cần hoàn thiện để
quản lý hệ thống bằng công cụ phần mềm.
- Ưu điểm nổi bật: Trong một thời gian ngắn, chúng ta nắm được cơ chế hoạt động tổng
quát và những vấn đề quan trọng nhất của hệ thống cần giải quyết trong đó.
- Kết quả của việc thu thập được tóm lại trong 1 bảng tổng hợp nghiên cứu tài liệu về hệ
thống: chủ đề, mục đích, ng thực hiện, thời gian thực hiện, ND cụ thể (cơ cấu tổ chức, hiệu
quả hoạt động, điểm mạnh, điểm yếu...)
(2)Quan sát hệ thống
- Trong trường hợp tài liệu về hệ thống không mô tả đầy đủ chi tiết hoạt động của nó hoặc
không được đề cập đến thì người ta phải tiến hành quan sát hệ thống (tức là dùng phương
pháp quan sát thực tế trực tiếp thực địa để phát hiện ra cơ chế hoạt động đặc thù của hệ
thống). Việc quan sát các quy trình mấu chốt và chi tiết sẽ cho ta những thông tin bổ sung
có giá trị.
- Phương pháp này sử dụng nhiều nhất trong các hoạt động kỹ thuật công nghệ nhưng cũng
không loại trừ cho các hệ thống kinh tế, thương mại....
10


(3) Điều tra bằng bảng hỏi
- Đây là 1 pp của thống kê học, sau khi xác định được mục tiêu thu thập thông tin, người ta
lập ra một bảng gồm nhiều câu hỏi khác nhau -> xử lý kết quả của bảng hỏi để thu được
những thông tin cần thiết. Có 2 phương pháp thu thập thông tin bằng bảng hỏi:
+ PP điều tra toàn bộ : thiết kế phiếu điều tra với rất nhiều câu hỏi và phát cho tất cả các
đối tượng trong hệ thống
Ưu: TT đầy đủ, chi tiết, có độ chính xác cao
Nhược: Tốn kém chi phí (điều tra, xử lý TT)
+ PP điều tra đại diện (chọn mẫu): Chọn ra 1 số đại diện của HT rồi phát phiếu điều tra cho
những đối tượng đó. KQ thu được sẽ suy rộng cho tổng thể.
Ưu: Nhanh, đỡ tốn kém
Nhược: Không có TT tuyệt đối chính xác; cần phải chọn được những đại diện tiêu

biểu nếu không sẽ dẫn đến sai sót.
(4) Phương pháp phỏng vấn
- Đây là phương pháp thu thập thông tin bằng cách phỏng vấn trực tiếp những người có
trách nhiệm trong hệ thống để thu thập được những thông tin bổ sung chưa được phản ánh
trong tài liệu. Trước khi tiến hành phỏng vấn, người ta phải lập ra một dàn bài gồm những
câu hỏi dự định sẽ đưa ra theo nhiều phương án khác nhau.
- Yêu cầu đặt ra: các câu hỏi đưa ra phải rõ ràng, đơn nghĩa, tránh những câu hỏi có tính
chất tế nhị.
- Phỏng vấn là 1 nghệ thuật phụ thuộc rất nhiều vào năng lực của người phỏng vấn, từ cách
đặt câu hỏi đến cách gợi mở vấn đề.
*****
7. Khái niệm mô hình BFD, các thành phần của BFD. Cho ví dụ minh họa?
a. Khái niệm mô hình BFD
Mô hình phân rã chức năng (BFD) là công cụ biểu diễn việc phân rã có thứ bậc đơn giản
các công việc cần thực hiện. Mỗi công việc được chia ra làm các công việc nhỏ, số mức
chia ra phụ thuộc kích cỡ và độ phức tạp của hệ thống.
Mục đích
- Xác định phạm vi của hệ thống cần phân tích
- Cho phép mô tả khái quát dần các chức năng của tổ chức 1 cách trực tiếp, khách quan,
phát hiện được chức năng thiếu or trùng lặp
- Tạo điều kiện thuận lợi hợp tác giữa nhà thiết kế và người sử dụng trong quá trình
phát triển hệ thống.
b. Các thành phần của BFD
Một mô hình BFD đầy đủ gồm những thành phần sau:
- Tên chức năng
- Mô tả các chức năng
- Đầu vào của các chức năng
11



- Đầu ra của các chức năng
Trong đó, cần xét đến 2 yếu tố:
* Chức năng
- Là công việc mà tổ chức cần làm và được phân theo nhiều mức từ tổng hợp đến chi
tiết.
- Tên chức năng:
+ Phải là 1 mệnh đề động từ gồm: động từ (thể hiện hoạt động) và bổ ngữ (thường
liên quan đến các thực thể dữ liệu trong miền nghiên cứu)
+ Cần ngắn, giải thích đủ nghĩa chức năng và phải sử dụng thuật ngữ nghiệp vụ
- Mỗi chắc năng có 1 tên duy nhất, các chức năng khác nhau phải có tên khác nhau.
Để xác định tên cho chức năng có thể bàn luận và nhất trí với người sử dụng
- Hình thức biểu diễn: hình chữ nhật
- Ví dụ:
Mua hàng
* Quan hệ phân cấp
- Mỗi chức năng được phân rã thành các chức năng con. Các chức năng con có quan
hệ phân cấp với chức năng cha.
- Biểu diễn:

- Mô hình phân rã chức năng được biểu diễn thành hình cây phân cấp.
c. Ví dụ
Sơ đồ BFD của hệ thống quản lý trung tâm thương mại

*****
12


8. Khái niệm sơ đồ ngữ cảnh, các thành phần của sơ đồ ngữ cảnh. Cho ví dụ minh
họa?
a. Khái niệm

- Sơ đồ ngữ cảnh thường được xây dựng ở giai đoạn đầu tiên của quá trình phân tích và
được dùng để vạch ra biên giới của hệ thống cũng như để phân tích viên hệ thống xem xét
mọi tham số ở bên ngoài hệ thống.
- Sơ đồ ngữ cảnh là một dạng sơ đồ được dùng để hỗ trợ cho quá trình xây dựng sơ đồ
dòng dữ liệu, giúp phân tích viên có được cái nhin tổng quát về quan hệ của hệ thống với
môi trường bên ngoài. Từ đó cũng có thể làm rõ các hoạt động của hệ thống. Cùng với các
thông tin vào, ra của hệ thống.
+ Cả hệ thống như 1 thực thể/ chức năng duy nhất
+ Các tác nhân ngoài và các luồng dữ liệu vào ra từ tác nhân ngoài đến hệ thống được
xác định
b. Các thành phần
- Gồm 3 thành phần:
+ Thành phần chính là một vòng tròn nằm ở vị trí trung tâm vủa sơ đồ, biểu thị cho toàn bộ
hệ thống đang được nghiên cứu – quá trình chức năng
+ Xung quanh vòng tròn trung tâm này là các thực thể, có quan hệ với hệ thống (tác nhân
ngoài) – Nguồn or đích
+ Tất cả các đường truyền thông tin vào và ra khỏi hệ thống (nghĩa là nối hệ thống với mọi
tác nhân ngoài của nó) – dòng dữ liệu
Lưu ý: Các dòng TT giữa thực thể và quá trình chức năng luôn là thông tin 2 chiều bảo
đảm đúng quá trình quản lý đang diễn ra
c. Ví dụ

*****

13


9. Khái niệm sơ đồ luồng dữ liệu DFD. Cho ví dụ minh họa?
a. Khái niệm
- Mô hình luồng dữ liệu (DFD) là 1 công cụ để mô hình hóa HTTT, nó mô tả mối quan hệ

thông tin giữa các công việc.
- Mục đích: Mô hình DFD trợ giúp cho hoạt động phân tích, thiết kế, biểu diễn hồ sơ trong
quy trình sản xuất phần mềm. Cụ thể:
• Trong công đoạn phân tích: DFD dùng để xác định yêu cầu của người sử dụng
• Trong công đoạn thiết kế: DFD dùng để vạch kế hoạch và minh họa các phương án
cho phân tích viên hệ thống và người dùng khi thiết kế hệ thống mới.
• Trong công đoạn biểu diễn hồ sơ: DFD là công cụ đơn giản, dễ hiểu đối với phân
tích viên hệ thống và người dùng, biểu diễn tài liệu phân tích hệ thống một cách đầy
đủ, súc tích và ngắn gọn.
- Ký pháp:

b. Ví dụ: DFD mức 0 chức năng Thống kê bạn đọc

*****
14


10. Vai trò của thiết kế phần mềm trong KNPM?
Thiết kế đóng vai trò trung tâm trong SE ở quy mô công nghiệp. Về lý thuyết, quá trình
thiết kế gồm 3 công đoạn: thiết kế, lập trình, kiểm thử. Về mặt thực tiễn ở các công ty phần
mềm, người ta chia thành các chức năng khác nhau và được tổ chức thành 3 phòng chức
năng: phòng thiết kế, phòng lập trình, phòng kiểm thử.
Thiết kế có vai trò rất quan trọng vì lý do sau:
- Thiết kế tạo ra một cơ sở chuẩn mực khi muốn sửa chữa hoặc nâng cấp phần mềm
- Nhờ có một thiết kế hoàn chỉnh mà khi có những thay đổi về dữ liệu phần mềm vẫn
có thể hoạt động khi chúng ta tiến hành sửa đổi
- Một phần mềm không có thiết kế chuẩn, rất dễ dàng bị hỏng khi có sự thay đổi về môi
trường và dữ liệu
- Tạo ra một nền tảng vững chắc để có thể thay đổi và phát triển phần mềm
- Nhờ thiết kế một cách chắc chắn mà phần mềm có thể hoạt động một cách hiệu quả

hơn. Với những phần mềm không có thiết kế hoặc thiết kế không hoàn chỉnh thì chỉ
cần một thay đổi nhỏ trong dữ liệu hay tác động nhỏ bên ngoài cũng dẫn đến sự hoạt
động lệch lạc của phần mềm
- Là yếu tố chủ chốt để xác định chất lượng sản phẩm của phần mềm bán ra trên thị
trường
- Một thiết kế tốt mang tính mở thì sẽ tốt để phát triển phần mềm trong tương lai
Toàn bộ khâu thiết kế chiếm 75% các chi phí về nhân lực và tài chính cho 1 phần mềm
ở quy mô công nghiệp.
Người ta quy ước qúa trình thiết kế trong KNPM phải đảm bảo yêu cầu:
- Thiết kế là quá trình chuyển đổi từ hồ sơ sang giải pháp PM nhằm giải quyết vấn đề
đặt ra 1 cách hiệu quả nhất bằng công cụ tin học.
- Quá trình thiết kế phải đảm bảo sự phân rã và tiến hành thiết kế từng vấn đề cụ thể.
- QT thiết kế phải đảm bảo tính quy lui tức là đảm bảo quay lại bước trước đó để bổ
sung và hoàn thiện (phân rã và quay lui thật ra là nguyên lý chung để giải quyết mọi
vấn đề của XH).
=> Tóm lại, thiết kế với 3 công đoạn chính là thiết kế, lập trình và kiểm thử có vai trò đặc
biệt trong kỹ nghệ phần mềm và thường được coi là trung tâm của toàn bộ quy trình phát
triển phần mềm.
*****
11. Ký pháp lưu đồ trong KNPM. Cho ví dụ minh họa?
a. Ký pháp lưu đồ trong kỹ nghệ PM:
- Khi thiết kế phần mềm ở quy mô công nghiệp người ta thường trình bày vấn đề dưới dạng
một mô hình tổng quát được gọi là lưu đồ. Trong các công ty phần mềm hiện nay đây là
phương pháp thông dụng nhất khi trình bày một đề án hay việc thiết kế một phần mềm cụ
thể.

15


- Tác dụng của lưu đồ là cho ta 1 cái nhìn bao quát trực quan và tổng thể về vấn đề mà ta

nghiên cứu. Nhìn vào lưu đồ, chúng ta có thể hiểu được trình tự các công việc cần thực
hiện và mối liên hệ giữa các công việc với nhau.
- Để xây dựng lưu đồ, người ta quy ước dùng 1 số ký pháp cơ bản sau đây:

=> Dùng mũi tên chỉ các dòng thông tin và dữ liệu lưu chuyển trong toàn bộ lưu đồ từ đầu
đến cuối của quá trình.
Lưu đồ tổng quát (gốc) cho ta một cái nhìn tổng thể các quy trình.
Lưu đồ chi tiết cung cấp các quá trình xử lý công việc cụ thể.
b. Ví dụ: lưu đồ quy trình quản lý dự án ở công ty phần mềm FPT:

16


12. Tiến trình thiết kế phần mềm. Mối liên hệ giữa khía cạnh quản lý và khía cạnh kỹ
thuật trong thiết kế phần mềm?
a. Tiến trình thiết kế phần mềm
Tiến trình thiết kế trong công nghệ phần mềm được xem xét từ nhiều góc độ khác nhau,
xuất phát từ quan điểm quản lý dự án thì quy trình thiết kế phần mềm tiến hành theo 2
bước: thiết kê sơ bộ và thiết kế chi tiết
- Thiết kế sơ bộ: quan tâm tới việc dịch các yêu cầu thành 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ễ kiến trúc để dẫn tới cấu trúc dữ
liệu chi tiết và biểu diễn thuật toán cho phần mềm.
Còn xét ở góc độ kỹ thuật thì quá trinh thiết kế bao gồm 4 công đoạn:
- Thiết kế kiến trúc
- Thiết kế dữ liệu
- Thiết kế thủ tục
- Thiết kế giao diện
b. Mối liên hệ giữa khía cạnh quản lý và khía cạnh kỹ thuật trong thiết kế phần mềm
Hai khía cạnh kỹ thuật và quản lý của quy trình thiết kế có mối liên quan mật thiết với nhau

và được biểu diễn trong hình vẽ tổng quát sau:
Góc độ
quản lý

Thiết kế sơ bộ
Thiết kế Chi tiết

Thiết kế Kiến trúc

Góc độ kỹ
thuật

Thiết kế Dữ liệu
Thiết kế Giải thuật
Thiết kế Giao diện

Design

Hình vẽ này biểu diễn mỗi quan hệ hữu cơ của một quá trình thống nhất nhưng bào gồm
phần mảng: quản lý và thiết kế. nếu xét từ góc độ quản lý dự án phần mềm, chúng ta sẽ
thực hiện các bước:
B1:
- Thiết kế sơ bộ kiến trúc
- Thiết kế sơ bộ DL
- Thiết kế sơ bộ giải thuật
- Thiết kế sơ bộ thủ tục
17


B2:

- Thiết kế chi tiết kiến trúc
- Thiết kế chi tiết DL
- Thiết kế chi tiết giải thuật
- Thiết kế chi tiết thủ tục
*****
13. Trình bày khái niệm kiến trúc phần mềm? Mối liên hệ giữa vần đề cần giải quyết
P và giải pháp phần mềm S. Cho một ví dụ minh họa?
a. Khái niệm kiến trúc phần mềm
Thiết kế kiến trúc phần mềm là phát triển một cấu trúc chương trình mô đun và biểu
diễn mối quan hệ điều khiển giữa các mô đun. Bên cạnh đó, thiết kế kiến trúc còn trộn lẫn
cấu trúc chương trinh và cấu trúc dữ liệu, xác định các giao diện làm cho dữ liệu chảy qua
toàn bộ chương trình.
Thiết kế kiến trúc cho ta một cái nhìn tổng thể về toàn bộ hệ thống.
b. Mối liện hệ giữa vấn đề cần giải quyết P và giải pháp phần mềm S
- Bản chất của thiết kế kiến trúc là chuyển từ P → S. Tức là chuyển từ vấn đề (Problem)
sang giải pháp phần mềm (Solution). Quá trình xây dựng một kiến trúc phần mềm gồm 2
bước:
+ B1: Cấu trúc hóa vấn đề
+ B2: P=>S, lựa chọn cấu trúc
- Nguyên tắc khi chuyển tiếp từ P sang S là chia thành khối công việc nhỏ ở mức vừa phải,
tránh mô hình kiến trúc quá phức tạp. Các vấn đề nhỏ đã được cấu trúc hóa.
- Mô hình hóa quá trình chuyển từ P → S bằng sơ đồ dưới đây:

P1

P2
P3

S1


S2

S3

S4

P4
P5
Vấn đề P

S5
Giải pháp S

- Sau khi đặt tương ứng mỗi vấn đề nhỏ Pi → Si ta chuyển sang bước thứ 2 là bố trí sắp
xếp các Si theo 1 trình tự nào đó được gọi là cấu trúc của phần mềm.
- Kiến trúc hệ thống có thể là nền tảng cho các quá trình thiết kế tiếp sau, tức là thiết kế dữ
liệu, giải thuật và giao diện. Căn cứ vào thiết kế kiến trúc mà các phương án thiết kế sau sẽ
thay đổi. Vì vậy, việc sai sót trong thiết kế kiến trúc sẽ dẫn đến nguy cơ cho toàn bộ phần
18


mềm. Còn nếu có những sai sót cho những phần thiết kế chi tiết về dữ liệu, giải thuật và
giao diện thì chỉ là những sai sót có tính chất cục bộ.
c. Ví dụ
Cấu trúc 1

Cấu trúc 2

*****
14. Trình bày phương pháp thiết kế Top Down Design. Cho ví dụ minh hoạ?

a. Phương pháp thiết kế Top Down Design:
Đây là 1 trong 2 phương pháp thiết kế cơ bản dựa trên ý tưởng của module hoá, tức là khi
giải quyết 1 bài toán trong thực tiễn, chúng ta phải đi từ tổng quát đến chi tiết. Trước hết
chúng ta thiết kế các module có tính chất bao trùm toàn hệ thống, sau đó tiếp tục phân chia
thành những phần nhỏ hơn.
b. Lĩnh vực ứng dụng phương pháp thiết kế Top Down Design:
Khi thiết kế 1 phần mềm ứng dụng, người ta đi từ tổng quát đến chi tiết, để tạo thành 1 hệ
thống thống nhất. Trên cơ sở của hệ thống này, người ta phân chia công việc cho các nhóm
mà vẫn đảm bảo tính mục tiêu của chương trình.
Phương pháp thiết kế từ đỉnh xuống áp dụng cho các hệ thống xử lý thủ công và tạo nên
một bản hồ sơ thiết kế tương đối triệt để và hiệu quả.
c. Ví dụ
19


- Chúng ta xem xét bài toán tin học hoá 1 trung tâm thương mại: Trên cơ sở thực tế, chúng
ta lần lượt đưa ra các mô hình của bài toán dưới dạng phác thảo:
+ Phác thảo 1:

Trên cơ sở phác thảo nền thứ nhất, chúng ta tiếp tục phân rã thành các khối chi tiết hơn
+ Phác thảo 2:

+ Phác thảo 3:

+ Phác thảo 4:

Trên cơ sở của 4 phác thảo trên đây, người ta tích hợp lại thành hệ quản lý trung tâm
thương mại, với giả sử rằng quá trình không được phân rã tiếp. Trên thực tế các quá trình
phải được cụ thể hơn nữa.
+ Phác thảo 5:


20


*****
15. Trình bày phương pháp thiết kế Bottom Up Design. Cho ví dụ minh hoạ?
a. Phương pháp thiết kế Bottom Up Design
Phương pháp thiết kế từ đáy lên về ý tưởng hiểu theo một nghĩa nào đó ngược với phương
pháp từ đỉnh xuống. Trong phương pháp này, chúng ta xuất phát từ chi tiết đến tổng quát.
- Trước hết tiến hành giải quyết các vấn đề cụ thể sau đó trên cơ sở đánh giá mức độ tương
tự về chức năng của các vấn đề này trong việc giải quyết bài toán, chúng ta gộp lại thành
từng nhóm cùng chức năng từ dưới lên trên cho đến module chính.
- Sau đó sẽ thiết kế thêm 1 số chương trình làm phong phú hơn, đầy đủ hơn chức năng của
các phân hệ.
- Cuối cùng thiết kế chương trình tập hợp các module thành 1 thể thống nhất, hoàn chỉnh.
b. Lĩnh vực ứng dụng phương pháp thiết kế Bottom Up Design
Lĩnh vực nghiên cứu của phương pháp này là những cơ sở đã được tin học hoá từng phần.
Phương pháp này cho phép vừa sử dụng được những chương trình đã có và phát huy hiệu
quả mà không phải xoá đi để làm lại từ đầu mà vẫn đảm bảo chỉnh thể của 1 hệ thống.
c. Ví dụ
Trong 1 Doanh nghiệp, việc ứng dụng tin học trong quản lý đã được thực hiện ở 1 số bộ
phận khác nhau. Người ta liệt kê các ứng dụng cụ thể như sau:
- Prog 1: Nạp dữ liệu cho hồ sơ cán bộ.
- Prog 2: Sửa chữa, bổ sung, cập nhật hồ sơ.
- Prog 3: Nạp dữ liệu cho tệp quản lý NVL.
- Prog 4: Nạp dữ liệu cho hóa đơn.
- Prog 5: Tính lương.
- Prog 6: Dự toán NVL.
- Prog 7: Quản lý cán bộ.
- Prog 8: Tính doanh số.

21


Bước 1: Người ta tiến hành phân tích các chương trình và ghép chúng theo chức năng.
- Phác thảo 1: Gộp Prog 1,2,5,7 thành phân hệ quản lý nhân lực

- Phác thảo 2: Gộp Prog 4,8 thành phân hệ quả lý bán hàng

- Phác thảo 3: Gộp Prog 3,6 thành Quản lý kho

Bước 2: Phát triển các chức năng cho mỗi nhóm. Giả sử chúng ta phát triển thêm:
Prog 9: Dự báo mức tiêu thụ hàng hóa và Prog 10: Lập bảng tổng hợp hàng tồn kho
Bước 3: Tích hợp (Integration) (lưu ý vẽ có mũi tên)

22


16. Trình bày vấn đề thiết kế dữ liệu trong KNPM. Cho ví dụ minh họa?
a. Thiết kế dữ liệu trong KNPM
* Khái niệm dữ liệu:
Dữ liệu là những sự kiện hoặc quan sát về các hiện tượng vật lí hoặc các giao dịch kinh
doanh. Dữ liệu là các phản ánh khách quan về thuộc tính của các thực thể như người, địa
điểm, sự kiện,... Nó có thể ở dạng văn bản hay thường mang tải giá trị thông tin.
Dữ liệu là mạch máu của các hệ thống kinh tế và thương mại, do đó mô tả sự vận động của
dữ liệu cũng chính là bản chất hoạt động của hệ thống. Đây cũng là cơ sở của một trường
phái lập trình gọi là lập trình hướng luồng dữ liệu (DFD).
* Khái niệm và chức năng CSDL:
CSDL là một tập hợp dữ liệu được tổ chức đặc biệt và được lưu trữ trên các thiết bị nhớ
của máy tính nhằm cung cấp thông tin cho những người sử dụng khác nhau hay cho những
ứng dụng khác nhau.

Một CSDL có những chức năng:
- Có khả năng lưu trữ và nhập thêm thông tin
- Có thể cập nhật được DL
- Có khả năng cung cấp thông tin cho người sử dụng
* Tiêu chuẩn: Một CSDL sau khi chuẩn hóa phải đảm bảo được những tiêu chuẩn sau:
- Giảm lượng dư thừa thông tin sau khu lưu trữ
- Có thể sử chung cơ sở dữ liệu cho những bộ phận trong hệ thống thông tin quản lý
và sử dụng với nhiều mục đích khác nhau
- Đảm bảo tính nhất quán của dữ liệu trong hệ thống. Dễ dàng bảo trì dữ liệu và trao
đổi dữ liệu với các hệ thống thông tin khác
- Đảm bảo an toàn và toàn vẹn dữ liệu bằng cách áp dụng các biện pháp bảo vệ
* Thiết kế dữ liệu có thể tóm tắt qua các bước sau:
B1: Liệt kê tất cả các dữ liệu cần thiết cho bài toán
B2: Xđ các thực thể, về bản chất là gộp DL thành các bảng gần gũi nhau về thông
tin
B3: Xđ trường khóa cho mỗi file DL
B4: Xác định các mục khóa chính
B5: Chuẩn hóa 1NF, 2NF, 3NF
Sau khi xác định mối quan hệ giữa các thực thể (1-1, 1-n, n-n), xđ hình thức của DL
(chọn kiểu dữ liệu, độ dài và mô tả cho mỗi trường)
Sau khi liệt kê các bảng DL, trong đó từ khóa được gạch dưới hoặc in đậm, chúng ta
đưa ra mối quan hệ thực thể để cho thấy các bảng liên quan nhau ntn. Mỗi bảng DL
phải có từ khóa để liên kết các bảng với nhau nhằm mục đích bảo mật DL.
b. Ví dụ:Thiết kế dữ liệu cho thông tin đầu ra: “Hóa đơn bán hàng”
- CSDL đã được chuẩn hóa:
23


*****
17. Trình bày khái niệm thiết kế giải thuật trong KNPM. Cho ví dụ minh họa?

a. KN thiết kế giải thuật trong KNPM:
- Thiết kế giải thuật là quá trình xử lý 1 vấn đề nào đó trong bài toán đặt ra, thiết kế giải
thuật chính là nội dung cơ bản để giải quyết bài toán.
- Thuật toán (giải thuật) là 1 thủ tục tính toán xác định nhận các giá trị or 1 tập hợp các giá
trị gọi là input và sinh ra 1 vài giá trị hoặc 1 tập giá trị gọi là output.
- Có 2 cách biểu diễn giải thuật
+ Cách 1: Mô tả các bước thực hiện thuật toán
Ngôn ngữ sử dụng: ngôn ngữ tự nhiên or đoạn giả mã lệnh (lai ghép giữa ngôn ngữ tự
nhiên và lập trình)
+ Cách 2: Sử dụng sơ đồ (lưu đồ) giải thuật

24


- Các giải thuật được thiết kế bởi 3 cấu trúc điều khiển cơ bản:
• Cấu trúc tuần tự : các bước được thực hiện theo trình tự 1 cách chính xác, mỗi bước
được thực hiện đúng 1 lần.
• Cấu trúc chọn lọc: một trong nhiều thao tác được chọn và thực hiện.
• Cấu trúc chu trình: một hay nhiều bước thực hiện được lặp lại

25


×