Bài giảng cung cấp cho người học các kiến thức: Máy tính số và công dụng, chương trình máy tính & phần mềm, đời sống phần mềm, các mục tiêu của việc phát triển phần mềm, các hoạt ₫ộng chức năng trong phát triển phần mềm,... Mời các bạn cùng tham khảo nội dung chi tiết.
Chương Tổng quan phát triển phần mềm 1.1 Máy tính số cơng dụng 1.2 Chương trình máy tính & phần mềm 1.3 Đời sống phần mềm 1.4 Các mục tiêu việc phát triển phần mềm 1.5 Các hoạt ₫ộng chức phát triển phần mềm 1.6 Qui trình phát triển phần mềm 1.7 Vài thơng tin nắm bắt yêu cầu 1.8 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số công dụng Các thiết bị cụ thể hóa : Con người thơng minh ₫ộng vật khác nhiều Ta ₫ã chế tạo ngày nhiều cơng cụ, thiết bị ₫ể hỗ trợ hoạt ₫ộng Trong giai ₫oạn dài ban ₫ầu, ta chế tạo theo hướng cụ thể hóa, nghĩa cơng cụ, thiết bị thực ₫ược vài công việc cụ thể ₫ó Thí dụ, chổi ₫ể qt, radio ₫ể bắt nghe ₫ài audio Các công cụ, thiết bị cụ thể hóa ₫ược chế tạo ngày tinh vi, phức tạp thực nhiều công việc trước ₫ây Khuyết ₫iểm thiết bị cụ thể hóa thiết bị giải công việc Trong sống, ta cần thực nhiều cơng việc, ₫ó ta phải chế tạo nhiều thiết bị việc khơng có dấu hiệu chấm dứt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số cơng dụng Thiết bị tổng qt hóa - Máy tính số (digital computer) : thiết bị, thay thực vài chức cụ thể, sát với nhu cầu ₫ời thường người, thực số hữu hạn chức (tập lệnh), lệnh sơ khai chưa giải trực tiếp ₫ược nhu cầu ₫ời thường người, biết cách tổ chức, xếp lệnh với ₫ộ dài ₫ịnh thứ tự ₫ịnh ₫oạn lệnh giải ₫ược cơng việc có nghĩa mà người cần Cơ chế thực lệnh tự ₫ộng, bắt ₫ầu từ lệnh ₫ược ₫ịnh ₫ó lệnh cho ₫ến lệnh cuối Danh sách lệnh ₫ược thực ₫ược gọi chương trình Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số cơng dụng Bất kỳ cơng việc (bài tốn) ngồi ₫ời ₫ược chia thành trình tự nhiều cơng việc nhỏ Trình tự cơng việc nhỏ ₫ược gọi giải thuật giải cơng việc ngồi ₫ời Mỗi cơng việc nhỏ ₫ược chia nhỏ cịn phức tạp, cơng việc ngồi ₫ời ₫ược miêu tả trình tự lệnh máy (chương trình ngơn ngữ máy) Ưu ₫iểm máy tính số ta cần chế tạo lần, theo thời gian ta nhờ chạy chương trình (phần mềm) khác ₫ể thực toán khác Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số công dụng Vấn ₫ề mấu chốt việc dùng máy tính giải cơng việc ngồi ₫ời lập trình (₫ược hiểu nơm na qui trình xác ₫ịnh trình tự ₫úng lệnh máy ₫ể thực cơng việc) Cho ₫ến nay, lập trình cơng việc người (với trợ giúp ngày nhiều máy tính) Với cơng nghệ phần cứng nay, ta chế tạo máy tính mà tập lệnh máy sơ khai, lệnh máy thực cơng việc nhỏ ₫ơn giản cơng việc ngồi ₫ời thường tương ₫ương với trình tự lớn (hàng triệu) lệnh máy Lập trình ngơn ngữ máy phức tạp, tốn nhiều thời gian, cơng sức, kết khó bảo trì, phát triển Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số cơng dụng Ta muốn có máy luận lý với tập lệnh cao cấp gần gủi với người (₫ược ₫ặc tả ngơn ngữ lập trình) Ta thực máy máy có sẵn (lúc ₫ầu máy vật lý) + chương trình dịch Gọi ngơn ngữ máy vật lý N0 Trình biên dịch ngơn ngữ N1 sang ngôn ngữ N0 nhận ₫ầu vào chương trình ₫ược viết ngơn ngữ N1, phân tích lệnh N1 chuyển thành danh sách lệnh ngơn ngữ N0 có chức tương ₫ương Để viết chương trình dịch từ ngơn ngữ N1 sang N0 dễ dàng, ₫ộ phức tạp lệnh ngôn ngữ N1 không cao so với lệnh ngôn ngữ N0 Có loại chương trình dịch : trình biên dịch (compiler) trình thơng dịch (interpreter) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt I Máy tính số cơng dụng Sau có máy luận lý hiểu ₫ược ngơn ngữ luận lý N1, ta ₫ịnh nghĩa thực máy luận lý N2 theo cách tiếp tục ₫ến ta có máy luận lý hiểu ₫ược ngôn ngữ Nm gần gũi với người, dễ dàng miêu tả giải thuật toán cần giải Nhưng qui trình chưa có ₫iểm dừng, với u cầu ngày cao kiến thức ngày nhiều, người ta tiếp tục ₫ịnh nghĩa ngôn ngữ với tập lệnh ngày gần gũi với người ₫ể miêu tả giải thuật dễ dàng, gọn nhẹ sáng Hiện nay, ta thường viết phần mềm ngôn ngữ cấp cao Java, C# Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt II Chương trình máy tính – Phần mềm Chương trình máy tính giải thuật cụ thể ₫ể giải cơng việc ngồi ₫ời mà công việc giải thuật ₫ược miêu tả lệnh máy cụ thể Chương trình máy tính chương trình ngơn ngữ máy, chạy trực tiếp CPU phần cứng máy Chương trình máy tính chương trình ngơn ngữ cấp cao C, C++, C#, Java, Trong trường hợp ta phải dùng chương trình dịch chương trình ngơn ngữ máy có hành vi tương ₫ương trước nhờ CPU máy tính chạy trực tiếp Đối với ứng dụng lớn phức tạp, ta nên chọn ngôn ngữ cấp cao ₫ể xây dựng Hiện ta ₫ã xây dựng dùng nhiều chương trình nhiều lĩnh vực ₫ời sống xã hội Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt II Phần mềm – Phân loại Tùy vào góc nhìn mà ta phân loại phần mềm Thí dụ, dựa vào cách thức hoạt ₫ộng phần mềm ₫ối với người dùng ta phân phần mềm loại sau : Phần mềm ₫ại chúng : ₫ược viết bán cho khách hàng muốn dùng chúng Thí dụ phần mềm ₫ồ họa PhotoShop, tool quản lý dự án, phần mềm CAD Phần mềm cá nhân hóa : ₫ược viết cho khách hàng ₫ặc biệt, riêng lẻ theo yêu cầu riêng họ Thí dụ hệ thống ₫iều khiển nhúng, phần mềm ₫iều khiển không lưu, phần mềm kiểm sốt giao thơng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide https://fb.com/tailieudientucntt II Phần mềm – Phân loại Nếu dựa vào khả thay ₫ổi hành vi phần mềm ₫ối với người dùng ta phân phần mềm loại sau : Phần mềm cụ thể hóa hóa : ln cung cấp tính hành vi cố ₫ịnh, cho dù ₫ược chạy lần thứ Phần mềm tổng quát hóa : thay ₫ổi tính hành vi theo thời gian theo yêu cầu người dùng Thí dụ MS Word phần mềm soạn thảo văn bản, user cá nhân hóa theo thời gian ₫ể biến thành ứng dụng có chức Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 10 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm Qui trình RUP (Rational Unified Process) : qui trình phát triển phần mềm hợp hãng Rational, hãng Rational khởi xướng trì Nó dựa việc dùng kết hợp ₫ối tượng ₫ể cấu thành phần mềm Nó có nhiều ưu ₫iểm so với qui trình khác, ₫ó ₫ược dùng chủ yếu cơng ty phát triển phần mềm Trong chương lại, ta tập trung giới thiệu thông tin yếu qui trình phát triển Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 32 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm Thuật ngữ "Cơng nghệ phần mềm" (Software engineering) ₫ể nói lý thuyết, phương pháp, qui trình tiện ích ₫ược dùng việc phát triển phần mềm chuyên nghiệp hầu tối thiểu chi phí, nâng cao tính ₫úng ₫ắn, bền vững phần mềm Trong nội dung cơng nghệ phần mềm qui trình phát triển phần mềm chủ yếu Trong qui trình phát triển ₫ược dùng qui trình RUP ₫ược dùng phổ biến Qui trình dựa tảng hướng ₫ối tượng Ngôn ngữ UML ₫ược dùng ₫ể ₫ặc tả hầu hết tài liệu tạo qui trình phát triển RUP Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 33 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Qui trình phát triển ? Nói theo kiể thực dụng qui trình phát triển gồm tất tài liệu miêu tả (who) tham gia, người phải làm (what), cơng việc ₫ược làm (when), làm làm theo cách (how) ₫ể ₫ạt miêu tiêu ₫ề Các yêu cầu ban ₫ầu hay yêu cầu phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Qui trình phát triển phần mềm Hệ thống phần mềm ban ₫ầu hay hệ thống Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 34 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Artifacts : miêu tả kết ₫ược tạo sau hoạt ₫ộng chức hay sau bước lặp ₫ó Ta phải trì artifacts theo thời gian Artifacts thường ₫ược miêu tả nhiều ₫ịnh dạng hy ngôn ngữ khác nhau, ₫ó ngơn ngữ UML ₫ược dùng chủ yếu Tùy theo mức ₫ộ ta có Vision, Baseline Architecture, initial capability, product release (version) Workers : tất phần tử tham gia phát triển phần mềm, cho dù họ Ở ₫ây ta quan tâm chủ yếu ₫ến vai trị worker, khơng quan tâm ₫ến người cụ thể số lượng người cụ thể Thí dụ architects, analysts, designers, implementers, testers,… Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 35 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Phases Core Workflows Inception Elaboration Construction Transition Requirements An iteration in the elaboration phase Analysis Design Implementation Test P r e lim in a ry Ite tio n (s ) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com ite r #1 ite r #2 ite r #n ite r #n+1 ite r #n +2 ite r #m ite r #m +1 Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 36 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP UML diagrams provide views into each model Requirements Use Case Model Analysis Model Analysis Design Model Design Implementation Each workflow is associated with one or more models Depl Model Impl Model Test Model Test Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 37 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Use Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Sequence Diagrams Depl Model Collaboration Diagrams Impl Model Statechart Diagrams Test Model Activity Diagrams Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 38 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Use Case Diagrams Class Diagrams Component Diagrams Deployment Diagrams Object Diagrams Incl subsystems and packages Sequence Diagrams Depl Model Collaboration Diagrams Impl Model Statechart Diagrams Test Model Activity Diagrams Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 39 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Depl Model Use Case Diagrams Class Diagrams Component Diagrams Deployment Diagrams Sequence Diagrams Statechart Diagrams Test Model Activity Diagrams CuuDuongThanCong.com Incl active classes and components Collaboration Diagrams Impl Model Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Object Diagrams Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 40 https://fb.com/tailieudientucntt VI Qui trình phát triển phần mềm RUP Use Case Diagrams Use Case Model Class Diagrams Component Diagrams Analysis Model Deployment Diagrams Design Model Depl Model Impl Model Test Model Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Object Diagrams Test model refers to all other models and uses corresponding diagrams Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 41 https://fb.com/tailieudientucntt VII Vài thông tin nắm bắt yêu cầu Nắm bắt yêu cầu (Requirements) xác ₫ịnh xác, rõ ràng ₫ầy ₫ủ yêu cầu chức phi chức chương trình cầ xây dựng Sau nắm bắt ₫ược yêu cầu, ta phải lập tài liệu ₫ể ₫ặc tả yêu cầu ₫ó Ta dùng use-case bảng ₫ặc tả use-case ₫ể ₫ặc tả yêu cầu chức Ta dùng kịch thuộc tính chất lượng ₫ể miêu tả thuộc tính chất lượng phần mềm tương ứng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 42 https://fb.com/tailieudientucntt VII Vài thông tin nắm bắt yêu cầu Thí dụ ta ₫ặc tả u cầu chức ₫ăng ký khóa học SV bảng ₫ặc tả chức sau (xem file Word ₫ính kèm) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 43 https://fb.com/tailieudientucntt VII Vài thơng tin nắm bắt u cầu Thí dụ ta ₫ặc tả u cầu tính dễ hiệu chỉnh chương trình kịch thuộc tính chất lượng sau ₫ây : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Môn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 44 https://fb.com/tailieudientucntt VII Vài thông tin nắm bắt yêu cầu Các yêu cầu chức phi chức nắm bắt ₫ược ₫ược dùng làm thơng tin ₫ầu vào cho hoạt ₫ộng phân tích thiết kế Hoạt ₫ộng phân tích thiết kế gồm mảng : Phân tích thiết kế kiến trúc tổng thể chương trình Phân tích thiết kế chức cụ thể Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 45 https://fb.com/tailieudientucntt VIII Kết chương Chương ₫ã giới thiệu cho tranh tồn cục thiết bị tổng qt hóa máy tính số, cách thức nhờ máy tính thực dùm tốn, chi phí xây dựng trì phần mềm, hoạt ₫ộng chức phát triển phần mềm, qui trình phát triển phần mềm ý nghĩa thuật ngữ công nghệ phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 46 https://fb.com/tailieudientucntt ... hoạt ₫ộng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2 010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 11 https://fb.com/tailieudientucntt... (s ) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2 010 CuuDuongThanCong.com ite r #1 ite r #2 ite r #n ite r #n +1 ite r #n +2 ite r #m ite r #m +1 Môn : Các mẫu thiết kế hướng. .. chương trình Phân tích thiết kế chức cụ thể Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2 010 CuuDuongThanCong.com Mơn : Các mẫu thiết kế hướng ₫ối tượng Chương : Tổng quan phát