Mở đầuNgày nay, cùng với sự phát triển ồ ạt của nền kinh tế, nghành côngnghệ thông tin cũng đã, đang và sẽ đạt đợc những thành tựu nhất định.Mộtlĩnh vực hết sức quan trọng trong nghành c
Trang 1Mở đầu
Ngày nay, cùng với sự phát triển ồ ạt của nền kinh tế, nghành côngnghệ thông tin cũng đã, đang và sẽ đạt đợc những thành tựu nhất định.Mộtlĩnh vực hết sức quan trọng trong nghành công nghệ thông tin đang đợc quantâ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 gia nghiên cứu.Việc đặc tả cácyê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ủacông nghệ phần mềm.Để khám phá các kiến thức của công nghệ phần mềmnó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
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ầucủ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 đổikhô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ớngdẫ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
1.Định nghĩa
Theo Tiến sĩ Roger S.Pressman_Nhà khoa học tên tuổi ngời Mĩ có uytí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
Trang 2nghiệm_Phần mềm (Software_SW) là một tập hợp các câu lệnh đợc viết bằngmộ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ứcnă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ả thaotác và cách sử dụng chơng trình.Có thể nói đây là một định nghĩa tơng đốihoà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ó.SWquyết định chất lợng của một hệ thống máy tính(HTMT),là chủ đề cốtlõ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ònlạ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ĩarộng ,SW là tất cả các kĩ thuật ứng dụng để thực hiện những dịch vụ chứcnăng cho mục đích nào nào đó bằng phần cứng.SW theo nghĩa rộng ,khôngchỉ 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à lu trữdữ liệu Trong suốt thập kỉ 1980, tiến bộ trong vi điện tử đã làm phát sinhnă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 đặtbằ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à lu trữ đáng kính của phần cứng hiện đại biểu thị chotiề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ànhCNPM.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
Trang 32.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 trng là “Cuộc cách mạng công nghiệp mới”., Toffler thì gọi tiến bộ trongphần vi điện tử là “đợt sóng thay đổi thứ ba” trong lịch sử loài ng ời, cònNaisbit 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 SWthự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 cha có Từ những năm 1960 đến cuốinhững năm 1970, các hệ thống đa lập trình và đa chơng trình đã đa ra nhữngkhái niệm mới về tơng tác ngời_máy Hệ thống thời gian thực có thể thunhậ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 lu 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 trongmột thị trờng lớn.Bắt đầu từ giữa những năm 1970 và cho tới nay, hệ thốngphâ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 đợcvới các máy khác.Thời kì này, đặc trng 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 đã đạthiệ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ếnhoá của SW một yếu tố quan trọng để thế giới phát triển theo hớng hiện đạihoá, đ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ềnvă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ểnHTMT đợ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ìnhthức nghệ thuật” Thế giới SW thực tế không có kỉ luật.Nhng ngày nay, cùngvới sự tiến bộ trong nhận thức của con ngời thì sự phân bố chi phí cho việcphá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 trongtiế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
Trang 4ngà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ụ chocá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 nhng 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ĩnhvực phần mềm hệ thốngđợc đặc trng bởi tơng tác chủ yếu với phần cứng máytính; sử dụng nhiều cho hệ thống nhiều ngời dùng,thao tác tơng tranh đòi hỏilậ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
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 gianchặ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ánhng 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 tinnghiệp vụ.Nhiều SW hệ thống thông tin quản lí đã ra đời và xâm nhập vào
Trang 5trú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 raquyế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ó đợcdặc trng bởi các thuật toán “máy nghiền số.Các ứng dụng giao động từ thiênvă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ủaquỹ đạ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ảnphẩm và hệ thống cho ngời tiêu dùng và thị trờng công nghiệp.Phần mềmnhú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ềukhiển bàn phím cho lò vi sóng) hay đa ra các khả năng điều khiển và vậnhà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ínhcá 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 quantrọ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 quanniệm của các nhà khoa học qua từng thời kì về CNPM
Trang 6 Bauer(1969): CNPM là việc thiết lập và sử dụng các nguyên tắccông nghệ học đúng đắn để thu đợc phần mềm một cách kinh tế vừa tin cậyvừa làm việc hiệu quả trên các máy thực.
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ênquan đế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ộthay 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ácphơ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ênnhững nguyên tắc, nguyên lí nào đó) trong toàn bộ quy trình phát triển SWnhằ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ấtlợng mong muốn.(Software Enginerring is a scientic field to deal withthodologies, techniques and tools integrated in SW production_maintenanceprocess 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 khoahọ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ộ quytrì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 trongCNPM Trong vòng đời của SW không chỉ có chế tạo mà bao gồm cả thiếtkế,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ằmnâng cao năng suất và độ tin cậy của SW, đồng thời giảm chi phí giá thành
Trang 7Tạ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ápluậ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 đảmbả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ìnhsản xuất SW, nhng tập trung chính ở những pha đầu.ICSE đợc tổ chức lần2,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ậtsả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ậtBả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êncứ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ậntrong sản xuất SW và ứng dụng những phơng pháp luận một cách nhấtquán.Tăng cờng nghiên cứu tạo công cụ trợ giúp cho sản xuất SW
Trang 8chơ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ôngphả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, quantrọng.Phân tích hệ thống đợc tiến hành với các mục tiêu sau đây:
1 Xác định nhu cầu của khách hàng
2 Đánh giá khái niệm hệ thống về tính khả thi
3 Thự hiện phân tích kinh tế và kĩ thuật
4 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
5 Thiêt lập các chi phí ràng buộc và lịch
6 Tạo ra một định nghĩa hệ thống làm cơ sở cho mọi công việccô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êutrê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ằngthời gian và công sức dành cho phân tích hệ thống đóng vai trò rất quantrọ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
Trang 9Phân tích yêu cầu là nhiệm vụ kĩ nghệ SW bắc nhịp cầu qua lỗ hổnggiữ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ầucho 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ìnhtiế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êucầ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ácquyế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 quytrì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àmviệ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ốngsau khi nó đã đợc triển khai phụ thuộc nhiều vào mức độ đợc các yêu cầu củakhá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ờidù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ânhoạ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ốngmá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
Trang 10thì 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ủamì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ểuhiệ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âuthuẫn
Việc phân tích đợc tiến hành trong ngữ cảnh của tổ chức,đôi khichị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:
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ề
requirements validation
requirements definition and specification
prioritization
conflic resolution
requirements colection
classification
Trang 114 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
Đố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ácphân tích yêu cầu
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ếtquả 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ântí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 quachúng.Mỗi phơng pháp đều có ki pháp và quan điểm duy nhất.Tuy nhiên tấtcả 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õ.
1 Các mô hình mô tả cho thông tin, chức năng và hành vi hệ thốngcần phải đợc xây dựng
2 Các mô hình phải đợc phân hoạch theo cách để lộ ra các chi tiêttheo kiểu phân tầng
3 Tiến trình phân tích phải đi từ thông tin bản chất hớng tới chitiế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ộtcá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 tinmột cách rõ ràng, ngắn gọn.Việc phân hoạch đợc dùng để làm giảm độ phứctạp
Trang 122.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 sangdạ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ị chomột khía cạnh nào đó của hệ thống.Dữ liệu và sự kiện đều nằm trong miềnthô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ểnkhi 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 đổikhi 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ềukhiể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
Trang 13Hì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ảnmụ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âydự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ốnghệt về hình dạng, nhng nhỏ hơn về quy mô.Nhng khi thực thể xây dựng là SWthì mô hình của chúng ta phải mang dạng khác.Nó phải có khả năng mô hìnhhoá thông tin mà SW biến đổi,các chức năng làm cho phép biến đổi đó thựchiệ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ựchiện, không chú ý đến cách thức nó thực hiện Các mô hình đợc tạo ra khiphâ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ứcnă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ànhphầ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 đặctả
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ơngpháp mô hình hoá
Trang 144.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ạchnhữ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ếtlậ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ậnhợ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ânrã vấn đề về mặt chức năng bằng cách đi theo chiều ngang của cấp bậc Saukhi đã 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ìnphụ 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ằngcá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 địnhnhữ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 trongthế 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ờnghợ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ầnmề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áchthức áp chế việc sắp xếp những chi tiết cài đặt nào đó
Cần lu ý rằng việc phân tích yêu cầu phần mềm nên tập trung vào việcphầ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 đặtcá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ànhhiệ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ăngkhông đợc chỉ là tờng minh
Trang 15Chơng III Các kĩ thuật phân tích và phơng pháp hình
thức hoá trong CNPM
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 chph-ơng trình và nhóm các t liệu.Có thể nhận thấy vaitrò quan trọng không thể thiếu của các kĩ thuật và phơng pháp khi đi vàonghiê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ơngtrì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ả
Trang 16Hì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 chotừ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ệuquả 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ậtphân tích và các phơng pháp hình thức hoá trong CNPM, chúng ta hãy nghiêncứ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ệtquan trọng, nó có tính chất quyết định, ảnh hởng lớn tới sự thành công haythấ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
kĩ thuậtXác định
yêu cầu
Đặc tả yêu cầu ngời dùngXác định yêu cầu phần mềm
Phân tích cấutrúc hoá
Thiết kế
hệ thống
Thiết kế cơ bản của phần mềmThiết kế cấu trúc ngoài của phầnmềm
Thiết kế cấutrúc hoá
Phơng phápGiăcsonPhơng phápWarnierLập trình Mã hoá bởi ngôn ngữ lập trình Mã hoá cấu
ơng trìnhVận hành
Trang 17duy nhất để phân tích thông tin, chức năng và hành vi cho hệ thống dựa trênmá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áplạ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ầnlớn các phơng pháp phân tích đều ngả theo thông tin, tức là phơng pháp cungcấ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 trng 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à độclậ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ựatrê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 ápdụ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 nhng cũng có những sự khác biệt cơ bản
Trang 181.1 Các đặc trng 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 trng sau : (1) cơ chế chophâ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ồngthô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ìnhthông tin Mỗi chức năng có thể đợc biểu diễn bằng cách dùng kí pháp đặcbiệ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ìnhhoá.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ếpvà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ântí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:
đặ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.
Trang 19 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í.
liệu cho việc phân hoạch đó trớc khi đặc 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 dungthô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ôngtin.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ũitê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ácthô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ácmũi tên có nhãn.Quá trình trên đợc biểu diễn bởi sơ đồ sau:
Trang 20Hì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.Trongthự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ăngngà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ểudiễ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 đợcchỉ 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ớicá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ụngtrong sơ đồ DFD
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 lu 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ơnnhằ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 địnhnhấ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ị