1 / 30

TỐI ƯU HÓA MÃ NGUỒN

TỐI ƯU HÓA MÃ NGUỒN. Nhóm 10. Các nội dung chính. Tối ưu hóa mã nguồn là gì? Lý do cần tối ưu hóa mã nguồn. Tối ưu hóa giao diện Tối ưu hóa xử lý (thuật toán, dữ liệu) Tối ưu hóa kiến trúc Các công cụ hỗ trợ Demo. Tối ưu hóa mã nguồn là gì?. Lý do cần tối ưu hóa mã nguồn.

saniya
Download Presentation

TỐI ƯU HÓA MÃ NGUỒN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TỐI ƯU HÓA MÃ NGUỒN Nhóm 10

  2. Các nội dung chính • Tối ưu hóa mã nguồn là gì? • Lý do cần tối ưu hóa mã nguồn. • Tối ưu hóa giao diện • Tối ưu hóa xử lý (thuật toán, dữ liệu) • Tối ưu hóa kiến trúc • Các công cụ hỗ trợ • Demo

  3. Tối ưu hóa mã nguồn là gì?

  4. Lý do cần tối ưu hóa mã nguồn.

  5. Tối ưu hóa giao diện

  6. Tối ưu hóa xử lý

  7. Tối ưu hóa kiến trúc • Software architecture? • The high-level part of software design • "system architecture," "high-level design," and "top-level design.“ • Holds the more detailed parts of the design

  8. Tối ưu hóa kiến trúc • Why have architecture as a prerequisite? • Determines the conceptual integrity of the system • Determines the ultimate quality of the system • Maintain a system's conceptual integrity from the top levels down to the bottom • Provides guidance to programmers • Partitions the work

  9. Tối ưu hóa kiến trúc Good architecture makes construction easy Bad architecture makes construction almost imposible

  10. Tối ưu hóa kiến trúc • Typical Architectural Components • Program Organization • Major Classes • Data Design • Business Rules • User Interface Design • resource Management • Security • Performance • Scalability • Interoperability • Internationalization/Localization • Input / Output • Error Processing • Fualt Tolerance • Architectural Feasibility • Overengineering • Buy-vs.-Build Decisions • Reuse Decisions • Change Strategy • General Architectureal Quality

  11. Tối ưu hóa kiến trúc • Program Organization • Định nghĩa building block(khối xây dựng) chính trong chương trình. • Che phủ tất cả các tính năng bới ít nhất 1 block. • Kết hợp các yêu cầu chức năng của 2 hay nhiều block khi cùng thực hiện 1 chức năng để tránh xung đột

  12. Tối ưu hóa kiến trúc • Major Classes • Chỉ rõ các class chính được sử dụng. • Xác định công dụng của mỗi class, cách class đó tương tác với các class khác. • Mô tả phân cấp class, quá trình chuyển đổi trạng thái, sự bên bỉ của đối tượng • Nếu hệ thống đủ lớn, cần mô tả cách các class được tổ chức thành hệ thống phụ • Mô tả class khác mà sự thiết kế được xem xét và đưa ra lí do được chọn

  13. Tối ưu hóa kiến trúc • Data Design • Mô tả những file và bảng chính được thiết kế để sử dụng • Mô tả các phương án thay thế được xem xét và chứng minh các lựa chọn được thực hiện là đúng • Data nên được truy xuất trực tiếp bởi chỉ 1 subsystem hay class • Chỉ rõ tổ chức cấp cao và nội dung của bất kì cơ sở dữ liệu đã sử dụng • Giải thích tại sao 1 CSDL duy nhất thì thích hợp hơn nhiều CSDL(hoặc ngc lại) • Tại sao CSDL được ưa chuông hơn flat files • Xác định các tương tác có thể với các program khác khi cùng truy xuất cung 1 dữ liệu

  14. Tối ưu hóa kiến trúc • Business Rules • Xác định các business rule(qui luật kinh doanh) và mô tả các qui tắc có ảnh hưởng đếnhệ thống

  15. Tối ưu hóa kiến trúc • User Interface Design • Cần được qui định trong kiến trúc phần mềm • Xác định các yếu tố chính của các địng dạng Web page, GUIs, Command line, interfaces,…. • Kiến trúc nên được mô hình hóa

  16. Tối ưu hóa kiến trúc • Resource Management • Mô tả kế hoạch để quản lý các nguồn tài nguyên như: database connections, threads, handles. • Ước tính các nguồn tài nguyên sử dụng cho “danh nghĩa” và các trường hợp tối thiểu.

  17. Tối ưu hóa kiến trúc • Security • Mô tả cách tiếp cận design-level và code-level security. • Phát triển Coding Guiddlines với Security

  18. Tối ưu hóa kiến trúc • Performance • Cung cấp ước tính và giải thích tại sao các kiến trúc sư tin vào kết quả sẽ đạt được • Chỉ ra những khu vực có nguy cơ không đáp ứng các mục tiêu • Chỉ rõ yêu cầu sử dụng thuật toán hoặc các loại dữ liệu cụ thể để đáp ứng mục tiêu hiệu suất.

  19. Tối ưu hóa kiến trúc • Scalability • Mô tả cách hệ thống phát triển về số người sử dụng, số máy chủ, network nodes, database records và kích thước • Interoperability • Mô tả cách chia sẻ dữ liệu hoặc tài nguyên với các phần mềm, hoặc phần cứng khác như thế nào.

  20. Tối ưu hóa kiếntrúc • Internationalization/Localization • Ước tính tài nguyên được sử dụng với các chuỗi • Chỉ ra chuỗi tượng trưng và những vấn đề đã được xem xét. • Mô tả những chọn lựa nào được chọn và tại sao

  21. Tối ưu hóa kiếntrúc • Input/Output • Chỉ rõ a look – ahead, look – behind, hoặc just – in – time reading scheme • Mô tả cấp độ ở mỗi lỗi nhập xuất nào được phát hiện • At the field • Record • Stream • File • Đưa ra một chiến lược sử lý các lỗi 1 cách nhất quá • Thiết lập các qui ước thông báo lỗi • Cho biết địa chỉ khi code bắt gặp ngoại lệ, cách mà chứng được lưu giữ, và được tài liệu hóa

  22. Tối ưu hóa kiếntrúc • Fault Tolerance • Chỉ ra các loại có khả năng chịu lỗi được dự kiến • Architectural Feasibility • Chứng minh được hệ thống khả thi về mặt kĩ thuật • Chỉ ra cách mà các vấn đề được điều tra khi project không làm việc

  23. Tối ưu hóa kiếntrúc • Overengineering • The architecture should clearly indicate whether programmers should err on the side of overengineering or on the side of doing the simplest thing that works

  24. Tối ưu hóa kiếntrúc • Buy-vs.-Build Decisions • If the architecture isn't using off-the-shelf components, it should explain the ways in which it expects custom-built components to surpass ready-made libraries and components.

  25. Tối ưu hóa kiếntrúc • Reuse Decisions • Mô tả như thế nào mà phần mềm tái sử dụng sẽ được thực hiện để phù hợp với các mục tiêu kiến trúc khác

  26. Tối ưu hóa kiếntrúc • Change Strategy • Mô tả rõ 1 chiến lược để xử lý những thay đổi. • Chỉ ra những cái tiến có thể được xem xét và những cải tiến trông dễ dàng để thực hiện • Chỉ ra các chiến lược cam kết trong việc chậm trễ.

  27. Tối ưu hóa kiếntrúc • General Architectural Quality • Mục tiêu của kiến trúc cần được rõ ràng. • Trình bày cho tất cả các quyết định quan trọng. • Xác định rõ ràng các khu vực có rủi ro • Chứa nhiều quan điểm

  28. Các công cụ hỗ trợ

  29. Demo

  30. Tài liệu tham khảo • Clean Code A Handbook of Agile Software Craftsmanship, Robert C.Martin • Microsoft Press Code Complete Second Edition eBook

More Related