Mô hình xây dựng phần mềm

Một phần của tài liệu Đồ án xây dựng phiên bản mới của hệ trợ giúp quyết đinh DSPES (Trang 31)

Với điều kiện một đề tài mở phát triển theo thời gian thì việc xây dựng theo mô hình lặp tăng dần là thích hợp. Theo phương pháp này chương trình sẽ được ngày càng hoàn thiện về các chức năng, về giao diện. Mô hình này đã được áp dụng cho phần mềm DSPES 2.0, DSPES 2.1 và nó vẫn được sử dụng cho phiên bản mới nàỵ Mô hình được trình bày như hình 3.1:

Hình 3.1: Mô hình lặp tăng dần 3.1.2 Ngôn ngữ hợp nhất UML

Với mô hình phát triển phần mềm nêu trên, điều cần thiết để có thể lặp được đó là một bản phân tích thiết kế dành cho chương trình. Trên thế giới có rất nhiều chuẩn để xây dựng một bản phân tích thiết kế dành cho phần mềm, trong đó việc phân tích thiết kế phần mềm thông qua chuẩn UML2.0 là một lựa chọn tốt cho tương. Chương

Phân tích yêu cầu và tài liệu đặc tả Phân tích hệ thống và thiết kế Hiện thực và kiểm thử từng thành phần Kiểm thử (Test) Chu Kỳ con 1 Phân tích yêu cầu và tài liệu đặc tả Phân tích hệ thống và thiết kế Hiện thực và kiểm thử từng thành phần Kiểm thử (Test) Chu Kỳ con 2 Phân tích yêu cầu và tài liệu đặc tả Phân tích hệ thống và thiết kế Hiện thực và kiểm thử từng thành phần Kiểm thử (Test)

Chu Kỳ con cuối cùng

trình này cũng chưa là một chương trình hoàn thiện tất cả các chức năng, giao diện nên việc cần phải có bản thiết kế tốt là điều tất yếu việc sử dụng ngôn ngữ hợp nhất UML là sự lựa chọn đúng cho việc phát triển nàỵ

3.1.3 Ngôn ngữ lập trình

Việc chọn ngôn ngữ lập trình cho chương trình là một vấn đề phức tạp cần xem xét đến nhiều điều kiện khác nhau từ con người, quy mô, tài chính… vấn đề chọn ngôn ngữ lập trình cho DSPES2.0, DSPES2.1 là ngôn ngữ C# nên với điều kiện hạn chế về lập trình nên phần mềm chọn C# là ngôn ngữ để viết là việc làm đúng đắn. C# là một ngôn ngữ lập trình chặt chẽ về cấu trúc, số từ khóa ít lại hỗ trợ mạnh tới các hệ quản lý cơ sở dữ liệu của Microsoft … nên việc dùng C# để lập trình sẽ mất ít thời gian và công sức cho người lập trình viên.

3.1.4 Cơ sở dữ liệu

Với việc DSPES2.0, DSPES 2.1 sử dụng hệ quản trị cơ sở dữ liệu MS SQL server cho việc lưu cơ sở dữ liệu cho mình. Tuy rằng MS SQL server cần phải đầu tư ban đầu khá lớn nhưng với cơ sở dữ liệu của một hệ trợ giúp thì việc đó là cần thiết do cơ sở dữ liệu của một hệ trợ giúp quyết định là rất lớn nên cần một hệ quản trị cơ sở dữ liệu đủ mạnh để lưu trữ và xử lý.

3.1.5 Kỹ thuật multilanguage

Với việc toàn cầu hóa hiện nay thì ngôn ngữ là vấn đề quan trọng trong sự phát triển, một phần mềm muốn vươn xa được thì cần phải hỗ trợ nhiều ngôn ngữ khác nhaụ Kỹ thuật này cũng được DSPES2.0, DSPES 2.1 áp dụng và dần hoàn thiện. 3.1.6 Kỹ thuật MultiThread

