Requirement engineering is the process of determining and creating a system requirements document, it includes determining functional requirements, non functional requirements and constraints. The process involves four sub-processes which are concerned with: feasibility studies, elicitation and analysis, specification and validation.Feasibility studies
All system requirement engineering starts with a feasibility study. It collects information on business requirements, a description of the system and how it will support business processes. The output of the information collected is a recommendation of whether the system is worth developing.Feasibility studies tries to answer questions such as:
- Will the system contribute to the overall business objectives?
- Can the system be implemented using current technology and schedule constraints and cost?
- Can the system be integrated into existing systems?
Carrying out feasibility studies involves information assessment, information collection and report writing. The information assessment phase determines which information answers the questions above. Once the information is identified, information is gathered by talking to stakeholders, users and other actors involved. After collecting the information a report is written making recommendations on whether system development should proceed or not. Changes to budget, schedule may be proposed in the report.
Requirements elicitation and analysis
The next stage of the engineering process is requirement elicitation and analysis. In this stage software engineers work with system end users to find out about the application domain, what services the system should provide and required performance of the system.
A general process model of elicitation and analysis is often referred to as the spiral model because the activities are interleaved as the process progress from the inner to the outer. The activities are:
- Requirements discovery: during this activity requirements are collected by interacting with stakeholders in the system.
- Requirements classification and organization: in this activity gathered requirements are grouped into related requirements and organized into coherent clusters.
- Requirements prioritization and negotiation: in many cases requirements from different stakeholders may conflict, at this stage conflicts are resolved and prioritized.
- Requirements documentation: in this activity requirements are documented and used as input for the next round of the spiral.
Software specification requirement is the activity of translating information gathered during requirements elicitation and analysis into a document that defines the set of requirements. It is the official statement of what the system developers should implement. The SRS document precisely defines functions and capabilities of a software system. It defines any constraints by which the system must abide. The specification document should include user requirements for the system and a detailed specification of the system requirements. The specification document has diverse users ranging from senior management to software engineers who would be developing the system.
The level of detail included in the requirement specification is largely dependent on the type of system that is being developed and the development process used.Requirements validation
Requirements validation is concerned with showing that the requirements actually define the system. It is concerned with finding problems with the requirements document. Requirements validation is important because errors in a requirements document can be expensive if discovered during system development stages.
During requirements validation process, checks that are carried out on the requirements document include: validity check, consistency check, completeness check, verifiability check, and realism check. A number of validation techniques may be employed and they include: requirement review, prototyping and test-case requirement.What are some of the key development areas you fore see in computing?
The future of computing means many different things to different people. Technologists look to the future and envision a number of PCs, sensors, microprocessors, handheld wireless devices and even ordinary consumer items connected throughout the world. To the ordinary person this presents mix feelings of excitement, anticipation and fear for privacy, security and social stability. In this paper I discuss the future of computing.
First, I like to talk about what is referred to as "The End of the Computer Terminal. Scientists refer to it us ubiquitous or pervasive computing which in simple terms is an unprecedented level of connectivity. According to pioneers of information technology in the near future computer terminals will disappear. What this means is that computers are literally going to be absorbed by their surroundings and embedded in walls, carpets, toasters, neckties and even our own bodies. As computing dissolves into the environment, it will become as pervasive as the electricity flowing through society. The way humans interact with computers will also be affected. Instead of typing commands into a passive box, humans will use speech and physical gestures to communicate with computers.
Cloud computing is one of the foundations of the next generation of computing. It's a world where the network is the plat-form for all computing. In that world everything we think of as a computer today is just a device that connects to the big computer we're building. Cloud computing is a great way to think about how we'll deliver computing services in the future. A key attraction of cloud computing is that it conceals the complexity of the infrastructure from developers and end users. They don't know or need to know what's in the cloud they only care that it delivers the services they need. Cloud computing comes in three main infrastructure service models: private, public and hybrid models.
Emerging technologies will have a dramatic impact on the future of humans. We cannot talk about technologies that will shape the future without mentioning robots. The potential uses for robotics are as diverse as the robots themselves. The impact of robots on human life can be put into five major or emerging sectors, which are: (1) manufacturing, (2) defense, (3) disaster preparedness, response, and relief, (4) border security, and (5) medicine. In medicine, for instance one of the interesting areas being looked at is Surgery Robots. Surgical robotics is a new technology that holds significant promise. Robotic surgery is often seen as a new revolution, and it is one of the most talked about subjects in surgery today. There is no doubt that they will become an important tool in the surgical armamentarium, but the extent of their use is still evolving.
In conclusion, Bill Joy, the cofounder and chief scientist at Sun Microsystems, in his 2000 article in WIRED Magazine "Why the future doesn't need us" suggested that our most powerful 21st century technologies, for example robotics, genetic engineering and nanotechnology could threaten to make humans an endangered species. He predicted that as technology advances, humans will increasingly delegate responsibility to intelligent machines able to make their own decisions. Ultimately the future of computing could greatly benefit society if its evolution is incorporated with the needs of the people. Consider the elderly able to live at home while their health is monitored remotely. I believe that emerging computing system will simply make it difficult to withhold information in the future.