In the previous chapter, we’ve discussed about project planning and feasibility study. That stage was important because it tries to establish a problem in our highly technological world. As our understanding on what we can do in computers evolve and so are the things that we need to make them work. Research will us an idea about present day requirements and also the public or the intended users’ response for such software.
In this chapter, we will look into answering those problems. In system analysis stage of SDLC, the answers to above problems will be created, in principle. SDLC is a very precise stage that each minor step is highlighted to ensure the software will work as planned. Systems analysis, requirements definition is the stage where developers try to explain the possible solutions to the problem. But instead of answering the problem head-on, the solutions are posted in functions expected from the software.
System Analysis
Once the developers have determined the required software, it is time to analyze the type of software that could answer the problems encountered. System analysis will take a look at possible software. The goal of a system analysis is to know the properties and functions of software that would answer the concerns solicited from intended users.
System Analysis would lead in determining the requirements needed in software. These requirements in software should be implemented otherwise the software may not answer the concerns or may lack in its usage. This stage will somehow determine how the software should function.
The Two Types of Requirements:
The term “requirements” in the projected software are too broad. Developers have to classify these requirements to create clearer goal for the intended software. It is important for any developers to list all the requirements and classify them to ensure that the software will have all the expected properties and could exceed the expectations of the software. When developers lay out the expected requirements from the software, they should be able to visualize what type of software they will be developing.
Functional Requirements
The first type of requirement in a software is the functional requirement. In this category, developers list the functions that the software should be able to perform. These are practically the functions that the users will be looking for in the software. For example, the requirements for a software to be used in a business would ideally be a office productivity software. The functional requirement of an office productivity software should have the ability to calculate or to collate information from different sources and print them.
Non-Functional Requirements
Non-functional type of requirement does not require actions but they are basically intrinsic in software. Without this, the software will never function or would have deficiency in its output. One great example of non-functional requirements in a software are the type of interface you should be expecting in a software. Other examples of non-functional requirements in software are security, accuracy, availability, capacity, reliability, and response time. These are basically the properties and performance expected from the software. There are developers who focus on non-functional requirements because it will basically dictate how the software will function.
Functional vs. Non-Functional Requirements
Each developer will have their own preferences. Some will choose functional requirement over non-functional since users will always be looking for better interaction of one software over another. Others prefer non-functional requirements since it will become the backbone of a software. If users will have more than average knowledge of software, they should be able to navigate the program easily since the interface is strong in these types of software. It is the responsibility of the project manager to create opportunities for both requirements. This is usually done by assigning different developers to create those requirements.
Modeling of Requirements
System Analysis will also require developers to map the functions and properties of the expected software. This is basically the same with workflow but data and process will have their own presentation.
Process Modeling
Developers need to show how the software will function on a specific concern. Developers have to model this based on the projected performance of the software. This is the closest thing to a workflow. However, the processed outlined is purely based on function on how it will treat the data placed on the software. This is created so that developers will have the clear idea of what should be created. Project managers on the other hand, could clearly outline the timeframe when the software will be finished and released to the public.
Data Modeling
Complementing the process modeling is the actual treatment of data not only in the software but also in its output and influence to other departments. This will show how will the software function and influence other departments. Data modeling is created so that developers and the projected users will have a clear understanding on how will the prepared software affect their productivity and their relationship to other departments. This is usually done to present the robust functionality of software as it will basically streamline the entire information of the business.
The previous chapter was focused mainly on the researchers output on present day requirements in both business and consumer world. In this chapter, developers are on the spotlight as they are required to answer these problems. Usually to meet any requirements, functions are created on a specific software for example, the ability of a software to compute other processes. However, it should also be emphasized that along with function, the backend properties of the software should also be emphasized. That means security, speed, accuracy of information, reliability of the output and even its sleek interface should be considered. Not only the features should be emphasized, developers should also understand the importance of the advantages of the software created. Without the advantages, functions would not even be bragged about.
To properly present this information, developers have to create two types of model: the process model which practically serves as the workflow for software development shows how data could be used and implemented. Data model is also created during this stage so that developers could show the relationship of the out of the software to users and other departments.
When all of these are listed and presented, a complete system presentation is already at hand. Developers, project engineers, managers or even its intended users could anticipate the function of the software. If this is implemented in a business environment, Systems analysis, requirements definition will show what will be the company future in terms of information technology. The ability to look ahead will give everyone a chance to prepare, make some changes in their tools or even create changes in the department as a way of anticipation.
Systems analysis, requirements definition is the stage where everything about the software is known based on the answering the concerns or current business or consumer need. Developers will practically take over from the researches and move on to create the software. Systems analysis, requirements definition will serve as a window and list of expectations on what the software should be. It is a challenge as well as a dream for every software engineer.