Với những bộ máy PC hiện nay tốc độ lớn nhưng đi kèm với nó không biết bao chương trình đang tiêu tốn tài nguyên của máy làm cho máy chạy chậm đi trông thấy và hiện tượng treo xảy rạ Khi đó chương trình sẽ làm việc không tốt nữa và gây những ác cảm tới chương trình và hoài nghi kết quả tính toán của chương trình. Để một chương trình chạy trơn tru là điều không dễ khi làm việc với dữ liệu lớn. vậy vấn đề cần phải xem xét đến đó là việc hạn chế tối đa những việc trên thông qua kĩ thuật lập trình MultiThread.

3.2 Xây dựng phần mềm

Sau đây một số nét chính trong quá trình xây dựng chương trình DSPES 2.0, DSPES 2.1 :

‘ Đặc tả và phân tích yêu cầụ ‘ Các Use Case

‘ Các Class ‘ Đánh giá.

3.2.1 Đặc tả và phân tích yêu cầu bài toán 3.2.1.1 Bài toán 3.2.1.1 Bài toán

a) Phát biểu bài toán:

Lập kế hoạch dài hạn việc cung cấp đáp ứng các loại nhu cầu năng lượng của một khu vực liên tục phát triển trong phạm vi giới hạn của một số tài nguyên hạn chế với giá thành thấp nhất, tiết kiệm nguyên liệu nhất mà vẫn đảm bảo giảm thiểu ô nhiễm môi trường.

b) Các dữ liệu đầu vào

Các dữ liệu đầu vào cho chương trình gồm có:

• Số khu vực con

• Số giai đoạn

• Số phương án

• Số mục tiêu

• Số tài nguyên bị hạn chế

• Số nhu cầu năng lượng tiêu dùng

• Số công nghệ thỏa mãn nhu cầu năng lượng

• Lựa chọn giữa giải bài toán với số liệu chính xác và số liệu mờ

• Lượng năng lượng tiêu dùng đối với từng nhu cầu, tại mỗi giai đoạn, đối với từng khu vực con và dung sai của nó (nếu người dùng chọn xử lý với số liệu mờ). (adsbygoogle = window.adsbygoogle || []).push({});

• Giới hạn của từng tài nguyên bị hạn chế trên phạm vi toàn khu vực và dung sai của nó (nếu người dùng chọn xử lý với số liệu mờ).

• Đồ thị cụ thể của từng khu vực.

• Mỗi phương án là tập hợp các công nghệ có thể sử dụng để đáp ứng từng loại nhu cầu tiêu dùng năng lượng.

c) Yêu cầu: Giải quyết bài toán tối ưu tĩnh và động với hai trường hợp số liệu chính xác và số liệu mờ.

3.2.1.2 Phân tích yêu cầu bài toán

Từ đặc tả yêu cẩu chúng ta có thể hình dung được yêu cầu xây dựng chương trình phải thỏa mãn các yêu cầu sau:

(1) Quản lý dữ liệu đầu vào của bài toán (Nhập , xuất, xửa chữa, xóa , truy vấn dữ liệu)

• Danh sách công nghệ, mỗi công nghệ bao gồm các hệ số chuyển đổi tới tài nguyên hạn chế, năng lượng tiêu dùng, mục tiêu, và các thông tin khác về công nghệ (tên, đặc điểm...). vì thế để quản lý được cần phải quản lý được cả danh sách các tham số công nghệ (cộng nghệ‘Tài nguyên hạn chế, công nghệ‘Mục tiêu, công nghệ‘Năng lượng tiêu dùng).

• Danh sách các mục tiêu

• Danh sách các Tài nguyên hạn chế và danh sách tham số tương ứng. Mỗi tài nguyên hạn chứa thông tin về lượng tài nguyên tối đa được dùng cho mỗi giai đoạn do đó mà mỗi tài nguyên hạn chế có một danh sách tham số (chính là lượng tài nguyên tối đa dùng tại mỗi giai đoạn của hệ thống).

