Skip to main content

System requirement checklist

This checklist doest explain how to make good requirements but gives you a heads up to what to look for from a requirement document before implementing a system. 

Some of the items might not apply on small projects, but on large projects its a must to go through all of them and see where you stand. 

Specific Functional Requirements
  • Are all the inputs to the system specified, including their source, accuracy, range of values, and frequency? 
  • Are all the outputs from the system specified, including their destination, accuracy, range of values, frequency, and format? 
  • Are all output formats specified for web pages, reports, and so on? 
  • Are all the external hardware and software interfaces specified? 
  • Are all the external communication interfaces specified, including handshaking, error-checking, and communication protocols? 
  • Are all the tasks the user wants to perform specified? 
  • Is the data used in each task and the data resulting from each task specified? 
Specific Non-Functional (Quality) Requirements
  • Is the expected response time, from the user's point of view, specified for all necessary operations? 
  • Are other timing considerations specified, such as processing time, data-transfer rate, and system throughput? 
  • Is the level of security specified? 
  • Is the reliability specified, including the consequences of software failure, the vital information that needs to be protected from failure, and the strategy for error detection and recovery? 
  • Is maximum memory specified? 
  • Is the maximum storage specified? 
  • Is the maintainability of the system specified, including its ability to adapt to changes in specific functionality, changes in the operating environment, and changes in its interfaces with other software? 
  • Is the definition of success included? Of failure?
Requirements Quality
  • Are the requirements written in the user's language? Do the users think so? 
  • Does each requirement avoid conflicts with other requirements? 
  • Are acceptable trade-offs between competing attributes specified--for example, between robustness and correctness? 
  • Do the requirements avoid specifying the design? 
  • Are the requirements at a fairly consistent level of detail? Should any requirement be specified in more detail?
  • Should any requirement be specified in less detail? 
  • Are the requirements clear enough to be turned over to an independent group for construction and still be understood? 
  • Is each item relevant to the problem and its solution? Can each item be traced to its origin in the problem environment? 
  • Is each requirement testable? Will it be possible for independent testing to determine whether each requirement has been satisfied? 
  • Are all possible changes to the requirements specified, including the likelihood of each change?
Requirements Completeness
  • Where information isn't available before development begins, are the areas of incompleteness specified?
    Are the requirements complete in the sense that if the product satisfies every requirement, it will be acceptable? 
  • Are you comfortable with all the requirements? Have you eliminated requirements that are impossible to implement and included just to appease your customer or your boss?
source: code complete 2nd Edtion

Comments

Popular posts from this blog

Installing libssl1.0 on Ubuntu 22.04

Following the upgrade of distro from 20.04 to 22.04 the libssl packages got affected, this ended up causing my vpn client to fail. The client kept opening and closing immediately.  on futher investigation I found the issue as the libssl client. Attached is a screenshot of the message I was getting when I tries starting it from the terminal. Tring to install libsll1.0-dev from apt was generating the following error: Due to this installing the package was not viable via the regular way, I really didn't want to downgrade back to 20.04 as this could have meant a clean installation, and I had just come from doing that, as the upgrade wasn't successful, but I still needed to try out the new 22.04 features. Google been my best friend finally come through after a long search on how to install libssl1.0-dev. I ended up landing on this link  , here they gave some instruction on how to install libss1.0-dev. Below are the steps of installing libssl1.0-dev on ubuntu 22.04 for backward compa

Creating PDF in MVC 5 using ITextSharp

Creating PDF in MVC 5 using ITextSharp For a long time I have been looking for free and cheaper ways of creating pdf documents within MVC. I have tried all the other options and none was able to give me the standard of document I wanted. After long and tiresome nights of trying to figure out the solution I stumbled upon ItextSharp... This was my life changer. Maybe it might be for you too..  Process Download ItextSharp using the Nuget Package manager and if you prefer using command line arguments you an use: Install-Package iTextSharp full documentation to this can be retrieved here Create a class that will be used to write the data you created as a byte array. How this works can be found here  or here   public class BinaryResult : ActionResult { private byte[] _fileBinary; private string _contentType; private string _fileName; public BinaryResult(byte[] fileBinary, string contentType, string fileName) { _fileBinary = f

Converting DateTime C# to DateTime.UTC javascript

Here is a simple way to change a C# datetime to a javascript Datetime.UTC value that can be used in the highcharts pointstart field. In C# private double DateUTCDate(DateTime date) { return date.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds } This will return a value that can be used directly in javascript series: { pointStart: dataFromCsharp, pointInterval: 3600 * 1000 // one day } highcharts pointstart only used Date.UTC values if you are timestamp for the x-axis