Phân loại phần mềm

Một phần của tài liệu Phân tích, thiết kế và xây dựng phần mềm kế toán bán hàng và công nợ phải thu cho doanh nghiệp nhỏ và vừa (Trang 31)

Để phân loại các phần mềm tin học người ta có thể dựa theo rất nhiều cách thức khác nhau như phân loại theo thời gian xuất hiện, theo chức năng ứng dụng hay theo sự tiến hóa của ngôn ngữ biểu diễn phần mềm… Phương pháp phân loại phần mềm được

sử dụng rộng rãi nhất hiện nay là phân chia phần mềm thành hai loại chính: phần mềm hệ thống và phần mềm ứng dụng.

a. 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 hướng dẫn những hoạt động cơ bản của một máy tính, giúp cho phần cứng của máy tính hoạt động một cách có hiệu quả cao nhất. Phần mềm hệ thống lại được chia thành bốn loại:

Hệ điều hành: là một bộ chươ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ác loại hệ điều hành: hệ điều hành đa chương trình, hệ điều hành đa nhiệm và hệ điều hành đa xử lý.

Các chương trình tiện ích: thường được xây dựng bởi các hãng thứ ba với mục đích bổ sung thêm các dịch vụ cần cho nhiều người mà hệ điều hành chưa đáp ứng được hay đã có nhưng chưa trọn vẹn chẳng hạn như quản lý các ổ đĩa…

Các chương trình điều khiển thiết bị: là các phần mềm 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ợ như là các loại card màn hình, card âm thanh hay một số thiết bị ngoại vi khác.

Các chương trình dịch: là các phần mềm 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 để máy tính có thể hiểu và xử lý được và ngược lại, dịch các kết quả xử lý của máy tính sang ngôn ngữ bậc cao và chuyển tới người dùng. Mỗi một ngôn ngữ lập trình đều đi kèm với nó là một chương trình dịch.

b. Phần mềm ứng dụng

Phần mềm ứng dụng là những phần mềm được tạo ra để đáp ứng một yêu cầu

nào đó của người sử dụng. Phần mềm ứng dụng được chia thành bốn loại :

Phần mềm năng suất: là các chương trình giúp nâng cao năng suất và hiệu quả làm việc của người dùng như: hệ soạn thảo văn bản, bảng tính điện tử, phần mềm đồ họa…

Phần mềm kinh doanh: là phần mềm có chức năng quản lý các hoạt động, các giao dịch phát sinh trong quá trình hoạt động của doanh nghiệp giúp 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, hàng tháng, hàng quý hay hàng năm. Ví dụ: phần mềm kế toán, quản trị doanh nghiệp…

Phần mềm giáo dục, tham khảo: là phần mềm cung cấp những kiến thức, thông tin cho người sử dụng về một lĩnh vực nào đó, giúp người dùng học thêm về một chủ đề nào đó, hay là giúp tra cứu về một đối tượng, một sự kiện hoặc một chủ đề bất kỳ theo yêu cầu của người sử dụng. Loại này bao gồm các phần mềm từ điển, dạy học…

Phần mềm giải trí: bao gồm các phần mềm giúp người dùng thư giãn, giải trí như các trò chơi, phần mềm nghe nhạc, xem phim …

2.1.3 Các đặc trưng của phần mềm

Phần mềm là hệ thống logic, không phải là hệ thống vật lý. Nó có các đặc trưng khác biệt đáng kể so với các đặc trưng của phần cứng:

Phần mềm được phát triển (hay kỹ nghệ), nó không được chế tạo theo nghĩa cổ điển

Khi con người cảm thấy cần một nhu cầu nào đó hay một sự hỗ trợ nào đó cho công việc của mình thì những nhà lập trình tin học sẽ phân tích yêu cầu đó để tạo ra phần mềm. Và phần mềm có thể được nâng cấp cơi nới tùy theo nhu cầu phát sinh của doanh nghiệp và xã hội.

Ví dụ, một doanh nghiệp cảm thấy công việc kế toán quá nặng nề và họ muốn giảm nhân lực cho công việc kế toán thì họ đặt hàng một hãng làm phần mềm tạo ra phần mềm kế toán.

Phần mềm cũng được thiết kế, chế tạo như phần cứng, nhưng nó không được định hình trước. Chỉ khi phát triển xong người ta mới có sản phẩm cụ thể và biết được nó hoạt động có hiệu quả hay không. Quá trình thiết kế và sản xuất phần mềm phụ thuộc vào con người, vào điều kiện môi trường cụ thể mà tại đó nó được phát

