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

Mở đầu Ngày nay, cùng với sự phát triển ồ ạt của nền kinh tế, nghành công nghệ thông tin cũng đã, đang và sẽ đạt được những thành tựu nhất định.Một lĩnh vực hết sức quan trọng trong nghành công nghệ thông tin đang được quan tâm đầu tư và phát triển đó là công nghệ phần mềm.Qua hai thập kỉ, công nghệ phần mềm đã có nhiều bước tiến và cho đến ngày nay, nó đã được thừa nhận là một môn khoa học chính thống,một lĩnh vực nghiên cứu xứng đáng và luôn là một lĩnh vực thu hút rất nhiều đối tượng tham gi

doc44 trang | Chia sẻ: huyen82 | Lượt xem: 1849 | Lượt tải: 0download
Tóm tắt tài liệu 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
a nghiên cứu.Việc đặc tả các yêu cầu , phát triển , quản lí ,bảo trì phần mềm tạo nên các nguyên tắc của công nghệ phần mềm.Để khám phá các kiến thức của công nghệ phần mềm nói chung và đặc biệt là mặt kĩ thuật và phương pháp, sau khi nghiên cứu và xem xét em đã quyết định chọn đề tài : “ 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”. Nội dung của đề án gồm ba chương : Chương I : Tổng quan về công nghệ phần mềm Chương II : Phân tích yêu cầu Chương III : Các 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 Đề án được xây dựng trên cơ sở đi từ khái quát tới cụ thể, đi từ cái chung tới cái riêng nhằm mục đích cho người đọc hiểu một cách rõ nét vấn đề đề án nghiên cứu. Bằng kiến thức được học và tham khảo sách vở, tài liệu, báo chí, em đã cố gắng bám sát nội dung và đi sâu vào vấn đề nghiên cứu, để hoàn thành yêu cầu của đề án.Tuy nhiên, do đặc thù của lĩnh vực nghiên cứu, thông tin luôn biến đổi không ngừng cho nên đề án vẫn không tránh khỏi những thiếu sót về nội dung và hình thức, rất mong độc giả đóng góp ý kiến.Xin chân thành cảm ơn sự hướng dẫn của PGS.TS Hàn Viết Thuận đã giúp em hoàn thành đề án này. chương I tổng quan về công nghệ phần mềm I. Giới thiệu chung về phần mềm 1.Định nghĩa Theo Tiến sĩ Roger S.Pressman_Nhà khoa học tên tuổi người Mĩ có uy tín về các phương pháp,công cụ kĩ nghệ phần mềm, một nhà sư phạm có kinh nghiệm_Phần mềm (Software_SW) là một tập hợp các câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình,nhằm tự động thực hiện một số các chức năng giải quyết một bài toán nào đó.Không chỉ vậy, SW còn là cấu trúc dữ liệu làm cho chương trình thao tác thông tin thích hợp, là các tư liệu mô tả thao tác và cách sử dụng chương trình.Có thể nói đây là một định nghĩa tương đối hoàn chỉnh và chính xác. Ngày nay, vai trò của SW ngày càng thể hiện tính trội của nó.SW quyết định chất lượng của một hệ thống máy tính(HTMT),là chủ đề cốt lõi,trung tâm của HTMT.HTMT gồm phần cứng( Hardware_HW) và SW.Trong HTMT, nếu loại bỏ đi các thiết bị và các loại phụ kiện thì phần còn lại chính là SW.Theo nghĩa hẹp, SW là dịch vụ chương trình để tăng khả năng xử lí của phần cứng của máy tính.(Như hệ điều hành_OS).Còn hiểu theo nghĩa rộng ,SW là tất cả các kĩ thuật ứng dụng để thực hiện những dịch vụ chức năng cho mục đích nào nào đó bằng phần cứng.SW theo nghĩa rộng ,không chỉ có SW cơ bản và SW ứng dụng, mà phải gồm cả khả năng kinh nghiệm, kĩ năng của kĩ sư,là tất cả các kĩ thuật làm cho sử dụng phần cứng đạt hiệu quả cao. 2.Tầm quan trọng của SW Trong ba thập kỉ đầu tiên của thời đại tính toán, thách thức chủ yếu là phải phát triển phần cứng máy tính để làm giảm bớt giá thành xử lí và lưu trữ dữ liệu. Trong suốt thập kỉ 1980, tiến bộ trong vi điện tử đã làm phát sinh năng lực tính toán mạnh hơn với giá thành thấp đáng kể.Ngày nay vấn đề đã khác đi.Thách thức chủ yếu trong những năm 1990 là phải cải thiện chất lượng (và giảm giá thành) của các giải pháp dựa trên máy tính_Giải pháp được cài đặt bằng phần mềm. Năng lực của máy tính lớn thời đại 1980 nay có sẵn trong máy tính để bàn.Khả năng xử lí và lưu trữ đáng kính của phần cứng hiện đại biểu thị cho tiềm năng tính toán.Phần mềm là một cơ chế làm cho chúng ta chế ngự và khai thác được tiềm năng này. Sự phát triển của SW gắn liền với sự tiến hoá của HTMT.Qua từng giai đoạn phát triển đánh dấu những bước tiến bộ mạnh mẽ và đột phá của ngành CNPM.Các nhà khoa học cũng đã nhanh chóng nắm bắt được vấn đề và thấy được vai trò tiến hoá của SW. 2.1 Vai trò tiến hoá của SW Trong cuốn sách phổ biến về “cuộc cách mạng máy tính” Osborne đã đặc trưng là “Cuộc cách mạng công nghiệp mới”, Toffler thì gọi tiến bộ trong phần vi điện tử là “đợt sóng thay đổi thứ ba” trong lịch sử loài người, còn Naisbit thì tiên đoán rằng việc biến đổi từ một xã hội công nghiệp sang “xã hội thông tin” sẽ có ảnh hưởng sâu sắc đến cuộc sống của chúng ta. Trong những năm đầu của việc phát triển HTMT, việc phát triển SW thực sự không được quản lí, cách làm việc theo lô được dùng trong hầu hết các hệ thống. Khi HW vạn năng đã trở nên thông dụng thì SW lại được thiết kế theo đặt hàng cho từng ứng dụng và được phân phối khá hạn chế. Có thể nói, sự hiểu biết về kĩ nghệ hệ thống hầu như chưa có. Từ những năm 1960 đến cuối những năm 1970, các hệ thống đa lập trình và đa chương trình đã đưa ra những khái niệm mới về tương tác người_máy. Hệ thống thời gian thực có thể thu nhập, phân tích và biến đổi dữ liệu từ nhiều nguồn khác nhau. Những tiến bộ trong lưu trữ trực tuyến dẫn tới thế hệ đầu tiên các hệ quản trị cơ sở dữ liệu(CSDL).Phần mềm đã được phát triển để phân phối theo quy mô rộng trong một thị trường lớn.Bắt đầu từ giữa những năm 1970 và cho tới nay, hệ thống phân bố_nhiều máy tính, mỗi máy thực hiện một chức năng và liên lạc được với các máy khác.Thời kì này, đặc trưng bởi tiến bộ và sự phổ cập các bộ vi xử lí, máy tính cá nhân và các máy trạm để bàn mạnh.Các công ty SW đã đạt hiệu quả cao vàsự tăng trưởng mạnh nhờ máy tính cá nhân .Rõ ràng là, sự tiến hoá của SW một yếu tố quan trọng để thế giới phát triển theo hướng hiện đại hoá, đưa loài người tới những chân trời mới của tri thức và xây dựng một nền văn minh hiện đại. 2.2 Vai trò của SW trong việc phát triển HTMT Như chúng ta đã biết, trong những ngày đầu của tin học, việc phát triển HTMT được các nhà quản lí quan tâm đặc biệt tới HW.Họ cho rằng HW là yếu tố quyết định tới sự phát triển của hệ thống. Phần lớn ngân sách được đầu tư cho HW, trong khi SW chỉ được coi là phụ. Việc lập trình đã được coi như một “hình thức nghệ thuật”. Thế giới SW thực tế không có kỉ luật.Nhưng ngày nay, cùng với sự tiến bộ trong nhận thức của con người thì sự phân bố chi phí cho việc phát triển các hệ thống dựa trên máy tính đã thay đổi cơ bản.Phần mềm là khoản mục chi phí lớn nhất.Phần mềm đã trở thành phần tử chủ chốt trong tiến hoá của các hệ thống và sản phẩm dựa trên máy tính.Bốn thập kỉ qua, SW đã tiến hoá từ một công cụ phân tích thông tin và giải quyết vấn đề thành một ngành công nghiệp.Với một vai trò quan trọng như vậy, SW đã, đang và sẽ là đối tượng của rất nhiều nhà khoa học trong lĩnh vực tin học trên thế giới. 3.ứng dụng của SW Cùng với sự phát triển, độ phức tạp của phần mềm cũng ngày một tăng, sự phân chia ứng dụng của SW một cách rõ rệt sẽ biến mất.Phần mềm có thể được áp dụng trong bất kì tình huống nào có một tập các bước thủ tục đã được xác định trước.Tuy nhiên, có thể phân chia SW theo các lĩnh vực sau đây. 3.1 SW hệ thống SW hệ thống là một tập hợp các chương trình được viết để phục vụ cho các chương trình khác.Các SW hệ thống như trình soạn thảo, trình biên dịch và tiện ích quản lí tệp xử lí các cấu trúc thông tin phức tạp nhưng xác định.Các ứng dụng hệ thống khác như thành phần hệ điều hành, khiển trình, bộ xử lí viễn thông có dữ liệu chủ yếu không xác định. Trong cả hai trường hợp,lĩnh vực phần mềm hệ thốngđược đặc trưng bởi tương tác chủ yếu với phần cứng máy tính; sử dụng nhiều cho hệ thống nhiều người dùng,thao tác tương tranh đòi hỏi lập lịch,dùng chung tài nguyên và các quản lí tiến trình phức tạp; cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài. 3.2 SW thời gian thực SW thời gian thực là SW điều phối/phân tích/kiểm soát các sự kiện thế giới thực ngay khi chúng xuất hiện. SW thời gian thực bao gồm các yếu tố sau. Một thành phần thu thập dữ liệu để thu thập và định dạng thông tin từ môi trường ngoài. Một thành phần phân tích để biến đổi thông tin theo yêu cầu của ứng dụng. Một thành phần kiểm soát /đưa ra để đáp ứng với môi trường ngoài. Một thành phần điều phối để điều hoà các thành phần khác sao cho có thể đáp ứng thời gian thực điển hình. Hệ thống thời gian thực phải đáp ứng trong những ràng buộc thời gian chặt chẽ.Thời gian đáp ứng của một tương tác thông thường có thể bị vượt quá nhưng không gây ra hậu quả nghiêm trọng. 3.3 SW nghiệp vụ Một trong những lĩnh vực ứng dụng SW lớn nhất là xử lí thông tin nghiệp vụ.Nhiều SW hệ thống thông tin quản lí đã ra đời và xâm nhập vào những cơ sở dữ liệu lớn chứa thông tin nghiệp vụ ví dụ như các phần mềm kế toán(tính lương, thu/chi, quản lí kho...).Những ứng dụng trong lĩnh vực này cấu trúc lại dữ liệu hiện có theo cách thuận tiện cho các thao tác nghiệp vụ hay ra quyết định quản lí. 3.4 SW khoa học và công nghệ SW này ứng dụng trong các lĩnh vực khoa học và công nghệ, nó được dặc trưng bởi các thuật toán “máy nghiền số.Các ứng dụng giao động từ thiên văn cho tới núi lửa, từ phân tích căng thẳng về ô tô cho tới sự biến động của quỹ đạo tầu con thoi, từ sinh học phân tử tới chế tạo tự động. 3.5 SW nhúng SW nhúng nằm trong bộ nhớ chỉ đọc và được dùng để điều khiển các sản phẩm và hệ thống cho người tiêu dùng và thị trường công nghiệp.Phần mềm nhúng có thể thực hiện những chức năng rất giới hạn và huyền bí (như điều khiển bàn phím cho lò vi sóng) hay đưa ra các khả năng điều khiển và vận hành có nghĩa (như chức năng số hoá trong ô tô, hệ thống phanh...).Nhờ các ứng dụng này,các sản phẩm thông minh đã hỗ trợ rất lớn cho người tiêu dùng và thị trường công nghiệp. 3.6 SW máy tính cá nhân Thị trường SW máy tính cá nhân đã bùng nổ trong suốt thập kỉ qua.Xử lí văn bản, trang tính ,đồ hoạ máy tính, quản trị CSDl, các ứng dụng tài chính cá nhân và nghiệp vụ là một trong số hàng trăm các ứng dụng của SW máy tính cá nhân. 3.7 SW trí tụê nhân tạo(AI) SW này sử dụng các thuật toán phi số để giải quyết các vấn đề phức tạp mà tính toán hay phân tích trực tiếp không quản lí nổi.Các ứng dụng quan trọng nhất của AI là hệ cơ sở tri thức, nhận dạng(hình ảnh và tiếng nói), chứng minh định lí và chơi trò chơi...Trong những năm gần đây, sự ra đời của “mạng nơ ron nhân tạo” đánh dấu bước phát triển mới của AI. II. công nghệ phần mềm 1..Khái niệm Có nhiều định nghĩa khác nhau về công nghệ phần mềm(CNPM).Để hiểu một cách cụ thể và rõ nét khái niệm này, chúng ta hãy xem xét quan niệm của các nhà khoa học qua từng thời kì về CNPM. Bauer(1969): CNPM là việc thiết lập và sử dụng các nguyên tắc công nghệ học đúng đắn để thu được phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực. Parnas(1987): CNPM là việc xây dựng phần mềm nhiều phiên bản bởi nhiều người dùng. Ghezzi(1991): CNPM là một lĩnh vực của khoa học máy tính,liên quan đến việc xây dựng các hệ thống phần mềm vừa lớn vừa phức tạp bởi một hay một số nhóm kĩ sư. IEEE(1993): CNPM là việc áp dụng phương pháp tiếp cận có hệ thống,bài bản và được lượng hoá trong phát triển,vận hành và bảo trì SW và nghiên cứu các phương pháp trên. Pressman(1995): CNPM la bộ môn tích hợp cả quy trình , các phương pháp và công cụ để phát triển SW máy tính. Somerville(1995): CNPM là lĩnh vực liên quan đến lí thuyết, phương pháp và công cụ dùng cho phát triển SW. K.Kawamura(1995): CNPM là lĩnh vực học vấn về các kĩ thuật, phương pháp luận công nghệ học(lí luận và kĩ thuật được hiện thực hoá trên những nguyên tắc, nguyên lí nào đó) trong toàn bộ quy trình phát triển SW nhằm nâng cao cả chất và lượng sản xuất SW. Từ các quan điểm nêu trên, CNPM có thể được hiểu một cách khái quát như sau CNPM là lĩnh vực khoa học về các phương pháp luận, kĩ thuật và công cụ tích hợp trong quy trình sản xuất và vận hành SW nhằm tạo ra SW với chất lượng mong muốn.(Software Enginerring is a scientic field to deal with thodologies, techniques and tools integrated in SW production_maintenance process to obtain SW with desired qualities). Như các ngành công nghệ khác, CNPM cũng lấy các phương pháp khoa học làm cơ sở.Các kĩ thuật về thiết kế, chế tạo,kiểm thử và bảo trì SW đã được hệ thống hoá thành phương pháp luận và hình thành nên CNPM. Toàn bộ quy trình quản lí phát triển SW gắn với khái niệm vòng đời SW,được mô hình hoá với những kĩ thuật và phương pháp luận trở thành các chủ đề khác nhau trong CNPM. Trong vòng đời của SW không chỉ có chế tạo mà bao gồm cả thiết kế,vận hành và bảo dưỡng. Cách tiếp cận công nghệ học thể hiện ở chỗ nhằm nâng cao năng suất và độ tin cậy của SW, đồng thời giảm chi phí giá thành. 2.Lịch sử và xu hướng phát triển của CNPM Nửa đầu những năm 1960, ít quan tâm tới SW mà chủ yếu tập trung nâng cao tính năng và độ tin cậy của HW.Đến giữa những năm 1960, phát triển hệ điều hành như SW lớn(IBM 0S/360, EC OS).Xuất hiện nhu cầu về quy trình phát triển SW lớn và quy trình gỡ lỗi, kiểm thử trong phạm vi giới hạn. Tại hội nghị khoa học của NATO diễn ra tại Tây Đức vào năm 1968, đã đưa ra từ “Software Engineering”.Bắt đầu bàn luận về khủng hoảng SW và xu hướng hình thành CNPM như một chuyên môn riêng.Nửa cuối những năm 1960, IBM đã đưa ra chính sách phân biệt giữa giá cả SW và HW. Từ đó ,ý thức về SW ngày càng cao. Bắt đầu những nghiên cứu cơ bản về phương pháp luận lập trình. Nửa đầu những năm 1970, nhằm nâng cao chất lượng của SW, không chỉ có các nghiên cứu về lập trình, kiểm thử, mà còn có cả những nghiên cứu đảm bảo tính tin cậy trong quy trình sản xuất SW.Kĩ thuật: Lập trình cấu trúc hoá, lập trình modun, thiết kế cấu trúc hoá... Giữa những năm 1970, hội nghị quốc tế đầu tiên về CNPM được tổ chức(1975).Nửa sau những năm 1970, quan tâm đến mọi pha trong quy trình sản xuất SW, nhưng tập trung chính ở những pha đầu.ICSE được tổ chức lần 2,3,4 vào các năm 1976,1978,1979.Nhật Bản có “Kế hoạch phát triển kĩ thuật sản xuất SW vao năm 1981.Cuộc cách tân “Cách mạng sản xuất SW” đã bắt đầu trên phạm vi các nước công nghiệp. Sang nửa đầu những năm 1980, trình độ học vấn và ứng dụng CNPM được nâng cao, các công nghệ được chuyển vào thực tế.Xuất hiện các sản phẩm SW và các công cụ khác nhau làm tăng năng suất sản xuất SW đáng kể.ICSE tổ chức lần 5 và 6 vào năm 1981,1982 với hơn 1000 người tham dự mỗi năm.Nhật Bản sang “Kế hoạch phát triển các kĩ thuật bảo trì SW”(1981-1985). Nửa cuối những năm 1980 cho đến nay, từ học vấn sang nghiệp vụ, chất lượng SW chủ yếu tập trung ở năng suất, độ tin cậy và tính bảo trì. Nghiên cứu hỗ trợ tự động hoá sản xuất SW.Nhật Bản có “Kế hoạch công nghiệp hoá sản xuất SW”(1985-1990).Nhiều trung tâm, viện nghiên cứu của CNPM ra đời. Các trường đưa vào giảng dạy SE. Ngày nay, công nghiệp hoá sản xuất SW bằng cách đưa vào những kĩ thuật công nghệ học thành cơ sở khoa học của CNPM.Thể chế hoá lí luận trong sản xuất SW và ứng dụng những phương pháp luận một cách nhất quán.Tăng cường nghiên cứu tạo công cụ trợ giúp cho sản xuất SW. chương II Phân tích yêu cầu Việc xây dựng, hoàn thiện và ứng dụng thành công một HTMT không phải là chuyệ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._.

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

  • doc33769.doc