Functional requirements và non-functional requirements
project manager
2
White

Baka Nobita viết ngày 01/04/2018

Mở đầu

「Requirement」: 1 từ thân thương mà chắc hẳn thí chủ nào cũng ít nhất 1 lần nghe thấy rồi. Trong khi dev, bần tăng (mà chắc là các thí chủ cũng thế) luôn miệng nói, nào là requirent nó như thế, như thế, ... Thế nhưng thực chât 「requirement」là gì, nó gồm những list những category nào thì thật sự là bần tăng chưa từng 1 lần nào dùng lời trái tim của mình mà có thể giải thích được cả.
Trong quá trình tìm hiểu cái flow để quyết định chọn database, bần tăng thấy đa số ý kiến là: đầu tiên phải dựa trên requirement của project nhưng phải cũng phải nhìn về tương lai.
(Understand your current requirements but look also in future)
Vậy là đã rõ. Không hiểu cái 「requirement」 nó là cái gì, nó gồm những gì thì sẽ khó có thể tiếp tục cái chủ đề bần tăng muốn tìm hiểu bên trên.
Do vậy, hôm nay bần tăng mạn phép viết 1 bài để tìm hiểu về cái gọi là 「requirement」 này.

Định nghĩa:

Requirement: The descriptions of the services that a software system must provide
and the constraints under which it must operate
Requirements can range from high-level abstract statements of services or system
constraints to detailed mathematical functional specifications

Definition in: http://www.inf.ed.ac.uk/teaching/courses/cs2/LectureNotes/CS2Ah/SoftEng/se02.pdf
  • Requirement là tập hợp các mô tả về 1 hệ thống phần mềm phải cung cấp. Nói nôm na nó là yêu cầu của khách hàng về sản phẩm. (Đoạn tiếng Anh bên trên bần tăng không dịch được thế nào cho hay nên chỉ nói được 1 cách chung chung nhất như thế này)

Phân loại

Theo những gì mà bần tăng được các cụ truyển lại từ thời ăn lông ở lỗ đợt sinh viên + những gì mà bần tăng google được thì:

Thông thường requriements nó sẽ được phân ra làm 2 loại chính.

  • Yêu cầu chức năng (Functional requriements)
  • Yêu cầu phi chức năng (Non-functional requirements)

Yêu cầu chức năng

  • Là những yêu cầu mô tả NHỮNG GÌ HỆ THỐNG PHẢI LÀM ĐƯỢC. Thông thường thì yêu cầu chức năng sẽ chỉ rõ những hành vi hoặc chức mà hệ thống sẽ làm. Ví dụ như: Hiển thị tên, màu sắc, ....
  • 1 số yêu cầu chức năng thông thường cho hệ thống phần mềm:
    • Business Rules
    • Transaction corrections, adjustments and cancellations
    • Administrative functions
    • Authentication
    • Authorization levels
    • Audit Tracking
    • External Interfaces
    • Certification Requirements
    • Reporting Requirements
    • Historical Data
    • Legal or Regulatory Requirements

(Cái đoạn này ngại dịch, các thí chủ thông cảm) (bow)

Yêu cầu phi chức năng

  • Là các tiêu chí mà hệ thống phần mềm cần đạt được khi cho thực thi.
  • Nó khác với yêu cầu chức năng ở chỗ nào??
    • Yêu cầu chức năng: mô tả 「 what the system should do」
    • Yêu cầu phi chức năng: mô tả 「how the system works」
  • Ví dụ: Yêu cầu để làm 1 cái mũ bảo hiểm là: hình tròn, có dây đeo, không được vỡ dưới 1 áp lực nhỏ hơn 50Kg.

→ yêu cầu chức năng sẽ là: hình tròn, có dây đeo
→ yêu cầu phi chức năng sẽ là: không được vỡ dưới 1 áp lực nhỏ hơn 50Kg.

  • 1 số các kiểu yêu cầu phi chức năng chủ yếu:
    • Performance:
    • Response time
    • Throughput
    • Utilization (what??? Cái quái gì thế này)
    • Static Volumetric (:( lần đầu nghe)
    • Scalability: Khả năng mở rộng của phần mềm. Theo bần tăng nghĩ thì cái này có nghĩa là: khi mà tự nhiên thêm 1 chức năng mới, hay 1 yêu cầu mới vào thì có dễ dàng dev không?
    • Capacity:
    • Availability
    • Reliability
    • Recoverability
    • Maintainability
    • Serviceability
    • Security
    • Regulatory
    • Manageability
    • Environmental
    • Data Integrity
    • Usability
    • Interoperability (?? cái gì đây)

Kết

Thật ra thì đến tận bây giờ, khi dev 1 chức năng nào đấy thì bần tăng cũng mới chỉ để ý đến phần 「yêu cầu chức năng」liên quan đến nó, có nghĩa là hiện tại đang chỉ nghĩ đến phần làm sao để làm cho project chạy đúng đã. Nếu mà chạy không đúng mà đã đi quan tâm đến mấy cái yêu cầu phi chức năng thì không có ý nghĩa cho lắm. Thế nhưng mà đấy là do trình của bần tăng còn gà mờ. Còn nếu các thí chủ mà vừa có thể đáp ứng được cái yêu cầu chức năng (chạy đúng), vừa đáp ứng được yêu cầu phi chức năng (chạy nhanh, security, khả năng mở rộng tốt...) thì lúc ấy năng lực của thí chủ đã ở 1 level rất khác. Nếu mà so sánh thì thí chủ (người đáp ứng được yêu cầu chức năng và phi chức năng của hệ thống) như đại bàng bay vút cao trên bầu trời, còn bần tăng (kẻ chỉ biết làm sao cho project nó chạy đúng) như con chuồn chuồn chỉ bay là là dưới mặt đất vậy.
Còn các thí chủ nào chưa có được năng lực như vậy thì hãy cùng bân năng nâng cao thêm kiến thức để đạt được level trên nhé. Con chim sẻ kiên trì thì rồi cũng có ngày có thể sải cánh bay cao trên bầu trời giống như đại bàng nơi miền Tây hoang dã. (y)

Tham khảo

02/04/2018
THÍCH THÌNH THỊCH

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Baka Nobita

9 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
9 6
Bần tăng, 1 dev Ruby đã có kinh nghiệm làm việc cho 1 công ty Nhật 2 năm. Trong 2 năm qua bần tăng đã học được rất nhiều điều mà bản thân ngày xưa ...
Baka Nobita viết 5 tháng trước
9 6
White
2 1
Mở đầu Gần đây các từ khóa như Machine Learning, Data mining, Kmean, AI, ... đang rất là hot trên các cộng đồng engineer. Tuy nhiên, mặc dù bần t...
Baka Nobita viết 4 tháng trước
2 1
White
1 0
This is just some note for who want to get Ruby Silver certification. :) (Link) 2.3. String (文字列) a = "abcd" p a → "abcd" b = "ab""cd" p b...
Baka Nobita viết 6 tháng trước
1 0
Bài viết liên quan
White
15 1
Con đường phát triển sự nghiệp (Career path) cho developer Các bạn sinh viên còn đang học hoặc mới ra trường sẽ khó hình dung được về những vị trí...
Huy Hoàng Phạm viết gần 3 năm trước
15 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
9 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!