Thiết kế phần mềm - Tổng quan

 Service-oriented life cycle  Service-oriented discovery and analysis  Service-oriented business integration  Service-oriented design model  Service-oriented software architecture modeling principles

pdf299 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1294 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế phần mềm - Tổng quan, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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  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 [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 [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] [28] [29] 4 TỔNG QUAN (Overview) 5  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  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  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  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  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 12  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  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  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  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  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  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  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  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  Một thiết kế nên dẫn đến các cấu trúc dữ liệu phù hợp cho các lớp để được cài đặt và được rút ra từ các mẫu dữ liệu dễ nhận biết  Một thiết kế nên dẫn đến các thành phần mang những đặc tính chức năng độc lập  Một thiết kế nên dẫn đến giao diện làm giảm sự phức tạp của các kết nối giữa các thành phần và với môi trường bên ngoài 21  Một thiết kế nên được bắt nguồn bằng sử dụng một phương pháp lặp được dẫn dắt bởi thông tin thu được trong quá trình phân tích yêu cầu phần mềm  Một thiết kế cần được thể hiện bằng cách sử dụng ký hiệu truyền tải có hiệu quả ý nghĩa của nó 22  Quá trình thiết kế không nên bị “bó hẹp tầm nhìn"  Thiết kế phải lần vết được đến mô hình phân tích  Thiết kế không được mất thời gian vào những cái đã có  Thiết kế nên "giảm thiểu khoảng cách trí tuệ" giữa phần mềm và các vấn đề như nó đã tồn tại trong thế giới thực  Thiết kế phải thể hiện tính thống nhất và tích hợp/toàn vẹn  Thiết kế phải được cấu trúc để thích ứng với sự thay đổi 23  Việc thiết kế phải được cấu trúc để làm giảm nhẹ nhàng, ngay cả khi đang gặp phải dữ liệu, sự kiện hoặc điều kiện hoạt động bất thường  Thiết kế không phải là viết mã lệnh, viết mã lệnh không phải là thiết kế  Thiết kế phải được đánh giá về chất lượng như khi nó được tạo ra, không phải trên thực tế diễn ra sau đó  Thiết kế phải được xem xét để giảm thiểu lỗi khái niệm (ngữ nghĩa) 24  Tính năng (functionality) được thẩm định bằng cách đánh giá một tập hợp các tính năng và các khả năng của chương trình, mức độ tổng quát của các hàm đã được phân phối và mức độ an toàn của toàn bộ hệ thống  Khả dụng (usability) được đánh giá bằng cách xem xét các nhân tố con người, thẩm mỹ tổng thể, nhất quán, và tài liệu  Độ tin cậy (reliability) được đánh giá bằng cách đo tần số và mức độ nghiêm trọng của thất bại, tính chính xác của kết quả đầu ra, giá trị mean-time-to-failure (MTTF), khả năng phục hồi từ thất bại, và khả năng dự đoán của chương trình 25  Hiệu suất (performance) được đo bằng cách xem xét tốc độ xử lý, thời gian đáp ứng, tiêu thụ tài nguyên, băng thông, và hiệu quả  Tính năng hỗ trợ (supportability) kết hợp các khả năng mở rộng các chương trình (tính mở rộng), khả năng thích ứng, khả năng phục vụ (ba thuộc tính này đại diện cho một thuộc tính phổ biến hơn là bảo trì) và ngoài ra còn có khả năng kiểm tra, khả năng tương thích, khả năng cấu hình (khả năng tổ chức và kiểm soát các yếu tố của cấu hình phần mềm), tính dễ dàng mà một hệ thống có thể được cài đặt và tính dễ dàng mà vấn đề có thể được bản địa hóa 26  Trừu tượng hóa (abstraction) - Mức độ trừu tượng hóa (levels of abstraction) - Trừu tượng hóa thu ̉ tục (procedural abstraction) - Trừu tượng hóa dữ liệu (data abstraction) - Trừu tượng hóa điều khiển (control abstraction)  Tinh chỉnh (refinement)  Mô đun hóa (modularity): phân tích được (decomposability), tổng hợp (composability), dễ hiểu (understandability), liên tục (continuity), bảo vệ (protection) 27 28  Kiến trúc phần mềm (software architecture) ◦ Đặc tính cấu trúc (structural properties) ◦ Đặc tính hàm ngoài (extra-functional properties) ◦ Họ các hê ̣ thống liên quan (families of related systems)  Kiến trúc phần mềm ◦ Mô hình cấu trúc (structural models) ◦ Mô hình khung (framework models) ◦ Mô hình động (dynamic models) ◦ Mô hình tiến trình (process models) ◦ Mô hình chức năng (functional models) ◦ Ngôn ngữ mô tả kiến trúc (architectural description language - ADLs) 29  Mẫu thiết kế (design patterns) ◦ Được áp dụng cho công việc hiện tại ◦ Có thể được tái sử dụng (tiết kiệm thời gian thiết kế) ◦ Có thể phục vụ như một hướng dẫn để phát triển một cách tương tự, nhưng chức năng hoặc cấu trúc khác với mẫu  Tách mối quan tâm (separation of concerns)  Thủ tục phần mềm (software procedure, program structure)  Thông tin ẩn (information hiding) 30  Độc lập chức năng (functional independence) ◦ Gắn kết (cohesion): coincidentally cohesive, logically cohesive, temporal cohesion, procedural cohesion, communicational cohesion ◦ Nối kết (coupling): data coupling, stamp coupling, control coupling, external coupling, common coupling, content coupling  Khía cạnh (aspect)  Tái cấu trúc (refactoring) 31 32  Cần thiết kế các lớp (design classes) để tinh chỉnh các lớp trong giai đoạn phân tích bằng cách cung cấp thiết kế chi tiết mà sẽ cho phép các lớp được cài đặt, và cài đặt một cơ sở hạ tầng phần mềm hỗ trợ các giải pháp nghiệp vụ.  Năm loại khác nhau của các lớp thiết kế mà từng dạng đại diện cho một tầng khác nhau của thiết kế kiến ​​trúc ◦ Lớp giao diện người dùng (user interface class) ◦ Lớp lĩnh vực nghiệp vụ (business domain class) ◦ Lớp tiến trình (process class) ◦ Lớp kéo dài (persistent class) ◦ Lớp hệ thống (system class) 33  4 đặc tính của một thiết kế tốt ◦ Hoàn chỉnh và đầy đủ (complete and sufficient) ◦ Nguyên thủy (primitiveness) ◦ Gắn kết cao (high cohesion) ◦ Nối kết thấp (low coupling) 34 35  Mô hình thiết kế có thể được xem trong hai chiều khác nhau: ◦ Chiều tiến trình (process dimension) ◦ Chiều trừu tượng hóa (abstraction dimension)  Chiều quá trình chỉ ra sự tiến hóa của mô hình thiết kế như là công việc thiết kế được thực thi như là một phần của tiến trình phần mềm  Chiều trừu tượng hóa đại diện cho mức độ chi tiết của mỗi phần tử trong mô hình phân tích được chuyển đổi sang một thiết kế tương đương và sau đó được tinh chỉnh một cách lặp đi lặp lại 36 37 38 39 40 THIẾT KẾ DỮ LIỆU/LỚP (Data/Class Design) 41  Phân tích yêu cầu (requirements analysis) cho ra kết quả là các đặc tả đặc điểm hoạt động của phần mềm, chỉ ra giao diện phần mềm với các phần tử của hệ thống khác, và thiết lập các ràng buộc mà phần mềm phải đáp ứng.  Phân tích yêu cầu cho phép bạn (kỹ sư phần mềm, chuyên gia phân tích hoặc xây dựng mô hình) để giải thích về các yêu cầu cơ bản được thiết lập trong các nhiệm vụ thành lập (inception), gợi mở (elicitation), và đàm phán (negotiation) là một phần của kỹ thuật yêu cầu (requirements engineering). 42  Mô hình hóa các yêu cầu (requirements analysis) tạo ra các dạng mô hình sau đây: ◦ Mô hình dựa trên kịch bản (scenario-based model) ◦ Mô hình dữ liệu (data model) ◦ Mô hình hướng lớp (class-oriented model) ◦ Mô hình hướng luồng (flow-oriented model) ◦ Mô hình hành vi (behavioral model)  Mục tiêu (objective) và triết lý (philosophy) ◦ Cái gì (what)? ◦ Như thế nào (how)?  Phân tích lĩnh vực (domain analysis)  Phát triển các trường hợp sử dụng (use case) 43 44 45  Hệ thống con (subsystem)  Thành phần (component)  Mô đun (modules)  Mô hình nên tập trung vào các yêu cầu mà có thể nhìn thấy trong vấn đề hoặc lĩnh vực nghiệp vụ. Mức độ trừu tượng cần được tương đối cao  Mỗi phần tử của mô hình yêu cầu nên thêm vào một sự hiểu biết tổng thể các yêu cầu phần mềm và cung cấp cái nhìn sâu sắc vào lĩnh vực thông tin, chức năng, và hành vi của hệ thống.  Trì hoãn xem xét của cơ sở hạ tầng và các mô hình không có chức năng khác cho đến khi thiết kế. 46  Giảm thiểu các nối kết (coupling) trên toàn hệ thống 47  Hãy chắc chắn rằng mô hình yêu cầu cung cấp giá trị cho tất cả các bên liên quan (stakeholders).  Giữ mô hình đơn giản như nó có thể được. 48 49 50 51  Unified Modeling Language - UML  Phát triển các sơ đồ (diagram) UML hỗ trợ các trường hợp sử dụng (use case): ◦ Sơ đồ hoạt động (activity diagram) ◦ Sơ đồ theo làn (swimlane diagram) 52 53 54  Các khái niệm của mô hình hóa dữ liệu (data modeling): ◦ Đối tượng dữ liệu (data objects) ◦ Thuộc tính dữ liệu (data attributes) ◦ Mối quan hệ (relationships) 55 56 57  Xác định các lớp phân tích (identifying analysis classes) ◦ Thực thể ngoài (external entities) ◦ Đồ vật (things) ◦ Xuất hiện hay sự kiện (occurrences or events) ◦ Vai trò (roles) ◦ Đơn vị tổ chức (organizational units) ◦ Vị trí (places) ◦ Cấu trúc (structures) 58  Xác định các thuộc tính (specifying attributes)  Định nghĩa các phương thức (defining operations)  Mô hình hóa CRC (class-responsibility-collaboration modeling)  Kết hợp và phụ thuộc (associations and dependencies)  Phân tích gói (analysis packages) 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86  Các chiến lược mô hình hóa yêu cầu (requirements modeling strategies)  Mô hình hóa hướng luồng (flow-oriented modeling) ◦ Tạo ra một mô hình luồng dữ liệu (data flow model) ◦ Tạo ra một mô hình kiểm soát luồng (control flow model) ◦ Đặc tả kiểm soát (control specification) ◦ Đặc tả tiến trình (process specification)  Tạo ra một mô hình hành vi (behavioral model) ◦ Xác định các sự kiện (events) với các trường hợp sử dụng ◦ Biểu diễn các trạng thái (states) ◦ Các sơ đồ tuần tự (sequence diagram) 87  Mẫu (patterns) cho mô hình hóa yêu cầu  Mô hình hóa yêu cầu hướng web (webapps) ◦ Phân tích bao nhiêu thì vừa đủ? ◦ Đầu vào (input) mô hình hóa yêu cầu ◦ Đâu ra (output) mô hình hóa yêu cầu ◦ Mô hình nội dung (content model) cho webapps ◦ Mô hình tương tác (interaction model) cho webapps ◦ Mô hình chức năng (functional model) ◦ Mô hình điều hướng (navigation model) ◦ Mô hình cấu hình (configuration model) 88 89 90 91 92 93 94 95 96 97 98 99 THIẾT KẾ KIẾN TRÚC (Architectural Design) 100  Kiến trúc phần mềm (software architecture) của một chương trình hoặc hệ thống tính toán là cấu trúc hoặc các cấu trúc của hệ thống, trong đó bao gồm các thành phần phần mềm, các thuộc tính bên ngoài có thể nhìn thấy của những thành phần này và các mối quan hệ giữa chúng  Có một sự khác biệt rõ rệt về thuật ngữ giữa kiến trúc và thiết kế: một thiết kế là một thể hiện của một kiến trúc tương tự như một đối tượng là một thể hiện của một lớp. 101  Kiến trúc không phải là phần mềm hoạt động. Thay vào đó, nó là một thể hiện cho phép ta: ◦ phân tích hiệu quả của thiết kế trong việc đáp ứng các yêu cầu đã được đề ra ◦ xem xét lựa chọn thay thế kiến trúc ở một giai đoạn khi thực hiện thay đổi thiết kế vẫn còn tương đối dễ dàng ◦ giảm thiểu rủi ro liên quan đến việc xây dựng phần mềm 102  Biểu diễn của kiến trúc phần mềm có khả năng cho phép thông tin liên lạc giữa tất cả các bên (các bên liên quan) quan tâm đến sự phát triển của một hệ thống dựa trên máy tính.  Các kiến ​​trúc làm nổi bật lên các quyết định thiết kế ban đầu mà sẽ có một tác động sâu sắc trên tất cả các công việc kỹ thuật phần mềm sau đó và quan trọng là trên thành công cuối cùng của hệ thống như một thực thể hoạt động.  Kiến trúc "tạo thành một mô hình tương đối nhỏ, có khả năng nắm bắt tri thức về cách thức mà một hệ thống được cấu trúc như thế nào và thành phần của nó làm việc cùng nhau ra sao" 103  Mô hình thiết kế kiến trúc và các mẫu kiến trúc chứa bên trong nó có thể đổi qua lại lẫn nhau: ◦ Thể loại (genres) ◦ Phong cách (styles) ◦ Mẫu (patterns)  Có thể được áp dụng cho việc thiết kế các hệ thống khác và đại diện cho một tập hợp các trừu tượng hóa cho phép các kỹ sư phần mềm để mô tả kiến trúc theo cách thức dự đoán. 104  Mô tả kiến trúc (architectural descriptions)  Quyết định kiến trúc (architectural decisions) 105  Thể loại kiến trúc (architectural genres) thường sẽ chỉ ra cách tiếp cận kiến trúc cụ thể để cơ cấu đó phải được xây dựng. Trong bối cảnh thiết kế kiến ​​trúc, thể loại ngụ ý một thể loại cụ thể trong lĩnh vực phần mềm tổng thể.  Trong mỗi thể loại sẽ có một số tiểu thể loại.  Ví dụ: trong các thể loại của các tòa nhà, bạn sẽ gặp phải sau phong cách chung: nhà ở, căn hộ, chung cư, cao ốc văn phòng, xây dựng công nghiệp, nhà kho, và như vậy.  Mỗi phong cách (styles) sẽ có một cấu trúc có thể được mô tả bằng một tập hợp các mẫu dự đoán được (predictable patterns). 106  Trí tuệ nhân tạo (artificial intelligence): Hệ thống mô phỏng hoặc làm tăng thêm nhận thức của con người, vận động, hoặc các quá trình hữu cơ khác.  Thương mại và phi lợi nhuận (commercial and nonprofit): Hệ thống là nền tảng cho hoạt động của một doanh nghiệp kinh doanh.  Truyền thông (communications): Hệ thống cung cấp cơ sở hạ tầng để chuyển và quản lý dữ liệu, để kết nối người sử dụng dữ liệu đó, hoặc để trình bày dữ liệu ở rìa của một cơ sở hạ tầng.  Tác giả nội dung (content authoring): Hệ thống được sử dụng để tạo ra hoặc thao tác văn bản hoặc hiện vật đa phương tiện. 107  Thiết bị (devices): Hệ thống tương tác với thế giới vật chất để cung cấp một số dịch vụ điểm cho một cá nhân.  Giải trí và thể thao (entertainment and sports): Các hệ thống quản lý sự kiện công cộng hoặc cung cấp một trải nghiệm giải trí nhóm lớn.  Tài chính (financial): Hệ thống cung cấp cơ sở hạ tầng để chuyển và quản lý tiền và chứng khoán khác.  Trò chơi (games): Hệ thống cung cấp một kinh nghiệm vui chơi giải trí cho các cá nhân hoặc nhóm. 108  Chính phủ (government): Hệ thống hỗ trợ việc thực hiện và hoạt động của một địa phương, nhà nước, tổ chức chính trị liên bang toàn cầu, hoặc khác.  Công nghiệp (industrial): Hệ thống mô phỏng hoặc kiểm soát các quá trình vật lý.  Pháp lý (legal): Hệ thống hỗ trợ ngành công nghiệp pháp luật.  Y học (medical): Hệ thống chẩn đoán hay chữa lành hoặc đóng góp vào nghiên cứu y học. 109  Quân sự (military): Hệ thống tư vấn, thông tin liên lạc, chỉ huy, kiểm soát, và tình báo cũng như vũ khí tấn công và phòng thủ.  Hệ điều hành (operating systems): Hệ thống mà hiện diện ngay trên phần cứng để cung cấp cơ bản dịch vụ phần mềm.  Nền tảng (platforms): Hệ thống mà hiện diện ngay trên hệ điều hành cung cấp dịch vụ nâng cao.  Khoa học (scientific): Hệ thống được sử dụng cho nghiên cứu khoa học và ứng dụng. 110  Công cụ (tools): Hệ thống được sử dụng để phát triển các hệ thống khác.  Giao thông vận tải (transportation): Hệ thống kiểm soát xe nước, đất, không khí, hoặc không gian.  Các tiện ích (utilities): Hệ thống tương tác với các phần mềm khác để cung cấp một số điểm dịch vụ. 111  Các phần mềm được xây dựng cho các hệ thống dựa trên máy tính cũng trưng bày một trong nhiều phong cách kiến trúc (architectural styles).  Mỗi phong cách mô tả một loại hệ thống bao gồm: ◦ một tập hợp các thành phần (ví dụ một cơ sở dữ liệu, mô-đun tính toán) mà thực hiện một chức năng theo yêu cầu của một hệ thống ◦ một tập hợp các kết nối cho phép "thông tin liên lạc, phối hợp và hợp tác“ giữa các thành phần ◦ ràng buộc xác định cách thức các thành phần có thể được tích hợp để tạo thành hệ thống ◦ các mô hình ngữ nghĩa cho phép một thiết kế để hiểu các thuộc tính tổng thể của một hệ thống bằng cách phân tích được biết đến đặc tính của các bộ phận cấu thành của nó 112  Kiến trúc lấy dữ liệu làm trung tâm (data-centered architectures)  Kiến trúc dòng dữ liệu (data-flow architectures)  Kiến trúc gọi và trả về có hai dạng kiến trúc con: ◦ Kiến trúc chương trình chính/chương trình con (main program/subprogram architectures) ◦ Kiến trúc thủ tục gọi từ xa (remote procedure call architecture)  Kiến trúc hướng đối tượng (object-oriented architectures)  Kiến trúc phân tầng (layered architectures) 113 114 115 116  Các thành phần của một hệ thống đóng gói dữ liệu và các hoạt động phải được áp dụng để thao tác trên dữ liệu  Thông tin liên lạc và phối hợp giữa các thành phần được thực hiện chuyển thông qua thông điệp (messages)  Các sơ đồ UML thường hay sử dụng trong thiết kế kiến trúc: ◦ Sơ đồ gói công việc (package diagram) ◦ Sơ đồ thành phần (component diagram) ◦ Sơ đồ triển khai (deployment diagram) 117 118 119 120 121 122  Biểu diễn hệ thống trong ngữ cảnh (representing the system in context) sử dụng sơ đồ ngữ cảnh kiến trúc (architectural context diagram - ACD) ◦ Superordinate systems ◦ Subordinate systems ◦ Peer-level systems ◦ Actors  Định nghĩa archetypes (defining archetypes) ◦ Node ◦ Detector ◦ Indicator ◦ Controller 123 124 125  Tinh chỉnh lại kiến trúc thành các thành phần (components)  Mô tả các thể hiện của hệ thống (describing instantiations of the system) 126 127 128 129  Phương pháp phân tích kiến trúc đánh đổi (an architecture trade-off analysis method) ◦ Thu thập các kịch bản ◦ Gợi ra yêu cầu, khó khăn, và mô tả môi trường ◦ Mô tả các phong cách kiến ​​trúc / mô hình đã được lựa chọn để giải quyết các tình huống và yêu cầu  Khung nhìn mô đun (module view)  Khung nhìn tiến trình (process view)  Khung nhìn dòng dữ liệu (data flow view) ◦ Đánh giá các thuộc tính chất lượng bằng cách xem xét từng thuộc tính trong sự cô lập ◦ Xác định sự nhạy cảm trên các thuộc tính chất lượng cho các thuộc tính kiến trúc khác nhau với một phong cách kiến ​​trúc cụ thể ◦ Bình phẩm kiến trúc bằng cách sử dụng phân tích độ nhạy 130  Độ phức tạp kiến trúc (architectural complexity) ◦ Chia sẻ phụ thuộc (sharing dependencies) ◦ Dòng phụ thuộc (flow dependencies) ◦ Ràng buộc phụ thuộc (constrained dependencies)  Ngôn ngữ mô tả kiến trúc (architectural description languages) 131  Chuyển đổi ánh xạ (transform mapping) ◦ Xem xét mô hình hệ thống cơ bản ◦ Xem xét và hoàn chỉnh sơ đồ dòng dữ liệu cho phần mềm ◦ Xác định xem dòng dữ liệu đã chuyển đổi hoặc dòng giao dịch ◦ Cô lập các trung tâm chuyển đổi bằng cách xác định ranh giới dòng đến và đi ◦ Thực hiện “nhân tố hóa mức đầu tiên" ◦ Thực hiện “nhân tố hóa mức thứ hai" ◦ Tinh chỉnh kiến ​​trúc đầu tiên sử dụng thiết kế heuristics để nâng cao chất lượng phần mềm  Tinh chỉnh lại thiết kế kiến trúc (refining the architectural design) 132 133 134 135 136 137 138 139 140  Spectrum Index (𝐼𝑆) - 𝑆𝑤 trường hợp thiết kế kiến trúc “tệ nhất” - 𝑆𝑏 trường hợp thiết kế kiến trúc “tốt nhất” 𝐼𝑆 = [(𝑆 − 𝑆𝑤)/(𝑆𝑏 − 𝑆𝑤)] × 100  Improvement Index (𝐼𝑚𝑝) 𝐼𝑚𝑝 = 𝐼𝑠1 − 𝐼𝑠2 với 𝑠1 và 𝑠2 tương ứng là hệ thống thứ nhất và thứ hai 141 Chỉ số chọn lựa thiết kế  Design Selection Index (𝑑) 𝑑 = (𝑁𝑠 −𝑁𝑎) × 100 với: 𝑁𝑠 là số lượng chiều thiết kế (design dimensions) có được bởi kiến trúc đề nghị 𝑁𝑎 là số lượng chiều trong không gian thiết kế 142  Mẫu kiến trúc đa tầng (multilayer architectural pattern)  Mẫu kiến trúc khách-chủ và các kiến trúc phân tán khác (client-server and other distributed architectural patterns)  Mẫu kiến trúc Broker (Broker architectural pattern)  Mẫu kiến trúc giao dịch-xử lý (transaction-processing architectural pattern)  Mẫu kiến trúc đường ống và bộ lọc (pipe-and-filter architectural pattern)  Mẫu kiến trúc mô hình-khung nhìn-kiểm soát (model- view-controller architectural pattern) 143  Mẫu kiến trúc hướng dịch vụ (service-oriented architectural pattern)  Mẫu kiến trúc hướng thông điệp (message-oriented architectural pattern) 144  Mẫu kiến trúc ngang hàng (peer-to-peer) cho tin nhắn tức thời (instant messaging), chỉ giữ lại một máy chủ trung tâm chỉ để tìm kiếm các địa chỉ của khách hàng 145 146 147 148 149 150 151 THIẾT KẾ THÀNH PHẦN (Component-Level Design) 152 153  Thiết kế thành phần (component design) xảy ra sau lần lặp đầu tiên của thiết kế kiến trúc đã hoàn thành. Ở giai đoạn này, các dữ liệu tổng thể và chương trình cấu trúc của phần mềm đã được thành lập.  Mục đích là để dịch (translate) mô hình thiết kế vào hoạt động phần mềm (operational software).  Mức độ trừu tượng (abstraction) của mô hình thiết kế hiện tại là tương đối cao, và mức độ trừu tượng của hoạt động chương trình là thấp. 154  Một thành phần (component) là một khối xây dựng mô đun hóa của phần mềm máy tính. ◦ Khung nhìn hướng đối tượng (object-oriented view) ◦ Khung nhìn truyền thống (traditional view) ◦ Khung nhìn tiến trình liên quan (process-related view)  [OMG - Unified Modeling Language] Thành phần là “ một phần mô-đun, triển khai, và thay thế của một hệ thống đóng gói thực hiện và đưa ra một tập hợp các giao diện. “  Giai đoạn thiết kế thành phần được triển khai sau khi hoàn thành thiết kế dữ liệu, thiết kế kiến trúc và thiết kế giao diện  Là giai đoạn làm giảm mức độ trừu tượng hóa (abstraction) để chuyển sang mức độ gần với mã lệnh (code) hơn  Kỹ sư phần mềm (software engineer) tại giai đoạn này phải mô tả cấu trúc dữ liệu, giao diện và giải thuật đủ điều kiện để sinh mã lệnh 155  Modularity  Overall simplicity  Ease of editing  Machine readability  Maintainability  Structure enforcement  Automatic processing  Data representation  Logic verification  “Code-to” ability 156 157 158 159  Các nguyên tắc thiết kế chính (basic design principles) ◦ Open-closed principle (OCP) ◦ Liskov substitution principle (LSP) ◦ Dependency inversion principle (DIP) ◦ Interface segregation principle (ISP) ◦ Release reuse equivalency principle (REP) ◦ Common closure principle (CCP) ◦ Common reuse principle (CRP)  Hướng dẫn thiết kế mức thành phần ◦ Components ◦ Interfaces ◦ Dependencies and Inheritances 160  Gắn kết (cohesion) ◦ Functional ◦ Layer ◦ Communicational ◦ Sequential ◦ Procedural ◦ Temporal ◦ Utility 161  Các chữ cái thể hiện tên viết tắt của kiểu nối kết 162  Nối kết (coupling) ◦ Content ◦ Common ◦ Control ◦ Stamp ◦ Data ◦ Routine call ◦ Type use ◦ Inclusion or import ◦ External 163 164 165 166  Xác định tất cả các lớp thiết kế tương ứng với các vấn đề tên miền  Xác định tất cả các lớp thiết kế tương ứng với tên miền cơ sở hạ tầng  Xây dựng tất cả các lớp thiết kế mà không phải mua như các thành phần tái sử dụng ◦ Ghi rõ chi tiết thông điệp khi các lớp hoặc các thành phần cộng tác với nhau ◦ Xác định các giao diện phù hợp với từng thành phần ◦ Xây dựng các thuộc tính và xác định các kiểu dữ liệu và cấu trúc dữ liệu cần thiết để thực hiện chúng ◦ Mô tả luồng xử lý trong mỗi hoạt động chi tiết 167  Mô tả các nguồn dữ liệu liên tục (cơ sở dữ liệu và các tập tin) và xác định các lớp học cần thiết để quản lý chúng  Phát triển và xây dựng cơ quan đại diện hành vi cho một lớp học hoặc một thành phần  Xây dựng sơ đồ triển khai để cung cấp thêm chi tiết thực hiện  Cấu trúc lại mỗi đại diện thiết kế thành phần cấp và luôn luôn xem xét lựa chọn thay thế 168 169 170 171 172  Thiết kế nội dung ở mức thành phần (Content Design at the Component Level)  Thiết kế chức năng ở mức thành phần (Functional Design at the Component Level) 173  Ký hiệu thiết kế đồ họa (graphical design notation)  Ký hiệu bảng thiết kế (tabular design notation)  Ngôn ngữ chương trình thiết kế (program design language) 174 175 176 177  Domain Engineering  Component Qualification, Adaptation, and Composition ◦ Component Qualification ◦ Component Adaptation ◦ Component Composition  Common object request broker architecture (OMG/CORBA)  Microsoft COM and .NET  Sun JavaBeans Components  Analysis and Design for Reuse ◦ Standard data ◦ Standard interface protocols ◦ Program templates  Classifying and Retrieving Components 178 THIẾT KẾ GIAO DIỆN (Interface Design) 179  Là “cửa sổ, cửa chính” của phần mềm giao tiếp với môi trường bên ngoài  Thiết kế trên 3 lĩnh vực: ◦ giao diện giữa các thành phần của phần mềm ◦ giao diện giữa phần mềm va ̀ nơi sản xuất (producer) va ̀ tiêu thụ (consumer) thông tin (i.e., không phải là con người) ◦ giao diện giữa phần mềm va ̀ con người 180 181  Đặt người sử dụng vào vai trò điều khiển (control)  Hạn chế việc “nạp bộ nhớ” người sử dụng  Làm cho giao diện nhất quán (consistency) 182  Xác định phương thức tương tác trong một cách mà không ép buộc một người sử dụng vào các hoạt động không cần thiết hoặc không mong muốn  Cung cấp cho sự tương tác linh hoạt  Cho phép người dùng tương tác được ngắt và không thể nén  Sắp xếp tương tác như trình độ kỹ năng thúc đẩy và cho phép tương tác để được tùy chỉnh  Ẩn ruột kỹ thuật từ người sử dụng quan hệ nhân quả  Thiết kế để tương tác trực tiếp với các đối tượng xuất hiện trên màn hình 183  Giảm nhu cầu về bộ nhớ ngắn hạn  Thiết lập mặc định có ý nghĩa  Xác định các phím tắt mà là trực quan  Bố trí trực quan của giao diện nên được dựa trên một phép ẩn dụ thế giới thực  Tiết lộ thông tin một cách tiến bộ 184  Cho phép người dùng đặt nhiệm vụ hiện tại vào một bối cảnh có ý nghĩa  Duy trì tính nhất quán giữa một gia đình của các ứng dụng  Nếu các mô hình tương tác qua đã tạo ra những kỳ vọng của người dùng, không thay đổi trừ khi có một lý do gì để làm như vậy 185  Còn được gọi là: ◦ mô hình người sử dụng (user’s model) hay ◦ hê ̣ thống nhận thức (system perception)  Phân loại người sử dụng ◦ Novice: không có tri thức vê ̀ cú pháp (syntactic knowledge) của hê ̣ thống va ̀ biết sử dụng một chút vê ̀ hê ̣ thống (a little semantic knowledge) ◦ Knowledgeable, intermittent users ◦ Knowledgeable, frequent users 186  Người sử dụng (user), công việc (task), phân tích môi trường (environment analysis) và mô hình hóa (modeling)  Thiết kế giao diện (interface design)  Xây dựng giao diện (interface construction)  Hợp thức hóa giao diện (interface validation) 187 188 189 190 191 192 193  Thiết lập các mục tiêu (goals) và các dự định (intentions) cho mỗi công việc (task)  Ánh xạ mỗi mục tiêu và dự định vào một chuỗi các hoạt động đặc thù  Đặc tả chuỗi hành động của công việc và công việc con, gọi là kịch bản người sử dụng (user scenario), như sẽ được thực thi ở mức giao diện  Chỉ ra trạng thái của hệ thống; tức là giao diện sẽ được nhìn thấy như thế nào tại thời điểm mà kịch bản người sử dụng được thực hiện 194  Định nghĩa cơ chế điều khiển (control mechanisms); như là các đối tượng (objects) và hành động (actions) sẵn sàng cho nguòi sử dụng chuyển (alter) trạng thái hệ thống (system state)  Trình diễn cách thức cơ chế điều khiển tác động đến các trạng thái của hệ thống  Chỉ ra cách thức người dùng giải thích tình trạng của hệ thống từ các thông tin được cung cấp thông qua giao diện 195  Phân tích người sử dụng (user analysis) ◦ Phỏng vấn người sử dụng (user interviews) ◦ Đầu vào bán hang (sales inputs) ◦ Đầu vào tiếp thị (marketing input) ◦ Đầu vào hỗ trợ (support input)  Phân tích và mô hình hóa công việc (task analysis and modeling) ◦ Các trường hợp sử dụng (use cases) ◦ Nhiệm vụ xây dựng (task elaboration) ◦ Đối tượng xây dựng (object elaboration) ◦ Phân tích dòng công việc (workflow analysis) ◦ Thứ bậc đại diện (hierarchical representation) 196  Phân tích nội dung hiển thị (analysis of display content)  Phân tích môi trường làm việc (analysis of work environment) 197  Áp dụng các bước thiết kế giao diện  Sử dụng mẫu thiết kế giao diện người sử dụng  Các vấn đề thiết kế ◦ Thời gian đáp ứng (response time) ◦ Các cơ sở trợ giúp (help facilities) ◦ Xử lý lỗi (error handling) ◦ Thực đơn và ghi nhãn lệnh (menu and command labeling) ◦ Khả năng tiếp cận ứng dụng (application accesibility) ◦ Quốc tế hóa (internationalization) 198  Interface Design Principles and Guidelines ◦ Anticipation. A WebApp should be designed so that it anticipates the user’s next move. ◦ Communication. The interface should communicate the status of any activity initiated by the user ◦ Consistency. The use of navigation controls, menus, icons, and aesthetics (e.g., color, shape, layout) should be consistent throughout the WebApp ◦ Controlled autonomy. The interface should facilitate user movement throughout the WebApp, but it should do so in a manner that enforces navigation conventions that have been established for the application. 199  Interface Design Principles and Guidelines ◦ Efficiency. The design of the WebApp and its interface should optimize the user’s work efficiency, not the efficiency of the developer who designs and builds it or the clientserver environment that executes it ◦ Flexibility. The interface should be flexible enough to enable some users to accomplish tasks directly and others to explore the WebApp in a somewhat random fashion ◦ Focus. The WebApp interface (and the content it presents) should stay focused on the user task(s) at hand ◦ Human interface objects. A vast library of reusable human interface objects has been developed for WebApps. Use them. 200  Interface Design Principles and Guidelines ◦ Latency reduction. Rather than making the user wait for some internal operation to complete (e.g., downloading a complex graphical image), the WebApp should use multitasking in a way that lets the user proceed with work as if the operation has been completed. ◦ Learnability. A WebApp interface should be designed to minimize learning time, and once learned, to minimize relearning required when the WebApp is revisited. ◦ Metaphors. An interface that uses an interaction metaphor is easier to learn and easier to use, as long as the metaphor is appropriate for the application and the user 201  Interface Design Principles and Guidelines ◦ Maintain work product integrity. A work product (e.g., a form completed by the user, a user-specified list) must be automatically saved so that it will not be lost if an error occurs. ◦ Readability. All information presented through the interface should be readable by young and old. ◦ Track state. When appropriate, the state of the user interaction should be tracked and stored so that a user can logoff and return later to pick up where she left off. ◦ Visible navigation. A well-designed WebApp interface provides “the illusion that users are in the same place, with the work brought to them” 202  Interface Design Workflow for WebApps ◦ Review information contained in the requirements model and refine as required. ◦ Develop a rough sketch of the WebApp interface layout. ◦ Map user objectives into specific interface actions. ◦ Define a set of user tasks that are associated with each action. ◦ Storyboard screen images for each interface action. ◦ Refine interface layout and storyboards using input from aesthetic design. ◦ Identify user interface objects that are required to implement the interface. ◦ Develop a procedural representation of the user’s interaction with the interface. ◦ Develop a behavioral representation of the interface. ◦ Describe the interface layout for each state. ◦ Refine and review the interface design model. 203  Truy xuất hệ thống SafeHome  Nhập định danh (ID) và mật khẩu (password) để cho phép truy xuất từ xa  Kiểm tra trạng thái hệ thống system status  Bật báo động hay ngưng báo động của hệ thống SafeHome  Hiển thị floor plan và sensor locations  Hiể thị zones trên mặt phảng tầng  Thay đổi zones trên mặt phẳng tầng 204  Hiển thị vị trí của video camera locations trên mặt phảng tầng  Lựa chọn video camera để xem lại  Xem các video images (4 khung hình trên một giây)  Dừng máy hay phóng to hoặc thu nhỏ video camera 205 206  Chiều dài và phức tạp của các đặc điểm kỹ thuật bằng văn bản của hệ thống và giao diện của nó cung cấp một chỉ số về số lượng học tập theo yêu cầu của người sử dụng của hệ thống  Số lượng công việc người dùng chỉ định và số lượng trung bình của các hành động mỗi nhiệm vụ cung cấp một dấu hiệu của thời gian tương tác và hiệu quả tổng thể của hệ thống 207  Số lượng hành động, nhiệm vụ, và các quốc gia hệ thống chỉ định bởi các mô hình thiết kế bao hàm tải bộ nhớ trên hệ thống của người sử dụng  Phong cách giao diện, cơ sở giúp đỡ, và giao thức xử lý lỗi cung cấp một dấu hiệu chung của sự phức tạp của giao diện và mức độ mà nó sẽ được chấp nhận bởi người sử dụng 208 209 THIẾT KẾ HƯỚNG MẪU (Pattern-based Design) 210  Một mẫu thiết kế có thể được mô tả như là "một quy tắc ba phần diễn tả một mối quan hệ giữa một bối cảnh nhất định, một vấn đề, và một giải pháp“  Các dạng mẫu: ◦ Mẫu kiến tạo (creational patterns) ◦ Mẫu cấu trúc (structural patterns) ◦ Mẫu hành vi (behavioral patterns)  Khung công việc (frameworks)  Mô tả một mẫu thế nào (describing a pattern)?  Ngôn ngữ mẫu và lưu trữ (pattern language and repositories) 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225  Kiến tạo (creational): abstract factory, builder, factory method, prototype, singleton  Cấu trúc (structural): adapter, bridge, composite, decorator, façade, flyweight, proxy  Hành vi (behavioral): chain of responsibility, command, interpreter, iterator, mediator, memento, observer, state, strategy, template method, visitor 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 THIẾT KẾ HƯỚNG WEB (WebApp Design) 251  An ninh (security)  Sẵn sang (availability)  Khả năng mở rộng (scalability)  Thời gian đưa ra thị trường (time-to-market) 252  Đơn giản (simplicity)  Chặt chẽ (consistency)  Bản sắc (identity)  Mạnh mẽ (robustness)  Điều khiển được (navigability)  Trực quan hấp dẫn (visual appeal)  Khả năng tương thích (compatibility) 253 254 255 256  Thực đơn di chuyển (navigation menus)  Các biểu tượng đồ họa (graphic icons)  Hình ảnh đồ họa (graphic image) 257  Các vấn đề về bố trí (layout issues) ◦ Đừng sợ không gian màu trắng ◦ Nhấn mạnh nội dung ◦ Tổ chức các yếu tố bố trí từ trên bên trái để dưới bên phải ◦ Hướng nhóm, nội dung và chức năng địa lý trong trang ◦ Không mở rộng bất động sản của bạn với thanh cuộn ◦ Xem xét giải quyết và kích thước cửa sổ trình duyệt khi thiết kế bố trí  Các vấn đề về thiết kế đồ họa (graphic design issues) 258  Đối tượng nội dung (content objects)  Nội dung vấn đề thiết kế (content design issues) 259 260  Kiến trúc nội dung (content architecture) ◦ Cấu trúc tuyến tính (linear structures) ◦ Cấu trúc lưới (grid structures) ◦ Cấu trúc phân cấp (hierarchical structures) ◦ Cấu trúc mạng (networked or “pure web” structure) 261 262 263 264 265 266 267  Ngữ nghĩa di chuyển (navigation semantics)  Cú pháp di chuyển (navigation syntax) ◦ Liên kết di chuyển cá thể (individual navigation link) ◦ Thanh di chuyển theo hàng ngang (horizontal navigation bar) ◦ Thanh di chuyển theo cột dọc (vertical navigation column) ◦ Các thể (tabs) ◦ Bản đồ trang web (site maps) 268 269 270 Object-Oriented Hypermedia Design Method (OOHDM)  Thiết kế khái niệm (coneptual design) cho OOHDM  Thiết kế di chuyển (navigational design) cho OOHDM  Thiết kế và cài đặt giao diện trừu tượng (abstract interface design and implementation) 271 272 273 THIẾT KẾ HƯỚNG DỊCH VỤ (Service-Oriented Architecture) 274  Service-oriented life cycle  Service-oriented discovery and analysis  Service-oriented business integration  Service-oriented design model  Service-oriented software architecture modeling principles 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299

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

  • pdfct325_tkpm_11_01_2014_t_3488.pdf
Tài liệu liên quan