• Danh sách các Năng lượng tiêu dùng và các danh sách tham số tương ứng. Tương tự như tài nguyên hạn chế. Ở mỗi một giai đoạn thì nhu cầu năng lượng tiêu dùng cũng khác nhau vì thế cũng có danh sách tham số (năng lượng tiêu dùng ở các giai đoạn) kèm theọ

• Danh sách đồ thị : mỗi khu vực con sẽ một đồ thị. trên đồ thị có nhiều cạnh như vậy để quản lý được đồ thị phải tính đến việc quản lý các cạnh của đồ thị.

• Các phương án : phải quản lý được các công nghệ thuộc phương án. (2) Giải bài toán với số liệu chính xác [3]

(3) Giải bài toán với số liệu mờ [4]

(4) Quản lý dữ liệu đầu ra của bài toán :

• Lưu trữ được kết quả bài toán sau khi giải, việc lưu trữ này đảm bảo tính tối ưu của chương trình khi mà dữ liệu đầu vào không thay đổi thì việc giải lại là không cần thiết. Đồng thời khi người sử dụng muốn xem lại kết quả của bất kỳ bài toán nào đã được giải trước đó thì có thể truy xuất ngay kết quả mà không cần giải lạị

• Cung cấp công cụ để nhìn được chi tiết các kết quả của bài toán. Các kết quả sau khi giải gồm rất nhiều lựa chọn theo các mục tiêu khác nhaụ Một cách nhìn kết quả thân thiện cho người sử dụng là một tiện ích tốt.

• Cung cấp công cụ lựa chọn kết quả. Việc cung cấp bộ lọc kết quả giúp người sử dụng có thể nhìn kết quả dưới nhiều góc độ và dễ dàng lựa chọn

(5) Quản lý dữ liệu động trong quá trình tiến hành giải bài toán.

Trong quá trình giải bài toán yêu cầu lưu trữ dữ liệu trung gian là rất lớn và tăng theo cấp số nhân với số phương án và giai đoạn tại mỗi khu vực con. Vì thế việc quản lý dữ liệu động trong quá trình tiến hành giải bài toán là một yêu cầu quan trọng đảm bảo chất lượng của chương trình.

(6) Các yêu cầu khác :

• Chương trình có chế độ multilanguage giúp người sử dụng lựa chọn ngôn ngữ phù hợp với ngôn ngữ của mình qua đó tăng cao tính thân thiện của chương trình.

• Trong khi đang tiến hành giải bài toán có thể tiến hành đồng thời việc thay đổi dữ liệu của một bài toán khác.

• Cung cấp khả năng Import/Export toàn bộ dữ liệu (dữ liệu vào và kết quả giải bài toán) theo định dạng Excel. Người sử dụng không nhất thiết phải làm việc với dữ liệu trên giao diện của chương trình. Việc cung cấp khả năng Import/Export dữ liệu giúp người sử dụng có thể “Soạn thảo” dữ liệu trên công cụ soạn thảo chuyên nghiệp khác.

3.2.2 Use Case

Hình 3.2 Nhóm use case thao tác dữ liệu

Hình 3.4: Nhóm UseCase kết quả

3.2.3 Class

3.2.3.1 Tổng quan mô hình thiết kế class

Trong mô hình này các lớp được thiết kế chuyên biệt giữa các chức năng và tạo thành các thành phần cơ bản cho chương trình. Với các Form nhập xuất dữ liệu là thành phần về giao diện của chương trình sử dụng để giao tiếp với người sử dụng mọi yêu cầu từ người dùng được đưa qua từ giao diện đến tầng chuyên về xử lý dữ liệu MDatabase xử lý mọi vấn đề liên quan đến quản lý dữ liệu nhập xuất dữ liệu và cung cấp dữ liệu cho các tầng xử lý và hiển thị phần MDatabase sẽ truyền các yêu cầu đến tầng vật lý nơi lưu trữ dữ liệu nhập xuất. Các thành phần xử lý dữ liệu sẽ được cung cấp đầy đủ thông qua các thành phần quản lý dữ liệụ Mô hình tổng quan đó được thể hiện như hình 3.6: (adsbygoogle = window.adsbygoogle || []).push({});