triển. Người ta không thể nói trước được giá thành của phần mềm và hiệu quả của nó. Chính quá trình phát triển phần mềm quyết định giá thành và chất lượng của nó.

Phần mềm không "hỏng đi" nhưng thoái hóa theo thời gian

Phần mềm không giống như phần cứng là bị hỏng do tác động của môi trường do mòn cũ. Về mặt lý thuyết, tỷ lệ lỗi của phần mềm là không đổi khi đã đưa vào sử dụng. Nhưng trên thực tế nó lại thoái hóa qua thời gian do lỗi mới sinh ra mỗi khi tiến hành bảo trì trong quá trình sử dụng.

Mỗi khi sửa đổi (bảo trì), một số khiếm khuyết mới sinh ra làm cho phần mềm bị thoái hóa. Việc sửa chỉnh phần mềm làm cho xuất hiện các lỗi mới phát sinh. Dần dần, mức lỗi tối thiểu tăng lên - phần mềm bị thoái hóa do tỷ lệ sai hỏng tăng lên đến mức gây ra những thiệt hại không thể chấp nhận được hoặc người dùng không muốn sử dụng nữa vì có những phần mềm khác tốt hơn.

Phần mềm còn lạc hậu do các công nghệ mới ra đời, người dùng không còn thích dùng phần mềm cũ nữa, hay khi các công nghệ mới (Hệ điều hành(*), các hệ quản trị cơ sở dữ liệu, phiên bản dịch mới, ...) được đưa vào tổ chức làm cho các phần mềm cũ không thể tiếp tục vận hành trên máy với chúng.

Phần lớn phần mềm được xây dựng theo đơn đặt hàng của khách

Phần mềm không có danh mục các thành phần cố định như phần cứng. Nó thường được đặt hàng theo một đơn vị hoàn chỉnh, theo yêu cầu riêng của mỗi tổ chức, mỗi khách hàng, ít khi có thể lắp ráp theo một khuôn mẫu có sẵn.

Yêu cầu đối với phần mềm của khách hàng tùy thuộc vào môi trường cụ thể mà ở đó nó được phát triển và sử dụng. Môi trường này (phần cứng, phần mềm nền, con người và tổ chức, công nghệ có được, ...) không thể định dạng từ trước và luôn thay đổi theo không gian và thời gian.

Một điều dễ nhận thấy là khi bắt đầu thiết kế , xây dựng một phần mềm thì công ty sản xuất phần mềm thường phải cử người đến tìm hiểu thực tế tại doanh nghiệp có nhu cầu sử dụng phần mềm để từ đó đưa ra những mô tả về nghiệp vụ chính xác nhất.

Cốt lõi của phần mềm (mã nguồn) là những khái niệm được thể hiện bằng một hệ thống lôgic được lưu trên giấy hay vật mang. Phải là những người am hiểu về tin học và có khả năng lập trình mới đọc được các tài liệu này. Phần mềm là "không nhìn thấy được", cái mà chúng ta hay sử dụng và gọi là phần mềm thực ra là giao diện tương tác giữa người và máy của phần mềm.

Môi trường xã hội luôn thay đổi do vậy phần mềm cũng phải phải thay đổi một cách tương ứng cùng thời gian. Thay đổi trở thành yêu cầu và thuộc tính tất yếu của phần mềm.

Ngày nay phần mềm được phát triển theo nhóm

Trong khi nhu cầu về sản phẩm ngày càng tăng và đòi hỏi thời gian xuất ra ngày càng ngắn. Trong điều kiện đó, việc sản xuất phần mềm cần nhiều người với kỹ năng khác nhau tham gia trong các đội phát triển để tạo được phần mềm chất lượng cao với thời gian ngắn. Phát triển phần mềm theo nhóm là một cách lựa chọn duy nhất.

Ví dụ để thiết kế một phần mềm bất kỳ thì cần phải có một nhóm tìm hiểu nhu cầu thực tế của doanh nghiệp, tổ chức, một nhóm vạch ra bản phân tích thiết kế phần mềm, một nhóm thiết kế giao diện, một nhóm lập trình mã nguồn, một nhóm đóng gói phần mềm và một nhóm quan trọng khác là bảo trì + chăm sóc khách hàng.

2.1.4 Vòng đời phát triển của phần mềm

