24/05/2018, 16:44

Các khái niệm và đặc trưng cơ bản của hệ thống phần mềm

Thách thức lớn nhất của loài người trong thế kỷ 21 là sự hỗn độn và mức độ phức tạp trong hầu hết các lĩnh vực của cuộc sống. Khoa học tính toán, tin học sẽ đóng vai trò rất quan trọng trong việc tăng thêm trí tuệ, khoa học cho con người nhằm ...

Thách thức lớn nhất của loài người trong thế kỷ 21 là sự hỗn độn và mức độ phức tạp trong hầu hết các lĩnh vực của cuộc sống. Khoa học tính toán, tin học sẽ đóng vai trò rất quan trọng trong việc tăng thêm trí tuệ, khoa học cho con người nhằm giải quyết những vấn đề rất phức tạp trong mọi hoạt động của mình. Nền kinh tế của chúng ta ở thế kỷ này cũng phải chuyển sang nền kinh tế tri thức, nghĩa là luôn đổi mới và thay đổi, khác hẳn với nền kinh tế dựa vào vật chất. Để hiểu, để khống chế được độ phức tạp của những vấn đề đặt ra trong nền kinh tế tri thức và từ đó đưa ra được những giải pháp để giải quyết chúng thì chúng ta phải có những phương pháp khoa học và đúng đắn, phù hợp với các qui luật xã hội và tự nhiên. Bên cạnh việc nghiên cứu các phương pháp thích hợp đối với từng loại hệ thống, chúng ta cũng cần tìm hiểu từng bộ phận của chúng để mô hình hoá và xác định được quá trình hình thành của mỗi hệ thống. Như Pascal đã khảng định “Không thể hiểu được bộ phận nếu không hiểu toàn thể và không thể hiểu toàn thể nếu không hiểu được từng bộ phận”. Do vậy, nhiệm vụ của các ngành khoa học là đi nghiên cứu các quá trình, các qui luật tự nhiên, các tínhchất và hành vi của hệ thống để mô hình hoá chúng và đề xuất những phương pháp để giải quyết những vấn đề xảy ra trong các hoạt động của con người sao cho hiệu quả nhất. Nhiệm vụ của công nghệ thông tin nói chung, công nghệ phần mềm nói riêng là nghiên cứu các mô hình, phương pháp và công cụ để tạo ra những hệ thống phần mềm chất lượng cao trong phạm vi hạn chế về tài nguyên nhằm đáp ứng được những nhu cầu thường xuyên thay đổi của khách hàng, giải quyết được những vấn đề phức tạp đặt ra trong thực tế. Trước những năm 60, chưa định hình các phương pháp rõ rệt cho quá trình phát triển phần mềm [19, 35]. Người ta xây dựng hệ thống phần mềm tương đối tuỳ tiện, theo sở thích và những kinh nghiệm cá nhân. Từ những năm 70 tới nay, nhiều mô hình, phương pháp phát triển phần mềm lần lượt ra đời. Mỗi phương pháp đều có những ưu, nhược điểm riêng, có thể được ưa chuộng ở nơi này, ở một số lĩnh vực nào đó nhưng lại không được ưa chuộng ở những nơi khác. Sự đa dạng và phong phú trong các phương pháp cũng có nghĩa là có sự không thống nhất, không chuẩn hoá.Tuy nhiên, trải qua thời gian, một số phương pháp đã tỏ ra có sức sống dẻo dai,đang được áp dụng rộng rãi trong thực tế. Trong số này phải kể trước hết những phương pháp có tên chung là các phương pháp có cầu trúc [7, 9, 19]. Những phương pháp này thống nhất trong cùng một cách tiếp cận, đó là hướng thủ tục và cùng một hướng tư duy (có cấu trúc và trên xuống), nhưng mỗi phương pháp lại chỉ đề cập đến một phương diện của quá trình phát triển phần mềm. Do vậy, người ta thường sử dụng một số phương pháp liên hoàn, bổ sung cho nhau trong cùng một đề án phát triển phần mềm phức tạp. Ngày nay nó vẫn chưa lạc hậu, vẫn còn phát huy tác dụng tốt cho những hệ thống có cấu trúc với những dữ liệu tương đối thuần nhất. Nhưng do sự phong phú về phương pháp luận và sự đa dạng về sự biểu diễn các khái niệm (các ký hiệu rất khác nhau, không thống nhất) dẫn tới khó có thể đưa ra được một qui trình thống nhất cho quá trình phát triển phần mềm. Mặt khác, nhiều vấn đề phức tạp mới xuất hiện, không chỉ yêu cầu tính toán lớn, xử lý phân tán, thường xuyên thay đổi các yêu cầu mà còn đòi hỏi phải quản lý với nhiều loại dữ liệu khác nhau, dữ liệu đa phương tiện, dữ liệu âm thanh, hình ảnh, v.v.

