Skip to content

Software Requirement

  • introduced the concept of user and system requirement
  • functional and non-functional require requirement
  • explain two techniques for describing system requirements

Requirement engineering

requirement engineering is the process of establishing

  • What is the services that the system should provide?
  • The constraint under which the system operates and is developed.

Why do we need requirements?

  • Fully understand the problem that need to be solved
  • discover why the problem needs to be solved
  • Determine who should be involved
  • Poorly defined requirements can cause major problems to the projecting both financially and in terms of time

What is requirement?

  • Requirement May be high-level abstraction statement for services or system constraint
    • Since the specification may be the basis for biding a contract, and should be open to interpretation and update. So it should be high-level and general
  • Requirement may be detailed mathematical functional specification
    • Both two statements may be called requirement
  • Requirement can be refined iteratively

  • Specification focus on services provided

  • Generally Focus of interface and behavior, instead of what language in programming
  • Specification should be detailed enough to act as a base for testing

Types of requirements

Levels

  • User requirements. Using natural language and diagrams of services, Sometimes provide the operational constraints. Written for customers to negotiating.
  • System requirements. Structured document setting out detail description of the system services. Written as a contract between client and contractor.
  • Software specification, Describe the software design or implementation. Written for developers
    • i.e. NLP texts should be defined in UNICODE string. Using hash table to import code efficiency...

Note

  • specification focuses on the services provided
  • General do not specify particular language to implement, he started focus on behaviour and the interfaces
  • the specification needs to be detailed enough, because:
    • it will act as a base for the testing

Functional and non-functional

  • Functional requirement is The statement of services that the system should provide, How the system should react to some impact, And what should be behave in particular situation
  • Non-functional requirement is the constraints on the services or Functions. i.e. Timing, Specific development process, Standards
    • Define system properties And constraints. i.e. Reliability, Response time, Storage requirement.
    • Process requirement may also be malfunctioning requirements. i.e. The programming language or development method
    • Sometimes no functional requirements may be more critical than functional requirements
  • Domain requirement
    • It can be functional or non-functional
    • Requirement related to the application domain. i.e. Medical Institution, Banks
    • Programmers do not often understand Legislative constraints, Therefore, specialist should make the requirement to follow the law

Non-functional requirements classification

  • Product requirement.i.e. Execution speed, reliability
  • Organizational requirements. i.e. Coding style, implementation requirements
  • External requirements. i.e. Legislative requirements

Goals or Non-functional requirements

Non-functional requirements are difficult to state Precisely and difficult to verify.

Yet some can be objectively tested, and you should always make it testable.

The goals as to convey the intention of users to the Developers

Conflict between non-functional requirements are common

i.e. Password should be easy to use &
Passwords should have upper/lower case and special symbols

Requirement Imprecision

Problems arise when requirements are not precisely stated.

Requirement completeness and consistency

  • Complete means requirements should include descriptions for all facilities
  • Consistent means requirements should be no conflicts or contradiction in the descriptions of system facilities

Shall for mandatory requirements, Should for desirable requirements

Avoid programmer jargon 您就甭吊坎了

Requirement measures

alt text