Đề án Kĩ thuật phân tích và phương pháp hình thức hoá trong công nghệ phần mềm

Công nghệ phần mềm là một lĩnh vực hết sức rộng lớn với nội dung đa dạng phức tạp và rất nhiều vấn đề liên quan .Để hiểu được nó,chúng ta phải không ngừng học tập ,nghiên cứu, nắm bắt mọi thông tin cập nhật liên quan tới lĩnh vực này. Ngày nay, việc sản xuất phần mềm cũng đang gặp phải những khó khăn liên quan tới mặt kĩ thuật như: Không có phương pháp mô tả rõ ràng yêu cầu của người sử dụng; Với những phần mềm có quy mô lớn,tư liệu đặc tả đã cố định thời gian dài, do vậy khó đáp ứng nhu cầu thay đổi của người dùng một cách kịp thời trong thời gian đó;Không có phương pháp thiết kế nhất quán mà thiết kế theo cách riêng làm suy giảm chất lượng phần mềm; những đặc tả không rõ ràng sẽ làm giảm chất lượng phần mềm do không có các chuẩn trong quy trình sản xuất phần mềm.

doc44 trang | Chia sẻ: aloso | Lượt xem: 1763 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề án Kĩ thuật phân tích và phương pháp hình thức hoá trong công nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ơn giản ngay cả dưới con mắt của các nhà khoa học.Chính vì vậy, việc phân tích một hệ thống được coi là công việc thiết yếu, quan trọng.Phân tích hệ thống được tiến hành với các mục tiêu sau đây: Xác định nhu cầu của khách hàng. Đánh giá khái niệm hệ thống về tính khả thi. Thự hiện phân tích kinh tế và kĩ thuật. Cấp phát chức năng cho HW,SW và con người, CSDL và các hệ thống yếu tố khác. Thiêt lập các chi phí ràng buộc và lịch. Tạo ra một định nghĩa hệ thống làm cơ sở cho mọi công việc công nghệ sau này. Cả tri thức chuyên gia về HW và SW đều cần để đạt được mục tiêu nêu trên.Mặc dầu phần lớn các nhà chuyên môn công nghiệp đều thừa nhận rằng thời gian và công sức dành cho phân tích hệ thống đóng vai trò rất quan trọng cho tiến trình phát triển hệ thống về sau. Một trong những khâu quan trọng nhất của quá trình phân tích hệ thống là phân tích yêu cầu, bước kĩ thuật đầu tiên trong tiến trình CNPM. I.khái niệm Định nghĩa yêu cầu: Phần mềm phải cung cấp một phương thức biểu diễn và truy nhập các file ngoài được tạo bởi các công cụ khác. Phân tích yêu cầu là nhiệm vụ kĩ nghệ SW bắc nhịp cầu qua lỗ hổng giữa việc cấp phát SW mức hệ thống với thiết kế SW.Việc phân tích yêu cầu cho phép người kĩ sư SW tinh chế lại việc cấp phát SW và xây dựng mô hình tiến trình, dữ liệu và các lĩnh vực hành vi sẽ được SW xử lí. Việc phân tích yêu cầu cung cấp cho người thiết kế SW một cách biểu diễn thông tin và chức năng có thể được dịch thành thiết kế dữ liệu, kiến trúc và thủ tục.Cuối cùng,đặc tả yêu cầu cung cấp cho người phát triển và khách hàng các phương tiện để xác quyết về chất lượng khi SW đã được xây dựng. Người phân tích có nhiệm vụ xác định nhu cầu người dùng.Để bắt đầu, người phân tích giúp cho khách hàng trong việc xác định các mục tiêu của hệ thống : Thông tin nào cần được tạo ra? Thông tin nào cần được cung cấp? Cần những chức năng và hiệu suất nào? Khi mục tiêu tổng thể đã được xác định thì nhà phân tích chuyển sang việc đánh giá về các thông tin phụ: Liệu có công nghệ để xây dựng hệ thống không? Cần có những tài nguyên chế tạo và phát triển đặc biệt nào? Cần phải đặt giới hạn nào về chi phí và lịch biểu? Sản phẩm này so với sản phẩm cạnh tranh khác như thế nào? II.quy trình phân tích yêu cầu Sau khi nghiên cứu khả thi ban đầu, bước quan trọng đầu tiên của quy trình xử lí yêu cầu là phân tích yêu cầu.Nhân viên phát triển phần mềm làm việc cùng với khách hàng để xác định miền ứng dụng, các dịch vụ do hệ thống cung cấp, các hiệu quả cần có của hệ thống, ràng buộc phần cứng... Phân tích yêu cầu là một quy trình quan trọng. Sự chấp nhận hệ thống sau khi nó đã được triển khai phụ thuộc nhiều vào mức độ được các yêu cầu của khách hàng và khả năng tự động hoá công việc.Bước phân tích yêu cầu người dùng liên quan tới nhiều người trong tổ chức: Các người sử dụng cuối của hệ thống, các bộ phận khác bị ảnh hưởng gián tiếp, các kĩ sư, các chuyên gia và các đại diện. Việc phân tích yêu cầu phần mềm có thể được chia thành năm lĩnh vực: (1) nhận thức vấn đề, (2) đánh giá và tổng hợp, (3) mô hình hoá, (4) đặc tả, (5) xét duyệt. Việc phân tích phải tập trung vào các miền thông tin, chức năng và hành vi của vấn đề.Để hiểu rõ hơn cần cái gì, người ta tạo ra mô hình, phân hoạch vấn đề và tạo ra các biểu diễn mô tả cho bản chất của yêu cầu rồi sau đó xây dựng các chi tiết cài đặt. Phân tích yêu cầu là một quy trình phức tạp vì các lí do sau: Các đối tác thường không thực sự biết họ muốn cái gì từ hệ thống máy tính ngoại trừ khái niệm rất tổng quát. Ngay cả khi họ có ý tưởng rõ ràng thì cũng có thể đưa ra các yêu cầu không thực tế vì họ không tính đến chi phí cho yêu cầu đó. Các đối tác thường trình bày các yêu cầu theo các thuật ngữ của mình.Và các kĩ sư cần phải hiểu và biên dịch sang dạng tin học. Các cán bộ đối tác khác nhau có các yêu cầu khác nhau và biểu hiện theo các cách khác nhau.Kĩ sư phải bao hàm tất cả và giải quyết các mâu thuẫn. Việc phân tích được tiến hành trong ngữ cảnh của tổ chức,đôi khi chịu sự ảnh hưởng của cấp trên mà người sử dụng cuối không hiểu. Môi trường kinh doanh và nghệp vụ rất năng động.Không thể tránh các thay đổi trong quá trình phân tích . Quy trình phân tích được thể hiện qua sơ đồ sau: domain understanding requirements validation requirements definition and specification prioritization conflic resolution requirements colection classification Hình 1.Quy trình phân tích các yêu cầu. 1. Domain understanding: Phân tích phát triển hiểu biết của mình về miền ứng dụng . 2. Requirements collection: Quá trình trao đổi với các đối tác để khám phá yêu cầu của họ.Hiểu biết về miền( DU) hiển nhiên sẽ giúp đỡ cho hoạt động này. 3. Classifization: Hoạt động này thu thập các yêu cầu không có cấu trúc và sau đó phân loại. 4. Conflic resolution: Các đối tác khác nhau thuộc khách hàng không thể tránh khỏi các mâu thuẫn, hoạt động này sẽ giải quyết các mâu thuẫn đó. 5. Prioritization: Trong tập hợp các yêu cầu, giai đoạn này cần trao đổi với khách hàng để xếp hạng ưu tiên. 6. Requirements validation: Các yêu cầu được kiểm tra lại xem có đủ tiêu chuẩn hay không,có đúng với mô tả khách hàng không. Việc phân tích yêu cầu có thể tiến hành theo 2 cách như sau: Phân tích hướng quan điểm Đối với các hệ thống cỡ trung và cỡ lớn, có các người dùng cuối khác nhau về phân loại. Do vậy, có nhiều quan điểm khác nhau về cùng một hệ thống, quan điểm quan trọng nhất cần được xác định làm cơ sở cho việc cấu trúc các phân tích yêu cầu. Phân tích hướng phương pháp Phân tích hướng phương pháp có thể coi là cách tiếp cận phổ biến nhất.Kết quả của phương pháp được biểu diễn bởi một số phương pháp cấu trúc để mô hình hoá hệ thống. III.nguyên lí phân tích Trên hai thập kỉ qua, người ta đã xây dựng ra một số phương pháp phân tích và đặc tả SW.Những người nghiên cứu đã xác định ra các vấn đề và nguyên nhân của chúng và đã xây dựng ra các quy tắc và thủ tục để vượt qua chúng.Mỗi phương pháp đều có ki pháp và quan điểm duy nhất.Tuy nhiên tất cả các phương pháp này đều có quan hệ với một tập các nguyên lí cơ bản: 1. Miền thông tin của vấn đề phải được diễn đạt lại và hiểu rõ. Các mô hình mô tả cho thông tin, chức năng và hành vi hệ thống cần phải được xây dựng. Các mô hình phải được phân hoạch theo cách để lộ ra các chi tiêt theo kiểu phân tầng . Tiến trình phân tích phải đi từ thông tin bản chất hướng tới chi tiết cài đặt. Bằng cách áp dụng những nguyên lí này, người phân tích tiếp cận vấn đề một cách hệ thống.Miên thông tin cần được xem xét sao cho người ta có thể hiểu rõ chức năng một cách đầy đủ. Các mô hình được dùng cho việc trao đổi thông tin một cách rõ ràng, ngắn gọn.Việc phân hoạch được dùng để làm giảm độ phức tạp... 2.Miền thông tin SW được xây dựng ra để xử lí dữ liệu : biến đổi dữ liệu từ dạng này sang dạng khác.Tuy nhiên SW cũng xử lí cả sự kiện nữa.Mọi sự kiện biểu thị cho một khía cạnh nào đó của hệ thống.Dữ liệu và sự kiện đều nằm trong miền thông tin của vấn đề. Miền thông tin chứa ba cách nhìn khác nhau về dữ liệu và điều khiển khi chúng được máy tính xử lí : (1) luồng thông tin, (2) nội dung thông tin, (3) cấu trúc thông tin. Luồng thông tin biểu thị cho cách thức mà dữ liệu và điều khiển thay đổi khi chúng chuyển qua hệ thống. Trong quá trình này các thông tin phụ có thể được bổ xung từ kho dữ liệu.Phép biến đổi được áp dụng cho dữ liệu chính là chức năng hay chức năng con mà chương trình phải thực hiện.Dữ liệu và điều khiển di chuyển giữa hai phép biến đổi xác định giao diện cho từng chức năng. biến đổi 1 biến đổi 2 Hình 2. Luồng thông tin Nội dung thông tin biểu thị cho từng khoản mục dữ liệu và điều khiển có chứa một khoản mục thông tin lớp nào đó. Cấu trúc thông tin biểu thị cho cách tổ chức bên trong của các khoản mục dữ liệu và điều khiển khác nhau. 3..Mô hình hoá Mô hình tạo ra nhằm mục đích hiểu rõ hơn về thực thể thực tế cần xây dựng.Khi thực thể là một vật vật lí thì ta có thể xây dựng một mô hình giống hệt về hình dạng, nhưng nhỏ hơn về quy mô.Nhưng khi thực thể xây dựng là SW thì mô hình của chúng ta phải mang dạng khác.Nó phải có khả năng mô hình hoá thông tin mà SW biến đổi,các chức năng làm cho phép biến đổi đó thực hiện được, và hành vi của hệ thống khi phép biến đổi được xảy ra. Trong khi phân tích yêu cầu phần mềm, chúng ta tạo ra các mô hình về hệ thống cần xây dựng. Các mô hình tập trung vào điều hệ thống phải thực hiện, không chú ý đến cách thức nó thực hiện. Các mô hình được tạo ra khi phân tích yêu cầu còn đóng một số vai trò quan trọng: Trợ giúp cho người phân tích trong việc hiểu về thông tin, chức năng và hành vi của hệ thống, do đó làm cho nhiệm vụ phân tích yêu cầu được dễ dàng và hệ thống hơn. Mô hình trở thành tiêu điểm cho việc xem xét và do đó trở thành phần mấu chốt cho việc xác định tính đầy đủ, nhất quán và chính xác của đặc tả. Mô hình trở thành nền tảng cho thiết kế,cung cấp cho người thiết kế một cách biểu diễn chủ yếu về SW. Các phương pháp phân tích trong xác định yêu cầu cũng chính là các phương pháp mô hình hoá. 4.Phân hoạch Các vấn đề trong thực tế thường rất lớn và phức tạp.Việc phân hoạch những vấn đề như vậy thành các bộ phận giúp chúng ta hiểu và dễ dàng thiết lập mối giao diện giữa chúng để có thể thực hiện được chức năng toàn bộ. Về bản chất, việc phân hoạch là phân rã một vấn đề thành các bộ phận hợp thành.Về mặt quan niệm, chúng ta thiết lập một biểu diễn có cấp bậc về chức năng hay thông tin và phân hoạch phần tử phía trên nhất theo : (1) để lộ ngày một nhiều chi tiết theo khi đi theo chiều đứng của cấp bậc hay (2) phân rã vấn đề về mặt chức năng bằng cách đi theo chiều ngang của cấp bậc. Sau khi đã phân rã, các chức năng con liên kết với chức năng chính. Trong thực tế, việc phân hoạch luồng thông tin và hành vi của hệ thống sẽ cung cấp cái nhìn phụ về yêu cầu hệ thống. 5.Cái nhìn bản chất và cài đặt Cái nhìn bản chất về yêu cầu phần mềm trình bày các chức năng cần được thực hiện và thông tin cần được xử lí không tính tới các chi tiết cài đặt.Bằng cách tập trung sự chú ý vào bản chất của của vấn đề ngay những giai đoạn đầu của phân tích yêu cầu, chúng ta để các tuỳ chọn vẫn còn mở để xác định những chi tiết cài đặt trong các giai đoạn đặc tả yêu cầu và thiết kế phần mềm về sau. Cái nhìn cài đặt về yêu cầu phần mềm trình bày cách biểu diễn trong thế giới thực các chức năng xử lí và cấu trúc thông tin.Trong một số trường hợp, biểu diễn vật lí được xây dựng xem như bước đầu tiên trong thiết kế phần mềm.Tuy nhiên, phần lớn các hệ thống tin học hoá lại được xác định theo cách thức áp chế việc sắp xếp những chi tiết cài đặt nào đó. Cần lưu ý rằng việc phân tích yêu cầu phần mềm nên tập trung vào việc phần mềm phải thực hiện cái gì, chứ không nên tập trung vào việc cài đặt cách xử lí như thế nào.Hơn nữa một mô hình cài đặt biểu thị cho mốt vận hành hiện tại, tức là , việc cấp phát hiện có hay được đề nghị cho mọi phần tử hệ thống.Mô hình bản chất là tổng quát theo nghĩa việc thực hiện chức năng không được chỉ là tường minh. Chương III Các kĩ thuật phân tích và phương pháp hình thức hoá trong CNPM I. khái quát chung về kĩ thuật và phương pháp trong CNPM Như chúng ta đã biết, SW gồm 3 nhóm tạo nên: Nhóm các kĩ thuật, phương pháp luận; Nhóm các chương trình và nhóm các tư liệu.Có thể nhận thấy vai trò quan trọng không thể thiếu của các kĩ thuật và phương pháp khi đi vào nghiên cứu về chúng. Nhóm các kĩ thuật và phương pháp luận gồm có: Các khái niệm và trình tự cụ thể hoá một hệ thống Các phương pháp tiếp cận giải quyết vấn đề Các trình tự thiết kế và phát triển được chuẩn hoá Các phương pháp đặc tả yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, toàn bộ quy trình quản lí phát triển SW Khi chế tác SW cần nhiều kĩ thuật, chúng ta xem xét hai khái niệm : phương pháp luận và phương pháp kĩ thuật. Phương pháp luận (Methodology) : là những chuẩn mực cơ bản để chế tạo phần mềm với các chỉ tiêu định tính. Các phương pháp kĩ thuật (Techniques): là những trình tự cụ thể để chế tạo phần mềm và là cách tiếp cận khoa học mang tính định lượng. Trong CNPM, cùng với sự tiến triển của các phương pháp thiết kế, các kĩ thuật và phương pháp luận cũng có nhiều biến đổi và ngày càng đa dạng hơn. Tuỳ từng giai đoạn, từng pha trong quá trình phát triển phần mềm mà các nhà khoa học ứng dụng các kĩ thuật và phương pháp hợp lí và hiệu quả. Tên pha Nội dung nghiệp vụ Phương pháp kĩ thuật Xác định yêu cầu Đặc tả yêu cầu người dùng Xác định yêu cầu phần mềm Phân tích cấu trúc hoá Thiết kế hệ thống Thiết kế cơ bản của phần mềm Thiết kế cấu trúc ngoài của phần mềm Thiết kế cấu trúc hoá Thiết kế chương trình Thiết kế chi tiết: là thiết kế cấu trúc bên trong của phần mềm( đơn vị chương trình hoặc modun) Lập trình cấu trúc Phương pháp Giăcson Phương pháp Warnier Lập trình Mã hoá bởi ngôn ngữ lập trình Mã hoá cấu trúc hoá Đảm bảo chất lượng Kiểm tra chất lượng phần mềm đã phát triển Phương pháp kiểm thử chương trình Vận hành bảo trì Sử dụng, vận hành phần mềm đã phát triển.Biến đổi ,điều chỉnh phần mềm. Chưa cụ thể Hình 3. Các giai đoạn và các phương pháp, kĩ thuật phân tích. Tuy nhiên, đây chỉ là sự xác định mang tính khái quát, điển hình cho từng pha.Trong thực tế, phụ thuộc vào tính chất của công việc và yêu cầu cần có mà có cách sử dụng kĩ thuật và phương pháp một cách linh hoạt , đạt hiệu quả cao nhất chứ không nhất thiết tuân theo bảng trên. II. Kĩ thuật phân tích và các phương pháp hình thức hoá trong CNPM Để phân tích vấn đề một cách tập trung nhất và rõ nét nhất về kĩ thuật phân tích và các phương pháp hình thức hoá trong CNPM, chúng ta hãy nghiên cứu nội dung này đối với hoạt động phân tích yêu cầu phần mềm. Như chúng ta đã nêu trên, phân tích yêu cầu là một quy trình đặc biệt quan trọng, nó có tính chất quyết định, ảnh hưởng lớn tới sự thành công hay thất bại của giai đoạn sau này.Đây cũng chính là quy trình đã áp dụng khá nhiều các kĩ thuật phân tích và phương pháp trong CNPM.Bất kì phương pháp phân tích yêu cầu nào cũng đều tổ hợp một tập các trực cảm và một kí pháp duy nhất để phân tích thông tin, chức năng và hành vi cho hệ thống dựa trên máy tính.Qua việc áp dụng các nguyên lí phân tích cơ bản, mỗi phương pháp lại tạo ra một mô hình cho vấn đề và các yêu cầu về giải pháp cho nó.Phần lớn các phương pháp phân tích đều ngả theo thông tin, tức là phương pháp cung cấp một cơ chế để biểu diễn miền thông tin của vấn đề.Từ cách biểu diễn này, người ta suy ra chức năng và hành vi, thiết lập các đặc trưng phần mềm khác. Likov và Berxin đã phát biểu: Mọi chương trình đều thực hiện một nhiệm vụ nào đó đúng đắn.Điều mà nhà tin học quan tâm là liệu nhà chương trình có thực hiện đúng nhiệm vụ đã dự kiến cho nó không.Để xác định điều này, cần có việc mô tả chính xác và độc lập cho hành vi chương trình mong muốn. Vai trò của phân tích yêu cầu là trợ giúp cho người phân tích trong việc đưa ra một mô tả chính xác và độc lập của phần tử phần mềm của hệ thống dựa trên máy tính. 1.Phương pháp phân tích yêu cầu Các phương pháp phân tích yêu cầu làm cho người phân tích có khả năng áp dụng nguyên lí phân tích nền tảng một cách có hệ thống.Các phương pháp có những sự tương đồng nền tảng nhưng cũng có những sự khác biệt cơ bản. 1.1 Các đặc trưng chung Mỗi phương pháp đều hỗ trợ tạo ra cách biểu diễn có cấp bậc về hệ thống;mỗi phương pháp đều yêu cầu xem xét cẩn thận các giao diện bên ngoài và bên trong;mỗi phương pháp đều cung cấp một nền tảng cho các bước thiết kế và cài đặt theo sau. Mặc dù các phương pháp đều đưa ra kí pháp mới và trực cảm phân tích, ta vẫn có thể đánh giá mọi phương pháp trong các đặc trưng sau : (1) cơ chế cho phân tích miền thông tin, (2) cách tiếp cận cho biểu diễn chức năng hoặc hành vi, (3) xác định giao diện, (4) cơ chế phân hoạch vấn đề, (5) hỗ trợ cho trừu tượng hoá, (6) biểu diễn các quan điểm bản chất và cài đặt. Tất cả các phương pháp đều đề cập trực tiếp hoặc gián tiếp tới luồng thông tin và nội dung hay cấu trúc thông tin. Chức năng được mô tả điển hình như các phép biến đổi hay tiến trình thông tin. Mỗi chức năng có thể được biểu diễn bằng cách dùng kí pháp đặc biệt.Mô tả cho chức năng có thể dùng ngôn ngữ văn bản tự nhiên, ngôn ngữ giả thủ tục với quy tắc với quy tắc cú pháp phi hình thức, hay ngôn ngữ đặc tả hình thức. Mô tả cho giao diện là sự phát triển kế tiếp của biểu diễn thông tin và chức năng.Giao diện được dẫn ra từ việc xem xét luồng thông tin. 1.2 Sự khác biệt trong phương pháp phân tích Mỗi phương pháp để phân tích các hệ thống dựa trên máy tính đều có quan điểm của riêng nó, kí pháp riêng và cách tiếp cận riêng tới việc mô hình hoá.Mỗi phương pháp có cách nói và thuật ngữ của riêng nó. Trong một số trường hợp, mô hình phân tích có thể được ánh xạ trực tiếp vào một chương trình làm việc.Trong các trường hợp khác, phương pháp phân tích chỉ thiết lập một điểm bắt đầu và người thiết kế tự suy ra cách thiết kế với ít sự giúp đỡ từ mô hình phân tích. Mức độ sử dụng các công cụ CASE hỗ trợ cho các phương pháp cũng thay đổi rất lớn.Phân tích có cấu trúc là phương pháp được sử dụng rộng rãi nhất. 2. Phân tích có cấu trúc Nhà khoa học Tom DeMarco đã mô tả về phân tích có cấu trúc như sau: Sản phẩm của phân tích phải mang tính bảo trì cao độ.Điều này đặc biệt được áp dụng cho tài liệu đích bản Đặc tả các yêu cầu phần mềm. Vấn đề kích cỡ phải xử lí với việc dùng một phương pháp có hiệu quả để phân hoạch. Phải dùng đồ hoạ bất kì lúc nào có thể được. Chúng ta phải phân biệt giữa các xem xét logic và vật lí. Một cái gì đó giúp chúng ta phân hoạch các yêu cầu và làm tài liệu cho việc phân hoạch đó trước khi đặc tả... Những phương tiện nào đó theo dõi dấu vết và đánh giá giao diện... Các công cụ mới để mô tả logic và chính sách, một cái gì đó tốt hơn là lời tường thuật... DeMarco đã thiết lập ra các mục tiêu chủ chốt của phương pháp phân tích có cấu trúc. Phương pháp này đã thu hút được nhiều mối quan tâm, được thử nghiệm bởi nhiều người và được sử dụng rộng rãi trong toàn bộ cộng đồng kĩ nghệ phần mềm.Phương pháp phân tích có cấu trúc dùng một kí pháp duy nhất để tạo ra các mô hình mô tả cho luồng và nội dung thông tin, phân hoạch hệ thống theo chức năng hành vi và mô tả bản chất của điều cần xây dựng. Phân tích có cấu trúc là một kĩ thuật mô hình hoá luồng và nội dung thông tin.Một hệ thống tin học hoá được biểu diễn như một phép biến đổi thông tin.Chức năng của hệ thống được biểu diễn như một phép biến đổi duy nhất, được kí hiệu bằng một hình tròn.Các thông tin vào được biểu diễn bằng các mũi tên,xuất phát từ các thực thể bên ngoài được biểu diễn bằng các hình hộp. Các thông tin vào qua phép biến đổi tạo ra các thông tin ra được biểu diễn bởi các mũi tên có nhãn.Quá trình trên được biểu diễn bởi sơ đồ sau: Thực thể ngoài Thực thể ngoài Thực thể ngoài Thực thể ngoài Thực thể ngoài Hình 4. Mô hình luồng thông tin 2.1 Biểu đồ luồng dữ liệu DFD (data flow diagram) Biểu đồ luồng dữ liệu (DFD) là một kĩ thuật vẽ ra luồng thông tin và những biến đổi được áp dụng khi dữ liệu được đi từ đầu vào đến đầu ra.Trong thực tế DFD được phân hoạch thành nhiều mức biểu diễn chi tiết khi chức năng ngày càng phức tạp và các luồng thông tin ngày càng tăng. DFD mức 0 hay mô hình hệ thống nền tảng (mô hình hoàn cảnh) biểu diễn cho toàn bộ phần tử phần mềm như một hình tròn với dữ liệu vào và ra được chỉ ra bởi các mũi tên tương ứng.DFD mức 1 có thể chứa nhiều hình tròn với các mũi tên nối lẫn nhau.Chúng ta có thể xem xét các kí pháp được sử dụng trong sơ đồ DFD. Thực thể ngoài Người sản xuất hay tiêu thụ thông tin vốn nằm ngoài biên giới hệ thống được mô hình. Phép biến đổi thông tin nằm bên trong biên giới của hệ thống được mô hình. Luồng thông tin vào hay ra của một chức năng xử lí. Các thông tin cần lưu giữ lại trong một khoảng thời gian để sau đó các tiến trình hoặc tác nhân đưa vào sử dụng. Sự phân hoạch của biểu đồ luồng dữ liệu thành các mức chi tiết hơn nhằm mục đích làm mịn thông tin. Các chức năng tiến trình xử lí được mô tả ngày càng rõ nét hơn.Quá trình làm mịn phải được diễn ra theo những quy định nhất định. Nó phải đảm bảo quá trình làm mịn một cách liên tục không bị gián đoạn.Phải duy trì sự liên tục luồng thông tin tức là ,cái vào và cái ra cho từng việc làm mịn phải còn như cũ. Mặc dù các kí pháp trên là những khái niệm cơ bản để xây dựng một DFD , rất cần thiết trong xác định yêu cầu phần mềm, tuy nhiên nó không đủ để mô tả cho yêu cầu phần mềm.Một thành phần khác của kí pháp cơ bản cho phân tích có cấu trúc đó là từ điển dữ liệu. Khi một mô hình dữ liệu hệ thống được xác định, các thực thể quan hệ sẽ được xác định và đặt tên . Các tên này nên được chọn lọc để cho người đọc các gợi ý về ngữ nghĩa. Tuy nhiên cần mô tả chi tiết hơn cho mỗi tên gọi , các tên gọi cần được lưu trữ trong một kho dữ liệu duy nhất gọi là từ điển dữ liệu.Từ điển dữ liệu có thể hiểu là một danh sách sắp theo thứ tự các tên và các mô tả chi tiết. Các ưu điểm của việc tạo ra từ điển dữ liệu là : Cách hữu hiệu để quản lí tên, đảm bảo sự thống nhất và duy nhất của tên; Là kho thông tin có tổ chức cho phép liên kết các phần phân tích, thiết kế, triển khai và tiến triển . Một đoạn văn mô tả cho vòng tròn tiến trình có thể được dùng để xác định các chi tiết xử lí được hình tròn ngụ ý trong DFD.Lời thuật xử lí mô tả cái vào của vòng tròn và chỉ ra các hạn chế áp đặt lên tiến trình. Kí pháp ban đầu cho phân tích có cấu trúc đã được phát triển cho các ứng dụng xử lí dữ liệu quy ước, nhưng các mở rộng làm cho các phương pháp này được áp dụng cho hệ thống thời gian thực. 2.2 Mở rộng cho các hệ thống thời gian thực Những kí pháp cơ bản của phương pháp phân tích có cấu trúc chưa đáp ứng yêu cầu biểu diễn thông tin, nhất là các ứng dụng phần mềm phụ thuộc thời gian và xử lí thông tin hướng điều khiển.Dựa trên nền tảng cũ,Ward và Mellor, Hatley và Pirbhai đã mở rộng các kí pháp cơ bản đối với phân tích có cấu trúc để phù hợp với phân tích phần mềm thời gian thực. Ward và Mellor mở rộng các kí pháp phân tích có cấu trúc cơ bản để thích hợp với các yêu cầu sau của hệ thống thời gian thực : Luồng thông tin được thu thập hay tạo ra trên cơ sở thời gian liên tục. Thông tin điều khiển được truyền qua hệ thống và được liên kết với việc xử lí điều khiển. Nhiều thể nghiệm của cùng một biến đổi đôi khi gặp phải các tình huống đa nhiệm. Trạng thái hệ thống và cơ chế gây ra việc chuyển trạng. Khoản mục dữ liệu là cái vào hay ra từ một tiến trình trên cơ sở liên tục. Phép biến đổi hay điều khiển chấp nhận điều khiển và cái vào rồi tạo ra điều khiển và cái ra. Khoản mục điều khiển hay sự kiện, nhận giá trị bun hay rời rạc, mũi tên chỉ ra hướng của luồng điều khiển. Khi các khoản mục điều khiển được lưu trữ để dùng bởi một hay nhiều tiến trình. Nhiều thể nghiệm tương đương của cùng tiến trình.Được dùng khi nhiều tiến trình được tạo ra trong hệ thống đa nhiệm. Hình 5. Kí pháp phân tích có cấu trúc mở rộng cho hệ thống thời gian thực do Ward và Mellor phát triển Sự phân biệt giữa luồng dữ liệu rời rạc và liên tục theo thời gian có ảnh hưởng quan trọng cho cả người kĩ sư hệ thống lẫn người thiết kế phần mềm. Đối với kĩ sư hệ thống, trong khi tạo ra mô hình hệ thống, họ sẽ có khả năng cô lập tốt hơn các tiến trình mà có hiệu năng chủ chốt.Còn đối với người thiết kế phần mềm, khi mô hình vật lí hay cài đặt được tạo ra, họ phải thiết lập một cơ chế để thu thập dữ liệu liên tục theo thời gian. Trong biểu đồ luồng dữ liệu quy ước, điều khiển hay luồng sự kiện không được biểu thị tường minh. Trong thực tế, người phân tích được báo trước phải đặc biệt loại trừ việc biểu diễn luồng điều khiển ra khỏi biểu đồ luồng dữ liệu.Việc loại trừ này là sự hạn chế quá mức khi các ứng dụng thời gian thực được xem xét tới, và bởi lí do này mà người ta đã phát triển một kí pháp đặc biệt để biểu diễn luồng sự kiện và xử lí điều khiển.Luồng điều khiển thì được biểu diễn bằng mũi tên với đường đứt đoạn còn tiến trìng điều khiển được biểu diễn tương tự thông qua việc dùng hình tròn đứt đoạn. Khác với Mard và Mellor, Hatley và Pirbhai cho rằng kí pháp nét liền và nét đứt đoạn nên biểu diễn tách biệt.Cần định nghĩa ra biểu đồ luồng điều khiển (CFD). CFD chỉ ra luồng điều khiển chứ không phải luồng dữ liệu. Thay vì biểu diễn các tiến trình điều khiển trực tiếp bên trong mô hình luồng, người ta dùng một tham chiếu kí pháp tới đặc tả điều khiển.Về bản chất,bảng hướng dẫn có thể được xem như một cửa sổ mở ra việc thực hiện để điều khiển tiến trình được biểu diễn trong DFD.Đặc tả điều khiển được dùng để chỉ ra cách phần mềm hành xử khi một sự kiện hay tín hiệu điều khiển được cảm nhận và tiến trình nào được kích hoạt như hậu quả của việc xuất hiện sự kiện.Dùng kí pháp mô tả và bản đặc tả , Hatley và Pirbhai đã tạo ra mô hình về hệ thống thời gian thực.Biểu đồ luồng dữ liệu được dùng để biểu diễn cho dữ liệu và tiến trình thao tác nó. Biểu đồ luồng điều khiển chỉ ra cách thức sự kiện chảy qua các tiến trình và minh hoạ cho các sự kiện bên ngoài có thể gây cho nhiều tiến trình khác được kích hoạt. Khoản mục điều khiển hay sự kiện; nhận giá trị bun hay rời rạc; mũi tên chỉ hướng của luồng thông tin. Vạch đứng là một tham khảo tới đặc tả điều khiển mô tả cho hành vi của hệ thống và xác định cách tiến trình được kích hoạt như hậu quả của các sự kiện. Hình 6. Kí pháp phân tích có cấu trúc mở rộng cho hệ thống thời gian thực do Hatley và pirbhai phát triển. 2.3 Cơ chế của phân tích có cấu trúc 2.3.1 Tạo ra mô hình luồng dữ liệu Mô hình luồng dữ liệu (DFD) làm cho người kĩ sư phần mềm phát triển được các mô hình về miền thông tin và lĩnh vực chức năng đồng thời.Khi DFD được làm mịn tới các mức chi tiết lớn hơn thì người phân tích thực hiện một sự phân rã chức năng không tường minh về hệ thống.Đồng thời việc làm mịn DFD làm phát sinh ra một sự làm mịn tương ứng về dữ liệu khi nó chuyển qua các tiến trình nằm trong ứng dụng. Khi xây dựng DFD cần chú ý Biểu đồ luồng dữ liệu mức 0 nên mô tả cho chỉ một vòng tròn phần mềm/hệ thống. Cái vào và cái ra chính cần được chú thích cẩn thận. Việc làm mịn nên bắt đầu từ việc cô lập các tiến trình, khoản mục dữ liệu và kho ứng cử viên cần được biểu diễn ở mức tiếp. Tất cả các mũi tên và hình tròn nên được gắn nhãn bằng những tên có ý nghĩa. Phải duy trì được tính liên tục luồng thông tin từ mức nọ sang mức kia. Mỗi lúc chỉ nên làm mịn một hình tròn. Sinh viên P.Đào tạo Hình 7. Sơ đồ DFD mức 0 tính và lên bảng điểm thi cho sinh viên 2.3.2 Tạo ra mô hình luồng điều khiển Với sự phát triển của các ứng dụng phần mềm, được điều khiển bởi các sự kiện thay vì bởi dữ liệu, tạo ra thông tin điều khiển chứ không chỉ là báo cáo hay hiển thị, xử lí thông tin với mối quan tâm chủ yếu là về thời gian và hiệu năng.Chính vì vậy, việc ra đời mô hình luồng điều khiển là cần thiết.Để xét duyệt cách tiếp cận tạo ra CFD, mô hình luồng dữ liệu được lột bỏ mọi mũi tên luồng dữ liệu.Các sự kiện và các khoản mục điều khiển được bổ sung vào biểu đồ và một cửa sổ được vẽ trong đặc tả điều khiển. 2.3.4 Đặc tả điều khiển và đặc tả tiến trình Đặc tả điều khiển(CSPEC) biểu diễn cho hành vi của hệ thống theo hai cách khác nhau. Nó có thể chứa một biểu đồ chuyển trạng cũng có thể chứa một bảng kích hoạt chương trình.CSPEC mô tả hành vi của hệ thống, nhưng nó không cho bất kì thông tin nào về cách làm việc bên trong của các tiến trình được kích hoạt xem như kết quả của hành vi này. Đặc tả tiến trình(PSPEC) được dùng để mô tả cho mọi tiến trình mô hình luồng xuất hiện ở mức cuối của việc làm mịn.Nó có thể bao gồm đoạn văn tường thuật, ngôn ngữ thiết kế chương trình mô tả cho thuật toán, phương trình toán học, bảng , biểu đồ. 2.4 Phân tích có cấu trúc và Case Phân tích có cấu trúc được hỗ trợ bởi các công cụ Case với mục đích tạo ra từng phần tử mô hình và đảm bảo tính nhất quán, đúng đắn.Khi tin học phát triển và chúng ta phải đi vào xây dựng các hệ thống lớn thì việc sử dụng các kí pháp mô hình hoá rất khó có thể thực hiện được.Thật khó khăn khi thể hiện các mức khác nhau của mô hình luồng một cách thủ công; Việc liên kết các CSPEC và PSPEC với các CFD và DFD tương ứng quả là một thách thức.Chính vì vậy công cụ Case đã trở thành cách tiếp cận được ưa thích.Người kĩ sư phần mềm dùng tính năng vẽ hình của công cụ Case để tạo ra từng mô hình luồng.Chuột,đơn kéo xuống, đa cửa sổ và các bộ kí hiệu mô hình hoá là các phần tử chủ chốt của cách tiếp cận này. Công cụ Case còn có thể liên kết tự động các CSPEC và PSPEC với các CFD và DFD tương ứng.Dùng các lệnh đơn, người phân tích có thể hoàn chỉnh PSPEC hay CSPEC cho mô hình luồng và gắn chúng vào các mô hình luồng hay CFD thích hợp. 3.Phân tích hướng sự vật Phương pháp hướng sự vật cho việc phân tích yêu cầu phần mềm làm cho người phân tích có thể mô hình hoá vấn đề bằng cách biểu diễn các lớp,các sự vật, thuộc tính và các thao tác như các thành phần mô hình hoá chính.Ngày nay, phân tích hướng sự vật(Object – oriented analysis, OOA) đang ngày càng trở thành một phương pháp phân tích yêu cầu theo đúng nghĩa riêng của nó và là một phần bổ sung cho các phương pháp phân tích khác. 3.1 Khái niệm hướng sự vật Coad và Yourdon đã có định nghĩa hướng sự vật theo cách sau: Hướng sự vật = Sự vật + phân lớp +kế thừa +truyền thông. Việc xác định sự vật trong không gian mà chúng ta đang sống là điều đơn giản, song trong không gian của vấn đề ứng dụng phần mềm, sẽ khó xác định sự vật hơn.Các sự vật có thể là: Các vật vốn là một phần của miền thông tin cho vấn đề. Sự xuất hiện hay biến cố vốn xuất hiện bên trong hoàn cảnh vận hành hệ thống. Vai trò do những người có tương tác với hệ thống đảm nhiệm. Đơn vị tổ chức có liên quan tới một ứng dụng. Nơi chốn tạo nên hoàn cảnh của vấn đề và toàn bộ chức năng của hệ thống. Cấu trúc xác định ra lớp các sự vật hay các lớp sự vật có liên quan. Coad và Yourdon đã gợi ý ra sáu đặc trưng cho chọn lựa nên sử dụng khi người phân tích xem xét từng sự vật tiềm năng sẽ đưa vào trong mô hình phân tích. Thông tin được sử dụng.Sự vật tiềm năng sẽ có ích trong khi phân tích chỉ nếu thông tin về nó được ghi nhớ sao cho hệ thống có thể vận hành. Dịch vụ cần tới.Sự vật tiềm năng phải có một tập hợp các thao tác xác định được mà có thể làm thay đổi giá trị của các thuộc tính của nó theo cách nào đó. Đa thuộc tính.Trong khi phân tích yêu cầu, mối quan tâm phải dồn vào thông tin chính; một sự vật với một thuộc tính trong thực tế có thể có ích trong thực tế nhưng có lẽ sẽ được biểu diễn tốt hơn như một thuộc tính của sự vật khác trong hoạt động phân tích. Thuộc tính thông thường . Tập hợp các thuộc tính có thể được định nghĩa cho sự vật tiềm năng và những thao tác này được áp dụng cho mọi lần xuất hiện của sự vật. Thao tác thông thường. Một tập hợp các thao tác có thể được định nghĩa cho sự vật tiềm năng và những thao tác này áp dụng cho mọi lần xuất hiện của sự vật. Các yêu cầu bản chất. Các thực thể ngoài xuất hiện trong không gian vấn đề và tạo ra hay tiêu thụ thông tin là bản chất cho việc tiến hành bất kì giải pháp nào cho hệ thống gần như bao giờ cũng được định nghĩa như các sự vật trong mô hình yêu cầu. Việc quyết định đưa một sự vật tiềm năng vào mô hình phân tích phải xem xét và kiểm tra trên cơ sở đáp ứng đầy đủ các đặc trưng trên.Công việc tiếp theo là xác định thuộc tính của sự vật.Người phân tích có thể nghiên cứu lời thuật xử lí cho vấn đề và chọn lựa những điều có thể thuộc về sự vật một cách hợp lí.Bên cạnh đó , các thao tác làm thay đổi sự vật nên viêc nghiên cứu nó cũng rất cần thiết.Có 3 loại thao tác : Thao tác tác động lên dữ liệu theo một cách nào đó; thao tác thực hiện một tính toán; thao tác điều phối một sự vật cho cho việc xuất hiện của sự kiện điều khiển.Bằng cách xem xét việc truyền thông xuất hiện giữa các sự vật, chúng ta có thể thu được cái nhìn phụ vào các thao tác khác .Các sự vật truyền thông bằng cách truyền thông báo lẫn nhau. 3.2 Mô hình hoá phân tích hướng sự vật Tiếp cận mô hình OOA, Coad và Yourdon đã tiến hành theo các bước sau đây: Xác định sự vật; Xác định cấu trúc; Xác định chủ đề; Xác định thuộc tính và mối nối thể nghiệm; Xác định thao tác và mối nối thông báo.Bước đầu tiên sau khi xác định được sự vật đưa vào mô hình phân tích, tập trung vào việc cấu trúc phân lớp. Xem xét sự vật từ cái nhìn tổng quát tới chi tiết.Có hai loại cấu trúc là cấu trúc phân lớp và cấu trúc lắp ghép.Việc biểu diễn cấu trúc cung cấp cho người phân tích một phương tiện để phân hoạch mô hình yêu cầu.Việc mở rộng cho từng sự vật cung cấp chi tiết cần thiết cho việc xét duyệt và cho thiết kế về sau. Một mô hình OOA chuẩn có thể có hàng trăm sự vật và hàng chục cấu trúc.Để biểu diễn một cách chính xác rõ ràng cho các sự vật và các mô hình cấu trúc người ta hình thành nên khái niệm chủ đề. Chủ đề là một tham khảo hay con trỏ tới phần chi tiết hơn trong mô hình phân tích. Các tham chiếu chủ đề được tạo ra cho bất kì cấu trúc nào có nhiều hơn năm hay sáu sự vật. 4. Phương pháp mô hình hoá dữ liệu 4.1 Khái niệm Kĩ thuật mô hình hoá dữ liệu là sự mở rộng của những kĩ thuật phân tích trước đây dùng cho các ứng dụng nhiều dữ liệu.Mô hình hoá dữ liệu có ích cho những ứng dụng trong đó dữ liệu và mối quan hệ giữa các dữ liệu là phức tạp.Không giống như cách tiếp cận phân tích có cấu trúc, mô hình hoá dữ liệu chứa các dữ liệu độc lập với tiến trình biến đổi dữ liệu.Chúng ta hãy so sánh những đặc điểm tiêu biểu của mô hình hoá phân tích có cấu trúc và mô hình hoá dữ liệu.Cả hai đều dùng thuật ngữ “sự vật” nhưng định nghĩa của chúng bị giới hạn hơn nhiều trong hoàn cảnh mô hình hoá dữ liệu. Cả hai đều mô tả mối quan hệ giữa các sự vật, nhưng mô hình dữ liệu không quan tâm tới cách đạt được những mối quan hệ này. Mô hình hóa dữ liệu chỉ mô hình cho dữ liệu.Mô hình hoá dữ liệu cung cấp cho người phân tích và thiết kế cơ sở dữ liệu cái nhìn vào dữ liệu và mối quan hệ giữa các dữ liệu.Khi mô hình hoá dữ liệu được sử dụng như một kĩ thuật phân tích yêu cầu thì người phân tích bắt đầu tạo ra các mô hình cho sự vật dữ liệu. 4.2 Kĩ thuật mô hình hoá dữ liệu Sự vật dữ liệu chỉ thâu tóm phần dữ liệu không có tham khảo bên trong một sự vật dữ liệu tới các thao tác tác động trên dữ liệu. Thuộc tính của sự vật lấy một trong ba đặc trưng khác nhau: Đặt tên cho một thể nghiệm của sự vật dữ liệu; mô tả thể nghiệm; tạo tham khảo tới một thể nghiệm khác trong một bảng khác.Những thuộc tính định danh được sử dụng làm khoá khi liên kết dữ liệu và mang tính duy nhất. Bảng sự vật dữ liệu có thể được hình thức hoá bằng cách áp dụng một tập hợp các quy tắc chuẩn hoá sẽ tạo ra mô hình quan hệ cho dữ liệu. Với mỗi thể nghiệm của sự vật dữ liệu có một và chỉ một giá trị cho từng thuộc tính. Các thuộc tính biểu thị cho các khoản mục dữ liệu; chúng không nên chứa cấu trúc bên trong. Khi có nhiều hơn một thuộc tính được dùng để xác định một sự vật dữ liệu thì phải chắc chắn các thuộc tính mô tả và tham khảo biểu thị cho “một đặc trưng của toàn bộ sự vật, và không một đặc trưng của một cái gì đó lại được xác định bởi chỉ một phần của định danh”. Tất cả các thuộc tính không định danh đều biểu thị cho một đặc trưng nào đó của thể nghiệm có tên là định danh của sự vật dữ liệu đó và mô tả thuộc tính khác không phải là định danh. Kí pháp nền tảng cho mô hình hoá dữ liệu là biểu đồ thực thể –quan hệ ( E_R). Các thành phần chủ yếu của biểu đồ E_R là :sự vật dữ liệu, thuộc tính,quan hệ và nhiều chỉ báo kiểu khác nhau.Mục đích của biêu đồ E_R là biểu diễn các sự vật dữ liệuvà mối quan hệ của chúng .Kí pháp biểu đồ khá đơn giản.Các sự vật dữ liệu được biểu diễn bằng các hình chữ nhật có nhãn. Mối quan hệ được biểu diễn bởi các hình thoi.Các mối nối giữa các sự vật dữ liệu và mối quan hệ được thiết lập bằng cách dùng nhiều đường nối đặc biệt. Sinh viên Môn học Giảng viên Hình 8. Biểu đồ E-R giản đơn. Sinh viên Môn học Giảng viên Bài thi Hồ sơ SV Mở rộng mô hình này, các quan hệ được bổ sung chỉ ra mối liên hệ giữa tất cả các sự vật . Hình 9. Biểu đồ E-R mở rộng Bên cạnh đó, người phân tích có thể biểu diễn cấp bậc dữ liệu-sự vật-kiểu.Kí pháp E_R cung cấp một cơ chế biểu diễn cho việc kết hợp giữa các sự vật. Giỏi Điểm thưởng Khu vực Rèn luyện Học tập NCKH Đạo đức Hoạt động Hình 10. Cấp bậc dữ liệu-sự vật-kiểu. Mô hình hoá dữ liệu và biểu đồ thực thể quan hệ cung cấp cho người phân tích một kí pháp chính xác để xem xét dữ liệu trong hoàn cảnh ứng dụng xử lí dữ liệu.Trong hầu hết các trường hợp,cách tiếp cận mô hình hoá dữ liệu được dùng như một phần bổ sung cho phân tích cấu trúc, nhưng nó cũng có thể được dùng cho việc thiết kế cơ sở dữ liệu và để hỗ trợ cho bất kì phương pháp phân tích yêu cầu nào. 5. Phương pháp hướng cấu trúc dữ liệu 5.1 Đặc điểm của phương pháp hướng cấu trúc dữ liệu Phương pháp phân tích hướng cấu trúc dữ liệu biểu diễn yêu cầu phần mềm qua việc tập trung vào cấu trúc dữ liệu thay vì vào luồng dữ liệu.Mặc dù có kí pháp và cách tiếp cận khác nhau, nhưng tất cả các phương pháp phân tích hướng cấu trúc dữ liệu đều có các đặc trưng sau: Từng phương pháp đều hỗ trợ cho người phân tích trong việc xác định các sự vật thông tin chủ chốt và các thao tác. Từng phương pháp đều giả thiết rằng cấu trúc thông tin là có cấp bậc. Từng phương pháp đều yêu cầu rằng cấu trúc dữ liệu phải được biểu diễn thông qua việc dùng các kết cấu tuần tự, tuyển chọn và lặp cho dữ liệu hợp thành. Từng phương pháp đều đưa ra một tập hợp các bước để ánh xạ cấu trúc dữ liệu có cấp bậc vào trong cấu trúc chương trình. Sau đây là hai phương pháp tiêu biểu cho cho phân tích hướng cấu trúc dữ liệu. 5.2 Phương pháp luận Warnier – Orr Nguyễn Đình Hương Nguyễn Đình Phan Nguyễn Văn Nam THKT NH-TC KT KTLĐ .... Ban giám hiệu Cán bộ, CNV Giảng viên Cán bộ Đoàn,Hội Đảng bộ trường Trung tâm DV ....... Trường ĐHKTQD Các khoa Phương pháp luận Warnier – Orr còn có tên gọi khác là phát triển hệ thống có cấu trúc dữ liệu (DSSD), tiến hoá từ công trình tiên phong về phân tích miền thông tin do J.D Warnier tiến hành.Ông đã xây dựng một kí pháp để biểu diễn một cấp bậc thông tin có dùng ba kết cấu tuần tự, tuyển chọn và lặp.Ông đã chứng tỏ rằng cấu trúc phần mềm có thể được suy diễn trực tiếp từ cấu trúc của dữ liệu này.Mô hình của phương pháp này là biểu đồ Warnier.Biểu đồ cho phép người phân tích có thể biểu diễn được cấp bậc thông tin một cách gọn gàng.Biểu đồ Warnier có thể được dùng để biểu thị cho cấp bậc ở bất kì mức chi tiết nào. Hình 11. Biểu đồ Warnier. Các kí pháp Warnier được sử dụng trong biểu đồ là: Các ngoặc nhọn ({) được dùng để phân biệt các mức của cấp bậc thông tin.Tất cả các tên nằm trong dấu ngoặc nhọn biểu diễn cho sự tuần tự của các khoản mục thông tin.Một số biểu đồ còn có các kí pháp viết cạnh một số tên biểu thị cho số lần lặp của khoản mục đó xuất hiện trong cấp bậc. Biểu đồ Warnier có thể được dùng để phân hoạch thêm miền thông tin bằng cách làm mịn các khoản mục dữ liệu hợp thành. Cách tiếp cận của DSSD không xem xét cấp bậc thông tin mà xem xét hoàn cảnh áp dụng tức là cách chuyển đổi dữ liệu giữa nơi sản xuất và nơi tiêu thụ thông tin theo góc độ của người sản xuất hay người tiêu thụ. Sau đó, các chức năng ứng dụng được lượng định bằng biểu diễn kiểu Warnier mô tả cho các khoản mục thông tin và việc xử lí cần phải thực hiện trên chúng.Cuối cùng các kết quả ứng dụng được mô hình hoá bằng cách dùng biểu đồ Warnier.Dùng cách tiếp cận này, DSSD bao quát được tất cả các thuộc tính của miền thông tin: Luồng dữ liệu, nội dung và cấu trúc.DSSD đề nghị một biểu đồ thực thể để trả lời cho các câu hỏi : Đâu là khoản mục thông tin cần được xử lí ; Ai/Cái gì là người sản xuất hay người tiêu thụ thông tin; Từng người sản xuất /tiêu thụ nhìn thông tin trong hoàn cảnh các bộ phận khác như thế nào; Sau khi mỗi biểu đồ thực thể được xét duyệt về tính đúng đắn, thì có thể tạo ra biểu đồ thực thể tổ hợp cho mọi người sản xuất và tiêu thụ thông tin. Bên cạnh đó, DSSD còn sử dụng kí pháp tựa Warnier gọi là biểu đồ đường lắp ráp (ALD) cung cấp một cơ chế để chia cắt thông tin và tiến trình được áp dụng cho nó.Biểu đồ đường lắp ráp được xây dựng bằng cách bắt đầu với luồng thông tin được đánh số trước đó.DSSD yêu cầu người phân tích phải xây dựng một bản mẫu trên giấy cho kết quả mong muốn đối với hệ thống.Bản mẫu xác định cái ra của hệ thống chính và tổ chức các khoản mục thông tin có chứa cái ra. 5.3 Phát triển hệ thống JACKSON Phát triển hệ thống Jackson (JSD) được tiến hoá từ công trình do M.A Jackson tiến hành về phân tích miền thông tin và mối quan hệ của nó với thiết kế chương trình và hệ thống.Để tiến hành JSD, người phân tích áp dụng các bước sau: Bước hành động thực thể. Dùng một cách tiếp cận hoàn toàn tương tự như kĩ thuật phân tích hướng sự vật, xác định ra các thực thể và hành động.Bước này bắt đầu bằng một phát biểu theo ngôn ngữ tự nhiên tóm tắt về vấn đề.Sau đó các thực thể được lựa ra bằng cách xem xét tất cả các danh từ trong lời mô tả.Cần lưu ý rằng bằng cách loại bỏ các thực thể và hành động ứng cử viên , chúng ta đã giới hạn phạm vi của hệ thống cần xây dựng.Một hành động xuất hiện tại một điểm đặc biệt theo thời gian và được áp dụng cho một thực thể. Bước cấu trúc thực thể. Các hành động ảnh hưởng đến từng thực thể được sắp xếp theo thời gian và được biểu diễn bằng biểu đồ Jackson.Các kí pháp biểu đồ được minh hoạ trong hình dưới đây. Hành động tuần tự Hành động lặp Hành động chọn Hình 12. Kí pháp biểu đồ cấu trúc Biểu đồ cấu trúc trình bày một đặc tả theo thứ tự thời gian của các hành động được thực hiện trên hay bởi một thực thể.Với lí do này nó biểu diễn một cách chính xác của thế giới thực hơn là danh sách đơn giản các hành động và thực thể . Bước mô hình hoá khởi đầu Thực thể và hành động được biểu diễn như một mô hình tiến trình; các liên hệ giữa mô hình và thế giới thực được xác định .Bước này bắt đầu với việc xây dựng một đặc tả của hệ thống như một mô hình của thế giới thực. Đặc tả được xây dựng bằng biểu đồ đặc tả hệ thống (SSD). Quá trình - 0 Quá trình - 0 Quá trình - 1 Quá trình - 1 Dòng dữ liệu Véc tơ trạng thái Hình 13. Kí pháp SSD Mối liên hệ luồng dữ liệu xuất hiện khi một tiến trình truyền một luồng thông tin và tiến trình khác nhận được luồng này.Mũi tên biểu diễn cho hướng của luồng thông tin, và vòng tròn biểu diễn cho dòng dữ liệu đặt trong bộ đệm vào trước ra trước với khả năng vô giới hạn.Mối liên hệ véctơ trạng thái xuất hiện khi một tiến trình trực tiếp giám sát véctơ trạng thái của một tiến trình khác.Hình thoi chỉ ra véctơ trạng thái. Theo quy ước, phần đuôi 0 biểu thị cho một tiến trình thế giới thực và phần đuôi 1 biểu thị cho tiến trình mô hình hệ thống. Bước chức năng. Xác định các chức năng tương ứng với các hành động đã xác định. Bước đặt thời gian hệ thống. Lượng định và xác định các đặc trưng lập lịch tiến trình. Tuy nhiên, ba bước cuối rất gần với thiết kế phần mềm hay hệ thống nên trong bài này chúng ta không đề cập chi tiết tới chúng. 6. Kĩ thuật phân tích và thiết kế có cấu trúc (SADT) SADT là một kĩ thuật phân tích và thiết kế hệ thống được dùng rộng rãi trong việc xác định hệ thống, phân tích yêu cầu phần mềm và thiết kế hệ thống phần mềm.SADT bao gồm các thủ tục cho phép người phân tích phân rã các chức năng phần mềm;một kí pháp đồ hoạ, hành động đồ và dữ liệu đồ, đặt liên lạc giữa các quan hệ của thông tin và chức năng bên trong phần mềm; các hướng dẫn kiểm soát dự án để áp dụng phương pháp luận. Phương pháp luận SADT bao gồm các công cụ tự động hoá để hỗ trợ cho các thủ tục phân tích và dụng cụ tổ chức được xác định rõ qua đó các công cụ được áp dụng. 7. Kĩ thuật đặc tả hình thức Phương pháp hình thức làm cho ngườikĩ sư phần mềm có khả năng xác định , xây dựng và kiểm chứng hệ thống dựa trên máy tính bằng cách áp dụng kí pháp chặt chẽ, toán học.Dùng ngôn ngữ đặc tả hình thức,phương pháp hình thức cung cấp phương tiện để xác định một hệ thống sao cho có thể lượng định được tính nhất quán, đầy đủ và đúng đắn của nó theo một kiểu cách hệ thống. Ngôn ngữ đặc tả hình thức gồm ba phần chính: Cú pháp xác định ra kí pháp đặc tả để biểu diễn cho đặc tả; ngữ nghĩa giúp xác định một “vũ trụ các sự vật” sẽ được dùng để mô tả cho hệ thống; một tập hợp các quan hệ xác định ra các quy tắc chỉ rõ sự vật nào thoả mãn đúng cho đặc tả.Miền cú pháp của ngôn ngữ đặc tả hình thức thường dựa trên cú pháp được suy dẫn từ kí pháp lí thuyết tập hợp chuẩn và phép toán tân từ_ là một ngôn ngữ toán học để biểu diễn các mệnh đề logic.Miền ngữ nghĩa của ngôn ngữ đặc tả chỉ ra cách ngôn ngữ biểu thị cho yêu cầu hệ thống.Có thể dùng các trừu tượng hoá ngữ nghĩa khác nhau để mô tả cho cùng một hệ thống theo nhiều cách khác nhau.Các tính chất mong muốn của một đặc tả hình thức: không mơ hồ, nhất quán và đầy đủ đều là mục tiêu của các phương pháp đặc tả. 8. Kĩ thuật tự động hoá Kĩ thuật phân tích các yêu cầu tự động dùng một kí pháp đặc biệt đã được thiết kế tường minh cho việc xử lí dùng một công cụ tự động hoá.Các yêu cầu được mô tả bằng một ngôn ngữ đặc tả có tổ hợp những chỉ báo từ khoá với lời tường thuật trong ngôn ngữ tự nhiên.Ngôn ngữ đặc tả được nạp vào bộ xử lí để tạo ra đặc tả yêu cầu một tập các báo cáo chuẩn đoán về tính nhất quán và tổ chức của đặc tả. 8.1 Phương pháp luận kĩ nghệ yêu cầu phần mềm(SREM) SREM là một công cụ phân tích yêu cầu tự động hoá có sử dụng ngôn ngữ phát biểu yêu cầu(RSL) mô tả các phần tử các phần tử , thuộc tính, quan hệ và cấu trúc.Các phần tử bao gồm một tập các sự vật và khái niệm tương đương dùng để phát triển việc phân tích đặc tả.Mối quan hệ giữa các sự vật được đặc tả như một phần của RSL, còn thuộc tính thì được dùng để thay đổi hay định tính các phần tử. Các thủ tục bao gồm: (1) Dịch. Một hoạt động biến đổi các yêu cầu phần mềm ban đầu được mô tả trong bản đặc tả hệ thống thành một tập hợp các mô tả dữ liệu và các bước xử lí chi tiết hơn.(2) Phân rã. Một hoạt động đánh giá thông tin tại giao diện đối với các phần tử phần mềm và làm phát sinh một tập đầy đủ các yêu cầu tính toán.(3) Cấp phát. Hoạt động xem xét các cách tiếp cận khác đối với yêu cầu đã được thiết lập;nghiên cứu về trả giá và tiến hành phân tích tính nhạy cảm.(4) Trình diễn tính khả thi phân tích. Một hoạt động phân tích cố gắng mô phỏng các yêu cầu xử lí chủ chốt để xác định tính khả thi. 8.2 Ngôn ngữ phát biểu vấn đề/Bộ phân tích phát biểu vấn đề (PSL/PSA) PSL/PSA cung cấp cho người phân tích các khả năng bao gồm: (1) mô tả hệ thông tin, bất kể lĩnh vực ứng dụng;(2) tạo ra cơ sở dữ liệu có chứa các bộ mô tả cho hệ thông tin; (3) thêm vào, xoá bỏ và sửa đổi các bộ mô tả;(4) tạo ra tài liệu đã định dạng và nhiều báo cáo về đặc tả.Mô hình PSL dùng một tập các từ khoá để xác định bộ mô tả cho luồng thông tin hệ thống, cấu trúc hệ thống, cấu trúc dữ liệu, suy diễn dữ liệu, kích cỡ và dung lượng hệ thống, tính động hệ thống, tính chất hệ thống và quản lý dự án. PSA tạo ra một số các báo cáo kể cả một bản ghi về mọi thay đổi đã được thực hiện cho cơ sở dữ liệu đặc tả, các báo cáo tham khảo trình bày thông tin cơ sở dữ liệu theo nhiều định dạng khác nhau, các báo cáo tóm tắt cung cấp thông tin quản lý dự án, và báo cáo phân tích đánh giá các đặc trưng của cơ sở dữ liệu. 8.3 Công nghệ cho việc sinh tự động hệ thống (TAGS) TAGS bao gồm ba thành phần chủ yếu: Một ngôn ngữ đặc tả gọi là ngôn ngữ yêu cầu vào/ra (IORL), một tập các công cụ phần mềm cho phân tích yêu cầu và xử lý IORL, một phương pháp luận nền tảng TAGS. Ngôn ngữ đặc tả TAGS được thiết kế để thực hiện cả biểu diễn văn bản và đồ hoạ do người phân tích tạo ra bằng cách dùng công cụ tương tác. Mức cao nhất của biểu diễn IORL là biểu đồ khối sơ đồ (SBD). SBD địng danh các thành phần hệ thống chính và giao diện dữ liệu giữa chúng. Đặc tả IORL được phân tích bằng cách dùng nhiều công cụ phần mềm gồm: Bộ phân tích chẩn đoán giúp phát hiện các lỗi tính, bộ biên dịch mô phỏng giúp cho việc khám phá các lỗi động bằng cách mô phỏng thống đã được mô hình hoá theo IORL. Các công cụ trên đây chỉ mang tính chất đại diện cho kĩ thuật phân tích yêu cầu tự động hoá, trong thực tế còn có nhiều công cụ khác và chắc chắn trong tương lai kĩ thuật nay còn có những bước khám phá mới hiện đại và phù hợp hơn. Kết luận Công nghệ phần mềm là một lĩnh vực hết sức rộng lớn với nội dung đa dạng phức tạp và rất nhiều vấn đề liên quan .Để hiểu được nó,chúng ta phải không ngừng học tập ,nghiên cứu, nắm bắt mọi thông tin cập nhật liên quan tới lĩnh vực này. Ngày nay, việc sản xuất phần mềm cũng đang gặp phải những khó khăn liên quan tới mặt kĩ thuật như: Không có phương pháp mô tả rõ ràng yêu cầu của người sử dụng; Với những phần mềm có quy mô lớn,tư liệu đặc tả đã cố định thời gian dài, do vậy khó đáp ứng nhu cầu thay đổi của người dùng một cách kịp thời trong thời gian đó;Không có phương pháp thiết kế nhất quán mà thiết kế theo cách riêng làm suy giảm chất lượng phần mềm; những đặc tả không rõ ràng sẽ làm giảm chất lượng phần mềm do không có các chuẩn trong quy trình sản xuất phần mềm... Chính vì vậy, đối với người làm tin học, cần phải hiểu và biết về các kiến thức căn bản về phần mềm, đặc biệt đối với nhà sản xuất phần mềm thì việc nắm được các kĩ thuật , các phương pháp trong công nghệ phần mềm là rất cần thiết. Nội dung của đề án nghiên cứu về kĩ thuật phân tích và phương pháp hình thức trong công nghệ phần mềm, tuy nhiên chỉ là đứng trên góc độ chủ quan của bản thân người thực hiện đề án.Bởi vì, trên thực tế ,kho tàng kiến thức là vô tận ,chúng ta không thể nắm bắt hết được và cách nhìn nhận đánh giá của từng người là khác nhau.Chúng ta đã nghiên cứu phân tích có cấu trúc, phân tích hướng sự vật,phương pháp hướng cấu trúc dữ liệu, phương pháp luận Warnier – Orr, JDS , SADT, kĩ thuật đặc tả...và cũng đã hiểu hơn được các kĩ thuật và phương pháp trong công nghệ phần mềm, đặc biệt là trong giai đoạn phân tích yêu cầu phần mềm. Với các nội dung đã phân tích và nghiên cứu nêu trong đề án , em cũng mong mang tới cho người đọc những kiến thức bổ ích và cần thiết.Em rất mong được sự đóng góp của thầy cô và các bạn để đề án thêm hoàn thiện.Xin chân thành cảm ơn PGS.TS Hàn Viết Thuận đã hướng dẫn em hoàn thành đề án này, cảm ơn các thầy cô trong khoa, các bạn trong lớp đã giúp đỡ em trong khi tìm tài liệu và đóng góp ý kiến. Mục lục

Các file đính kèm theo tài liệu này:

  • doc33769.doc