Vòng đời phát triển của một phần mềm được hiểu là quy trình từ khi phần mềm ra đời cho đến khi đưa nó vào sử dụng và quá trình nâng cấp bảo trì. Công việc nghiên cứu vòng đời phát triển của phần mềm là nhằm phân chia thành các giai đoạn và trên cơ sở đó tìm ra các giải pháp và công nghệ thích hợp tác động vào từng giai đoạn đó.

Trong công nghệ phần mềm, người ta thường sử dụng mô hình thác nước để

biểu diễn vòng đời phát triển cảu phần mềm. Mô hình này bao gồm nhiều giai đoạn và các giai đoạn đứng trước sẽ lần lượt tác động đến các giai đoạn đứng sau.

Hình 2.2 - Mô hình thác nước biểu diễn vòng đời phát triển của phần mềm Công nghệ hệ thống: Công nghệ hệ thống được hiểu là phương hướng tiếp cận tác động đến mọi công đoạn của kỹ nghệ phần mềm. Bản chất của công nghệ hệ thống là khi thiết kế một phần mềm, các kỹ sư phần mềm phải xem xét một cách tổng thể trong mối liên hệ giữa các bộ phận quản lý, giữa các thành phần của hệ thống với nhau.

Phân tích: Phân tích là quá trình sử dụng các mô hình để nêu lên những đặc trưng của hệ thống quản lý. Các công cụ thường được sử dụng là các sơ đồ chức năng nghiệp vụ (BFD), sơ đồ luồng dữ liệu (DFD), mô hình dữ liệu (DM), sơ đồ luồng thông tin (IFD), ngôn ngữ có cấu trúc (SL). Có thể nói phân tích là quá trình trung tâm có ý nghĩa quyết định tới quá trình phát triển hệ thống.

Thiết kế: Dựa trên cơ sở của bước phân tích, công đoạn thiết kế tiến hành dịch các yêu cầu về phần mềm thành một biểu diễn của phần mềm. Nội dung thiết kế sản phẩm phần mềm bao gồm : thiết kế kiến trúc phần mềm, thiết kế cấu trúc dữ liệu, các thủ tục, các đặc trưng giao diện được lập thành hồ sơ thiết kế.

Mã hóa: Bản chất của mã hóa là quá trình dịch từ bản vẽ thiết kế sang một ngôn ngữ lập trình cụ thể, rồi thông qua đó trình biên dịch sẽ chuyển thành ngôn ngữ máy để máy tính có thể đọc, hiểu và thực thi được.

Kiểm thử: Kiểm thử là công đoạn kiểm tra và đánh giá chất lượng phần mềm. Tiến trình kiểm thử chủ yếu tập trung vào phần logic bên trong của phần mềm. Mục đích kiểm thử là nhằm đảm bảo tất cả các câu lệnh đều được kiểm tra để phát hiện ra các lỗi nếu có và đảm bảo cho ra kết quả phù hợp với dữ liệu đưa vào.

Bảo trì: Bảo trì là hoạt động được diễn ra sau khi công ty phần mềm đã bàn giao phần mềm và khách hàng đã đưa vào sử dụng. Có 3 loại bảo trì : Bảo trì sửa đổi nhằm loại bỏ những sai sót còn tồn tại khi sử dụng, bảo trì thích nghi đế đáp ứng yêu cầu phù hợp với những thay đổi trong quá trình hoạt động và bảo trì hoàn thiện nhằm nâng cấp, bổ sung tính năng cho phần mềm.

2.1.5 Kỹ nghệ phần mềm

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 phần mềm dựa trên máy tính. Theo Roger Pressman : Kỹ nghệ phần mềm là một tổ hợp các công cụ, phương pháp và thủ tục làm cho người quản trị viên dự án nắm được xu thế tổng quát phát triển phần mềm và giúp cho kỹ sư lập trình có một nền tảng để triển khai các định hướng của phần mềm.

Kỹ phần mềm là lĩnh vực nghiên cứu 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ế, cài đặt các sản phẩm phần mềm đạt được các chỉ tiêu:

+ Tính đúng đắn + Tính khoa học

+ Tính dễ đọc và dễ sửa đổi, cải tiến + Tính dễ sử dụng

+ Tính phổ dụng

2.1.6 Các quy trình trong sản xuất phần mềm

Trong sản xuất phần mềm công nghiệp, người ta phân chia toàn bộ quá trình sản xuất một sản phẩm thành nhiều công đoạn, các công đoạn được gọi là các quy trình. Toàn bộ chuỗi sản xuất phần mềm được chia thành 7 quy trình cụ thể như sau :

