intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Thiết kế phần mềm - PGS.TS. Huỳnh Xuân Hiệp

Chia sẻ: Thanh Hoa | Ngày: | Loại File: PDF | Số trang:299

158
lượt xem
24
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Thiết kế phần mềm" cung cấp cho người đọc các kiến thức: Tổng quan, thiết kế dữ liệu/lớp, thiết kế kiến trúc, thiết kế giao diện, thiết kế thành phần, thiết kế hướng mẫu, thiết kế hướng web, thiết kế hướng dịch vụ. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Thiết kế phần mềm - PGS.TS. Huỳnh Xuân Hiệp

  1. PGS.TS. Huỳnh Xuân Hiệp BỘ MÔN CÔNG NGHỆ PHẦ N MỀ M Khoa CNTT& TT – Trường ĐH Cần Thơ 1
  2.  Tổng quan  Thiết kế dữ liệu/lớp  Thiết kế kiến trúc  Thiết kế giao diện  Thiết kế thành phần  Thiết kế hướng mẫu  Thiết kế hướng web  Thiết kế hướng dịch vụ 2
  3. [1] IBM Rational Software, DEV496 Mastering IBM Rational Software Architect – Acme Case Study (Part No. 800-027176-000), IBM Rational University, 2005. [2] IBM Rational Software, DEV496 Mastering IBM Rational Software Architect – Student Exercise Guide (Part No. 800-027175-000), IBM Rational University, 2005. [3] Julia H. Allen et al., Software Security Engineering, Pearson Education, 2008. [4] Barry W. Boehm, Software Engineering, IEEE Computer Society - Wiley, 2007. [5] Alphonse Carlier, Le développement du logiciel, Hermes, 1995. [6] Scott E. Donaldson and Stanley G. Siegel, Successful Software Development (2nd edition), Prentice Hall, 2000. [7] Christopher Harris-Jones, Knowledge Based Systems Methods: A Practitioners’ Guide, Prentice Hall, 1995. [8] IEEE, Guide to the Software Engineering Body of Knowledge - SWEBOK®, IEEE Computer Society, 2004. [9] IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminilogy, IEEE, 1990. [10] Stephen H. Kan, Metrics and Models in Software Quality Engineering, Addison-Wesley, 2002. [11] Per Kroll and Philippe Kruchten, The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, Addison Wesley, 2003. [12] Philippe Kruchten, The Rational Unified Process: An Introduction (2nd, 3rd editions), Addison Wesley, 2000, 2003. [13] Craig Larman, Agile and Iterative Development: A Manager's Guide, Addison Wesley, 2003. [14] Timothy C. Lethbridge and Robert Laganière, Obiect-Oriented Software Engineering: Practical Software Development Using UML and Java, McGraw-Hill, 2002. 3
  4. [15] Raymond J. Madachy, Software Process Dynamics, IEEE Press – Wiley, 2008. [16] Mario E. Moreira, Software Configuration Management Implementation Roadmap, Wiley, 2004. [17] Rational Software White Paper, Reaching CMM Levels 2 and 3 with the Rational Unified Process, Rational Software Corporation, 2000. [18] John W. Rittinghouse, Managing Software Deliverables: A Software Development Management Methodology, Digital Press – Elsevier, 2004. [19] Robert E. Park, Software Size Measurement: A Framework for Counting Source Statements, Technical Report CMU/SEI-92-TR-020 ESC-TR-92-020, 1996. [20] Roger S. Pressman, Software Engineering: A Practitioner’s Approach (5th, 6th, 7th editions), McGraw-Hill, 2003, 2005, 2009. [21] Stephen R. Schach, Object-Oriented and Classical Software Engineering (5th,6th,7th, 8th editions), McGraw-Hill, 2002, 2005, 2007, 2011. [23] Ian Sommerville, Software Engineering (6th,8th editions), Addison-Wesley, 2001, 2006. [24] Jeff Tian, Software Quality Engineering: Testing Quality Assurance and Quantifiable Improvement, IEEE Computer Society - Wiley, 2005. [25] Hans van Vliet, Software Engineering: Principals and Practice (2nd edition), Wiley, 2000. [26] MK.PUB, Design Patterns, Nhà xuất bản Phương Đông, 2005. [27] http://www.rspa.com/ [28] http://www.sei.cmu.edu/ [29] http://computingcareers.acm.org/ 4
  5. TỔNG QUAN (Overview) 5
  6.  Thiết kế phần mềm bao gồm tập hợp các nguyên tắc, khái niệm và thực hành dẫn đến sự phát triển của một hệ thống chất lượng cao hoặc sản phẩm.  Nguyên tắc thiết kế thiết lập một triết lý quan trọng mà sẽ hướng dẫn người thiết kế trong công việc thiết kế phải thực hiện.  Khái niệm thiết kế phải được hiểu trước khi cơ chế thực hành thiết kế được áp dụng.  Việc thực hành thiết kế dẫn đến việc tạo ra các đại diện khác nhau của phần mềm.  Thiết kế đóng vai trò then chốt cho sự thành công của công nghệ phần mềm. 6
  7.  Mục đích của thiết kế là tạo ra một mô hình hoặc một miêu tả thể hiện độ vững chắc, tính thương phẩm và sự thích thú. Để thực hiện điều này, cần phải thực hành đa dạng hóa (diversification) và sau đó hội tụ (convergence). 7
  8.  Quyết định thiết kế với các thiết kế thay thế từ những lựa chọn khác nhau: ◦ Đường thẳng biểu diễn cho các tùy chọn ◦ Đường đậm nét là tập hợp các quyết định được đưa ra 8
  9.  Thiết kế phần mềm nằm ở lõi kỹ thuật (technical kernel) của công nghệ phần mềm và được áp dụng không phụ thuộc vào mô hình quy trình phần mềm được sử dụng.  Bắt đầu từ ngay khi yêu cầu phần mềm đã được phân tích và mô hình hóa, thiết kế phần mềm là hành động công nghệ phần mềm cuối cùng trong hoạt động mô hình hóa (modeling) và đặt ra giai đoạn xây dựng (sinh mã lệnh và kiểm thử). 9
  10.  Mỗi một phần tử trong mô hình yêu cầu (requirements model) cung cấp thông tin đó là cần thiết để tạo ra bốn mô hình thiết kế (design model) cần thiết cho một đặc tả thiết kế hoàn chỉnh.  4 mô hình thiết kế: ◦ Thiết kế dữ liệu/lớp (data/class design) ◦ Thiết kế kiến trúc (architectural design) ◦ Thiết kế giao diện (interface design) ◦ Thiết kế thành phần (component design) 10
  11. 11
  12. 12
  13.  Thiết kế dữ liệu/lớp chuyển đổi các mô hình lớp (class models) vào thiết kế lớp một cách rõ ràng và các cấu trúc dữ liệu cần thiết theo yêu cầu để cài đặt phần mềm.  Các đối tượng (objects) và các mối quan hệ (relationships) được xác định trong sơ đồ CRC (class- responsibility-collaboration) và nội dung dữ liệu chi tiết được mô tả bởi các thuộc tính lớp và ký hiệu khác tạo cơ sở cho các hoạt động thiết kế dữ liệu.  Một phần của thiết kế lớp có thể được kết hợp với thiết kế của kiến trúc phần mềm.  Thiết kế lớp chi tiết hơn được thực hiện khi thực hiện thiết kế mỗi thành phần của phần mềm. 13
  14.  Thiết kế kiến ​trúc xác định mối quan hệ giữa các phần tử cấu trúc chính của phần mềm.  Các phong cách kiến ​trúc (architectural styles) và các mẫu thiết kế (design patterns) có thể được sử dụng để đạt được các yêu cầu quy định cho hệ thống, và những rang buộc ảnh hưởng đến cách thức mà kiến trúc có thể được thực hiện.  Thiết kế kiến ​trúc miêu tả khung của một hệ thống dựa trên máy tính lấy được từ mô hình yêu cầu. 14
  15.  Thiết kế giao diện mô tả như thế nào phần mềm giao tiếp với: ◦ Các hệ thống có tương tác ◦ Con người người sử dụng  Một giao diện có nghĩa là một luồng thông tin (ví dụ, dữ liệu và/hoặc kiểm soát) và một loại hình cụ thể của hành vi  Các kịch bản sử dụng (usage scenarios) và mô hình hành vi (behavioral model) cung cấp nhiều thông tin cần thiết cho thiết kế giao diện 15
  16.  Thiết kế thành phần chuyển đổi các phần tử cấu trúc của kiến trúc phần mềm thành một mô tả về thủ tục của các thành phần phần mềm  Thông tin thu được từ các mô hình dựa trên lớp (class- based model), các mô hình luồng (flow model), và các mô hình hành vi (behavioral model) phục vụ như là cơ sở để thiết kế thành phần 16
  17.  Trong quá trình thiết kế sẽ hình thành các quyết định mà cuối cùng sẽ ảnh hưởng đến sự thành công của việc xây dựng phần mềm và thực sự quan trọng đó là sự dễ dàng để phần mềm có thể được bảo trì.  Tầm quan trọng của thiết kế phần mềm có thể được ghi với một từ duy nhất: chất lượng.  Thiết kế là nơi mà chất lượng được nuôi dưỡng trong công nghệ phần mềm.  Thiết kế cung cấp các mô tả của phần mềm để có thể đánh giá được về chất lượng. 17
  18.  Thiết kế là cách duy nhất mà ta có thể thông dịch chính xác yêu cầu của các bên liên quan vào một sản phẩm phần mềm hoàn chỉnh hoặc hệ thống.  Thiết kế phần mềm phục vụ như là nền tảng cho tất cả các hoạt động công nghệ phần mềm và hỗ trợ phần mềm kèm theo.  Không có thiết kế, ta sẽ có nguy cơ xây dựng một hệ thống không ổn định: ◦ thất bại khi các thay đổi nhỏ được thực hiện ◦ khó khăn để đánh giá chất lượng mặc dù đã đến thời gian cuối của tiến trình phần mềm (khi thời gian còn ngắn và đã sử dụng nhiều kinh phí) 18
  19.  Thiết kế phần mềm là một tiến trình lặp đi lặp lại (iterative process) thông qua đó yêu cầu được chuyển thành một "kế hoạch chi tiết" để xây dựng phần mềm.  Kế hoạch chi tiết mô tả một cái nhìn toàn diện của phần mềm: ◦ Các thiết kế được thể hiện ở một mức độ trừu tượng cao-một mức độ mà có thể được truy vết trực tiếp đến mục tiêu cụ thể của hệ thống và dữ liệu chi tiết hơn, chức năng, và các yêu cầu về hành vi. ◦ Với việc lặp đi lặp lại của thiết kế, các tinh chỉnh tiếp theo dẫn đến việc mô tả thiết kế ở các mức trừu tượng thấp hơn nhiều. Các tinh chỉnh này vẫn có thể được truy vế từ yêu cầu, nhưng kết nối là tinh tế hơn. 19
  20.  Một thiết kế nên thể hiện một kiến ​trúc mà ◦ đã được tạo ra bằng cách sử dụng phong cách kiến ​trúc hoặc mẫu dễ nhận biết ◦ bao gồm các thành phần mà thể hiện các đặc tính thiết kế tốt ◦ có thể được cài đặt theo một cách thức tiến hóa, do đó sẽ tạo điều kiện cho việc cài đặt và kiểm thử  Một thiết kế nên được mô đun hóa, có nghĩa là các phần mềm nên được phân chia thành các phần tử hoặc hệ thống con một cách hợp lý  Một thiết kế cần chứa các biểu diễn khác nhau của dữ liệu, kiến trúc, giao diện và thành phần 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2