Từ những năm 90, xuất hiện một trào lưu mới, mãnh liệt: đó là sự ra đời của các phương pháp hướng đối tượng [4, 5, 18, 21, 24]. Thay vì cách tiếp cận dựa vào chức năng, nhiệm vụ của hệ thống như các phương pháp có cấu trúc nêu trên, phương pháp hướng đối tượng lại dựa chính vào các thực thể (các đối tượng).Cách tiếp cận hướng đối tượng đặt trọng tâm vào việc xây dựng lý thuyết cho các hệ thống tổng quát như là mô hình khái niệm cơ sở. Hệ thống được xem như là tập các đối tượng tác động với nhau trên cơ sở truyền thông điệpđể thực thi các nhiệm vụ đặt ra trong hệ thống đó.

Cách tiếp cận này rất phù hợp với cách quan sát và quan niệm của chúng ta về thế giới xung quanh và tạo ra những công cụ mới, hữu hiệu để phát triển các hệ thống có tính mở, dễ thay đổi theo yêu cầu của người sử dụng, đáp ứng được các tiêu chuẩn phần mềm theo yêu cầu của nền công nghệ thông tin hiện đại, giải quyết được những vấn đề phức tạp của thực tế đặt ra trong thế kỷ 21. Một điều rất quan trọng trong công nghệ phần mềm là các khái niệm mới của mô hình hệ thống hướng đối tượng, các bước phát triển có thể đặc tả và thực hiện theo một qui trình thống nhất [2, 21] với một hệ thống

ký hiệu chuẩn, đó là ngôn ngữ mô hình hoá hợp nhất UML (Unified Modeling Language) [3, 10], được sự hỗ trợ của những phần mềm công cụ như Rational Rose[17, 22]. Những công cụ này hỗ trợ rất hiệu quả cho các giai đoạn phân tích, thiết kếvà lập trình hướng đối tượng.

Theo từ điển Larousse, “Tin học là tập hợp các ngành khoa học, kỹ thuật, kinh tế - xã hội vận dụng vào việc xử lý thông tin và sự tự động hoá”. Nếu vậy, có thể địnhnghĩa hệ thống tin học là hệ thống có mục đích xử lý thông tin và có sự tham gia củamáy tính. Sự tham gia của máy tính trong một hệ thống tin học có thể ở nhiều mức độkhác nhau:

  • Mức thấp: máy tính chỉ được sử dụng để giải quyết một số công việc đơn lẻ, như soạn thảo các công văn, báo cáo, các bảng biểu thống kê, hoá đơn, chứng từ, bảng tính lương, v.v.
  • Mức trung bình: máy tính cùng với con người cộng tác, phân công với nhau để thực hiện một qui trình quản lý phức tạp, ví dụ, các hệ thống thông tin quản lý hành chính nhà nước, các dịch vụ công, các hệ thống điều hành tác nghiệp đang được xây dựng trong Chương trình Cải cách hành chính, Đề án 112 của Chính phủ giai đoạn 2001 – 2005, v.v.
  • Mức cao: máy tính đóng vai trò chủ chốt trong quá trình xử lý thông tin, con người không can thiệt trực tiếp vào quá trình này mà chỉ có nhiệm vụ cung cấp thông tin đầu vào cho hệ thống và nhận được kết quả ra từ máy tính như các chương trình điều khiển các chuyến bay của các con tàu vũ trụ, các chương trình điều khiển các quá trình sản xuất tự động, những vấn đề về trí tuệ nhân tạo, v.v.

