Ký sự BrSE

Những nẻo đường kỹ sư cầu nối

Bàn về Detail Design (詳細設計)

Tiếp nối phần trước về Basic Design, phần này tại hạ xin phép được đàm đạo với chư vị về Detail Design. Cách đây đúng 4 năm, giờ này mình đang đứng trên bục thành hôn chấm dứt đời đọc thân 😀 và trước đó vài ngày thì nhận được lệnh đi onsite 1 dự án triệu đô để xây dựng hệ thống cho nhà mạng viễn thông của Nhật Bản. Đó cũng là dự án đầu tiên trải nghiệm độ xương xẩu của công đoạn BD vs DD là như nào, giờ nghĩ lại vẫn toát mồ hôi hột. Cũng may là 1 thằng oắt con vắt mũi chưa sạch như mình được kèm cặp bởi 2 đại ca lão làng cứng cả tech lẫn JP. Ngồi viết ra mấy dòng này bồi hồi nhớ lại giai đoạn pilot chông gai mà mỗi bản thiết kế 1 màn hình phải bị (được) chỉnh đi chỉnh lại hàng chục lần, và mỗi lần chỉnh là 1 lần … nhục. Nhân đây giải thích qua từ “pilot” vì có thể 1 vài bạn còn chưa biết. Nôm na là làm thử, mục đích là coi tụi dân Nam có mần được trò trống gì không, được thì cho mần chính thức, còn ko thì … tập xác định, về nhà chăn trâu 😀 Hình như hơi lạc đề …
Dong dài vậy chắc “bưa chè” rồi, giờ đến tiết mục chính “đì teo đì dai” là gì và mần như răng. Tình cờ tóm được 1 bài viết hay và khá chuẩn mực nên tại hạ xin copy 1 vài hình ảnh để làm nguyên liệu cho bài viết này (full link ở cuối bài – tất nhiên là HD ko che rồi 😀 )

Document list

ドキュメント 用途・内容 基本設計 詳細設計
機能設計書 Function Define
(表紙) Cover
(目次/概要) Overview  
(I/O関連図) Input/Output Map  
(画面レイアウト) Screen layout  
(帳票レイアウト) Form layout  
(フローチャート) Flow Chart  
(項目説明書) Item detail  
(イベント一覧) Event List  
(BL一覧) Business Logic list  
(更新仕様書) Function/BL content  
(補足説明書) document bổ sung  

Đây là bảng phân chia loại tài liệu nào thuộc BD, loại nào DD để mọi người phân biệt. Khi làm dự án thì cũng tuỳ đặc thù mà sẽ có thêm bớt 1 số thứ, nhưng nhìn chung những gì trên đây là đủ để code rồi. Vì đây là bài giới thiệu nên mình chỉ cưỡi ngựa xem hoa chứ không nói quá chi tiết (có viết dài cũng đếu ai thèm đọc)

Event List (Action List)

Quay lại ví dụ hôm trước trong bài Basic Design, up lại cái màn hình được vẽ ra từ mô tả mình nói vui là “hoang đường” của enduser :D.

screen

Từ đây chúng ta sẽ tạo được document có tên là イベント一覧 (danh sách even – sự kiện) bao gồm :

  • Event load
  • Event Search
  • Event Prinf
  • Event Close
  • Event Update

Đối với mô tả cho từng even thì phải mô tả chi tiết :

  • Gọi hàm nào
  • Chức năng làm gì
  • Param là gì
  • Giá trị return
eventlist
Template of Event List

Business Logic List

detail-design-bl
Business logic process

Tài liệu này sẽ mô tả chi tiết event nào sẽ gọi hàm nào, CRUD lên table nào.

Trong mô hình MVC thì BL sẽ có nhiệm vụ trung gian giữa giao diện – database. Vậy nên khi tạo tài liệu BL thì phải hình dung được cơ bản nó sẻ xử lý như thế nào, và đối với từng Item trên màn hình dữ liệu sẽ được load từ field thuộc table nào, khi load thì có cần format lại nội dung hay không, hoặc khi update thì để nguyên vậy hay là thêm bớt gì không. Mấy cái đó phải tưởng tượng ra trước rồi vừa làm vừa sửa. Ví dụ minh hoạ BL list, thực tế thì phức tạp hơn như này nhiều.

bl-detail

Define Function/Method List(メソッド定義書)

Tài liệu này sẽ mô tả cụ thể chi tiết function name, nội hàm. Phần này sẽ tuỳ thuộc vào khách hàng yêu cầu độ chi tiết đến đâu để mình viết cho hợp lý. Có nhiều khách khó tính thì 1 line design = 1 line of code. Nếu bạn bị rơi vào trường hợp này thì xin chúc mừng : bạn sắp trở thành 1 designer vĩ đại 😀

Ví dụ UpdateFunction() : Get giá trị từ màn hình vào Object, CheckValidate(), gọi dataUpdate(), xử lý lỗi. Về xử lý lỗi có 2 loại : Log + message. Tuỳ theo lỗi mà có trả message về client, nhưng chắc chắn là phải log lại để control hệ thống. Tốt nhất là nên có thêm 1 tài liệu để tổng hợp message メッセージ一覧 Gồm 3 mục :種類、メッセージID、内容.

Processing detail (処理仕様書)

Ứng với mỗi chức năng CRUD mà ta sẽ có 1 bản mô tả riêng. Nhìn vào hình bên dưới là ví dụ về chức năng update. Bên trái phần interface sẽ gom giá trị nhập vào từ màn hình, giữa là phần sẽ được gán vào biến khi gọi hàm xử lý, và bên phải chính là table/field database.

detail-content

Viết đến đây hoa mắt chóng mặt, đầu óc quay cuồng, bao ký ức lại ùa về như thuỷ điện xả lũ…

Kết

Các tài liệu cần tạo trong detail design

  • Event List(イベント一覧)
  • Business Logic List(BL一覧)
  • Define Function/Method List(メソッド定義書)
  • Message List (メッセージ一覧)
  • Processing detail (処理仕様書)

BrSE cần :

  • Cách đọc basic design.
  • Nắm rõ FrameWork : Nhằm biết luồng di chuyển dữ liệu, xử lý lỗi, mà sử dụng library cho tốt – cái nào dùng được thì dùng chứ ko cắm đầu code lại.
  • Nguyên lý SOLID : Để define method/function sao cho tốt
  • Cấu trúc cơ sở dữ liệu
  • Ngôn ngữ : phần này khỏi bàn.

Full Link :

https://thinkit.co.jp/free/project/4/4/1.html

https://thinkit.co.jp/free/project/4/5/1.html

Bài này mình viết dựa vào kinh nghiệm chứ không phải dịch lại, bạn nào khá JP chút nên đọc thêm bài trong link trên sẽ biết thêm được nhiều cái hay của chuyên gia chia sẻ.

Trong link dưới các bạn click vào download file excel tài liệu mẫu

detaildesign_tigernguyenblog

5/5 - (2 votes)
Nếu thấy hay thì đừng ngại

6 thoughts on “Bàn về Detail Design (詳細設計)

Comments are closed.

%d bloggers like this: