Non-Functional Requirements
Headspace is an organization that works with the young aged people of age 12 to 25, who experiences the mental ill health such as depression and anxiety. The Commonwealth Government of Australia has undertaken a project that aims in developing a health record system for storing and accessing the patients’ data. The successful implementation of the project eliminates the need of manual data keeping and thus it will become easier for the patients and the professionals to access the records. This eliminates the need of re telling the story, every time a patient visits a new professional. Therefore a system is planned to develop that will digitally store the all the medical records of the patients, which would make it more accessible both to the patients and the professionals. The report discusses the functional as well as non-functional requirements along with the cloud environment on which the project will be based on. The pros and cons of different SDLC approaches along with the details of hybrid cloud environment are elaborated in the following paragraphs (Steele, Min & Lo, 2012).
Non-functional requirements of the system identify the criteria that can be effectively used in judging the entire operations of a system. They have a contrasting character with the system’s functional requirements, which helps in defining and identifying the specific and the important functions of a system. Non-functional requirements defines the working principal of the system while the functional requirements decides or defines what a system should do (Chung, Nixon & Mylopoulos, 2012). The non-functional requirements that are identified for the development of the information system are elaborated below-
The functionality of the system is a major non-functional requirement, as the software under development should abide by the functionalities and objectives of a system. This includes maintaining the system’s steady performance. The primary functionality of the system to be developed is recording and storing the patient’s data and therefore, the system should be robust and flexible enough to store a data of any size. The accessibility to the system should be easier as well.
One of the major aspects that are needed to be considered for determining the primary non-functional requirement of the software that is to be developed is the usability. The non-functional requirements that are associated with usability of a software are listed below-
- Ease of learning: the software must be easy to learn and operate for both the admin and the users.
- Task Efficient: The system should be efficient enough for the frequent users . It should perform the set objective.
- Subject satisfaction: the user should be fully satisfied with the working of the software.
The system should be reliable enough to provide a steady platform for storage and access of data. The system is required to store the health records of the patients and therefore, data recovery is one of the major non-functional requirements of the system. Inclusion of a proper data recovery option in the software is a mandatory non-functional requirement of the system. Data recovery feature is therefore a primary non-functional requirement of the system.
Functional Requirements
Maintenance of high performance in the system is necessary for assuring proper functionality of the system. It is possible that a number of professionals will access the system and therefore, a high performing system is necessary for a stable data processing speed. A quick view or summary button can be implemented in the system for managing the efficient system performance and therefore it can be considered as an important non-functional requirement of the system.
The security is another non-functional requirement of the system. The major requirements include protection of data from unauthorized access. The data patients’ would store in the system should be kept confidential and only the permitted or authorized users are allowed to access the data (Kulkarni et al., 2012). The security feature includes the different security measures that will help in safeguarding and protecting the data present in the system. It is further essential to maintain the integrity and confidentiality of the data. Thus, a secure system is essential feature of the software under development.
The functional requirements of the system describes the different processes or features that are essentially incorporated in the system so that the proper functionality of the system is maintained. It is different from the non-functional requirements of this information system, as the absence of certain non-functional requirement would not hamper the normal workflow of the system. Functional requirements generally deal with the technical details of a system that specifies the objective of the system.
One of the major functional requirements of this system is authentication. This functional requirement is related to a non-functional requirement of the system that is security. The major requirement ensuring a proper security of information system is authentication. Different authorization levels can be defined for controlling the access to the system. This ensures the proper security in the system and secure data access (Pearce & Bainbridge, 2014).
Another major functional requirement of the system is presence of a summary statement feature of the records in the system. This abides by a non-functional requirement of the information system to be developed, which is functionality. The major function of the system to be developed is storage and access of patients’ data.
However, there is a huge difference in the functional and the non-functional aspects of this information system. This is because the functional requirements are needed to be implemented for developing the system according to the objective.
The three cloud alternatives that can be considered for implementation of this system are public cloud, private cloud and hybrid cloud. The problem related to the public cloud environment is that the information, which is present in the public cloud is easily accessible to the public and therefore it has various security and privacy issues. With the advent of data mining, the public can easily access the data present in the public cloud and therefore, this cloud environment cannot be considered in development of this information system (AlZain et al., 2012).
Cloud Environment
Private cloud storage on the other hand is responsible for storing data of an organization at in house storage server. It is similar to the public cloud as it provides the benefits of usability, scalability and flexibility but the access to the data is very limited in case of cloud storage. If the system is implemented in a private cloud network, only the workers and professionals of the headspace will be able to access the data and the data access would be difficult if the patient visits a different professionals.
Implementing the system in a hybrid cloud environment would therefore be appropriate in this case. It offers all the benefits of a public cloud environment and limits the access to the data present in the system only to the authorized users (Galibus & Vissia, 2015). Therefore, this best cloud environment can be considered for this project.
The strengths of hybrid cloud environment are listed below-
- The primary benefit of implementing a hybrid cloud approach is that, it offers a cost effective solution. In this environment, the organization can leverage the help of public cloud environment thus required to pay less money on infrastructure (Li et al., 2013).
- The hybrid cloud environment provides improved security than a public cloud environment. Researches prove that, hybrid cloud environment suffers fewer attacks as compared to the public cloud environment (Li et al., 2015).
- Another major advantage of cloud environment is that, it provides greater accessibility to the business and critical applications.
The different weakness or disadvantages of the hybrid cloud environment are listed below-
- The major weakness of a hybrid cloud environment is the movement of data in and out of the public and the private zone can be targeted by a hacker.
- Cost of implementation is more than public cloud (Chen & Zhao, 2012)
SDLC or software development life cycle is a framework or process that defines the number of tasks performed in a software development process. The different phases of a software development life cycle include the phases such as feasibility study, planning, implementation and testing. The two SDLC approach, predictive and adaptive are elaborated in the following paragraphs.
In the predictive approach of the software development life cycle, the planning of all the phases of software is done before the initiation of the development phase. This approach can e undertaken only when the objectives and scope of a project is clear from the beginning. In predictive approach, he project is needed to be implemented according to the set plan to complete it within a set schedule (Tuteja & Dubey, 2012). The project deliverable is generally clear in this approach and therefore, each deliverable is completed within a set schedule. The pros and cons of using this SDLC approach are elaborated in the following paragraphs.
Pros/Advantages
The advantages of the predictive software development life cycle are elaborated below-
1) The possibility of project completion within the set time is high as the project phases are defined at the initiation of the project.
2) The project requirements remain unchanged throughout the project life cycle and the scope of the project also remains clear at the beginning of the project.
3) The risk associated with the project development is low. This is because the requirements are defined at the beginning of the project
SDLC Approach
4) A proper method of documentation is followed in this approach that helps in keeping a track of the entire project.
Cons/Disadvantages
The disadvantages of using predictive SDLC approach in development of a software are listed below-
1) There is a very little scope of adding any other feature or scope in the project after its implementation since all the phases of the project are planned at the project initiation phase.
2) Changing the track of the project while it is implemented is not possible. Furthermore, the absence of feedback path makes it even more complex.
The adaptive approach is very different from the predictive approach as the phases are not planned at the initiation of the project. It follows an agile methodology that allows changes in the project and the software under development in its implementation phase as well (Balaji & Murugaiyan, 2012). The pros and cons are elaborated below.
Pros
- System can be improvised while development
- Thorough testing of the different phases
Cons
- The project inquires a risk of not meeting a fixed deadline
- Thorough supervision is needed.
Since the project under discussion is a medium sized project, therefore it will be beneficial for the organization to undertake the predictive SDLC approach Mahalakshmi & Sundararajan, 2013).
Conclusion
Therefore, from the above discussion it can be concluded that the implementation of this system is possible with a proper planning, which is a basis of predictive SDLC. The report discusses the benefits of using a hybrid cloud environment for this project along with the different non-functional requirements.
References
AlZain, M. A., Pardede, E., Soh, B., & Thom, J. A. (2012, January). Cloud computing security: from single to multi-clouds. In System Science (HICSS), 2012 45th Hawaii International Conference on (pp. 5490-5499). IEEE.
Balaji, S., & Murugaiyan, M. S. (2012). Waterfall vs. V-Model vs. Agile: A comparative study on SDLC. International Journal of Information Technology and Business Management, 2(1), 26-30.
Chen, D., & Zhao, H. (2012, March). Data security and privacy protection issues in cloud computing. In Computer Science and Electronics Engineering (ICCSEE), 2012 International Conference on (Vol. 1, pp. 647-651). IEEE.
Chung, L., Nixon, B. A., Yu, E., & Mylopoulos, J. (2012). Non-functional requirements in software engineering (Vol. 5). Springer Science & Business Media.
Galibus, T., & Vissia, H. E. R. M. (2015). Cloud storage security. Proc NSCE, 2014, 123-127.
Jain, A. K., & Nandakumar, K. (2012). Biometric Authentication: System Security and User Privacy. IEEE Computer, 45(11), 87-92.
Kulkarni, G., Gambhir, J., Patil, T., & Dongare, A. (2012, June). A security aspects in cloud computing. In Software Engineering and Service Science (ICSESS), 2012 IEEE 3rd International Conference on (pp. 547-550). IEEE.
Li, J., Li, Y. K., Chen, X., Lee, P. P., & Lou, W. (2015). A hybrid cloud approach for secure authorized deduplication. IEEE Transactions on Parallel and Distributed Systems, 26(5), 1206-1216.
Li, Q., Wang, Z. Y., Li, W. H., Li, J., Wang, C., & Du, R. Y. (2013). Applications integration in a hybrid cloud computing environment: Modelling and platform. Enterprise Information Systems, 7(3), 237-271.
Mahalakshmi, M., & Sundararajan, M. (2013). Traditional SDLC Vs Scrum Methodology–A Comparative Study. International Journal of Emerging Technology and Advanced Engineering, 3(6), 192-196.
Pearce, C., & Bainbridge, M. (2014). A personally controlled electronic health record for Australia. Journal of the American Medical Informatics Association, 21(4), 707-713.
Rittinghouse, J. W., & Ransome, J. F. (2016). Cloud computing: implementation, management, and security. CRC press.
Steele, R., Min, K., & Lo, A. (2012). Personal health record architectures: technology infrastructure implications and dependencies. Journal of the Association for Information Science and Technology, 63(6), 1079-1091.
Tuteja, M., & Dubey, G. (2012). A research study on importance of testing and quality assurance in software development life cycle (SDLC) models. International Journal of Soft Computing and Engineering (IJSCE), 2(3), 251-257