Chương 1 Mô hình hóa phần mềm dựa trên UML Chương 2: Thực trạng hệ thống cấp giấy chứng nhận quyền sử dụng đất Chương 3: Ứng dụng mô hình hóa trong việc xây dựng phần mềm cấp giấy chứng nhận quyền sử dụng đất. Chương 4: Thử nghiệm Chương 5: Kết luận TIEU LUAN MOI download : skknchat@gmail.com -4- CHƢƠNG 1 - MÔ HÌNH HÓA PHẦN MỀM DỰA TRÊN UML 1. Mô hình hóa phần mềm 1.1 Khái niệm mô hình hóa phần mềm Mô hình là sự trừu tƣợng hóa, mô tả bản chất của một vấn đề hoặc một cấu trúc phức tạp bằng cách loại bỏ những chi tiết không quan trọng, làm cho bài toán trở nên dễ hiểu và dễ nắm bắt hơn. Trừu tƣợng hóa là một khả năng cơ bản của con ngƣời trong việc giải quyết các vấn đề phức tạp.
Để xây dựng một hệ thống phức tạp, những ngƣời phát triển phải trừu tƣợng hóa những khía cạnh khác nhau của hệ thống, xây dựng các mô hình bằng cách sử dụng các kí hiệu một cách rõ ràng, cẩn thận, kiểm tra xem các mô hình đã thoả mãn các yêu cầu của hệ thống chƣa và dần dần thêm vào các chi tiết để có thể chuyển đổi từ mô hình sang một cài đặt cụ thể[1]. Nhƣ vậy, mô hình hóa là biểu diễn hệ thống dƣới các dạng hình thức dễ hiểu nhƣ biểu đồ, đồ thị, công thức. Mô hình hóa giúp hiểu rõ bài toán, trao đổi thông tin giữa những ngƣời liên quan nhƣ khách hàng, chuyên gia, ngƣời phân tích, ngƣời thiết kế. Mô hình giúp cho việc xác định các yêu cầu tốt hơn, thiết kế rõ ràng hơn và khả năng bảo trì hệ thống cao hơn.
Mô hình hóa là phần trung tâm trong các công việc, các hoạt động để dẫn tới một phần mềm tốt. Chúng ta xây dựng mô hình để trao đổi, bàn bạc về cấu trúc và hành vi mong muốn của hệ thống. Đồng thời xây dựng mô hình để trực quan hóa và kiểm soát kiến trúc của hệ thống. Mô hình hóa có thể mô tả các cấu trúc, nhấn mạnh về mặt tổ chức của hệ thống hoặc nó có thể mô tả các hành vi, tập trung vào mặt động của hệ thống.
Do đó, mô hình hóa hệ thống giúp chúng ta hiểu rõ hơn về hệ thống mà chúng ta đang xây dựng, tạo ra cơ hội để có thể đơn giản hóa và tái sử dụng. Ngoài ra việc mô hình hóa còn giúp chúng ta dễ dàng kiểm soát rủi ro. Trong quá trình mô hình hóa, mỗi hệ thống thực tế có thể đƣợc tiếp cận thông qua một hay một số mô hình khác nhau. Quá trình mô hình hoá hệ thống phần mềm thƣờng thực hiện theo hai cấp: TIEU LUAN MOI download : skknchat@gmail.com -5- + Mô hình logic: mô tả các thành phần và mối quan hệ của chúng để tổ chức thực hiện.
Mô hình logic trả lời câu hỏi “cái gì?” + Mô hình vật lý: xác định kiến trúc các thành phần và tổng thể của hệ thống. Mô hình vật lý sẽ trả lời câu hỏi “nhƣ thế nào”. Tóm lại, mô hình hoá một hệ thống phải thực hiện theo cả bốn hƣớng: Kiến trúc Các chức năng, Cấu trúc tĩnh (dữ liệu, nhiệm vụ hoặc quá thông tin đƣợc lƣu trữ, trình xử lý các nhiệm xử lý và các yếu tố tạo vụ của hệ thống. nên hệ thống).
Cách ứng xử Các hƣớng mô hình hóa Hƣớng của điểm xuất phát sẽ kéo theo phƣơng pháp cần lựa chọn để phát triển phần mềm. Nếu ta bắt đầu từ bên trái, nghĩa là tập trung vào chức năng để phân tích thì chúng ta thực hiện, phát triển phần mềm theo cách tiếp cận hƣớng chức năng. Ngƣợc lại, nếu bắt đầu từ bên phải, nghĩa là dựa vào dữ liệu là chính thì chúng ta sử dụng phƣơng pháp hƣớng đối tƣợng[1].2 Phƣơng pháp và các ngôn ngữ mô hình hoá Phƣơng pháp là cách trực tiếp cấu trúc hoá sự suy nghĩ và hành động của con ngƣời. Phƣơng pháp cho ngƣời sử dụng biết phải làm gì? Làm nhƣ thế nào? Khi nào? và tại sao (mục đích của hành động)?.
Phƣơng pháp chứa các mô hình (model), các mô hình đƣợc dùng để mô tả những gì sử dụng cho việc truyền đạt kết quả trong quá trình sử dụng phƣơng pháp. Đồng thời, mô hình lại đƣợc biểu diễn theo một ngôn ngữ mô hình hoá. Ngôn ngữ mô hình hoá bao gồm các ký hiệu – những biểu tƣợng đƣợc dùng trong mô hình – và một tập các quy tắc chỉ cách sử dụng chúng. Các quy tắc này bao gồm: - Cú pháp (syntactic): cho biết hình dạng các biểu tƣợng và cách kết hợp chúng trong ngôn ngữ.
- Ngữ nghĩa (semantic): cho biết ý nghĩa của mỗi biểu tƣợng, chúng đƣợc hiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểu tƣợng khác. TIEU LUAN MOI download : skknchat@gmail.com -6- - Mục đích (pragmatic): định nghĩa ý nghĩa của biểu tƣợng để sao cho mục đích của mô hình đƣợc thể hiện và mọi ngƣời có thể hiểu đƣợc.3 Các bƣớc của tiến trình phát triển phần mềm Một quá trình phát triển phần mềm là một tập của các hoạt động cần thiết để chuyển các yêu cầu ngƣời dùng thành một hệ thống phần mềm đáp ứng đƣợc các yêu cầu đặt ra. Yêu cầu Tiến trình phát triển Hệ thống ngƣời dùng phần mềm phần mềm Vòng đời phát triển phần mềm đƣợc chia thành 4 pha: sơ bộ, soạn thảo, xây dựng và chuyển giao. Trong mỗi pha lại chia thành nhiều bƣớc lặp nhỏ.
Mỗi bƣớc lặp đều gồm một số công việc thực hiện trọn vẹn một sản phẩm phần mềm: lập mô hình nghiệp vụ, xác định yêu cầu, phân tích, thiết kế, triển khai và kiểm thử. Tuy nhiên, bƣớc lặp trong mỗi pha khác với bƣớc lặp ở các pha khác nội dung cũng nhƣ khối lƣợng mỗi loại công việc thực hiện. Sơ bộ Soạn thảo Xây dựng Chuyển giao Bƣớc 1 Bƣớc 2 Bƣớc 3 Bƣớc 4 Bƣớc 5 … Bƣớc n-1 Bƣớc n Với mỗi bƣớc lặp, các hoạt động phát triển đƣợc thực hiện trên một phạm vi chỉ liên quan đến một số thành phần nhất định của hệ thống, và kết thúc mỗi bƣớc lặp ta nhận đƣợc một thành phần mới của hệ thống mà sẵn sàng để phân phối và thực hiện đƣợc. Nó bao gồm các mã nguồn đƣợc viết dƣới dạng các thành phần mà có thể đƣợc biên dịch và thực thi, cùng với các hƣớng dẫn sử dụng và nhiều thành phần khác.
Tuy nhiên, các thành phần này còn chƣa phải là sản phẩm cuối cùng, vì sản phẩm cuối cùng phải là sản phẩm hoàn thiện thỏa mãn đƣợc yêu cầu của ngƣời dùng.4 Đặc trƣng tiến trình phát triển phần mềm hƣớng đối tƣợng Quá trình phát triển phần mềm hƣớng đối tƣợng có thể sử dụng các công cụ khác nhau. Quá trình phát triển phần mềm có 3 đặc trƣng cơ bản sau: - Ca sử dụng điều khiển quá trình phát triển - Lấy kiến trúc làm trung tâm - Tiến trình phát triển là tiến trình lặp và tăng dần TIEU LUAN MOI download : skknchat@gmail. Ca sử dụng điều khiển toàn bộ quá trình phát triển Một hệ thống phần mềm đƣợc tạo ra là để phục vụ ngƣời dùng. Ngƣời dùng ở đây bao gồm cả ngƣời dùng hệ thống hay các hệ thống ngoài khác tƣơng tác với hệ thống.
Một ca sử dụng là một phần chức năng của hệ thống cung cấp cho ngƣời dùng để đem lại một kết quả nào đó khi sử dụng nó. Các ca sử dụng dùng để nắm bắt các yêu cầu chức năng. Tập hợp tất cả các ca sử dụng lập thành mô hình ca sử dụng mô tả chức năng đầy đủ của hệ thống. Một đặc tả chức năng thƣờng trả lời câu hỏi: hệ thống đƣợc dự kiến sẽ làm gì? Nhƣng đối với ca sử dụng thì câu hỏi lại là: hệ thống đƣợc dự kiến sẽ làm đƣợc gì cho mỗi ngƣời sử dụng? Hình 1: Ca sử dụng điều khiển quá trình phát triển phần mềm Ca sử dụng không chỉ là một công cụ để đặc tả các yêu cầu của hệ thống mà còn điều khiển quá trình phân tích, thiết kế, cài đặt và kiểm thử.
Trƣớc hết ca sử dụng phản ánh yêu cầu của hệ thống cần phải thực hiện để đem lại dịch vụ cho những ngƣời sử dụng và kết quả là những giá trị gia tăng mà họ nhận đƣợc. Dựa trên mô hình ca sử dụng, ngƣời phát triển tạo ra một loạt các mô hình phân tích, thiết kế và cài đặt nhằm vào việc thực hiện các ca sử dụng ở những mức khác nhau và xem xét để sao cho mỗi mô hình này là phù hợp với việc thực hiện mô hình ca sử dụng xây dựng đƣợc. Những ngƣời kiểm tra sẽ kiểm tra các cài đặt để đảm bảo rằng các thành phần của mô hình cài đặt thực hiện đúng các ca sử dụng. Do vậy, ta TIEU LUAN MOI download : skknchat@gmail.com -8- nói rằng: ca sử dụng điều khiển quá trình phát triển có nghĩa là quá trình phát triển tuân theo các luồng công việc đƣợc điều khiển bởi ca sử dụng.
Quá trình phát triển lấy kiến trúc làm trung tâm Vai trò của kiến trúc hệ thống phần mềm giống một khung nền dựa trên đó phần mềm đƣợc xây dựng và phát triển đến hoàn thiện. Khái niệm kiến trúc phần mềm chứa đựng những khía cạnh tĩnh và động có ý nghĩa nhất định đối với hệ thống. Nó đƣợc phát triển dựa theo yêu cầu của tổ chức, theo cảm nhận của ngƣời dùng và các tổ chức có liên quan khác. Mặt khác, nó cũng chịu ảnh hƣởng của rất nhiều nhân tố khác, chẳng hạn nhƣ phần mềm của hệ thống, các khối xây dựng dùng lại đƣợc có sẵn, các cân nhắc về điều kiện triển khai, các hệ thống có sẵn trong môi trƣờng tƣơng tác với nó, và cả các yêu cầu phi chức năng.
Kiến trúc là một cái nhìn thiết kế tổng thể những đặc điểm quan trọng nhất về hệ thống phần mềm khi tạm bỏ qua các chi tiết. Mọi sản phẩm phần mềm đều bao gồm chức năng và hình thức thể hiện. Hai yếu tố này phải cân bằng với nhau để đem lại kết quả tốt nhất. Chức năng tƣơng ứng với ca sử dụng và hình thức thể hiện tƣơng ứng với kiến trúc.
Do đó, việc lựa chọn các ca sử dụng để phát triển đƣợc định hƣớng theo kiến trúc và phải phù hợp với kiến trúc. Nói cách khác, kiến trúc phải cung cấp chỗ dựa cho việc thực hiện các ca sử dụng ngay khi bắt đầu tiến trình phát triển hệ thống và cả trong tƣơng lai. Để có đƣợc bản mẫu cho kiến trúc, ngƣời phân tích phải có hiểu biết chung về các chức năng chính, đó là các ca sử dụng chính yếu.