1. Quy trình lập và quản lý hợp đồng phần mềm 2. Quy trình xác định yêu cầu phần mềm

3. Quy trình thiết kế phần mềm 4. Quy trình lập trình

5. Quy trình test 6. Quy trình triển khai

7. Quy trình quản lý dự án phần mềm

Toàn bộ các quy trình và mối quan hệ giữa chúng được biểu diễn dưới sơ đồ sau :

Hình 2.3 - Các quy trình sản xuất phần mềm

Toàn bộ quá trình sản xuất phần mềm ở quy mô công nghiệp bao gồm sáu chức năng riêng biệt và một chức năng quản lý dự án bao trùm. Dòng chảy các quy trình từ lúc lập hợp đồng với khách hàng cho đến khi triển khai sản phẩm cho khách hàng đều có một điểm chung là kết quả ở một quy trình nào đó đứng trước sẽ là sản phẩm đầu

vào của quy trình đứng tiếp sau. Bởi thế chất lượng của một sản phẩm phần mềm phụ thuộc đồng thời vào cả bảy quy trình và không thể xem nhẹ bất cứ quy trình nào.

a. Quy trình xây dựng và quản lý hợp đồng phần mềm

Quy trình này được tiến hành nhằm mục đích : nghiên cứu, đề xuất hợp đồng phần mềm với khách hàng; theo dõi quá trình thực hiện hợp đồng; tiến hành thanh toán, thanh lý hợp đồng với khách hàng và đặc biệt là định giá đúng giá trị của phần mềm. Lưu đồ quy trình xây dựng và quản lý hợp đồng phần mềm được biểu diễn như sau :

Hình 2.4 - Lưu đồ quy trình xây dựng và quản lý hợp đồng phần mềm Trong các khâu đoạn trên có thể thấy khâu lập giải pháp được tiến hành trước khi xây dựng phần mềm là vì để đảm bảo tính khả thi của dự án cần phải xác định năng lực

của công ty phần mềm (như nguồn nhân lực, tài chính đặc biệt là năng lực kỹ thuật) để thực hiện dự án trước khi khởi thảo hợp đồng.

b. Quy trình xác định yêu cầu phần mềm

Sau khi đã có hợp đồng phần mềm với khách hàng, quy trình xác định yêu cầu phần mềm được thực hiện, tiếp cận các quy trình nghiệp vụ của khách hàng nhằm xác định nhu cầu của khách hàng về sản phẩm tương lai và tiến hành lượng hóa các dạng mô hình.

Hình 2.5 - Lưu đồ quy trình xác định yêu cầu phần mềm c. Quy trình thiết kế phần mềm

Thiết kế là công đoạn có vai trò đặc biệt quan trọng quyết định hình thức và công năng của sản phẩm phần mềm. Thiết kế đóng vai trò trung tâm trong kỹ nghệ phần mềm, người ta thống kê thấy gần 70% nỗ lực trong sản xuất phần mềm là dành cho khâu thiết kế. Bởi thiết kế là cách duy nhất mà chúng ta có thể thực hiện quá trình chuyển dịch một cách chính xác nhất yêu cầu của khách hàng thành sản phẩm phần mềm, do đó thiết kế quyết định chất lượng của phần mềm. Trên cơ sở hồ sơ của giai đoạn xác định yêu cầu, ta chuyển sang quy trình thiết kế nhằm xác định hồ sơ tổng thể các vấn đề thiết kế phần mềm từ tổng quát tới chi tiết.

Quy trình thiết kế phần mềm gồm các công đoạn chính sau đây: - Thiết kế kiến trúc phần mềm

- Thiết kế kỹ thuật + Thiết kế dữ liệu

+ Thiết kế thủ tục (giải thuật) + Thiết kế chương trình + Thiết kế giao diện

Thiết kế kiến trúc phần mềm

Kiến trúc phần mềm là một bản mô tả tổng quát những chức năng chính của một hệ thống dựa trên máy tính và những nét đặc trưng, những mối quan hệ giữa các phần tử trong hệ thống. Thiết kế kiến trúc có tính chất bao trùm hệ thống và được coi là

Một phần của tài liệu Phân tích, thiết kế và xây dựng phần mềm kế toán bán hàng và công nợ phải thu cho doanh nghiệp nhỏ và vừa (Trang 31)

Tải bản đầy đủ (DOC)

(115 trang)
w