Bài giảng Kiến trúc phần mềm - Chương 7: Tài liệu kiến trúc phần mềm - Trần Minh Triết

But it’s difficult  No universally accepted architecture documentation standard.  An architecture can be complex, and documenting it in a comprehensible manner is time consuming and non-trivial.  An architecture has many possible views. Documenting all the potentially useful ones is time consuming and expensive.  An architecture design often evolves Keeping the architecture documents current is often forgotten, especially with time and schedule pressures in a project.

pdf16 trang | Chia sẻ: thanhle95 | Lượt xem: 444 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Kiến trúc phần mềm - Chương 7: Tài liệu kiến trúc phần mềm - Trần Minh Triết, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CTT526 - Kiến trúc phần mềm Tài liệu kiến trúc phần mềm PGS.TS. Trần Minh Triết tmtriet@fit.hcmus.edu.vn Trường Đại học Khoa Học Tự Nhiên Khoa Công Nghệ Thông Tin Bộ môn Công Nghệ Phần Mềm Version 1.0 CuuDuongThanCong.com https://fb.com/tailieudientucntt  Nội dung của bài giảng sử dụng: Session 6: Documenting a Software Architecture trong bộ slide Software Architecture Essential của GS. Ian Gorton Software Engineering Institute Carnegie Mellon University 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Architecture Documentation  Architecture documentation is a thorny issue  Commonly there is no documentation covering the architecture.  If it is, it’s out-of-date, inappropriate and basically not very useful.  Also projects that have masses of architecture related information  Sometimes invaluable, but often it’s out-of-date, inappropriate and not very useful! 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt Documenting an Architecture is good!  Others can understand/evaluate the design.  We can understand the design after a period of time.  Others in the project team and development organization can learn from the architecture.  We can do analysis on the design, perhaps to assess its likely performance, or to generate standard metrics. 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt But it’s difficult  No universally accepted architecture documentation standard.  An architecture can be complex, and documenting it in a comprehensible manner is time consuming and non-trivial.  An architecture has many possible views. Documenting all the potentially useful ones is time consuming and expensive.  An architecture design often evolves Keeping the architecture documents current is often forgotten, especially with time and schedule pressures in a project. 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Think carefully about what to document  Project complexity  A small project may only need a ‘marketecture’  Project longevity  One-off stop gap software?  Strategic, long-term, will evolve?  Needs of stakeholders  Small team, a whiteboard might be ok  Large, dislocated team needs more  Integrators? Testers? Programmers?  Need to spend documentation dollars/euros wisely on high value products 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt UML 2.0  UML is a powerful way to document an architecture  Provides a relatively formal, unambiguous description  New features in UML 2.0 appropriate for architectures  Good tools available, some free  Can be used to depict various structural/behavioral architecture views 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt Component Diagram 8 id Component View OrderProcessing MailQueue SendEmail MailServer OrderSystem CustomerSystem OrderQueue «table» NewOrders 1 validate 1 readQ 1 writeQ 1 read 1 send 1 1 readQ 1 1 writeQ 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt Class Diagram 9 cd OrderProcessing OrderReader Validate Store QueueWriter 1 1 1 1 1 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sequence Diagram 10 sd Interactions OrderReader MailQueue Validate OrderQueue Store QueueWriter NewOrders CustomerSystem readOrderData success:= validateOrder success:= newOrder success:= storeOrder success:= writeQueue success:= acknowledgeOrderSuccess success:= writeQueue CuuDuongThanCong.com https://fb.com/tailieudientucntt Deployment Diagram 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Component Interfaces 12 id Component View OrderProcessing MailQueue SendEmail MailServer OrderSystem CustomerSystem OrderQueue «table» NewOrders JDBC SMTP QueueRead QueueRead QueueWrite CustomerServices QueueWrite CuuDuongThanCong.com https://fb.com/tailieudientucntt Component Decomposition 13 id Component View OrderProcessing validateOrder getOrders writeConfirmation writeOrder MailQueue SendEmail MailServer OrderSystem CustomerSystem validate ProvidedInterface1 OrderQueue «table» NewOrders JDBC QueueWrite QueueWrite CustomerServices SMTP QueueRead QueueRead cd Component View OrderProcessing getOrders validateOrder writeConfirmation writeOrder or: OrderReader val: Validate qw: QueueWriter st: Store «delegate» «delegate» «delegate» «delegate» CuuDuongThanCong.com https://fb.com/tailieudientucntt Document Template  Documentation is easier if there’s a template to use  Reduces start-up time for projects by providing ready-made document structures  familiarity gained with the document structure aids in the efficient capture of project design details.  help with the training of new staff 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Template Headings 15 Architecture Documentation Template Project Name: XXX 1 Project Context 2 Architecture Requirements 2.1 Overview of Key Objectives 2.2 Architecture Use Cases 2.3 Stakeholder Architectural Requirements 2.4 Constraints 2.5 Non-functional Requirements 2.6 Risks 3 Solution 3.1 Relevant Architectural Patterns 3.2 Architecture Overview 3.3 Structural Views 3.4 Behavioral Views 3.5 Implementation Issues 4 Architecture Analysis 4.1 Scenario analysis 4.2 Risks CuuDuongThanCong.com https://fb.com/tailieudientucntt Summary  Some documentation is nearly always a good idea  Trick is to produce ‘just enough’ and no more  requires upfront planning and thinking  Commitment to keeps docs current  UML 2.0 makes architecture documentation easier  Some good UML 2.0 tools, try ‘em out. 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
Tài liệu liên quan