Đề tài Tìm hiểu quy trình phát triển phần mềm hướng đối tượng

Ngày nay các công ty đang phải đương đầu với việc co hẹp ngân sách. Điều này có nghĩa là quy mô đầu tư vào các dự án phần mềm bị cắt giảm rất lớn. Nó làm phát sinh nhu cầu về thời gian phát triển ngắn hơn và chi phí nhân lực thấp hơn. Với việc tăng khuynh hướng nghiêng về các hệ phân bố, một tập hợp các công cụ trực quan mới hiện đã có sẵn trên thị trường. Những công cụ này đem cùng chúng cách tiếp cận mới tới việc phát triển hệ thống. Các phương pháp luận truyền thống gây cản trở rất nhiều cho việc đáp ứng những thánh thức nói trên. Do đó có việc nổi lên của phương pháp luận hướng đối tượng. Phát triển các phần mềm theo hướng đối tượng đang là sự chọn lựa hàng đầu của các công ty hiện nay khi họ muốn phát triển một sản phẩm nào đó.

docx25 trang | Chia sẻ: lylyngoc | Lượt xem: 2888 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu quy trình phát triển phần mềm hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luận văn báo cáo Đề tài: Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Mở đầu Phần mềm hiện nay có mặt ở mọi lĩnh vực, trong mọi hoạt động của cuộc sống như công nghiệp, viện nghiên cứu, trường học, bệnh viện, tài chính ngân hàng, chính phủ... Hầu hết các thiết bị điện tử hiện nay và trong tương lai đều được cài đặt các phần mềm điều khiển. 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 (software engineering). Trong các loại phần mềm hiện nay thì phần mềm hướng đối tượng đang phát triển vô cùng mạnh mẽ. Do nó đáp ứng được hầu hết các yêu cầu người dùng, và do sự phát triển mạnh mẽ của các ngôn ngữ hướng đối tượng như C++, Java, C#... Phương pháp phát triển phần mềm hướng đối tượng tuy là một phương pháp mới trong những năm gần đây nhưng đã chứng tỏ được ưu thế khi lập trình các hệ thống phức tạp, đem lại những thành quả to lớn. Các nhà phát triển phần mềm nhận thấy rằng phát triển phần mềm hướng đối tượng mang lại một phần mềm thương mại có chất lượng cao với độ tin cậy cao, dễ mở rộng và dễ sử dụng lại, chạy trơn tru, phù hợp với yêu cầu của người dùng và đặc biệt là khả năng phát triển cao. Trong bài báo cáo này chúng em sẽ trình bầy đến các vấn đề liên quan đến phát triển phần mềm hướng đối tượng như: phần mềm hướng đối tượng là gì, quy trình phát triển một phần mềm, các quy trình để phát triển một phần mềm hướng đối tượng,... Trong báo cáo bày còn nhiều thiếu sót mong được thầy cô và các bạn góp ý, đánh giá giúp chúng em hoàn thành đề tài này. Chúng em cũng xin được cảm ơn sự giúp đỡ tận tình của TS: LƯƠNG MẠNH BÁ trong quá trình chúng em hoàn thành báo cáo này. Nhóm sinh viên thực hiện Hà nội ngày 7 tháng 10 năm 2012 Mục lục Chương I: Giới thiệu chung về công nghệ phần mềm và phần mềm hướng đối tượng I.1: Phần mềm là gì ? ........................................................................................ I.2: Công nghệ phần mềm là gì?........................................................................ I.3: Vòng đời của phần mềm.............................................................................. I.4: Phần mềm hướng đối tượng........................................................................ Chương II: Quy trình phát triển phần mềm I: Khung quy trình phát triển phần mềm chung................................................. II: Một số mô hình phát triển phần mềm........................................................... III: Các giai đoạn trong quy trình phát triển phần mềm..................................... Chương III: Quy trình phát triển phần mềm hướng đối tượng...................................... III.1: Xác định yêu cầu....................................................................................... III.2: Phân tích yêu cầu hướng đối tượng (OOA).............................................. III.3: Thiết kế hướng đối tượng.......................................................................... III.4: Cài đặt....................................................................................................... III.5: Kiểm thử................................................................................................... 3 3 3 3 4 5 5 5 6 7 7 9 14 16 18 Chương I: Giới thiệu chung về công nghệ phần mềm và phần mềm hướng đối tượng I.1: Phần mềm là gì? Là các lệnh ( chương trình máy tính ) khi được thực hiện thì cung cấp những chức năng và kết quả mong muốn Các cấu trúc dữ liệu làm cho chương trình thao tác thông tin thích hợp Các tư liệu mô tả thao tác và cách sử dụng chương trình Nhóm các chương trình Nhóm các tư liệu Phần mềm bao gồm: Nhóm các kĩ thuật, phương pháp luận I.2: Công nghệ phần mềm là gì? Công nghệ học phần mềm 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 phần mềm nhằm tạo ra phần mềm với chất lượng mong muốn. Lịch sử phát triển của công nghệ phần mềm Giai đoạn 1 (1950 – giữa 1960): - Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần mềm. Giai đoạn 2 (từ giữa 1960 đến giữa 1970) : - Hệ thống đa chương trình và đa nguời dùng. - Bắt đầu cuộc “khủng hoảng” phần mềm. Giai đoạn 3 (từ giữa 1970 đến giữa 1980) - Sự phát triển và sử dụng rộng rãi máy tính cá nhân - Sự phát triển của các công ty phần mềm Giai đoạn 4 (từ giữa 1980 đến nay) - Phần cứng ngày càng phát triển - Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức tạp, công nghệ ngày càng phát triển… I.3: Vòng đời của phần mềm Vòng đời phần mềm là thời kỳ tính từ khi phần mềm được sinh ra cho đến khi chết đi ( từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi loại bỏ không dùng nữa ) Quy trình phầnmềm(vòng đờiphầnmềm) được phân chia thành các pha chính:phân tích, thiết kế, chế tạo, kiểm thử, bảo trì. Biểudiễn các pha có khác nhau theo từng người Mô hình vòng đời phần mền của Boehm Insert picture I.4: Phần mềm hướng đối tượng Là phần mềm được viết trên các ngôn ngữ hướng đối tượng như C#, Java, C++... Ngày càng phát triển mạnh mẽ do sự phát triển của xã hội đặc biệt là sự phát triển của công nghệ thông tin. Lớp và đối tượng Lớp là một kiểu dữ liệu mà người ( do người dùng định nghĩa ) dùng để tạo ra các đối tượng. Lớp là một khuân mẫu, định nghĩa các đặc điểm tính chất, hành vi, trạng thái chung của một số đối tượng. Lớp là khái niệm mang tính chất trừu tượng hóa. Đối tượng là một thực thể cụ thể của lớp. Lớp là “ảo”, đối tượng là “thật”. Đối tượng là đối tượng trong thế giới thực, thực thể cụ thể mà ta có thể sờ, nhìn thấy và cảm nhận được. VD: ô tô, cái bàn,.... Đối tượng phần mềm: Dùng để biểu diễn các đối tượng trong thế giới thực. Chương II: Quy trình phát triển phần mềm I: Khung quy trình phát triển phần mềm chung Một khung quy trình chung được thiết lập bằng cách xác định một số hoạt động khung có khả năng áp dụng cho mọi dự án phần mềm. Tập nhiệm vụ công việc cho phép các hoạt động khung thích ứng với các đặc tính và yêu cầu của dự án. Các hoạt động bao trùm (umbrella activities) đảm bảo chất lượng của phần mềm, và độc lập với bất cứ hoạt động khung nào diễn ra trong suốt quy trình. II: Một số mô hình phát triển phần mềm Mô hình tuyến tính Đây là mô hình lâu đời nhất và được ứng dụng rộng rãi nhất trong công nghệ phần mềm nhưng mô hình này vẫn còn bộc lộ nhiều nhược điểm Mô hình thuần thục khả năng Mô hình này do Soft Engineering Institute (SEI) phát triển bao gồm 5 mức: Khởi đầu, lặp lại, xác định, quản trị, tối ưu. Mô hình chế thử Là một tiến trình giúp người phát triển phần mềm có khả năng tạo ra một mô hình cho phần mềm cần phải xây dựng. Nó gồm 3 dạng: Bản vẽ trên giấy hay mô hình trên PC, bản mẫu làm việc và cài đặt một tập con các chức năng phần mềm mong muốn, một chương chình đã có cần cải tiến. Mô hình phát triển ứng dụng nhanh (RAD) Là quy trình phát triển phầm mềm gia tăng từng bước với chu chình phát triển ngắn. Mô hình này xây dựng dựa trên hướng thành phần với khả năng tái sử dụng cao. Mô hình xoắn ốc Được phát triển bao gồm các tính năng tốt nhất của mô hình tuyến tính lẫn mô hình chế thử trong khi vẫn bổ sung thêm các yếu tố mới – phân tích rủi ro. Mô hình theo thành phần Gắn với những công nghệ hướng đối tượng thông qua việc tạo các lớp có chứa dữ liệu và các giải thuật xử lí dữ liệu Mô hình hình thức Còn được gọi là mô hình phòng sạch, tập hợp các công cụ đặc tả toán học phần mềm máy tính từ khâu định nghĩa phát triển đến kiểm soát. Các công nghệ thứ 4 Bao gồm một phạm vi rộng các công nghệ phần mềm có một điểm chung: mỗi công việc đều cho phép người phát triển phần mềm xác định một số đặc trưng phần mềm ở mức cao. Sau đó chương trình tự động sinh ra mã chương trình gốc theo nhu cầu của người phát triển. Mô hình chữ V Mô tả dãy các hoạt động phát triển và kiểm thử cơ bản. Nó nêu bật sự tồn tại của các mức kiểm thử và mô tả cách mỗi mức kiểm thử này liên quan đến một pha phát triển khác nhau. III: Các giai đoạn trong quy trình phát triển phần mềm Giai đoạn khảo sát hiện trạng. Đây là giai đoạn đầu tiên trong quá trình phát triển phần mềm, nó cho biết hiện trạng bài toán như thế nào. Ví như hiện trạng về mô hình tổ chức, hiện trạng về các nghiệp vụ, hiện trạng về quá trình tin học của khách hàng mà phần mềm chúng ta nhắm tới. Trong đó hiện trạng về nghiệp vụ là quan trọng nhất mục tiêu của giai đoạn này là phải hiểu rõ được quy trình nghiệp vụ của khách hàng như là có bao nhiêu quá trình nghiệp vụ, những nghiệp vụ đó họ làm như thế nào?…. Giai đoạn xác định yêu cầu.  Có 2 loại yêu cầu là yêu cầu chức năng và yêu cầu phi chức năng. Yêu cầu chức năng: Đây là yêu cầu bất khả kháng mà khách hàng đưa ra cho bạn. Yêu cầu phi chức năng là yêu cầu của hệ thống mà mình đưa ra,ví dụ như chức năng bảo mật thông tin, chức năng phân quyền người dùng, chức năng có thể đáp ứng yêu cầu của dữ liệu trong khoảng thời gian bao nhiêu…. Giai đoạn phân tích. Trong giai đoạn này chúng ta sẽ phân tích các yêu cầu, và mô hình hóa chúng kết quả của quá trình này là cho ra một sơ đồ lớp đối tượng trong chương trình chúng ta. Thiết kế Giai đoạn này chúng ta sẽ thiết kế các thuật toán, và thiết kế mô hình dữ liệu nó cho ra một mô hình lớp và dữ liệu ở mức chi tiết. Cài đặt Phần này chúng ta sẽ chính thức bắt tay vào “code” chương trình. Kiểm chứng Phần này có nhiệm vụ kiểm tra chương trình có lỗi hay không, có đáp ứng được nhu cầu người dùng hay không?,.... Triển khai Bạn sẽ mang chương trình của mình đi triển khai. Chương III: Quy trình phát triển phần mềm hướng đối tượng Để phát triển được một phần mềm hướng đối tượng ta cần qua các bước: Xác định yêu cầu người sử dụng, mô hình hóa yêu cầu, phân tích, thiết kế dữ liệu, kiến trúc chương trình, kiểm thử đánh giá. III.1: Xác định yêu cầu Yêu cầu người dùng là gì? Yêu cầu phần mềm là tất cả các yêu cầu về phần mềm do khách hàng, người sử dụng phần mềm – nêu ra, bao gồm: các chứ năng của phần mềm, hiệu năng của phần mềm, các yêu cầu về thiết kế và giao diện, các yêu cầu đặc biệt khác. Yêu cầu phần mềm được phân loại theo 4 thành phần của phần mềm: Các yêu cầu về phần mềm (Software). Các yêu cầu về phần cứng (Hardware). Các yêu cầu về dữ liệu (Data). Các yêu cầu về con người (People, Users). Tại sao phải xác định yêu cầu ? Mục đích cơ bản của nắm bắt yêu cầu là hướng sự phát triển đến một hệ thống đúng. Trả lời các câu hỏi sau: Cái người dùng yêu cầu mình làm là cái gì? Các yêu cầu đó ra sao? Các yêu cầu đó như thế nào? Các nghiệp vụ của người đó ra sao? Trong họ trình độ tin học hóa tới đâu?(về trình độ sử dụng máy tính và phần cứng của họ). Các thói quen nghiệp vụ của họ ra sao? …  Một thách thức lớn là khách hàng là người không có kinh nghiệm về máy tính nhưng lại có khả năng đọc và hiểu các kết quả của nắm bắt yêu cầu. Do đó ta phải sử dụng ngôn ngữ của khách hàng để nắm bắt yêu cầu này. Kết quả của nắm bắt yêu cầu đồng thời cũng giúp người quản lí dự án lập kế hoạch các bước lặp và các xuất phẩm cho khách hàng. Phân loại yêu cầu Yêu cầu chức năng Lưu trữ Tra cứu Tính toán Kết xuất Yêu cầu phi chức năng Quy trình xác định yêu cầu phần mềm Phát hiện các yêu cầu phần mềm. Xác định các phương pháp sử dụng phát hiện các yêu cầu phần mềm như phỏng vấn, làm việc nhóm,... Tìm kiếm nhân sự (chuyên gia, người sử dụng) có hiểu biết sâu sắc nhất, chi tiết nhất về hệ thống giúp chúng ta xác định yêu cầu phần mềm. Xác định môi trường kĩ thuật. Xác định các ràng buộc lĩnh vực. Thu hút sự tham gia của nhiều chuyên gia, khách hàng để có các quan điểm xem xét phần mềm từ nhiều phía khác nhau Phân tích các yêu cầu phần mềm và thương lượng với khách hàng. Phân loại yêu cầu phần mềm và sắp xếp chúng theo các nhóm liên quan Khảo sát tỉ mỉ từng yêu cầu phần mềm. Thẩm định từng yêu cầu phần mềm theo các tính chất: phù hợp, đầy đủ rõ ràng, không trùng lặp. Phân tích yêu cầu dựa trên nhu cầu và đòi hỏi của khách hàng Thẩm định từng yêu cầu của phần mềm. Thẩm định rủi ro có thể xảy ra với từng yêu cầu phần mềm. Đánh giá thô về giá thành và thời gian thực hiện của từng yêu cầu phần mềm trong giá thành sản phẩm phần mềm và thời gian thực hiện phần mềm. Giải quyết bất đồng với yêu cầu phần mềm với khách hàng trên cơ sở thảo luận và thương lượng với yêu cầu đặt ra. Đặc tả yêu cầu phần mềm Đây là công việc xây dựng các tài liệu trong đó có thể sử dụng các công cụ như: mô hình hóa, mô hình toán học hình thức, tập hợp các kịch bản sử dụng, các nguyên mẫu. Yêu cầu của đặc tả tốt Dễ hiểu với người dùng, ít rắc rối Có ít quy ước khi mô tả Theo phong cách từ trên xuống Dễ triển khai Các kĩ thuật thu thập yêu cầu Phỏng vấn cá nhân/phỏng vấn nhóm? Phỏng vấn cá nhân Phỏng vấn nhóm Phỏng vấn tự do/phỏng vấn có định hướng? Phỏng vấn tự do + Người được hỏi có cảm giác thoải mái, cung cấp nhiều thông tin sâu sắc. + Nguy cơ: không có được những thông tin cần thiết, thông tin khó hệ thống được. Phỏng vấn có định hướng + Người được hỏi có thể cảm thấy không thoải mái, ít có khả năng ghi nhận được nhận xét, ý kiến, suy nghĩ riêng của người được phỏng vấn, ít cảm nhận được thái độ của họ đối với hiện trạng. + Có thể định hướng nội dung cần tìm hiểu, có thể hệ thống hóa các vấn đề ghi nhận được Làm việc với cấp lãnh đạo để nắm mục tiêu của hệ thống phần mềm cần xây dựng, những đối tượng cần phỏng vấn. Yêu cầu cấp lãnh đạo thông báo xuống các phòng ban, đơn vị để hợp tác. Phân tích để xác định đúng và đủ những đối tượng cần phỏng vấn. Hẹn lịch làm việc. Xác định trước vị trí, trách nhiệm của người sắp phỏng vấn. III.2: Phân tích yêu cầu hướng đối tượng (OOA) Phân tích được xem như là cây cầu giữa kĩ nghệ hệ thống với thiết kế phần mềm. Kĩ nghệ hệ thống máy tính Phân tích yêu cầu phần mềm Thiết kế phần mềm Mục đích của OOA: Định nghĩa các lớp (và các mối quan hệ hành vi liên kết với chúng) phù hợp với vấn đề cần giải quyết. Phát triển một tập các mô hình mô tả hệ thống phần mềm máy tính như nó hoạt động để thỏa mãn các yêu cầu của người dùng đã được xác định. Các phương pháp phân tích hướng đối tượng 1: Phương pháp Booch: Gồm 2 quy trình phát triển vi mô và vĩ mô. Quy trình phân tích vi mô bằng phương pháp Booch được mô tả như sau: Xác định các lớp đối tượng Xác định ngữ nghĩa của các lớp và đối tượng Xác định mối quan hệ giữa các lớp và đối tượng Quản lí các hoạt động điểu chỉnh thích hợp Thực thi các lớp và đối tượng (hoàn thành mô hình phân tích) 2: Phương pháp Coad và Yourdon: Phác thảo của quy trình phân tích do Coad và Yourdon đề nghị như sau: Xác định đối tượng sử dụng tiêu chuẩn “tìm kiếm cái gì”. Xác định cấu trúc tổng quát – đặc tả. Xác định cấu trúc toàn thê – bộ phận. Xác định chủ đề ( mô tả các thành phần hệ thống con). Xác định các thuộc tính. Xác định các dịch vụ. 3: Phương pháp Jacobson: Nhấn mạnh vào các trường hợp sử dụng – mô tả cách người dùng tương tác với sản phẩm hay hệ thống. Phác thảo của quy trình phân tích như sau: Xác định người sử dụng hệ thống và toàn bộ nhiệm vụ của họ. Xây dựng mô hình yêu cầu. Xây dựng mô hình phân tích. 4: Phương pháp Rambaugh: Các hoạt động phân tích tạo ra 3 mô hình: mô hình đối tượng, mô hình động, mô hình chức năng. Phác thảo của quy trình phân tích: Phát triển một bản kê phạm vi vấn đề Xây dựng một mô hình hướng đối tượng Phát triển mô hình động Xây dựng một mô hình chức năng cho hệ thống 5: Phương pháp Wirfs – Brock: Không tạo sự khác biệt rõ ràng giữa phân tích và thiết kế. Thay vào đó một quá trình bắt đầu khi xác định đặc tả khách hàng và kết thúc khi thiết kế được đề xuất. Phác thảo của quy trình phân tích do Wirfs – Brock phát triển như sau: Ước lượng đặc tả khách hàng. Sử dụng phân tích ngữ pháp để rút ra các lớp ứng viên từ đặc tả. Nhóm các lớp để xác định các lớp Cha. Định nghĩa trách nhiệm cho mỗi lớp. Phân công trách nhiệm cho mỗi lớp. Xác định cộng tác giữa các lớp dựa trên trách nhiệm. Xây dựng mô tả cây của lớp để chỉ ra mối quan hệ kế thừa. Xây dựng biểu đồ cộng tác cho hệ thống Thu nhận các yêu cầu của khách hàng cho hệ thống hướng đối tượng (Object Oriented – OO ). Chọn các lớp các đối tượng sử dụng các yêu cầu cơ bản như là hướng dẫn. Xác định các thuộc tính và các phương thức cho mỗi đối tượng hệ thống Xác định cấu trúc và cây cho mỗi lớp tổ chức Xây dựng mô hình quan hệ đối tượng Xây dựng mô hình hành vi đối tượng Xem lại phân tích OO. Quy trình OOA Quy trình bắt đầu với việc hiểu cách thức hệ thống mà con người sử dụng. Khi các kịch bản sử dụng được xác định, ta bắt đầu mô hình hóa hệ thống. Trường hợp sử dụng Dựa trên yêu cầu người dùng, người kĩ sư phần mềm tạo ra một tập các kịch bản xác định một luồng sử dụng cho hệ thống. Đầu tiên xác định các kiểu đối tượng (thiết bị) khác nhau sử dụng hệ thống. Các tác nhân mô tả vai trò mà con người hay thiết bị đảm nhận trong hệ thống Khi xác định xong các tác nhân, ta phát triển trường hợp sử dụng mô tả các tác nhân tương tác với hệ thống. Mô hình class – responsibility – collaborator (CRC) Mô hình CRC (mô hình cộng tác ) cung cấp một phương tiện đơn giản để xác định và tổ chức các lớp thích hợp với yêu cầu hệ thống hay sản phẩm. Lớp Các đối tượng được biểu diễn thông qua rất nhiều hình thức trong đó có một cách biểu diễn đối tượng thông qua lớp. Firesmith đã mở rộng sự phân loại các kiểu lớp bằng cách gợi ý ra các loại sau Lớp thiết bị: Mô hình các thực thể ngoài như cảm biến, moto, bàn phím. Lớp thuộc tính: Mô tả một số thuộc tính quan trọng của môi trường Lớp tương tác: Mô hình các tương tác xảy ra giữa các đối tượng. Thêm vào đó, lớp và đối tượng có thể được phân loại bằng tập các đặc tính sau: Tính hiện thực, tính bao gồm, tính tuần tự, sự tồn tại, tính toàn vẹn. Responsibility Bao gồm thuộc tính và phương thức. Thuộc tính mô tả đặc tính của lớp, thông tin mà lớp cần phải có để hoàn thành mục tiêu của phần mềm mà khách hàng yêu cầu. Phương thức được rút ra từ việc thực hiện các phân tích ngữ pháp dựa trên các xử lí của hệ thống. 5 nguyên tắc để phân phối responsibility cho các lớp Sự thông minh của hệ thống được phân phối công bằng Mỗi responsibility phải bắt đầu từ tổng quan Thông tin và hành vi liên quan đến responsibility phải được đặt trong cùng một lớp Mỗi thông tin cụ thể phải nằm trong một lớp đơn, không phân bố nhiều lớp Chia sẻ các responsibility giữa các lớp liên quan khi thích hợp Cộng tác (collaborator) Là hoàn thành responsibility theo 2 cách: Một lớp có thể sử dụng các phương pháp của lớp để thao tác trên các thuộc tính của nó, do đó hoàn thành responsibility cụ thể Một lớp có thể cộng tác với các lớp khác. Xác định cấu trúc và cây Khi lớp và đối tượng được xác định sử dụng mô hình CRC, người phân tích bắt đầu tập trung vào cấu trúc của mô hình lớp và cây tổng hợp. Cấu trúc toàn thể - bộ phận mô tả các đối tượng liên kết: Xác định chủ đề và các lớp con Một mô hình phân tích hệ thống phức tạp thường có hàng trăm lớp và hàng chục các cấu trúc. Do đó cần phải mô tả ngắn gọn cho các cấu trúc. Khi các lớp con cộng tác với nhau để hoàn thành một nhiệm vụ, yêu cầu nào đó của người sử dụng nào đó ta gộp chúng lại thành các chủ đề (subject) hay hệ thống con. Một chương chình sẽ bao gồm nhiều các hệ thống con. Mô hình hóa phân tích hướng đối tượng Mô hình hóa là gì? Giúp đơn giản hóa thế giới thực bằng các mô hình. Giúp hiểu rõ hơn về hệ thống dưới một góc nhìn nào đó. Tại sao phải mô hình hóa đối tượng Các mô tả về yêu cầu trong giai đoạn xác định yêu cầu: Chỉ mô tả chủ yếu các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực, chưa thể hiện rõ nét việc thực hiện các nghiệp vụ trên máy tính. Mô tả thông quá các văn bản dễ gây ra nhầm lẫn và không trực quan. è Cần phải mô hình hóa yêu cầu. Mô hình đối tượng – quan hệ Mô tả các thành phần tĩnh của một mô hình phân tích yêu cầu khách hàng. Thực hiện qua 3 bước: Một mạng đối tượng cộng tác được mô tả mà không có các đường có nhãn miêu tả mối quan hệ giữa các đối tượng. Đặt tên cho các nhãn, để tránh mơ hồ dùng một mũi tên chỉ ra hướng của quan hệ. Khi các mối quan hệ được thiết lập, nó được ước lượng để quyết định kiểu liên kết: 0:1, 1:1... Mô hình đối tượng - hành vi Mô hình đối tượng - hành vi chỉ ra cách thức một hệ thống phân tích yêu cầu khách hàng đáp ứng các sự kiện bên ngoài. Tạo ra mô hình này cần thực hiện qua 5 bước: Định giá các trường hợp sử dụng để hiểu đầy đủ về dãy các tương tác trong hệ thống. Xác định các sự kiện dẫn đến dãy tương tác và hiểu cách thức các sự kiện liên quan đến các đối tượng. Tạo ra event trace cho mỗi trường hợp sử dụng. Xây dựng một biểu đồ chuyển trạng thái cho hệ thống. Xem lại mô hình đối tượng – hành vi để kiểm tra tính chính xác nhất quán. UML Định nghĩa. UML là ngôn ngữ thống nhất trực quan giúp công việc được xử lý nhất quán, giảm thiểu lỗi xảy ra. UML xây dựng các mô hình chính xác, rõ ràng và đầy đủ. Các mô hình UML có thể kết nối trực tiếp với rất nhiều ngôn ngữ lập trình. UML giúp tài liệu hóa về kiến trúc, yêu cầu, kiểm thử, lập kế hoạch dự án, và quản lý việc bàn giao phần mềm. Các biểu đồ UML Biểu đồ use case (Use Case Diagram) Biểu đồ hoạt động (Activity Diagram) Biểu đồ tương tác (Interaction Diagrams) ▫ Biểu đồ trình tự (Sequence Diagram) ▫ Biểu đồ giao tiếp/cộng tác (Communication/Collaboration Diagram) Biểu đồ trạng thái (Statechart Diagram) Biểu đồ cấu trúc tĩnh (Static Structure Diagrams) ▫ Biểu đồ lớp (Class Diagram) ▫ Biểu đồ đối tượng (Object Diagram) Biểu đồ thực thi (Implementation Diagrams) ▫ Biểu đồ thành phần (Component Diagram) ▫ Biểu đồ triển khai (Deployment Diagram) Ví dụ biểu đồ use care ( Use Case Diagram ) Bài toán đặt ra: Trong công ty thời trang A phòng nhân sự có nhu cầu quản lý nhân viên của công ty sao cho dễ dàng hơn nên họ quyết định đặt bạn xây dựng cho họ một phần mềm là phần mềm quản lý Nhân viên của công ty. Hàng ngày thì nhân viên đi làm và chấm công bằng cách quét thẻ nhân viên qua một máy chấm công, hàng ngày nhân viên phòng nhân sự phải đưa cho các trưởng phòng là trong ngày này ai đi làm và ai vắng mặt của từng phòng tương ứng, ai tới muộn. Cuối tháng phải đưa bảng thống kê xuống phòng kế toán để tính lương cho các nhân viên trong công ty. Mỗi khi có nhu cầu tuyển thêm nhân viên mới thì phòng nhân sự phải thông báo lên các phương tiện, các trang web, sau đó nhân viên phòng nhân sự sẽ tiếp nhận đơn đăng ký của các ứng viên đã đăng ký và lên lịch phỏng vấn cho các ứng viên. Khi ứng viên đi phỏng vấn thì hệ thống sẽ phải đưa ra câu hỏi cho ứng viên từ ngân hàng câu hỏi sẵn có của công ty và ứng viên phải trả lời câu hỏi đó. Nếu có ứng viên nào được nhận thì tổ chức tiếp nhận họ vào công ty.(quá trình tiếp nhận chỉ là việc thêm nhân viên vào danh sách nhân viên vào phân vào phòng nào đó). Với trưởng phòng nhân sự thì được quyền sửa đổi thông tin của các nhân viên trong công ty.  Thỉnh thoảng các nhân viên phòng nhân sự cần tìm kiếm thông tin của một nhân viên để làm một công việc gì đó. Khi thêm một nhân viên mới thì kiểm tra xem nhân viên đó đã có trong công ty hay chưa(có trường hợp nhân viên nghĩ việc rồi sau đó một khoảng thời gian họ quay lại công ty làm). Biểu đồ Use Care như sau: III.3: Thiết kế hướng đối tượng Với các hệ thống hướng đối tượng chúng ta có thể xác định ra 4 tầng thiết kế như sau Tầng hệ thống con: Chứa mô tả của mỗi hệ thống con cho phép hệ thống đạt được các yêu cầu của khách hàng và thực hiện các hạ tầng kĩ thuật hỗ trợ yêu cầu khách hàng. Tầng lớp và đối tượng: Chứa phân lớp cho phép hệ thống được tạo ra bằng cách sử dụng tổng quát hóa và tính tăng dần đặc tả đích Tầng thông điệp: Chứa các chi tiết cho phép các đối tượng giao tiếp. Tầng trách nhiệm: Chứa các cấu trúc dữ liệu và các thuật toán thiết kế cho mọi thuộc tính và phương thức của lớp. Các hoạt động trong pha thiết kế Định nghĩa hình thức về các kiểu dữ liệu và các dịch vụ. Các dịch vụ có thể chuyển thành chức năng trong pha thiết kế. Thiết kế giao diện người dùng. Thiết kế cơ sở dữ liệu. Ưu điểm của thiết kế hướng đối tượng Dễ dàng bảo trì. Các đối tượng được hiểu như là các thực thể đứng một mình. Đối tượng là các thành phần tái sử dụng. Với một số HT, có thể ánh xạ ngay từ thực thể thực sang thực thể của hệ thống. Các phương pháp thiết kế Phương pháp Booch: Quy trình gồm các bước: Lập kế hoạch kiến trúc. Chiến lược thiết kế. Lập kế hoạch phát hành. Phương pháp Coad and Yourdon Phương pháp Jacobson: Quy trình phát triển so Jacobson đề nghị: Xem xét sự thích nghi để mô hình phân tích lí tưởng phù hợp với môi trường thế giới thực. Tạo ra các khối như các đối tượng thiết kế cơ bản. Tạo ra một biểu đồ tương tác cho biết cách các kích thích được chuyển đổi giữa các khối. Tổ chức các khối trong hệ thống con. Xem xét lại công việc thiết kế. Phương pháp Rambaugh: Quy trình phát triển so Jacobson đề nghị: Thực hiện thiết kế hệ thống. Thiết kế đối tượng quản lí. Thực hiện các kĩ thuật điều khiển đã xác định trong thiết kế hệ thống. Điều chỉnh các cấu trúc lớp để tăng sức mạnh kế thừa. Thiết kế thông điệp để thực hiện các mối quan hệ đối tượng. Đóng gói các lớp và các liên kết trong một module. Phương pháp Wirfs – Brock: Quy trình phát triển do Wirfs – Brock đề xuất: Xây dựng giao thức cho mỗi lớp. Tạo ra đặc tả thiết kế cho mỗi hệ thống con. Mô tả mỗi hệ thống con theo cách mà nó thực hiện. Thiết kế đối tượng. Thiết kế thông điệp. Quy trình thiết kế hướng đối tượng Thiết kế hệ thống Đặt tên cho các hệ thống con và các thành phần cơ bản Định danh các hệ thống con cho bộ xử lí. Lựa chọn chiến lược quản trị cơ sử dữ liệu. Xác định chuẩn cho phát triển. Xác định các yêu cầu cài đặt. Xác định đối tượng Một mô tả của đối tượng có thể là một trong 2 dạng sau: Mô tả giao thức: Thiết lập giao diện của đối tượng bằng cách xác định mỗi thông điệp mà đối tượng có thể nhận và các phương thức liên quan đối tượng thực hiện khi nhận được thông điệp. Mô tả thực hiện: Chỉ ra chi tiết thực hiện cho mỗi phương thức bằng cách chuyển thông điệp giữa các đối tượng. Chi tiết thực hiện bao gồm thông tin về các phần riêng của đối tượng. Giao thức mô tả là một tập các thông điệp và các chú thích tương ứng với mỗi thông điệp. Một mô tả thực hiện của một đối tượng cung cấp các chi tiết bên trong được yêu cầu để thực hiện nhưng không cần thiết cho viện dẫn. Người thiết kế đối tượng phải cung cấp mô tả thực hiện và do đó phải tạo ra chi tiết bên trong của đối tượng. Thiết kế thuật toán và cấu trúc dữ liệu Một thuật toán được tạo ra để thực hiện một đặc tả cho mỗi phương thức. Trong nhiều trường hợp, thuật toán chỉ là tính toán đơn giản hoặc dãy các thủ tục được thực hiện như một module phần mềm tự chứa. Cấu trúc dữ liệu được thiết kế đồng thời với thuật toán. Do các phương thức thao tác các thuộc tính của lớp, thiết kế cấu trúc dữ liệu phản ánh tốt nhất thuộc tính sinh ra trong thiết kế thuật toán của các phương thức tương ứng. Các kiểu phương thức chia làm 3 loại chính: Phương thức thao tác dữ liệu. Phương thức thực hiện tính toán. Phương thức điều khiển đối tượng cho sự kiện điều khiển. Để tối ưu hóa thiết kế hướng đối tượng. Rambaugh đã đưa ra các gợi ý sau: Xem lại mô hình đối tượng – quan hệ để đảm bảo rằng các thiết kế được thực hiện sử dụng tài nguyên hiệu quả và nới lỏng các ràng buộc thực hiện thêm vào các dư thừa nếu thấy cần thiết. Xem lại thuộc tính cấu trúc dữ liệu và các thuật toán tương ứng để tăng cường hiệu quả xử lí. Tạo ra thuộc tính mới để giữ thông tin thừa kế, do đó tránh được việc tính toán lại. Thiết kế lớp đối tượng Quá trình thiết kế lớp bao gồm các công đoạn sau: Xác định tên lớp đối tượng, xác định các quan hệ, xác định các thuộc tính, xác định các phương thức, xác định lớp cha của nó ( nếu có ). Tên lớp tuân theo một số quy tắc: - Tên lớp phải là danh từ. - Tên lớp phải có chu trình sống của mình, phải có thời điểm sinh ra, chết đi của đối tượng đó.  - Nó độc lập tương đối với các đối tượng khác (tức là nó sẽ độc lập hơn đối tượng khác một cách tương đối, về các mặt khác nó có thể phụ thuộc lẫn nhau giữa các đối tượng, nhưng nó là một thể thức ngoài đời có.). Phần xác định các quan hệ . Việc xác định các quan hệ giữa các lớp là việc phải lập ra một từ điển quan hệ giữa các lớp ví như: lớp A là con lớp B chẳng hạn. Nó cũng có một số qui tắc sau để qui ước là: tên quan hệ phải là động từ,... Nó nói lên sự phụ thuộc lẫn nhau của các đối tượng. Việc xác định các thuộc tính nó có một số qui định như sau: tên thuộc tính phải là danh từ, nó phải có sự lệ thuộc duy nhất vào đối tựng đang xét. Trong khi xác định thuộc tính cần chú ý: nếu thuộc tính đó phụ thuộc một đối tượng thì thuộc tính đó là thuộc tính của đối tượng, thuộc tính phụ thuộc vào nhiều đối tượng thì thuộc tính đó là thuộc tính quan hệ. Việc xác định phương thức thực chất đó là các hành động, công việc, của các phương thức đó, nên tên phương thức có nhiều loại phương thức trong xây dựng một lớp đối tượng: - Các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo mặc định, phương thức khởi tạo khi biêt một số thuộc tính của nó, phương thức phá hủy. - Phương thức thuộc nhóm cung cấp (phương thức get) - Các phương thức thuộc nhóm thiết lập (phương thức set) - Các phương thức xử lý tính toán: các phương thức này sẽ đóng vai trò là nơi thực thi các tính toán của từng class tương ứng trước khi thêm, hay làm gì đó với hệ thống dữ liệu. - Các phương thức thuôc nhóm kiểm tra. Đây là nơi kiểm tra các ràng buộc về dữ liệu cho class tương ứng của bạn. Một số quy ước để thiết kế một class. Để thiết kế một class trước tiên bạn phải đưa ra tên của nó là gì. Xác định các phương thức, thuộc tính cho class đó như đã nói ở trên Nếu các thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính liên hệ với nhau và nó có ngữ nghĩa cụ thể (ngoài đời có nó) thì nên tách nó ra thành một lớp độc lập với nhau. Khi 2 hay nhiều lớp có các thuộc tính chung thì nên tách thành một lớp cha của các lớp đó và các lớp đó được kế thừa từ lớp cha của nó. Khi gặp các thuộc tính có khả năng phân loại trong một số trường hợp thì ta tách các thuôc tính con của nó thành thuộc tính con tương ứng. Thiết kế một mô hình class. B1: Thiết kế các class như các cách ở trên đã nêu. B2: Xác định quan hệ giữa các class. B3: Xác định các quan hệ và bảng số của nó. Bảng số của 2 lớp là phần mô tả dữ liệu giữa 2 lớp đó. Có các quan hệ giữa các bảng số như sau: I- Một nhiều  1 A thì tương ứng với nhiều B 1B tương ứng với 1A II- Một - Một 1A thì tương ứng với 1B 1B tưng ứng với 1A. 1A tương ứng với 1B III - nhiều nhiều. 1 A tương ứng với nhiều B. 1B tương ứng với nhiều A   Thiết kế thành phần chương trình và giao diện Đây là khía cạnh quan trọng của chất lượng thiết kế phần mềm. Cách tiếp cận hướng đối tượng xác định đối tượng như một thành phần chương trình, bản thân nó liên kết với các thành phần khác. Chúng ta phải xác định được giao diện tồn tại giữa các đối tượng và toàn bộ cấu trúc của đối tượng. Giao diện yêu cầu phải dễ sử dụng. III.4: Cài đặt Thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình. Mục đích của luồng công việc này là: - Xác định cách thức viết mã cài đặt - Cài đặt các lớp và đối tượng như là các thành phần - Tích hợp vào trong một hệ thống có thể thực thi được Vai trò của cài đặt trong vòng đời phần mềm Cài đặt là trọng tâm của các bước lặp trong giai đoạn Xây dựng. Nó cũng được tiến hành trong giai đoạn Chi tiết để tạo ra khung kiến trúc khả thi. Cài đặt cũng được tiến hành trong giai đoạn chuyển giao để xử lí các lỗi được tìm thấy khi phát hành phiên bản beta. Quy trình cài đặt Cài đặt kiến trúc. Xác định các thành phần quan trọng về mặt kiến trúc, chẳng hạn như các thành phần có thể thi hành được. Kiến trúc sư bảo trì, tinh chế và cập nhật mô tả kiến trúc và các khung nhìn kiến trúc của mô hình cài đặt và triển khai. Xác định các thành phần quan trọng về mặt kiến trúc. Xác định các thành phần chạy được và ánh xạ chúng lên các nút. Tích hợp hệ thống. Mục tiêu: Tạo ra một kế hoạch tích hợp sản phẩm mô tả các sản phẩm được yêu cầu trong một bước lặp và các yêu cầu đối với mỗi sản phẩm. Tính hợp mỗi sản phẩm trước khi kiểm thử tích hợp. Lên kế hoạch sản phẩm tiếp theo. Tích hợp một sản phẩm Thu thập các phiên bản đúng của các hệ thống con cài đặt, biên dịch chúng và kết nối chúng vào trong một sản phẩm. Cài đặt một hệ thống con Cài đặt một hệ thống con để đảm bảo rằng một hệ thống con hoàn thành vai trò của nó trong mỗi sản phẩm. Bảo trì nội dung hệ thống con. III.5: Kiểm thử Sau khi một phần mềm được hoàn tất. Công việc cuối cùng là kiểm thử nhằm phát hiện lỗi bằng việc xem xét lại đặc tả, thiết kế và mã hoá. Là khâu mấu chốt đảm bảo chất lượng phần mềm. Nguyên tắc kiểm thử: Mọi hoạt động kiểm thử phải tuân theo yêu cầu của khách hàng. Kiểm thử phải được lập kế hoạch trước khi được tiến hành. Kiểm thử ban đầu ít, sau đó quá trình lớn dần. Không thể kiểm thử mọi khía cạnh. Để kiểm thử đạt kết quả cao nhất, quá trình kiểm thử phải có sự tham gia của bên thứ 3. Mục đích của kiểm thử là để đảm bảo chất lượng. Luồng công việc này liên quan đến: Xét duyệt sự tương tác giữa các thành phần trong hệ thống Xét duyệt sự tích hợp đúng đắn các thành phần Xét duyệt tất cả các yêu cầu đã được cài đặt Đảm bảo rằng phát hiện các lỗi trước khi triển khai hệ thống Các bước kiểm thử: Kiểm thử đơn vị Kiểm thử tích hợp Kiểm thử hệ thống Kiểm thử sự chấp nhận Kết luận Ngày nay các công ty đang phải đương đầu với việc co hẹp ngân sách. Điều này có nghĩa là quy mô đầu tư vào các dự án phần mềm bị cắt giảm rất lớn. Nó làm phát sinh nhu cầu về thời gian phát triển ngắn hơn và chi phí nhân lực thấp hơn. Với việc tăng khuynh hướng nghiêng về các hệ phân bố, một tập hợp các công cụ trực quan mới hiện đã có sẵn trên thị trường. Những công cụ này đem cùng chúng cách tiếp cận mới tới việc phát triển hệ thống. Các phương pháp luận truyền thống gây cản trở rất nhiều cho việc đáp ứng những thánh thức nói trên. Do đó có việc nổi lên của phương pháp luận hướng đối tượng. Phát triển các phần mềm theo hướng đối tượng đang là sự chọn lựa hàng đầu của các công ty hiện nay khi họ muốn phát triển một sản phẩm nào đó. Tài liệu tham khảo. Thạc Đình Cường. Nhập môn công nghệ phần mềm, NXB Giáo dục,10/2008. TS.Lương Mạnh Bá (chủ biên) – Lương Thanh Bình – Cao Tuấn Dũng – Nguyễn Thị Thu trang – Lê đức Trung, NXB Giáo dục, 2010. Lê Đức Trung. Công nghệ phần mềm, NXB Khoa học và Kĩ thuật, 4/2002. Ngô Trung Việt – Nguyễn Kim Ánh, Nhập môn kĩ nghệ phần mềm, NXB Khoa Học và Kĩ thuật, 2/2003. Roger S.Pressman (Ngô Trung Việt dịch), Kĩ nghệ phần mềm, NXB Giáo dục, 1997. Slide của trường Đại Học Bách Khoa Hà Nội và một số slide của một số trường Đại học khác. Nguyễn Tuấn Huy ( biên dịch ), Quá trình phát triển phần mềm, NXB Thống kê,2003

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

  • docxbao_cao_quy_trinh_phat_trien_phan_mem_huong_doi_tuong_6556.docx