3.2.3.2 Đặc điểm thiết kế chung của các Class (1) Tất cả các lớp M đều thừa kế từ lớp General.

Lớp General lưu trữ các thông tin chung về bài toán (tên, số bước, só giai đoạn....) đồng thời cung cấp đối tượng truy cập dữ liệu (lớp CDatabase).

Hình 3.7: Đặc điểm thiết kế chung của các lớp (2) MDatabase quản lý tất cả các lớp M.

Lớp MDatabase chứa toàn bộ các đối tượng quản lý dữ liệu kể trên. khi khởi tạo MDatabase sẽ khởi tạo lần lượt các lớp M theo thứ tự cần thiết để mỗi lớp M đều có đầy đủ các dữ liệu cần thiết.

Các lớp M được dùng trong chương trình chỉ được lấy ra từ lớp MDatabasẹ (3) Toàn bộ thao tác dữ liệu của các lớp M đều thông qua CDatabase

CDatabase cung câp các thao tác với cơ sở dữ liệụ Các thuộc tính trong CDatabase đều là dữ liệu public để các lớp M có thể truy cập không cần thông qua các phương thức. CDatabase cung cấp các thao tác với cơ sử dữ liệu thông qua gói DatạOdbc của .NET Framework. CDatabase tạo kết nối với cơ sở dữ liệu thông qua ODBC nên rất thuận tiện cho việc thay đổi các hệ quản trị cơ sở dữ liệu nếu cần.

General MEnergy MTarget MNode MLimitResource MTechnology MGrap MEdge MResult MTemporary MTemporaryF MLimitResoureF MEnergyF

(4) Giao tiếp giữa các lớp thông qua các đối tượng dữ liệu cơ bản.

Việc giao tiếp với các lớp M thông qua các đối tượng : Technology, Energy, LimitResource, Edge, Node, Grap. đây là các đôi tượng cơ bản lưu trữ một thành phần dữ liệu để giải bài toán. Các lớp M tương ứng sẽ quản lý các đối tượng nàỵ

3.2.4 Thiết kế Database

Cơ sở dữ liệu của DSPES được thiết kế để có thể lưu trữ nhiều bài toán. Mỗi bài toán trong cơ sở dữ liệu sẽ có một mã số và toàn bộ các dữ liệu liên quan đến bài toán này (Công nghệ, Năng lượng tiêu dùng, Tài nguyên hạn chế...) đều được xác định thông qua mã số liên quan đến bài toán.

Để làm được điều này, cở dữ liệu có bảng General bảng này lưu trữ thông tin cho các bài toán. Các bảng lưu trữ thông tin liên quan đến bài toán đều có thêm một trường để xác định dữ liệu thuộc về bài toán nàọ

Mô tả các bảng chính. (1) General

Bảng lưu trữ thông tin tổng quát cho các bài toán. Thông tin chung về một bài toán gồm có tên bài toán, số giai đoạn, số khu vực con. Ngoài ra để mô tả chi tiết thêm thông tin cho bài toán thì có bảng GeneralDetail. Trong bảng này sẽ lưu thêm thông tin về số phương án tại từng khu vực con.

(2) Technology

Bảng lưu trữ thông tin tổng quát về các công nghệ. Mỗi công nghệ chỉ đơn giản là gồm tên công nghệ, ID công nghệ, và một số thông tin liên quan đến công nghệ.

(3) LimitResource

