Một số vấn đề phương pháp luận cơ bản về quy trình thiết kế, xây dựng và triển khai một phần
mềm ứng dụng
I. Khái niệm về phần mềm và công nghệ phần mềm, phân loại phần mềm
1.1. Khái niệm về phần mềm và công nghệ phần mềm.
1.1.1. Khái niệm về phần mềm.
* Hiện nay, có rất nhiều cách khác nhau để định nghĩa về phần mềm.Sau
đây là một số cách định nghĩa về phần mềm:
+ Phần mềm là tập hợp tất cả các câu lệnh do các lập trình viên viết ra để
hướng máy tính làm một số công việc cụ thể nào đó.
+ Theo giáo trình tin học đại cương của khoa tin học ĐH kinh tế quốc
dân thì: “Phần mềm máy tính là các chương trình, cấu trúc dữ liệu làm cho
chương trình xử lý được những thông tin thích hợp và các tài liệu mô tả phương
thức sử dụng các chương trình ấy. Phần mềm luôn được bổ sung và sửa đổi một
cách thường xuyên”
* Để có được phần mềm, các nhà lập trình phải sử dụng các ngôn ngữ lập
trình để viết, ngôn ngữ lập trình là ngôn ngữ trung gian giữa ngôn ngữ giao tiếp
của con người với ngôn ngữ máy, ngôn ngữ càng gần với ngôn ngữ con người
thì gọi là ngôn ngữ cấp cao, càng gần ngôn ngữ máy thì gọi là ngôn ngữ cấp
thấp.
* với các chương trình ứng dụng khác nhau và các trình điều khiển thiết
1.1.2. Khái niệm về công nghệ phần mềm
* Công nghệ phần mềm là một lĩnh vực nghiên cứu mới của tin học, được
triển khai trong giai đoạn phát triển rất cao của tin học và viễn thông khi phần
mềm đã trở thành một ngành công nghiệp.
Chương trình dịch
Ngôn ngữ lập
trình bậc cao
Ngôn ngữ của con
người
Ngôn ngữ lập
trình bậc thấp
Ngôn ngữ máy
Chương trình dịch
* Công nghệ phần mềm là môn khoa học nghiên cứu các phương pháp,
các thủ tục và các công cụ đi từ phân tích thiết kế đến quản lý một dự án phần
mềm nhằm đạt được các mục tiêu của dự án.
* Công nghệ phần mềm bao gồm một tập hợp với 3 yếu tố chủ chốt:
Công cụ và thủ tục, giúp cho người quả lý có thể kiểm soát được quá trình phát
triển phần mềm va cung cấp cho kỹ sư phần mềm một nền tảng để xây dựng
một phần mềm chất lượng cao.
1.2. Phân loại phần mềm.
` * Có nhiều cách khác nhau để phân loại phần mềm. Sau đây là một số
cách phân loại thường thấy:
1.2.1. Phần mềm ứng dụng
1.2.1.1. Phần mềm cho những ứng dụng tổng quát:
- Là những phần mềm đáp ứng được những công việc mang tính phổ
thông thường ngày của hầu hết người sử dụng. Ví dụ:
+ Chương trình duyệt Web cho phép người sử dụng có thể khai thác kho
dữ liệu khổng lồ trên Internet để phục vụ cho công việc của mình: Internet
Explorer, Opera…
+ Phần mềm nhận và gửi thư điện tử giúp chúng ta giữ lien hệ với mọi
đối tác cho dù họ ở bất kỳ đâu trên thế giới thông qua mạng Internet: Outlook
Express…
+ Hệ soạn thảo điều khiển máy tính hoạt động như một máy chữ để giúp
người dùng biên soạn các tài liệu như công văn, thư từ… Hệ soạn thảo văn bản
được sử dụng nhiều nhất là MS Word.
+ Hệ quản trị cơ sở dữ liệu giúp lưu chữ, tổ chức, sắp sếp, cập nhật thông
tin và tìm kiểm thông tin khi cần thiết. Ở Việt Nam hệ quản trị CSDL được dung
nhiều nhất là hệ quản trị: Foxpro và MS Access.
1.2.1.2 Phần mềm cho những mục đích cụ thể.
+Phần mềm kinh doanh: Gồm các chương trình giúp các doanh nghiệp
hoàn thành những nhiệm vụ xử lý thông tin có tính chất thủ tục lặp đi lặp lại
hàng ngày, hang tháng, hang quý hay hang năm. Phần mềm kinh doanh khác
phần mềm sản suất ở chỗ nó nhấn mạnh vào những nhiệm vụ trên phạm vi toàn
cơ quan như phần mềm kế toán, quản lý nhân sự…Các phần mềm được dung
nhiều nhất hiện nay là Fast và Effect.
+ Phần mềm giải trí bao gồm các trò chơi và các chương trình để giúp
tiêu khiển, giải trí. Hiện nay, khi mức của con người càng cao thì các phần mềm
thuộc loại nay đang lên ngôi.
+ phần mềm giáo dục và tham khảo giúp cung cấp kiến thức, kỹ năng về
một chủ thể, lĩnh vực nào đó, cung cấp các bộ cơ sở dữ liệu cho phép tra cứu
thông tin theo yêu cầu: Phần mềm tra cứu từ điển…
1.2.2. Phần mềm hệ thống.
* Phần mềm hệ thống bao gồm các chương trình quản lý, hỗ trợ các tài
nguyên và điều hành các hoạt động của hệ thống máy tính.
1.2.2.1 Phần mềm quản lý hệ thống
+ Hệ điều hành: Là một bộ trương trình phục vụ cho việc quản lý chặt
chẽ hệ thống tính toán và tổ chức khai thác chúng một cách tối ưu.
+ Các chương trình tiện ích: Được xây dựng với mục đích bổ xung them
các dịch vụ cần cho người mà hệ điều hành chưa đáp ứng được hay là đã có
nhưng chọn vẹn: Winzar, Foxit reader…
+ Các chương trình điều khiển thiết bị giúp máy tính điều khiển một thiết
bị nào đó mà không có trong danh sách những thiết bị phần cứng được hệ điều
hành hỗ trợ: Các loại Card màn hình..
1.1.2.2. Phần mềm phát triển hệ thống:
+ Các chương trình dịch có nhiệm vụ dịch các chương trình viết bằng
ngôn ngữ thuật toán sang ngôn ngữ máy tính để có thể hiểu và xử lý được.
+ Ngôn ngữ lập trình là công cụ để diễn tả thuật toán thành chương trình
cho máy tính thực hiện. Cho đến nay đã có 5 thế hệ ngôn ngữ lập trình: Java của
sun, dot net của Microsoft…
II- Chu kỳ sống của một phần mềm:
*Một số cách phân chia quá trình thiết kế ứng dụng.
2.1. Chu kỳ sống của dự án tuần tự
2.1.1.Giai đoạn khởi tạo.
Khởi tạo dự án là một giai đoạn xác định nhu cầu của ứng dụng và xác
định đầy đủ vấn đề để tập hợp đội ngũ đánh giá vấn đề đó. Bổ nhiệm các cá
nhân và các đối tác liên quan, bổ nhiệm các bên tham gia của mỗi tổ chức vào
nhóm xây dựng phân mềm. Đầu ra của giai đoạn này là một bản ghi hoặc một
tài liệu chính thức chỉ ra các nguồn tài trợ, xác định vấn đề các bên tham gia.
2.1.2 Giai đoạn nghiên cứu tính khả thi
Tính khả thi có được từ kết quả phân tích các rủi do, chi phí và lợi nhuận
liên quan đến các vấn đề kinh tế, kỹ thuật và tổ chức của người sử dụng. các vấn
đề đặt ra phải được xem xét chi tiết để đảm bảo rằng mọi khía cạnh của tính khả
thi đã được xem xét đến.
Báo các tổng quát về tính khả thi bao gồm:
+ Vấn đề đặt ra.
+ Tính khả thi về mặt kinh tế, kỹ thuật và tổ chức.
+ Những rủi ro và bất ngờ liên quan đến ứng dụng.
+ Ý tưởng thích hợp nhất về sản phẩm phần mềm và giải thích tại sao nó
tốt hơn các sản phẩm khác cùng loại.
+ Các cầu huấn luyện và lịch trình dự định.
+ Dự đoán nhân sự cho dự án tính theo từng giai đoạn và mức độ yêu cầu.
2.1.3. Giai đoạn phân tích.
* Yêu cầu về chức năng hệ thống được thiết kế để làm gì? Khuân dạng
các định nghĩa này vào phương pháp luận sử dụng trong giai đoạn phân tích.
+ Yêu cầu về cấu hình – các thiết bị cuối, các thông điệp, thời gian trả lời
của mạng, dung lượng vào/ ra, yêu cầu thời gian sử lý.
+ Yêu cầu về giao diện - dữ liệu trao đổi với các ứng dụng và đơn vị khác
là gì? định nghĩa bao gồm cả tính thời gian, khuôn dạng của dữ liệu trao đổi.
+ Các chuẩn xây dựng phần mềm - dạng cấu trúc, tính thời gian, nội dung
cơ bản của tại liệu cần đưa ra trong quá trình xây dựng phần mềm. định dạng
thông tin bao gồm nội dung của dữ liệu từ điển hay kho lưu trữ đối với việc
thiết kế đối tượng, nội dung báo cáo dự án, các yêu cầu cần thiết khác được
giám sát bởi nhóm tham gia dự án.
2.1.4. Giai đoạn thiết kế ở mức quan niệm.
Các cách giọi khác bao gồm thiết kế sơ bộ, thiết kế logic, thiết kế bên
ngoài hay định danh các yêu cầu của phần mềm. Hoạt động chính của thiết kế
quan niệm là định nghĩa chức năng chi tiết của tất cả các nhân tố bên ngoài của
một chương trình ứng dụng, nó bao gồm màn hình hiển thị, báo cáo, đơn vị dữ
liệu hội thoại, và các khuân mẫu. Cả nội dung và cách trình bày ở mức này. Hơn
nữa, mô hình dữ liệu logic được chuyển sang sơ đồ cơ sở dữ liệu logic, hoặc các
khung nhìn của người sử dụng.
2.1.5. Giai đoạn thiết kế.
* Những thuật ngữ khác dung để miêu tả các hoạt động thiết kế bao gồm
thiết kế chi tiết, thiết kế vật lý, thiết kế bên trong và thiết kế sản phẩm. Trong
suốt giai đoạn thiết kế, kỹ sư phần mềm phải tạo, sưu tập tài liệu và kiểm tra.
+ Kiến trúc phần mềm: Định danh và định nghĩa chương trình, các khối
độc lập, các chức năng, các luật, các đối tượng và các mối quan hệ giữa chúng.
+ Các thành phần và các khối của phần mềm: định nghĩa một cách chi tiết
nội dung và các chức năng của thàng phần, bao gồm đầu vào\ra, sự hiển thị, báo
cáo, dữ liệu, các file, các kết nôi và các tiến trình.
+ Giao diện: Nội dung chi tiết, tính toán thời gian, với trách nhiệm cụ thể,
và thiết kế dữ liệu được trao đổi với những ứng dụng hay tổ chức khác.
+ Kiểm tra: Xác định chiến lược, nhiệm vụ, và tính toán thời gian cho
mọi loại hình khiểm tra cần được tiến hành.
+ Dữ liệu: Là việc xác định cách thể hiện vật lý của dữ liệu trên các thiết
bị, và các yếu tố yêu cầu, tính toán thời gian, nhiệm vụ phân giã, sao chép các
bản sao dữ liệu.
2.1.6.G iai đoạn thiết kế hệ thống.
+ Cấu trúc điều khiển trình ứng dụng: Xác định bằng cách nào một
trương trình hay một khối độc lập được kích hoạt và nó sẽ về đâu khi kết thúc.