Sep 18, 2017 An example is if the requirement is “Add Product to Cart,” a command that doesn’t account for other details like size and quantity. These can be fleshed out with the Analysis Model since it connects functional requirements with the design. Professional software developers must go through a software requirements gathering process at the beginning of software development projects of any meaningful size. The end product of that project phase is a document commonly referred to as a Software Requirements Specification, or SRS. It's usually the first project milestone or deliverable. Declaimer: I write about Laravel Development and PHP Development A general example of what kind of information the software requirement specification should contain to prevent software projects from failure. For example, this could specify the requirement for software to trace processing activity. Such traces are needed for some applications to meet minimum regulatory or financial standards. An audit trace requirement may, for example, state that all changes to a payroll database must be recorded in a trace file with before and after values. What is a System Requirements Specification (SRS)? A System Requirements Specification (SRS) (also known as a Software Requirements Specification) is a document or set of documentation that describes the features and behavior of a system or software application. It includes a variety of elements (see below) that attempts to define the intended functionality required by the customer to satisfy. For example, a new course added to the mainframe based registration system will require a source code change and recompilation of the main VRU program. 5.3 Proprietary hardware and software VRU system requires proprietary hardware and software from Call Center Technology in order to be operational. 5.4 Batch updates vs. (close) Real-time updates.
- Software Safety Requirements Example
- Software Usability Requirements Example
- Software Requirements Analysis
- Software Functional Requirements Examples
- Software Interface Requirements Example
- Software System Requirements Example
- Software Requirements Specification Example For Mobile Applications
- 4.3.1 Hardware Requirements
- 4.3.2 Software Requirements
The following minimum system requirements must be met on the computer on which you want to install Oracle VM Manager.
Before you install Oracle VM Manager, make sure that your computer meets the minimum hardware requirements listed in Table 4.1:
Table 4.1 Hardware Requirements for Oracle VM Manager
Items | Minimum Value |
---|---|
Memory | 6.0 GB (8.0 GB if using local MySQL) |
Processor Type | 64 bit |
Processor Speed | 1.83 GHz*1 |
Swap Space | 2.1 GB |
Hard Disk Space | 5.5 GB in /u01 2 GB in /tmp 500 MB in /var 500 MB in /usr |
- 4.3.2.1 Operating Systems
- 4.3.2.2 Network
- 4.3.2.3 Web Browsers
- 4.3.2.4 Environment Configuration Script
- 4.3.2.5 Prerequisite Packages
- 4.3.2.6 Firewall Configuration
- 4.3.2.7 Installation Ports, Passwords, and Database Information
- 4.3.2.8 Oracle User
- 4.3.2.9 /u01 Directory
Before you install Oracle VM Manager, make sure that your computer meets the following minimum software and configuration requirements.
Oracle VM Manager is supported on the following operating systems:
- Oracle Linux 5 Update 5 64-bit or later
- Oracle Linux 6 64-bit or later
- Red Hat Enterprise Linux 5 Update 5 64-bit or later
- Red Hat Enterprise Linux 6 64-bit or later
You can download Oracle Linux from:
For more information about Oracle Linux, see:
The host computer on which you install Oracle VM Manager must have the host name correctly configured (pingable). Make sure the computer's host name matches the host name in the /etc/hosts file. Use the following command to check the host name:
Use a text editor to check the host name in the /etc/hosts file. For example, to use VI enter
For example, if the computer's host name is hostname1.example.com, and the IP address is 10.1.1.1, the corresponding item in the /etc/hosts file should be:
The Oracle VM Manager user interface is supported in the following Web browsers:
- Microsoft Internet Explorer 7.0 and above
- Mozilla Firefox 3.5 and above
- Apple Safari 5.0 and above
- Google Chrome 1.0 and above
The createOracle.sh is a script that automatically:
- Creates the required operating system users and groups (oracle/dba) in order for the components to run correctly.
- Creates the /u01 directory if it does not already exist, and corrects permissions on required installation folders.
- Sets the required parameters in the /etc/security/limits.conf file
- Opens the required ports in the /etc/sysconfig/iptables file
To run the createOracle.sh script, you must first mount the Oracle VM Manager installer ISO file or CD. See Section 4.4.1, “Mounting the Oracle VM Manager Installation Media” for information on mounting the installation media. Change directory to the mount point that you created for the CD or ISO, for example,
/OVMCD
. Then run the createOracle.sh
script as the root user: This section contains the prerequisite operating system packages that may be required prior to installing Oracle VM Manager.
If you have a minimal installation of Oracle Linux, you may not have unzip installed, which is a required package for the Oracle VM Manager installer. To install unzip, enter:
A default Oracle Linux install has the firewall enabled (iptables on). In order to use Oracle VM Manager on a system with iptables enabled you can either open all the ports used by Oracle VM Manager, or open all ports by disabling iptables.
The ports required for the web browser connection to Oracle VM Manager are: 7002 and 15901. TCP 7002 is used by the Oracle VM Servers to connect to Oracle VM Manager. Oracle VM Manager, in turn, connects to the Oracle VM Servers through port 8899 for Oracle VM Agent communication, and port 6900 and up for secure VNC tunneling to virtual machines (one port per VM). Ports 7900 and up are used to allow Oracle VM Manager to open secure serial console tunnels to virtual machines (one port per VM) on the Oracle VM Servers. The Oracle VM Command Line Interface connects to Oracle VM Manager on port 10000. TCP ports 54321 and 54322 can be optionally enabled for remote API access to the Oracle VM Manager core. This must be done if using an external client, such as the Oracle VM Utilities, or UI instance to manage the deployment [1] . In a Simple installation, a MySQL database is configured on port 49500. Since the MySQL database is hosted on the same system as Oracle VM Manager it is not necessary to enable access to this port through the firewall, however in a Custom installation where the database may be hosted on a separate system, the appropriate port must be accessible to Oracle VM Manager through any firewall configuration. Be sure to open the necessary ports on the different firewalls that may be installed between different parts of your network. Follow the guidelines of in the diagram below:
To disable iptables and open all ports, enter the following commands as the root user:
Internet download manager softonic. To configure the firewall to open the required ports automatically, use the environment configuration script provided with the Oracle VM Manager installer. See Section 4.3.2.4, “Environment Configuration Script” for information on using this script.
Alternatively, to open the required ports manually by using the iptables command as the root user:
To remotely connect to the Oracle VM Manager core API using an alternate UI instance or an alternate client, also enter the following command:
To enable the Oracle VM Command Line Interface, enter the following command:
When all the ports have been opened, save the iptables configuration:
This does not require iptables to be restarted as the commands open the ports while iptables is running and the save ensures they are opened on reboot/restart in future.
4.3.2.7 Installation Ports, Passwords, and Database Information
During the Oracle VM Manager installation, you may be required to set or enter the following ports, passwords and database connection information:
- The database system hostname. This is the IP address or hostname of the host on which the database to use as the Oracle VM Manager database repository is located. The default is
localhost
. This is only required during a Custom installation. - The Oracle Database System ID (SID). This is the database SID to use to connect to the Oracle VM Manager database repository. This is only required during a Custom installation.For installations using MySQL as the database backend, this can be set to the name of the database to use for the installation. By default, this is
ovs
. - The Oracle Database HTTP port. The default port number is
8080
. This is only required during a Custom installation. - The database listener port. The default port number for installations using an Oracle Database is
1521
. This is only required during a Custom installation.The port number that is set for MySQL during a Simple installation is set to49500
by default. - A system-wide password is required when performing a Simple installation. This password is used for all components used by Oracle VM Manager including MySQL, Oracle WebLogic and the Oracle VM Manager application itself. Note that the password should at least adhere to the requirements for an Oracle WebLogic password as set out below.
- The password for the Oracle Database SYS and SYSTEM accounts. You cannot use special characters for this password. Use only alpha numeric characters. This is only required during a Custom installation.
- The password for the Oracle VM Manager OVS database schema. This is only required during a Custom installation.
- The password for the Oracle WebLogic admin account. This is only required during a Custom installation.The password you use for the Oracle WebLogic admin account must conform to the following rules:
- Be between 8 and 16 characters in length.
- Contain at least 1 lower case and 1 upper case letter.
- Contain at least 1 numeric value or special character.
You must have an oracle user that is a member of a group named dba and which has the correct security limits set.
To configure the oracle user automatically, use the environment configuration script provided with the Oracle VM Manager installer. See Section 4.3.2.4, “Environment Configuration Script” for information on using this script.
Alternatively, you can setup the oracle user by following the commands below:
- If the oracle user does not exist on the Oracle VM Manager host, enter the following commands as the root user to create the user, create the group, add the user to the group, and set the user's password:
- If the oracle user already exists, add it to the dba group using the following command:
- The oracle user must also have a
hard nofiles
andsoft nofiles
minimum of at least 8192, as well as some other security limits set. To set these, edit the /etc/security/limits.conf file to include the following:
Oracle VM Manager and supporting products are installed into the /u01/app/oracle directory. Before you begin the Oracle VM Manager installation, make sure a /u01 directory exists, and it has at least 2.4 GB of space available.
To create the /u01 directory automatically, use the environment configuration script provided with the Oracle VM Manager installer. See Section 4.3.2.4, “Environment Configuration Script” for information on using this script.
[1] See Section 4.9, “Enabling Remote Log Ins” for information on configuring a remote UI instance.
Software Safety Requirements Example
- Software Engineering Tutorial
- S/W - Exams Questions with Answers
- S/W Engineering Resources
- Selected Reading
The software requirements are description of features and functionalities of the target system. Requirements convey the expectations of users from the software product. The requirements can be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.
Requirement Engineering
The process to gather the software requirements from client, analyze and document them is known as requirement engineering.
The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System Requirements Specification’ document.
Requirement Engineering Process
It is a four step process, which includes –
- Feasibility Study
- Requirement Gathering
- Software Requirement Specification
- Software Requirement Validation
Let us see the process briefly -
Software Usability Requirements Example
Feasibility study
When the client approaches the organization for getting the desired product developed, it comes up with rough idea about what all functions the software must perform and which all features are expected from the software.
Referencing to this information, the analysts does a detailed study about whether the desired system and its functionality are feasible to develop.
This feasibility study is focused towards goal of the organization. This study analyzes whether the software product can be practically materialized in terms of implementation, contribution of project to organization, cost constraints and as per values and objectives of the organization. It explores technical aspects of the project and product such as usability, maintainability, productivity and integration ability.
The output of this phase should be a feasibility study report that should contain adequate comments and recommendations for management about whether or not the project should be undertaken.
Requirement Gathering
If the feasibility report is positive towards undertaking the project, next phase starts with gathering requirements from the user. Analysts and engineers communicate with the client and end-users to know their ideas on what the software should provide and which features they want the software to include.
Software Requirement Specification
SRS is a document created by system analyst after the requirements are collected from various stakeholders.
SRS defines how the intended software will interact with hardware, external interfaces, speed of operation, response time of system, portability of software across various platforms, maintainability, speed of recovery after crashing, Security, Quality, Limitations etc.
The requirements received from client are written in natural language. It is the responsibility of system analyst to document the requirements in technical language so that they can be comprehended and useful by the software development team.
SRS should come up with following features:
- User Requirements are expressed in natural language.
- Technical requirements are expressed in structured language, which is used inside the organization.
- Design description should be written in Pseudo code.
- Format of Forms and GUI screen prints.
- Conditional and mathematical notations for DFDs etc.
Software Requirement Validation
After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked against following conditions -
- If they can be practically implemented
- If they are valid and as per functionality and domain of software
- If there are any ambiguities
- If they are complete
- If they can be demonstrated
Requirement Elicitation Process
Requirement elicitation process can be depicted using the folloiwng diagram:
- Requirements gathering - The developers discuss with the client and end users and know their expectations from the software.
- Organizing Requirements - The developers prioritize and arrange the requirements in order of importance, urgency and convenience.
- Negotiation & discussion - If requirements are ambiguous or there are some conflicts in requirements of various stakeholders, if they are, it is then negotiated and discussed with stakeholders. Requirements may then be prioritized and reasonably compromised.The requirements come from various stakeholders. To remove the ambiguity and conflicts, they are discussed for clarity and correctness. Unrealistic requirements are compromised reasonably.
- Documentation - All formal & informal, functional and non-functional requirements are documented and made available for next phase processing.
Requirement Elicitation Techniques
Requirements Elicitation is the process to find out the requirements for an intended software system by communicating with client, end users, system users and others who have a stake in the software system development.
There are various ways to discover requirements
Interviews
Interviews are strong medium to collect requirements. Organization may conduct several types of interviews such as:
- Structured (closed) interviews, where every single information to gather is decided in advance, they follow pattern and matter of discussion firmly.
- Non-structured (open) interviews, where information to gather is not decided in advance, more flexible and less biased.
- Oral interviews
- Written interviews
- One-to-one interviews which are held between two persons across the table.
- Group interviews which are held between groups of participants. They help to uncover any missing requirement as numerous people are involved.
Surveys
Organization may conduct surveys among various stakeholders by querying about their expectation and requirements from the upcoming system.
Questionnaires
A document with pre-defined set of objective questions and respective options is handed over to all stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in the questionnaire, the issue might be left unattended.
Task analysis
Team of engineers and developers may analyze the operation for which the new system is required. If the client already has some software to perform certain operation, it is studied and requirements of proposed system are collected.
Domain Analysis
Software Requirements Analysis
Every software falls into some domain category. The expert people in the domain can be a great help to analyze general and specific requirements.
Brainstorming
An informal debate is held among various stakeholders and all their inputs are recorded for further requirements analysis.
Prototyping
Prototyping is building user interface without adding detail functionality for user to interpret the features of intended software product. It helps giving better idea of requirements. If there is no software installed at client’s end for developer’s reference and the client is not aware of its own requirements, the developer creates a prototype based on initially mentioned requirements. The prototype is shown to the client and the feedback is noted. The client feedback serves as an input for requirement gathering.
Observation
Team of experts visit the client’s organization or workplace. They observe the actual working of the existing installed systems. They observe the workflow at client’s end and how execution problems are dealt. The team itself draws some conclusions which aid to form requirements expected from the software.
Software Requirements Characteristics
Gathering software requirements is the foundation of the entire software development project. Hence they must be clear, correct and well-defined.
A complete Software Requirement Specifications must be:
- Clear
- Correct
- Consistent
- Coherent
- Comprehensible
- Modifiable
- Verifiable
- Prioritized
- Unambiguous
- Traceable
- Credible source
Software Requirements
Software Functional Requirements Examples
We should try to understand what sort of requirements may arise in the requirement elicitation phase and what kinds of requirements are expected from the software system.
Broadly software requirements should be 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 -
- Search option given to user to search from various invoices.
- User should be able to mail any report to management.
- Users can be divided into groups and groups can be given separate rights.
- Should comply business rules and administrative functions.
- 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 -
- Content presentation
- Easy Navigation
- Simple interface
- Responsive
- Consistent UI elements
- Feedback mechanism
- Default settings
- Purposeful layout
- Strategical use of color and texture.
- Provide help information
- User centric approach
- Group based view settings.
Software System Analyst
System analyst in an IT organization is a person, who analyzes the requirement of proposed system and ensures that requirements are conceived and documented properly & correctly. Role of an analyst starts during Software Analysis Phase of SDLC. It is the responsibility of analyst to make sure that the developed software meets the requirements of the client.
System Analysts have the following responsibilities:
- Analyzing and understanding requirements of intended software
- Understanding how the project will contribute in the organization objectives
- Identify sources of requirement
- Validation of requirement
- Develop and implement requirement management plan
- Documentation of business, technical, process and product requirements
- Coordination with clients to prioritize requirements and remove and ambiguity
- Finalizing acceptance criteria with client and other stakeholders
Software Metrics and Measures
Software Measures can be understood as a process of quantifying and symbolizing various attributes and aspects of software.
Software Interface Requirements Example
Software Metrics provide measures for various aspects of software process and software product.
Software System Requirements Example
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.
Software Requirements Specification Example For Mobile Applications
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.