Bảng lưu trữ thông tin tổng quát về các tài nguyên hạn chế. Mỗi tài nguyên hạn chế gồm tên của tài nguyên hạn chế, ID tài nguyên hạn chế, một số thông tin khác liên quan đến tài nguyên hạn chế. Ngoài ra để miêu tả chi tiết cho tài nguyên hạn chế này thì sẽ có thêm bảng LimitResourceDetail. Bảng này lưu trữ lượng tài nguyên hạn chế chi tiết tại mỗi giai đoạn được xét trong bài toán.

(4) Energy

Bảng lưu trữ thông tin tổng quát về các năng lượng tiêu dùng. Mỗi năng lượng tiêu dùng gồm tên của năng lượng tiêu dùng, ID năng lượng tiêu dùng, một số thông tin khác liên quan đến năng lượng tiêu dùng. Ngoài ra để miêu tả chi tiết cho năng lượng tiêu dùng này thì sẽ có thêm bảng EnergyDetail. Bảng này lưu trữ lượng năng lượng tiêu dùng được yêu cầu tại mỗi khu vực con trên từng giai đoạn chi tiết tại mỗi giai đoạn được xét trong bài toán.

(5) Target

Bảng lưu trữ về thông tin các mục tiêụ Mỗi mục tiêu gồm tên mục tiêu, ID mục tiêu và một số thông tin miêu tả cho mục tiêụ

(6) Các tham số chuyển đổi

Các bảng tham số chuyển đổi giữa công nghệ với tài nguyên hạn chế, năng lượng tiêu dùng và mục tiêụ Các tham số này được lưu tại 3 bảng là: Technology_LimitResource, Technology_Energy, Technology_Target.

(7) Node

Bảng lưu trữ thông tin các phương án gồm tên phương án, miêu tả cho phương án. Thông tin chi tiết phương án gồm những công nghệ nào được lưu trữ trong bảng NodeDetail.

(8) Edge

Bảng lưu trữ các cạnh của đồ thị. Mỗi một cạnh trên đồ thị được lưu trữ với các thông tin : Node bắt đầu, Node kết thúc, tại khu vực con nào, tại bước nàọ

(9) Grap

Lưu trữ thông tin về đồ thị tại các khu vực con. Thông tin gồm tên đồ thi (tên khu vực con, một số miêu tả tổng quan. (adsbygoogle = window.adsbygoogle || []).push({});

Các bảng dữ liệu có quan hệ được mô tả giống với hình vẽ phía trên. 3.2.5 Đánh giá

(1) Trong các phiên bản trước, nhóm phát triển DSS đã cài đặt các thuật toán để giải quyết bài toán phân chia tài nguyên và bài toán tối ưu động đa mục tiêu với hai trường hợp số liệu chính xác và số liệu mờ, kết quả mới dừng ở mức xác định con đường tối ưu của đồ thị tổng trên tầng chiến lược.

(2) Số lời giải sau khi giải bài toán tối ưu đa mục tiêu với số liệu chính xác là rất nhiềụ Phần mềm DSPES 2.0 đã đưa ra một công cụ hỗ trợ người dùng lựa chọn lời giải thích hợp nhưng bộ lựa chọn này còn chưa hoàn chỉnh.

(3) Bài toán đa mục tiêu rõ mới dừng ở mức các mục tiêu đều được coi quan trọng như nhaụ

3.3. Vấn đề đồ án cần giải quyết

(1) Với ý nghĩa của hệ trợ giúp quyết định là đưa ra kết quả được hiển thị thân thiện giúp các nhà hoạch định năng lượng xây dựng được kế hoạch phân bố năng lượng cho tương lai của một khu vực, thì việc ánh xạ từ con đường tối ưu của cả hệ thống ra con đường tối ưu của từng khu vực là cần thiết. Con đường tối ưu của tầng chiến lược phải được ánh xạ ra con đường tối ưu của các hệ thống cục bộ.

Một phần của tài liệu Đồ án xây dựng phiên bản mới của hệ trợ giúp quyết đinh DSPES (Trang 31)