Non-functional system requirements
Headspace project requires an efficient solution based on the current need for information management where patients record more so their diagnostic stories are stored by an elaborate information system. From the initial assessments given, the patients and the health practitioners face serious challenges of information availability and accessibility because the current service model lacks a means to store the patient’s ordeals. Now, a modern information system coupled with cloud-based resources would offer the necessary solution for meeting the needs of the medical services (Ghosh, 2012). In essence, the stories (detailed accounts) of the patients would be stored conveniently in the cloud infrastructure which is an endless storage resource that would facilitate the treatments given despite the changes in the medical personnel. This report analyses this system from a design perspective where the resource requirements including the affiliated cloud facilities are given. Furthermore, the report also compares the different design methods of implementing software packages and offers a conclusive recommendation.
While using the proposed system, the users will develop their own personalized judgments based on the performance exhibited. In this case, they will assess the system’s usability, performance, security and even reliability. Now, these elements outline the non-functional requirements which generally are the criteria used to assess the operation of any given system. Moreover, while functional requirements are determined by the technical specification and define exact behaviour of the system, non-functional requirements stem from the collaboration of the technical components (INF, 2004).
Although several subsidiary objectives are given for the project, the proposed system should solve the main problem of data management where its availability and accessibility should be improved. Moreover, the system must be able to maintain records based on the specifications given by the users i.e. data management (Chung, 2012). Finally, the system must be resilient i.e. it must have the ability to withstand attacks. In all, it should possess the following qualities:
Enhanced usability – a measure of the practicality quota of the system where users have optimal satisfaction rates.
Optimal performance – the system should facilitate all the actions of the users regardless of their complexities.
System reliability – not only the ability to withstand attacks and other hardships but also the consistency of service delivery regardless of the platforms used.
Security – data safety as provided by good authentication and encryption standards. Moreover, the policies used should specify the owners of the data (Rahman, Safadi, & Basaula, 2015). In this case, since cloud facilities are to be used yet they do not fall under the jurisdiction of the Australian law, encryption more so during transmission will be used. In addition to this, virtual private networks (VPNs) will facilitate personalized access of the cloud resourced based on personalized portals. Finally, end to end authentication should be used to ensure access is managed, depending on the user’s access.
The graphical and visual appeal will determine the system’s usability regardless of the overall technical abilities or capabilities. Therefore, while the Headspace project may have a wide range of functionalities, they should be delivered in an aesthetic way to improve the user interaction.
System qualities
Following UI components will determine this visual appeal:
Interface colour – user-centred design recommends colours that appeal to the users based on their environment. Therefore, the colour of the system should match that of the organization.
Background – integrating images and different colour schematic will enhance the user’s interaction which improves their performance of the use and that of the system.
Font colour and size – now, these elements do not have a foundational component in the design, thus should be left for the user to decide i.e. incorporating them as preferences in the system settings (Hassan, 2015).
In this scenario we have three:
- Deployment platform – many operating system and languages will be used which possess several challenges
- System licensing which may limit the overall functionalities.
- Time and budget limitations.
Headspace delivers services to the general public which designates its operational environment as an open platform. Similarly, cloud resources operate within the open platform where elements of security and even data ownership are unknown. However, cloud-based solution enhance service delivery systems by incorporating the conveniences and benefits of virtualization into the information system. Therefore, while basic information system may offer managerial services by collecting and analyzing information, their roles are enhanced to include real-time facilities of consulting the resources of the worldwide web (Chappelle, 2008). Furthermore, they increase the overall availability of information which is a welcomed feature for Headspace as the patients interact with several medical practitioners who require access to their data.
In addition to this, consider the storage requirement where detailed patient accounts (stories) are necessary to give the correct treatments. These stories require a lot of storage as they are never limited and based on the new recommendations will continuously be added on to increase the practitioner’s understanding of the patients. Now, while in-house facilities may offer the necessary storage, they are bulky and expensive thus will not manage the requirements. Furthermore, these storage facilities are not able to cater for the changes in storage depending on the volumes of data given. Therefore, the only practical solution is cloud computing as it has all the necessary resources based on the immediate needs of the users (Primault, 2016).
- Operation conveniences– consider storage as a service as given by cloud computing, this resource can be accessed from any location so long as the user has an internet connection. Therefore, the medical fraternity will have the benefit of data availability and accessibility.
- Cost saving– unlike in-house resources which the user must implement and maintain, cloud resources are supported by the service provider. This outcome minimizes the overall cost of operations.
- System resiliency– cloud service provider will store the customer’s data in several locations which improve the redundancy programs (DR plans)(Alton, 2015).
- Control – the user has minimal control on all the resources given including their own data if it’s migrated to the cloud facilities. Moreover, the user cannot tag or track resources the same way they can while using the on-premise equipment.
- Data security and privacy– cloud-based solutions are accessed using public channels i.e. the internet. This resource has many security threats that risk the data hosted on online infrastructures. Furthermore, the users cannot adequately track the traffic between their own in-house systems at the cloud resource.
So far, this report has highlighted several requirements of the system including the integration of cloud computing in order to improve the system’s availability and accessibility. Furthermore, the requirements of data security, access and ownership have been given which outlines the complexity of the process of designing the system at hand. SDLC is an industrial response to these extended requirements where developers use well-known procedures to implement software solutions. In this case, SDLC will define the technical requirements i.e. functional elements such as size and capabilities. Furthermore, it will outline the non-functional requirements which provide the criteria for judging the system’s operations. Finally, having identified these requirements it will provide the implementation procedure to ensure these elements are reflected in the final solution (Isaias & Issa, 2010). Therefore, SDLC can be defined as the process of planning, developing and deploying software systems.
A conventional approach that uses a completely predictable procedure to implement software solutions. In essence, the development process will start by defining all the system’s preferences and requirements as outlined by the end user. In addition to these elements, the approach will define several assumptions that will never change such as the design personnel and implementation time. Now, following these assumptions and requirements, the approach will define a consistent procedure of enacting the solution. This procedure must avoid all variations and changes to system specifications as they will result in the breakdown of the development procedure (Okoli & Carillo, 2010). Moreover, the procedure will also follow a sequential guideline or flow of events based on a number of implementation stages. Again, this flow of the implementation stages is independent of changes, an outcome that limits the stages overlaps or concurrent development.
- The predictive approach requires accurate documentation of the design process, a requirement that improves its accountability. Furthermore, it’s easier to compare results with the initial assumptions.
- It is also cost-effective as the solution implemented must conform with the initial assessments made including the budget allocations.
- Finally, it is also very simple to use because the implementation stages are usually given and work in a logical flow of events(Peru, 2014).
- The approach tends to provide many instances of uncertainty and ambiguity as unknown variables are not adequately handled by its procedures.
- Furthermore, it’s time intensive as all logical steps must be followed sequentially without any form of overlap, an outcome that consumes a lot of time.
System interface and User interface (UI) requirements
While the predictive approach is the traditional method of implementing systems, the adaptive approach is the industrial response to the limitations of predictive SDLC. In essence, the adaptive method gives system design and development a modern outlook where the requirements of agility, flexibility and resilience are demanded. Therefore, unlike the predictive approach, it does not outline specific assumptions but assumes that all requirements will change, outcomes that enhance its application.
To start with, the adaptive approach does not define a sequential procedure, instead, it provides a logical structure based on the segmentation of different implementation stages. These stages are then deployed depending on the needs of the users. Therefore, several implementation stages can be run concurrently and later combined to form the final solution. Now, informing the final solution several iteration techniques are used which continuously tests the system based on the rudimentary functionalities of the system, otherwise known as prototypes (UT, 2017).
- Time efficient – system developer can implement a single solution using an extended team running different implementation stages concurrently.
- User-centered approach – the approach develops solutions with the constant consolation of the user which improves system performance and usability.
- Agile and flexible – any changes to the development process can be accommodated without affecting the performance of the final solution(Okoli & Carillo, 2010).
- In most cases, the approach tends to require a lot of expertise because of the diversification made on the implementation process i.e. the stages.
By all definitions, the Headspace project is a modern system with advanced requirements that include the use of virtualization. These requirements are quite extensive for the assumptions of predictive methods. Moreover, these requirements will constantly change depending on the immediate needs of the user. Therefore, the predictive method would not suffice as it would fall short on these requirements. Furthermore, the adaptive approach is agile and flexible, features that would guarantee the integration of the system with cloud computing (MIS, 2015). The approach (adaptive) would also optimize resources as it would be able to adapt to different system changes.
Conclusion
There are many considerations to be made by the Headspace project before implementing the proposed system. For one, the project requires to identify a suitable cloud resource that will fulfil their requirements. Furthermore, the project holds a long-term goal having the resources of the patients and their practitioners. Therefore, the development approach should reflect these requirements including the non-functional elements. Now, these requirements will constantly change in the future which outlines the reasons for the SDLC approach chosen. Moreover, the system should adequately integrate with the cloud-based services including the requirements of data security and ownership, critical factors that will be determined by the implementation process. In all, the SDLC approach will dictate the success of the system including its integration with other functional facilities.
References
Alton, L. (2015). Cloud computing Pros. IT business edge, Retrieved 28 September, 2017, from: https://www.smallbusinesscomputing.com/biztools/the-pros-and-cons-of-cloud-computing.html.
Chappelle, D. (2008). A SHORT INTRODUCTION TO CLOUD PLATFORMS. AN ENTERPRISE-ORIENTED VIEW, Retrieved 28 September, 2017, from: https://www.davidchappell.com/CloudPlatforms–Chappell.pdf.
Chung, L. (2012). Non-Functional Requirements. Retrieved 28 September, 2017, from: https://www.utdallas.edu/~chung/SYSM6309/NFR-18-4-on-1.pdf.
Ghosh, A. (2012). Cloud Computing. M.Tech. Seminar Report, Retrieved 28 September, 2017, from: https://www.cse.iitb.ac.in/~abhirup09/Docs/cloud_computing_final_report.pdf.
Hassan, A. (2015). Software Architecture. CISC 322, Retrieved 28 September, 2017, from: https://research.cs.queensu.ca/~ahmed/home/teaching/CISC322/F09/slides/CISC322_02_Requirements.pdf.
INF, C. (2004). Software Requirements. CS2 Software Engineering note 2, Retrieved 28 September, 2017, from: https://www.inf.ed.ac.uk/teaching/courses/cs2/LectureNotes/CS2Ah/SoftEng/se02.pdf.
Isaias, P., & Issa, T. (2010). Information System Development Life Cycle Models. Retrieved 28 September, 2017, from: https://www.springer.com/cda/content/document/cda_downloaddocument/9781461492535-c2.pdf?SGWID=0-0-45-1479416-p175478101.
MIS. (2015). The System Development Life Cycle. Retrieved 28 September, 2017, from: https://utexas.instructure.com/courses/1166782/files/38198507/download.
Okoli, C., & Carillo, K. (2010). The best of adaptive and predictive methodologies: Open source software development, a balance between agility and discipline. Retrieved 28 September, 2017, from: https://chitu.okoli.org/media/pro/research/pubs/OkoliCarillo2010IJAESD.pdf.
Peru, G. (2014). Software Development Life Cycle. GSL Peru , Retrieved 28 September, 2017, from: https://gsl.mit.edu/media/programs/peru-summer-2014/materials/t04-_software_development_life_cycle.pdf.
Primault, C. (2016). Cloud Computing for Small Business Success. Retrieved 28 September, 2017, from: https://getapp.ulitzer.com/.
Rahman, R., Safadi, W., & Basaula, A. (2015). Functional And Non-Functional Requirements. Retrieved 28 September, 2017, from: https://ami-2015.github.io/MyGuide/d2-final.pdf.
(2017). 2 – SDLC – adaptive and predictive.pdf. MIS, Retrieved 28 September, 2017, from: https://utexas.instructure.com/courses/1166782/files/38198507.