Non-functional requirements
Virtualization holds many answers for future systems which will require multiple resources at single instances in order to meet the needs of the users. Now, in today’s systems, the requirements of immediate and impromptu solutions are already being experienced because of the growth of the digital medium. In essence, the internet has increased the demands of the users who desire versatile solutions based on their immediate needs. At the helm of virtualization technologies is cloud computing which offers extended services and resources based on subscription models. Through this models, resources such as storage, computational power and networks are offered at affordable prices (Baylor, 2013). Similarly, the case at hand (Headspace project) aims to increase the functionalities of its medical system so as to improve service delivery methods. Furthermore, this project requires dynamic solutions that will adapt to the needs of the patients for instance, when their assigned practitioners are absent. Now, this report analyses cloud computing and its suitability for the Headspace project based on its outlined requirements.
In the project’s description, several objectives are outlined, amongst them being the ability to regulate access (system’s security) and data ownership. These objectives are critical, as the data stored in the system will be very sensitive as outlined by the patients themselves. Therefore, when these records are subjected to a public resource (the cloud) the ability to protect their privacy and security should be considered (Kathuria, 2011).
In general, the non-functional requirements will highlight the interaction between the users and the system itself. Moreover, they will determine the performance of the system because the users will either be drawn towards or away from the application based on their suitability (Taylor, 2000). Now, system qualities are a key component of non-functional requirements as they define the attributes or characteristics of the system developed.
System usability – the overall measure of the system’s practicality, an attribute that defines the satisfactory levels of the user after engaging the system. A good system should be simple, interactive and versatile in its functionalities.
Performance – the facilitation of the user’s actions determine the system performance. Its also gauged by the system responsiveness.
System reliability – the Headspace project will require a dependable and accountable system having minimal technical glitches (Fernández-Cardeñosa, Torre-Díez, & López-Coronado, 2015).
Security – using encryption and authentication techniques, the cloud facility will be secured to offer access and authorization to the verified members.
User interface defines the graphical elements that interact with the end user based on the designed APIs (application presentation interface). These elements should be interactive to engage and enhance the system’s usability. This objective can be met by the following qualities:
Accessibility – the system should be easy to access across all computing platforms.
Consistency – performance should never change regardless of the platform used.
Aesthetic – finally, the system should appeal to the user, having good colour and image qualities (Goldsmith, 2017).
These requirements highlight the various elements of the graphical interface including components such as interface colour, background and icons. These elements are designed following the user’s specifications, they are:
System qualities
System Colour – consider the number of users who will use the headspace system, each one of them will hold different preferences. Therefore, these preferences must be represented by the choices of the colours.
Background – suitable images, preferably those of the health facilities should be used as the system’s background, this will increase the system’s appeal and functionalities (Taylor, 2000).
Font size and colour – again, users will have different preferences and this outcome should be reflected on the system where a wide range of fonts and colours should be presented to the users.
In general, the system will have to contend with the challenges of time and the diversification of the users. In all, the system will not satisfy all users but it’s should aim to maximise its functionalities based on the preferences of the majority. Nevertheless, the system will also have to deal with the following specific constraints:
Technical drawbacks – more so with the programming languages and operating systems as they will change across the different computing platforms. Therefore, the system developed must integrate with all operating systems and deployment languages (modelling, 2017).
Business drawbacks – the system’s budget and time will always be a constraining factor because of the minimal resources provided by the end-users. Moreover, the system may rely on different software licenses which may restrict the overall functionalities.
While records of the problems facing the patients exist, their detailed accounts are never stored which affects the treatment given to the young patients particularly those facing mental illnesses. This limitation acts as the main motivation for developing a modern and adaptive healthcare system. Therefore, the system developed should store the patient’s information and avail it based on the needs of the practitioners. Moreover, the system should also be readily available at all locations, a requirement that will be easily met by cloud solutions. In all, by using cloud resources to host the system the following benefits and risks will be experienced by the host organization (Harding, 2017).
Cost saving – the overall cost of developing and maintaining the system would be drastically reduced as most of the maintenance services would be handled by the service provider.
Virtualization benefits – cloud computing extends the reach of digital systems by enhancing their flexibility, mobility and scalability.
Resilient system – the proposed project and its resources are stored in multiple locations which improve the redundancy plans. Therefore, even when disasters strike, the countless backups will help to maintain the functionalities of the system (cloud, 2017).
Cybercrime – cloud services are offered online using the internet infrastructure which is public resource hosted in a public domain. Therefore, there is the risk of losing data online due to the intrusions facilitated by malicious individuals (Fernández-Cardeñosa, Torre-Díez, & López-Coronado, 2015).
System downtime – in addition to the cyber intrusions, cloud facilities depend on internet connections to deliver their services. Therefore, in case of outages or downtimes, the services become unavailable to the end user.
Minimal system control – finally, the resource hosted online by the subscriber e.g. headspace, are usually controlled by the service provider. In addition to this, the user cannot track the said resources which minimize the overall control of the leased resources (Kathuria, 2011).
System Interface
In developing the systems used today, developers have to consider the different factors and requirements of the proposed resource. Now, endless considerations are made which highlights the importance of using project-like approaches to develop systems. SDLC defines these approaches where different design and implementation methods are given. SDLC also dictates the priorities, requirements and parameters of system development as they generally change based on the needs of the users (Cerritos, 2011). In this case, two SDLC methods are considered; predictive and adaptive SDLC.
This approach usually depends on prior arrangements made by the developers and users based on the requirements of the proposed systems. In essence, the approach will dictate a consistent procedure of implementing the system’s elements without any significant deviations or changes. Moreover, the consistent procedure will maintain a logical flow of events where specific implementation stages must be fulfilled. Therefore, at the end of the operations, a sequential and consistent approach is followed to execute the implementation process ((MSB), 2011). Now, this approach does not favour changes as they disrupt the sequential model, an outcome that results in an entire do-over of the development process. This limitation minimizes the versatility of the approach where changes such those of personnel and system parameters are avoided.
Examples of the approach; the Waterfall model.
- Predictive SDLC methods are accountable as they detail all the processes of system development. Moreover, the users can compare the initial analysis (predictions) with the existing results.
- Secondly, they are easy and simple to develop which simplifies the development process.
- Finally, they are adequately compatible with business requirements because the users can conveniently budget for the resource needed(Mikoluk, 2013).
- Predictive approach methods are very rigid and cannot adapt to any given change.
- Moreover, they require a lot of time to meet their objectives as all development stages must be implemented sequentially without overlapping one another.
- Finally, when used they cause so much uncertainty as they are not able to handle any unknown variable(Mikoluk, 2013).
In comparison with the predictive approach, the adaptive approach follows a completely different path having the ability to adapt to changes and even the ability to develop different stages simultaneously. Nevertheless, the approach will start by dividing the development process into small implementation stages. Now, these stages will vary from one project to another as they are defined by the functional and non-functional requirements of the system. After developing the implementation stages, they are brought together to form the wholesome system consisting of the various resource requirements of the users ((MSB), 2011). In addition to this, the adaptive approach lays a lot of emphasis on the assembly process as it’s derived from the collaboration of various development stages and resources. This assembly requirement is usually facilitated by iterative procedures that develop many system prototypes before producing the final solution. These prototypes are often used to carry out tests of the system, an activity that yields better and refined results (system) (Stoica, Mircea, & Ghilic, 2013).
- A flexible approach that adapts to the needs of the developers and users.
- Secondly, the approach is user-centred a feature that increases the practicality and usability of the system developed.
- In addition to this, the developers can optimize the solutions based on the prototype tests(Mikoluk, 2013).
The approach has extensive resource requirements including expertise and cost.
- Furthermore, it’s also not compatible with business operations because it’s difficult to establish timelines(modelling, 2017).
There are so many variables to consider before implementing the project at hand, which based on the existing conditions will have many users based on the needs of the healthcare sector. Furthermore, the users will have different requirements and preferences which highlights some of the constraints of the system. Therefore, the developers commissioned for the system should use an agile and flexible approach that should be able to adapt to the needs of the project despite the stage of development (Kathuria, 2011). Moreover, the project must also consider the future application of the systems where various technological and functional changes may be experienced. These requirements can only be met by using a dynamic approach. Therefore, the adaptive method is the best option for the headspace project.
Conclusion
Several assumptions are made by the proposal given, these assumptions outline the need for an agile system that is able to adapt to different changes. Its therefore because of these assumptions and variations that the above recommendation is given. On the other hand, the system at hand requires a versatile technology to facilitate its functionalities that require real-time updates and resources. These requirements outline why cloud computing is important for this project, a project that requires a versatile system to deliver resources to a wide range of users. However, these resources should have optimal security features to protect the data and users of the developed system.
References
(MSB), M. s. (2011). The System Development Life Cycle. Retrieved 26 September, 2017, from: https://utexas.instructure.com/courses/1166782/files/38198507/download.
Baylor. (2013). Cloud storage. Non-profit Technology Collaboration, Retrieved 17 April, 2017, from: https://www.baylor.edu/business/mis/nonprofits/doc.php/197132.pdf.
Cerritos. (2011). Chapter 8 –Approaches to System Development. Systems Analysis and Design in a Changing World, Retrieved 26 September, 2017, from: https://web.cerritos.edu/dwhitney/SitePages/CIS201/LectureNotesOnTalonNet/Chapter08Lecture.pdf.
cloud, L. (2017). Advantages and Disadvantages of Cloud Computing. Retrieved 26 September, 2017, from: https://www.levelcloud.net/why-levelcloud/cloud-education-center/advantages-and-disadvantages-of-cloud-computing/.
Fernández-Cardeñosa, G., Torre-Díez, I., & López-Coronado, M. (2015). Analysis of cloud based solutions on EHRs systems in different scenarios. Department of Signal Theory and Communications, University of Valladolid, Retrieved 26 September, 2017, from: https://netgna.it.ubi.pt/files/Cloud%20computing%20EHRs_JOMS_FV.pdf.
Goldsmith, R. (2017). Defining a User Interface (UI) during the requirements phase: A mistake. Retrieved 26 Sep, 2017, from: https://searchsoftwarequality.techtarget.com/answer/Defining-a-User-Interface-UI-during-the-requirements-phase-A-mist.
Harding, N. (2017). Key aspects of cloud computing services. . Tech target, Retrieved 26 September, 2017, from: https://searchitchannel.techtarget.com/tip/Key-aspects-of-cloud-computing-services.
Kathuria, K. (2011). Software Development Lifecycle and Cloud Computing. Scribd, Retrieved 26 September, 2017, from: https://www.scribd.com/document/37345932/SDLC-and-Cloud-Computing.
Mikoluk, K. (2013). Agile vs. Waterfall: Evaluating The Pros and Cons. . Udemy blog, Retrieved 26 September, 2017, from: https://blog.udemy.com/agile-vs-waterfall/.
modelling, A. (2017). Constraints: An Agile Introduction. Agile modelling, Retrieved 26 September, 2017, from: https://agilemodeling.com/artifacts/constraint.htm.
Stoica, M., Mircea, M., & Ghilic, M. (2013). Software Development: Agile vs. Traditional. Informatica Economic?, Retrieved 26 September , 2017, from: https://www.revistaie.ase.ro/content/68/06%20-%20Stoica,%20Mircea,%20Ghilic.pdf.
Taylor, A. (2000). Design Constraints and Limitations. Introduction, Retrieved 26 September, 2017, from: https://www.cse.msu.edu/~cse470/F97/Projects/F00/F00-Cheng/diagnostics/diagnostics2/web/documents/designdoc/document/node5.html.