|Author : DAOUDI Samir | Context : MSc Software Engineering – Object Oriented Analysis|
Question: FoodCo Company has some requirements that should be categorized into functional and non-functional.
For each software application in particular or any project in general, it is important really important to understand the requirement. The clear understanding of the requirements avoids the entire team many changes and conflicts in the project and it might help the project manager to appropriately estimate the resources, efforts and budget required. As mentioned by Francis Xavier, Requirements Elicitation is the most important stage in the Software Development Life Cycle Process. If the requirements have not been captured correctly during the Elicitation process, then the whole development process will fail which results in time and monetary costs (Francis and Chandra, 2012).The requirements for a software application might be divided into two main categories:
The functional requirements: These are the basic and fundamental requirements of the system and the major tasks that the system should be able to accomplish in its environment and context. Those are the direct requirements that are mandatory in a system. The functional can be seen as a component of a system which accepts inputs and generates a result or an action (Zhu.et.al, 2012).
The non-functional requirements: These are the complementary requirements that the system might provide or assure the functional requirements (Francis and Chandra, 2012).
List of functional requirements
1 – The system should be able to get data about skills, experience, holidays and sickness: This is an important feature of the system, this last should receive data about the operatives either from a local database or any other system (e.g. HR database) it a correct format, which allows the decision of allocation to be made based on this information.
2- The system might run as a service or automated software which fires some actions without human interaction:Running as a service or as an independent system is mandatory, as the operations should be run in a regular basis; it should be possible to configure the system to start automatically. Technically this could be achieved by using the CRON or system tasks.
3 – The allocation draft should be ready and printed out by Friday 12.00 noon: The 1st draft of staff allocation should be ready by Friday 12.00 noon, some tests should be done to estimate the required time for the analysis and process of these data to allow us estimate at what time the system should be fired.
4- Staff in production planning might be able to edit the automatic allocation: The system should be able to authenticate and authorize members of the production planning team to change the allocation list, to fine-tune the list.
5 – The system should be able to handle 100 (upgradable to 200) operatives: The system processing capabilities should be easily upgradable. This requirement should be easily satisfied, the only impact is the service auto start schedule, which should be reviewed if the processing time gets extended.
6- The final list should be printed out by 5.00 pm: Once all the modifications done, the system should be able to print the final list by 5.00 pm.
List of non-functional requirements:
1 –Interfacing with other systems: In case external data sources (e.g. HR database) the system might need to receive the data in certain format. Writing interfaces or ETL processes that queries this data and transform it into an acceptable format for the allocation system might be required.
2 –Security and users authentication: The system should be able to authenticate users with another system in the company (e.g. Active Directory) or with its actual data (roles and access).
– Francis Xavier Christopher and Chandra, E (2012). Prediction of software requirements stability based on complexity point measurement using multi-criteria fuzzy approach. ISBN: 10.5121.2012.3608. Vol.3, No.6, November 2012.
– Zhu. M, Luo. X, Chen .H, Wu .D (2012). A non-functional requirements trade-off model in Trustworthy Software. Information Sciences. (Information Sciences, 15 May 2012, 191:61-75).