Hệ thống tin học (phần mềm)do vậy, có thể được xem là tổ hợp các phần cứng, phần mềm có quan hệ qua lại với nhau, cùng hoạt động hướng tới mục tiêu chung thông qua việc nhận các dữ liệu đầu vào (Input) và sản sinh ra những kết quả đầu ra (Output) thường là ở các dạng thông tin khác nhau nhờ một quá trình xử lý, biến đổi có tổ chức. Một cách hình thức hơn chúng ta có thể định nghĩa phần mềm[13, 19] bao gồm các thành phần cơ bản như sau:

  • Hệ thống các câu lệnh (chương trình) khi thực hiện thì tạo ra được các

hoạt động và cho các kết quả theo yêu cầu,

  • Các cấu trúc dữ liệu làm cho chương trình thực hiện được các thao tác,xử lý và cho ra các thông tin cần thiết,
  • Các tài liệu mô tả thao tác và cách sử dụng hệ thống.

Các đặc trưng của hệ thống

Hệ thống thông tin cũng giống như các hệ thống khác đều có những đặc trưng cơ bản như sau:

  1. Mọi hệ thống đều có tính nhất thể hoá và đặc tính này được thể hiện thông qua:
    • Phạm vi và qui mô của hệ thống được xác định như một thể thống nhất và hệ thống không thay đổi trong những điều kiện nhất định. Khi những điều kiện này không còn được đảm bảo thì hệ thống sẽ phải biến đổi theo.
    • Tạo ra những đặc tính chung để thực hiện được các nhiệm vụ hay nhằm đạt được các mục tiêu chung mà từng bộ phận riêng lẻ không thể thực hiện được.
  2. Trong sự hỗn độn, phức tạp của thế giới xung quanh, một hệ thống được tạo ra và phát triển thì phải có tính tổ chức, có thứ bậc. Nghĩa là:
  • Mọi hệ thống luôn là hệ thống con của một hệ thống lớn hơn trong môi trường nào đó và chính nó lại bao gồm các hệ thống (các thành phần) nhỏ hơn.
  • Giữa các thành phần của một hệ thống có sự sắp xếp theo quan hệ thứ bậc hay một trình tự nhất định.
  • Mọi hệ thống đều có cấu trúc: Chính cấu trúc của hệ thống quyết định cơ chế vận hành của hệ thống và mục tiêu mà nó cần đạt được. Cấu trúc của hệ thống được thể hiện bởi:
  • Các phần tử được sắp xếp theo trật tự để cấu thành một hệ thống.
  • Mối quan hệ giữa các thành phần liên quan chủ yếu đến loại hình, số lượng, chiều, cường độ, v.v.

Những hệ thống có cấu trúc chặt thường được gọi là hệ thống có cấu trúc.

Cấu trúc của hệ thống là quan trọng, nó có thể quyết định tính chất cơ bản của hệ thống. kim cương và than đá đều được cấu tạo từ các phân tử các-bon, nhưng khác nhau về cấu trúc nên: kim cương vô cùng rắn chắc, còn tham đá thì không có tính chất đó.

