Vòng đời phát triển của phần mềm Vòng đời phần mềm là khoảng thời gian tính từ khi phần mềm được tạo racho đến khi chết đi tức là từ lúc hình thành đáp ứng yêu cầu, vận hành, bảodưỡng c
Trang 1Nhóm các kỹ thuật, phương pháp luận
Nhóm các chương trình Nhóm các tư liệu
Kinh nghiệm kỹ sư, know-how
NHỮNG VẤN ĐỀ PHƯƠNG PHÁP LUẬN CƠ BẢN
1 Một số khái niệm cơ bản về thiết kế và xây dựng phần mềm
1.1 Khái niệm về phần mềm
Hiện nay có khá nhiều cách định nghĩa phần mềm phụ thuộc vào cách tiếpcận với hệ thống Theo cách tiếp cận đơn giản nhất có thể xem phần mềm baogồm các câu lệnh và các cấu trúc dữ liệu thích hợp để thực hiện những chứcnăng mong muốn; và các tài liệu mô tả thao tác và cách sử dụng chương trình
- Xét theo nghĩa rộng hơn, phần mềm là tất cả các kỹ thuật làm cho việc sửdụng phần cứng máy tính đạt hiệu quả cao,bao gồm:
Nhóm các kỹ thuật, phương pháp luận: Các khái niệm, các trình tự thiết
kế và phát triển, các phương pháp tiếp cận vấn đề, đặc tả yêu cầu, thiết kế hệthống, kiểm thử,
Nhóm các chương trình: bao gồm các câu lệnh và các cấu trúc dữ liệuthích hợp để thực hiện những chức năng mong muốn Phần mềm có hai loại làphần mềm cơ bản và phần mềm ứng dụng
Phần mềm cơ bản có chức năng cung cấp môi trường thao tác dễ dàng chongười sử dụng nhằm tăng hiệu năng xử lý của phần cứng
Trang 2•Chất lượng phần mềm: không giảm đi mà có xu hướng tốt lên sau mỗi lần
có lỗi (error/bug) được phát hiện và sửa
•Phần mềm vốn chứa lỗi tiềm tàng, quy mô phần mềm càng lớn thì khảnăng chứa lỗi càng cao
•Lỗi phần mềm thường dễ được phát hiện bởi người ngoài
•Chức năng của phần mềm thường thay đổi theo thời gian và theo nơi sửdụng
•Hiệu ứng làn sóng trong thay đổi phần mềm
•Phần mềm vốn chứa ý tưởng và sáng tạo của tác giả/nhóm tác giả làm ranó
•Trong xây dựng, phát triển phần mềm cần khả năng “tư duy nhị phân”
•Phần mềm có thể sao chép rất đơn giản
1.3 Vòng đời phát triển của phần mềm
Vòng đời phần mềm là khoảng thời gian tính từ khi phần mềm được tạo racho đến khi chết đi (tức là từ lúc hình thành đáp ứng yêu cầu, vận hành, bảodưỡng cho đến khi loại bỏ không dùng nữa)
Vòng đời phần mềm chia thành 5 pha chính: phân tích, thiết kế, chế tạo,kiểm thử và bảo trì
•Phân tích: quá trình này nhằm mục đích hiểu được lĩnh vực thông tin, chứcnăng, hành vi, tính năng và giao diện của phần mềm sẽ phát triển Quá trìnhnày đòi hỏi phải tạo tư liệu và bàn thảo với khách hàng
•Thiết kế: là quá trình gồm nhiều bước với 4 thuộc tính khác nhau của mộtchương trình: cấu trúc dữ liệu, kiến trúc phần mềm, biểu diễn giao diện vàthuật toán Quá trình này cần tư liệu hóa và là một phần quan trọng của cấuhình phần mềm
•Chế tạo (lập trình): chuyển thiết kế thành chương trình máy tính bằng mộtngôn ngữ lập trình nào đó
•Kiểm thử: kiểm tra các chương trình và module logic bên trong và chứcnăng bên ngoài nhằm phát hiện ra lỗi và đảm bảo với đầu vào xác định thì chokết quả mong muốn
Trang 3Thiết kế
Lập trình
Kiểm thử
Mô hình chức năng
Mô hình tuyến tính
1.4 Nền tảng thiết kế phần mềm trong sản xuất phần mềm
1.4.1 Khái niệm thiết kế phần mềm
Thiết kế phần mềm được định nghĩa trong IEEE 610.12-96 bao gồm:Quá trình xác định kiến trúc, các thành phần, giao diện và các đặc tính kỹthuật của hệ thống hoặc thành phần
1.4.2 Vai trò của công đoạn thiết kế phần mềm
Thiết kế phần mềm là cơ sở cho giai đoạn tiếp theo là xây dựng phần mềm, nóđóng vai trò quan trọng trong phát triển phần mềm
Cho phép xem xét, so sánh các phương án kỹ thuật khác nhau trong thiết
kế phần mềm
Cho phép xác định phương án phù hợp nhất với các yêu cầu phần mềm
Cho phép lập các kế hoạch chi tiết cho giai đoạn xây dựng phần mềm
Hình 3: Mô hình công đoạn thiết kế phần mềm
Đối với một phần mềm có thiết kế khi phát triển thêm các chức năng chophần mềm người ta luôn có một nền tảng định hướng rõ ràng mà sau này khiphát triển không gây ra những đổ vỡ cho phần mềm
Trang 4Bảo trì Kiểm thử Cài đặt Thiết kế
Kiểm thử Cài đặt Bảo trì
1.4.3.1 Khái niệm module hoá
Trong trường phái lập trình cấu trúc người ta dựa trên một ý tưởng gọi làmodule hoá mà bản chất của nó khá phù hợp với phương pháp phân tích củatriết học tức là khi nghiên cứu một vấn đề nào đó chúng ta phân rã vấn đề đóthành những vấn đề nhỏ hơn, chi tiết hơn bao gồm từng bộ phận cấu thành nênvấn đề lớn Trong tin học, vấn đề module hoá được sử dụng để khi chuyển từvấn đề thực tế sang giải pháp phần mềm Trong trường hợp này quá trình phântích dừng lại ở các module độc lập và thông thường mỗi module tương ứng vớimột chương trình Ta có thể biểu diễn quá trình module hoá thông qua sơ đồcấu trúc hình cây sau đây
Trang 5Hình 5: Quá trình module hoá
Nếu ta coi bài toán chính là module bậc 1 thì module này lại được phân chiathành các module bậc 2, bậc 3 theo cấu trúc hình cây
1.4.3.2 Phương pháp thiết kế từ trên xuống (Top Down Design)
Ý tưởng tổng quát của phương pháp thiết kế từ đỉnh xuống là dựa vào quátrình module hoá một vấn đề thực tế Khi giải quyết một vấn đề nào đó trướchết người ta đưa ra các phác thảo tổng quát Sau đó trên cơ sở của phác thảonày sẽ tiếp tục chi tiết hoá thành các module ngày càng chi tiết và cụ thể hơn
và dừng lại khi mỗi module tương ứng với một chương trình
1.4.3.3 Phương pháp thiết kế từ dưới lên (Bottom Up Design)
Ý tưởng của phương pháp này xét theo một góc độ nào đó là ngược lại vớiphương pháp thiết kế từ trên xuống và bao gồm các vấn đề sau:
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àitoán người ta gộp chúng lại thành từng nhóm cùng chức năng từ dưới lên trêncho đến module chính Sau đó sẽ thiết kế thêm một số chương trình làm phongphú hơn, đầy đủ hơn chức năng của các phân hệ và cuối cùng là thiết kế mộtchương trình làm nhiệm vụ tập hợp các module thành một hệ chương trìnhthống nhất, hoàn chỉnh
1.4.4 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ì qui trình thiết kế phầnmềm theo hai bước:
Thiết kế kiến trúc phần mềm: mục đích xác định mô hình kiến trúc vàcác thành phần trong kiến trúc
Thiết kế chi tiết phần mềm: Thiết kế chi tiết từng thành phần, xác địnhđầy đủ các thông tin tương ứng cho từng thành phần để có thể tiến hành xâydựng phần mềm
Xuất phát từ góc độ kĩ thuật thì qui trình thiết kế phần mềm bao gồm bốnloại:
Thiết kế kiến trúc
Trang 6Thiết kế kiến trúc Thiết kế dữ liệu Thiết kế thủ tục Thiết kế giao diện
Thiết kế chi tiết
Thiết kế giao diện
Hai khía cạnh kĩ thuật và quản lý của qui trình thiết kế có mối liên quan mậtthiết với nhau và được biểu diễn trong hình vẽ tổng quát dưới đây
1.5.1.2 Dấu hiệu
Qui trình xây dựng và quản lý hợp đồng phần mềm được đặc trưng bởi cácdấu hiệu sau:
- Xây dựng hợp đông phần mềm với khách hàng
- Theo dõi thực hiện hợp đồng phần mềm
- Thanh toán, thanh lý hợp đồng phần mềm
Trang 7Mở đầu
Xây dựng hợp đồng phần mềm
Theo dõi hợp đồng phần mềm Thanh toán, thanh lý hợp đồng
Kết thúc Báo cáo tổng kết qui trình
Nghiên cứu đề xuất XD PM
chung
(chức danh)
Cán bộ kinh doanh Có đề xuất xây
dựng hợp đồng PM
2 Đầu vào Đề xuất của khách hàng và
duyệt của công ty PM
Trang 8thời gian thực tế là: +- 20%
5 Các qui
trình liên quan Xác định yêu cầu PM
1.5.1.5 Phân đoạn các hoạt động
ST
1 Lập giải pháp Có nhu cầu xây
dựng PM
2 Xây dựng hợp đồng PM Kết thúc bước 1 HĐPM được duyệt
4 Thanh toán thanh lý
HĐPM Kết thúc bước 3 Lãnh đạo công ty PM vàkhách hàng duyệt
5 Báo cáo qui trình Kết thúc bước 4 Công ty duyệt
1.5.2 Xác định yêu cầu phần mềm
1.5.2.1 Mục đích
Sau khi đã có hợp đồng phần mềm với khách hàng; hợp đồng đượcchuyển sang để thực hiện yêu cầu thứ hai nhằm mục đích xác định cụ thể nhucầu của khách hàng về phần mềm tương lai bao gồm: các chức năng của phầnmềm, hiệu năng của phần mềm, các yêu cầu về thiết kế và giao diện, các yêucầu đặc biệt khác Yêu cầu đặt ra là phải lượng hoá và biểu diễn dưới dạng các
mô hình
1.5.2.2 Dấu hiệu
Qui trình xác định yêu cầu phần mềm được đặc trưng bởi các dấu hiệu sau:
• Phát hiện các yêu cầu phần mềm (Requirements elicitation)
• Phân tích các yêu cầu phần mềm và thương lượng với khách hàng(Requirements analysis and negotiation)
• Mô tả các yêu cầu phần mềm (Requirements specification)
• Mô hình hóa hệ thống (System modeling)
• Kiểm tra tính hợp lý các yêu cầu phần mềm (Requirements validation)
• Quản trị các yêu cầu phần mềm (Requirements management)
1.5.2.3 Lưu đồ
Trang 9Lập kế hoạch xây dựng yêu cầu
Hình 8: Lưu đồ quy trình xác định yêu cầu phần mềm
1.5.2.4 Các thông số
Yêu cầu1.Thông số chung (chức
Trang 105 Các qui trình liên
TestTriển khai
1.5.2.5 Phân đoạn các hoạt động
1 Lập kế hoạch xác định yêu cầu Kết thúc quá trình 1
2 Xác định yêu cầu người sử
dụng
Kết thúc bước 1
4 Mô tả hoạt động của hệ thống Kết thúc bước 3
Trang 11Không Có
Hồ sơ thiết kế tổng quát
Hình 9: Lưu đồ quy trình thiết kế phần mềm
Trang 121.5.3.4 Các thông số
1.Thông số chung
Chức danh Cán bộ thiết kế Theo tiêu chuẩn củacông ty
2 Đầu vào Hồ sơ phân tích nghiệp vụ chuyên
sâu
Mô tả hoạt động
Quản trị viên dự ánduyệt
3 Sản phẩm Thiết kế kiến trúc
Thiết kế kĩ thuật
4 Đánh giá chất
lượng Các tài liệu thiết kế được hoànthành đúng hạn >=90%
Chênh lệch thời gian dự kiến và thờigian thực tế là: +- 20%
1 Lập kế hoạch thiết kế Bắt đầu Qtrình 3 Hồ sơ thiết kế
2 Thiết kế kiến trúc Kết thúc bước 1 Quản trị viên dự án duyệt
3 Thiết kế dữ liệu Kết thúc bước 2 Quản trị viên dự án duyệt
4 Thiết kế thủ tục Kết thúc bước 3 Quản trị viên dự án duyệt
5 Thiết kế chương trình Kết thúc bước 4 Quản trị viên dự án duyệt
6 Thiết kế giao diện Kết thúc bước 5 Quản trị viên dự án duyệt
7 Tổng hợp hồ sơ thiết kế Kết thúc bước 6 Quản trị viên dự án duyệt
1.5.4 Qui trình lập trình
1.5.4.1 Mục đích
Trên cơ sở của hồ sơ thiết kế, bộ phận lập trình sẽ tiến hành chi tiết hoá các
sơ đồ khối hay lưu đồ và lựa chọn một ngôn ngữ lập trình nào đó phù hợp đểbiến bản vẽ thiết kế thành sản phẩm phần mềm Nhưng bản thân công đoạn lậptrình phải trung thành với thiết kế kiến trúc của phần mềm; không được làmthay đổi cấu trúc
15.4.2 Qui trình lập trình trong công nghệ phần mềm được đặc trưng bởicác dấu hiệu sau:
Lập trình các thư viện chung
Lập trình các module chương trình
Trang 13Kết thúc
Không Có
Báo cáo tổng hợp 1.5.4.2 Lưu đồ
Hình 10: Lưu đồ quy trình lập trình
1.5.4.3 Các thông số
1.Thông số chung
Chức danh Lập trình viên Theo tiêu chuẩn củacông ty
2 Đầu vào Hồ sơ thiết kế kiến trúc
Hồ sơ thiết kế kỹ thuật Quản trị viên dự ánduyệt
3 Sản phẩm Sản phẩm phần mềm
Công cụ cài đặt
Quản trị viên dự ánduyệt
4 Đánh giá chất
lượng Các module PM được lập trìnhđúng hạn >=90%
Thời gian dự kiến và thời gianthực tế để lập trình là: +- 20%
5 Các qui trình liên
quan
Hợp đồng PM
Hồ sơ thiết kế
1.5.4.4 Phân đoạn các hoạt động
1 Lập kế hoạch Bắt đầu qui trình 4 Quản trị viên dự án
Trang 14bộ Test không những làm công việc khoa học mà còn mang tính nghệ thuật.1.5.4.7 Lưu đồ
Trang 15Báo cáo qui trình Test
Hình 11: Lưu đồ quy trình Test
Trang 161 Lập kế hoạch Test Bắt đầu qui trình 5 Kế hoạch được duyệt
2 Lập kịch bản Kết thúc bước 1 Quản trị viên dự án
duyệt
3 Test hệ thống Kết thúc bước 2 Quản trị viên dự án
duyệt
4 Test nghiệm thu Kết thúc bước 3
5 Ghi nhận quá trình Test Kết thúc bước 4 Quản trị viên dự án
1.5.6.2 Dấu hiệu
Qui trình triển khai trong công nghệ phần mềm được đặc trưng bởi các dấuhiệu sau:
Cài đặt các máy chủ
Trang 17Mở đầu
Kết thúc
Có
Lập giải pháp kĩ thuậtLập kế hoạch triển khaiDuyệt?
Cài đặt máy chủ Cài đặt máy mạngVận hành
Trang 183 Sản phẩm Biên bản ghi nhận quá trình
triển khai
Khách hàng kí nhận
4 Đánh giá chất
lượng Các hạng mục triển khai đượchoàn thành đúng hạn >=90%
Chênh lệch thời gian dự kiến
và thời gian thực tế là: +- 20%
5 Các qui trình liên
quan
Hợp đồng PMLập trình
1.5.6.6 Phân đoạn các hoạt động
1 Lập giải pháp Bắt đầu qui trình 6 Giải pháp được duyệt
2 Lập kế hoạch Kết thúc bước 1 Quản trị viên dự án
duyệt
3 Cài đặt máy chủ Kết thúc bước 2 Quản trị viên dự án
duyệt
4 Cài đặt máy mạng Kết thúc bước 3
5 Vận hành Kết thúc bước 4 Quản trị viên dự án
Trang 192 Công cụ nghiên cứu đề tài
2.1 Công cụ mô hình hóa
2.1.1 Sơ đồ luồng thông tin (IFD)
Sơ đồ luồng thông tin được dùng để mô tả hệ thống thông tin theo cách thứcđộng Nghĩa là mô tả sự di chuyển của dữ liệu, việc xử lý, việc lưu trữ trongthế giới vật lý bằng các sơ đồ
Các ký pháp của sơ đồ luồng thông tin:
Xử lý
Kho lưu trữ dữ liệu
Dòng thông tin
Điều khiển
Trang 20Tệp dữ liệu Kho dữ liệu
2.1.2 Sơ đồ luồng dữ liệu (DFD)
Giống như sơ đồ luồng thông tin, sơ đồ luồng dữ liệu dùng để mô tả chính
hệ thống thông tin nhưng trên góc độ trừu tượng Sơ đồ DFD là sự thể hiện sơ
đồ các luồng dữ liệu, các xử lý, các lưu trữ dữ liệu, nguồn và đích nhưngkhông hề quan tâm tới nơi, thời điểm, và đối tượng chịu trách nhiệm xử lý Sơ
đồ luồng dữ liệu đơn thuần mô tả hệ thống thông tin làm gì và để làm gì
Một số ký pháp cơ bản dùng cho sơ đồ luồng dữ liệu (DFD)
Ngôn ngữ sơ đồ luồng dữ liệu DFD sử dụng bốn loại ký pháp cơ bản: thựcthể, tiến trình, kho dữ liệu và dòng dữ liệu
Các mức của sơ đồ DFD
Sơ đồ ngữ cảnh (Context Diagram) thể hiện khái quát nội dungchính của hệ thống thông tin Sơ đồ này không đi vào chi tiết, mà mô tả saocho chỉ cần một lần nhìn qua đã nhận ra được tổng quan về hệ thống thông tin
Để cho sơ đồ ngữ cảnh sáng sủa, dễ nhìn có thể bỏ qua các kho dữ liệu; bỏ quacác xử lý cập nhật (không cần đánh số các vòng tròn xử lý)
Phân rã sơ đồ
Để mô tả hệ thống chi tiết hơn người ta dùng kỹ thuật phân rã (Explosion)
sơ đồ Bắt đầu từ sơ đồ ngữ cảnh, phân rã thành sơ đồ mức 0, mức 1
Quy ước phân rã sơ đồ luồng dữ liệu DFD
Dòng dữ liệu phải có tên
Trang 21Nhiều dữ liệu đi cùng với nhau trên một luồng nhưng ở trên các vật khácnhau nên đặt cùng một tên.
Đối với các xử lý bắt buộc phải đánh mã
Các đường mũi tên không cắt nhau, vì thế được phép vẽ lại kho dữ liệu vàđầu mối thông tin
Tìm động từ ghi vào xử lý
Xử lý bắt buộc phải có ít nhất một luồng vào khác luồng ra
Một xử lý nếu trình bày bằng ngôn ngữ cấu trúc (chỉ có động từ) chỉ trìnhbày trên một trang A4
Trên một sơ đồ luồng thông tin để tối đa bảy xử lý Các xử lý trên một sơ
đồ luồng dữ liệu DFD phải cùng mức
Bảo đảm cân đối vào - ra
Gọi xử lý mức cuối cùng là xử lý nguyên thuỷ
2.1.3 Sơ đồ chức năng kinh doanh (BFD- Business Function Diagram)
Là sơ đồ thể hiện chức năng của một hệ thống thông tin Nhìn vào sơ đồ cóthể thấy ngay các hoạt động chính của hệ thống thông tin
Cách thức xây dựng sơ đồ chức năng kinh doanh BFD
Tìm các động từ thể hiện chức năng của hệ thống thông tin
Phác hoạ một danh sách các công việc phải làm
Nhóm vào thành các khối công việc
Tìm tên phù hợp cho các nhóm
Phân các công việc vào các nhóm
Vẽ ra dưới dạng sơ đồ
Trang 223 Lý thuyết về hệ quản trị cơ sở dữ liệu Microsoft Access và ngôn ngữ lập trình Visual Basic.
3.1 Hệ quản trị cơ sở dữ liệu Micxrosoft Access
3.1.1 Khái niệm hệ thống thông tin
Hệ thống thông tin (HTTT) là một tập hợp các yếu tố có liên quan vớinhau cùng làm nhiệm vụ thu thập, xử lý, lưu trữ dữ liệu, truyền đạt và phânphát thông tin để hỗ trợ việc ra quyết định, phân tích tình hình, lập kế hoạch,điều phối và kiểm soát các hoạt động trong một cơ quan
Các HTTT có thể hoàn toàn thủ công hay dựa trên máy tính Ngoàimáy tính điện tử, HTTT còn có con người, các phương tiện thông tin liên lạc,các quy tắc, thủ tục, phương pháp và mô hình toán học để xử lý dữ liệu, quản
lý, phân phát và sử dụng thông tin Hầu hết các HTTT đều được gọi là hệthống thông tin quản lý (HTTTQL) bởi vì nó phục vụ cho công tác quản lý
3.1.2 Khái niệm hệ quản trị cơ sở dữ liệu
Trong HTTT người ta lưu trữ và quản lý dữ liệu trong những kho dữliệu, đó là nơi cất giữ dữ liệu một cách có tổ chức sao cho có thể tìm kiếmnhanh chón những dữ liệu cần thiết Nếu kho dữ liệu này được đặt trên cácphương tiện nhớ của MTĐT và được bảo quản nhờ chương trình máy tính thì
nó còn được gọi là ngân hàng dữ liệu (NHDL) hay hệ cơ sở dữ liệu
Giống với các hệ quản trị cơ sở dữ liệu Microsoft FoxPro, Oracle, hệquản trị cơ sở dữ liệu Microsoft Access, phiên bản 2003, là một hệ quản trị cơ
sở dữ liệu được đánh giá là chiếm phần thị trường lớn nhất hiện nay
3.2 Khái quát ngôn ngữ lập trình Visual Basic
3.2.1 Giới thiệu về ngôn ngữ lập trình Visual Basic
Là sản phẩm nằm trong bộ Visual Baisic Studio của hãng Microsoft, làngôn ngữ lập trình đa năng được sử dụng phổ biến để xây dựng và phát triểncác phần mềm quản lý
Ưu điểm: