Software requirements

Broadly software requirements are categorized in two categories:

Functional requirements :

Requirements, which are related to functional aspect of software fall into this category.
They define functions and functionality within and from the software system.

Examples -

  1. Search option given to user to search from various invoices.
  2. User should be able to mail any report to management.
  3. Users can be divided into groups and groups can be given separate rights.
  4. Should comply business rules and administrative functions.
  5. Software is developed keeping downward compatibility intact.

Non-Functional requirements :

Requirements, which are not related to functional aspect of software, fall into this category. They are implicit or expected characteristics of software, which users make assumption of.
Non-functional requirements include -
  • Security
  • Logging
  • Storage
  • Configuration
  • Performance
  • Cost
  • Interoperability
  • Flexibility
  • Disaster recovery
  • Accessibility
Requirements are categorized logically as
  • Must Have : Software cannot be said operational without them.
  • Should have : Enhancing the functionality of software.
  • Could have : Software can still properly function with these requirements.
  • Wish list : These requirements do not map to any objectives of software.
While developing software, ‘Must have’ must be implemented, ‘Should have’ is a matter of debate with stakeholders and negation, whereas ‘could have’ and ‘wish list’ can be kept for software updates.

User Interface requirements :

UI is an important part of any software or hardware or hybrid system. A software is widely accepted if it is -
  • easy to operate
  • quick in response
  • effectively handling operational errors
  • providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the software. UI is the only way for users to perceive the system. A well performing software system must also be equipped with attractive, clear, consistent and responsive user interface. Otherwise the functionalities of software system can not be used in convenient way. A system is said be good if it provides means to use it efficiently. User interface requirements are briefly mentioned below -
  1. Content presentation
  2. Easy Navigation
  3. Simple interface
  4. Responsive
  5. Consistent UI elements
  6. Feedback mechanism
  7. Default settings
  8. Purposeful layout

Software metrics and measures :

Software Measures can be understood as a process of quantifying and symbolizing various attributes and aspects of software.
Software Metrics provide measures for various aspects of software process and software product.
Software measures are fundamental requirement of software engineering. They not only help to control the software development process but also aid to keep quality of ultimate product excellent.
According to Tom DeMarco, a (Software Engineer), “You cannot control what you cannot measure.” By his saying, it is very clear how important software measures are.
Let us see some software metrics:
  • Size Metrics - LOC (Lines of Code), mostly calculated in thousands of delivered source code lines, denoted as KLOC.
    Function Point Count is measure of the functionality provided by the software. Function Point count defines the size of functional aspect of software.
  • Complexity Metrics - McCabe’s Cyclomatic complexity quantifies the upper bound of the number of independent paths in a program, which is perceived as complexity of the program or its modules. It is represented in terms of graph theory concepts by using control flow graph.
  • Quality Metrics - Defects, their types and causes, consequence, intensity of severity and their implications define the quality of product.
    The number of defects found in development process and number of defects reported by the client after the product is installed or delivered at client-end, define quality of product.
  • Process Metrics - In various phases of SDLC, the methods and tools used, the company standards and the performance of development are software process metrics.
  • Resource Metrics - Effort, time and various resources used, represents metrics for resource measurement.

Post a comment