Sự thay đổi cấu trúc có thể tạo ra những đặc tính mới (sức trồi mới, hay còn gọi là những đột biến) của hệ thống và khi vượt quá một ngưỡng nào đó thì có thể dẫn tới việc phá vỡ hệ thống cũ. Ví dụ: công nghệ biến đổi gen: chính là làm thay đổi cấu trúc của các tế bào sinh học. Những nguyên lý di truyền và biến đổi gen của công nghệ sinh học cũng đang được nghiên cứu và ứng dụng trong công nghệ thông tin.

  1. Mọi hệ thống đều biến đổi theo thời gian và không gian:
  • Hệ thống nào cũng có một đời sống, từ lúc khai sinh đến lúc bị phế bỏ. Các hệ thống phải luôn thay đổi cho phù hợp với điều kiện thực tế theo thời gian và không gian, nghĩa là muốn tồn tại và phát triển thì phải biến đổi cho phù hợp với môi trường xung quanh theo qui luật tiến hoá của tự nhiên (Darwin). Sự khác nhau chủ yếu là tốc độ và khả năng nhận biết được về sự thay đổi đó.
  • Mọi sự thay đổi luôn có mối liên hệ ngược (feedback) trong hệ thống và chịu sự tác động của qui luật “nhân - quả”. Hệ thống được đánh giá theo nhiều tiêu chí khác nhau [7, 13, 19, 24] và chưa có một hệ thống tiêu chí chuẩn để đánh giá cho các sản phẩm phần mềm. Ở đây chúng ta chỉ quan tâm đến một số tính chất quan trọng nhất hiện nay của các sản phẩm phần mềm. Một sản phẩm của công nghệ phần mềm hiện nay, ngoài những tính chất chung của các hệ thống nêu trên thì phải có các tính chất sau:
  • Tính tiệndụng (usability): sản phẩm phải dễ sử dụng và tiện lợi cho người dùng, hỗ trợ để thực hiện các công việc tốt hơn. Muốn đạt được mục đích này thì phần mềm phải có giao diện thân thiện, phù hợp, có đầy đủ các tài liệu mô tả và có sự hỗ trợ kịp thời cho người sử dụng.
  • Khả năng bảo hành và duy trì hoạt động (Maintainability): Hệ thống phải có khả năng cập nhật, đễ thay đổi, có khả năng mở rộng để thực hiện được những yêu cầu thay đổi của khách hàng.
  • Tính tin cậy (Dependability): Tính tin cậy của phần mềm không chỉ thể hiện ở khả năng thực hiện đúng nhiệm đã được thiết kế và cả các khả năng đảm bảo an toàn, an ninh dữ liệu. Hệ thống phải thực hiện bình thường ngay cả khi có sự kiện bất thường xảy ra.
  • Tính hiệu quả (Efficiency): Phần mềm không gây ra sự lãng phí các tài nguyên như bộ nhớ, bộ xử lý,các thiết bị ngoại vi, thời gian sử dụng, v.v.

Phân loại hệ thống phần mềm

Nếu xét tới nội dung của thông tin được xử lý và tính chất của môi trường của hệ thống, người ta có thể phân hệ thống phần mềmtheo các loại khác nhau [24, 35] như sau:

  1. Hệ thống thông tin quản lý (Management Information System - MIS): hệ thống cung cấp các thông tin cần thiết cho công tác quản lý và điều hành của một doanh nghiệp, cơ quan, hay nói rộng ra là cho một tổ chức. Hạt nhân của hệ thống thông tin quản lý là một cơ sở dữ liệu (CSDL) chứa các thông tin phản ánh tình trạng hiện thời và các kết quả hoạt động sản xuất, kinh doanh của tổ chức đó. Hệ thống thu thập các thông tin từ môi trường hoạt động của doanh nghiệp, kết hợp với các thông tin có trong CSDL để kết xuất các thông tin mà các nhà quản lý cần, đồng thời thường xuyên cập nhật dữ liệu để giữ cho các thông tin ở trong CSDL luôn phản ánh đúng thực trạng hiện thời của tổ chức đó. Hệ thống thông tin quản lý thường được phân loại theo hai mức:
    • Mức thấp, hay còn gọi mức tác nghiệp, hệ thống chỉ có nhiệm vụ in ra các bảng biểu, chứng từ giao dịch theo những biểu mẫu của cách xử lý thủ công (bằng tay) vẫn làm. Đó thường là các hệ thống xử lý dữ liệu như các hệthống đơn hàng, quản lý nhân sự, quản lý thiết bị, vật tư, kế toán tài vụ.
    • Mức cao, hay còn gọi mức điều hành, hệ thống phải đưa ra được các thông tin có tính chất chiến lược và kế hoạch giúp cho người lãnh đạo đưa rađược các quyết định đúng đắn trong công tác điều hành sự hoạt động củađơn vị, ví dụ, các hệ thống dịch vụ công, các hệ thống thông tin tổng hợp,các trang thông tin điều hành tác nghiệp của Tỉnh / Thành đang được xây dựng trong Đề án 112 của Chính phủ [36, 37, 38]. Những hệ thống như thế có thể phát triển được thành hệ hỗ trợ quyết định (Decision Support System – DSS). Đặc điểm của hệ hỗ trợ quyết định là bên cạnh CSDL còn có cơ sở các mô hình, các phương pháp mà khi lựa chọn để vận dụng lên các dữ liệu sẽ cho các lời giải, cho các kết quả theo yêu cầu đa dạng của người dùng đặt ra các tình huống khi chọn lựa các quyết định của mình.
  2. Các hệ thống kỹ thuật (Technical Systems), những hệ thống tự động hoá sản xuất hay còn gọi là các hệ thống điều khiển các quá trình. Đó là những hệthống nhằm xử lý và điều khiển tự động các quá trình vận hành các thiết bịkỹ thuật trong sản xuất, viễn thông, quân sự, các quá trình công nghiệp, v.v.Những hệ thống này thường phải làm việc theo phương thức xử lý thời gianthực. Về mặt kiến trúc vật lý, bên cạnh phần mềm, hệ thống này bao gồmnhiều loại thiết bị tin học đa dạng: từ các CPU phổ dụng, đến các máy tínhchuyên dụng, các ôtômát lập trình được, như các bộ điều khiển logic lậptrình được (Programmable Logic Controller – PLC), các đường truyền, cácbộ cảm biến, các bộ chuyển đổi tín hiệu A/N hay N/A.
  3. Các hệ thống nhúng thời gian thực (Embedded Real_time System). Hệ thống thực hiện trên những thiết bị cứng đơn giản và được nhúng vào các thiết bị khác như: mobile phone, hệ thống hướng dẫn lái xe ô tô, hệ thống điều khiển các dụng cụ dân dụng, v.v. Các hệ thống này thường được thực hiện lập trình ở mức thấp, và cũng thường thực hiện xử lý theo thời gian thực. Trong các hệ này, thường thiếu vắng các thiết bị ngoại vi thông dụng như màn hình, ổ đĩa cứng, v.v.
  4. Phần mềm hệ thống (System Software). Những hệ thống này thiết lập nên hạ tầng kỹ thuật của các hệ thống máy tính, phục vụ cho các phần mềm ứng dụng chạy trên đó. Đó có thể là hệ điều hành, hệ quản trị CSDL, chương trình dịch, giao diện phần mềm ứng dụng API (Application Programming Interface), v.v. Chúng khai thác các dịch vụ tầng thấp của các phần cứng để đưa các giao diện, các dịch vụ ở tầng cao ở mức khái quát, dễ sử dụng cho các chương trình ứng dụng.
  5. Các hệ thống tự động hoá văn phòng (Automated Office Ssystems). Tự động hoá văn phòng là cách tiếp cận nhằm đưa máy tính vào hoạt động văn phòng, cho phép thâu tóm mọi công việc tính toán, giao lưu, quản lý thông tin, tất cả vào trong các cửa sổ trên màn hình máy tính, có ngay trên bàn làm việc của mỗi nhân viên văn phòng. Một hệ thống tự động hoá văn phòng phải cung cấp được ít nhất một số trong các chức năng chính như sau:
  • Thư tín điện tử (E-mail): nhận/gửi các thông điệp văn bản (Text messages) tới các cá nhân hay nhóm người.
  • Lịch biểu, kế hoạch công tác, thông báo.
  • Xử lý văn bản: soạn thảo, sửa chữa, mi trang, v.v. các tài liệu, biểu đồ, văn tự và đồ hoạ.
  • Hội thảo điện tử: hội thảo nghe nhìn từ xa, trao đổi dữ liệu, các cuộc toạ đàm hỗn hợp dữ liệu và tiếng nói, hình ảnh, nối ghép các màn hình với nhau.
  • Các hệ thống tích hợp điện thoại với xử lý, tính toán của máy tính: người sử dụng có thể truy cập tới các hệ CSDL thông qua hệ thống điệnthoại (kể cả điện thoại không dây) để có được những dịch vụ cần thiết.Thông thường, mỗi loại phần mềm thường có những phương pháp, mô hình, côngcụ và qui trình riêng. Do vậy, khi xây dựng một hệ thống phần mềm chúng ta cần phảixác định xem nó thuộc loại nào để quyết định lưa chọn giải pháp cho thích hợp và hiệu quả nhất.
0