The Non-functional requirements
In the modern society having general information technology systems is not enough as they do not guarantee the full availability of ICT resources. This conclusion stems from the countless technological advancements that facilitate the transfer of information and the demands made by users who require efficient service delivery systems (Ghosh, 2012). Now, considering the Headspace project, similar events are taking place as the organization tries to enhance its existing service delivery systems. In the existing conditions, patients records i.e. their stories and accounts are never stored for later reference. This outcome affects the treatments given to the patients as most of them are unable to re-live their traumatizing ordeals. Therefore, the project at hand aims to eliminate this shortcoming by incorporating the efficiencies of cloud computing into information system so that data can be adequately stored. Furthermore, the same project will increase the availability and accessibility of information by employing real-time systems into the healthcare activities (Rackspace, 2017). This report analyses this project in relation to cloud technology, design procedures and the non-functional requirements.
These are elements that determine the user’s judgment regarding the developed system. In essence, these factors are necessary for a fruitful interaction between the end user and the systems at hand. Therefore, non-functional requirements can is as the criteria elements/factors that judge a system based on its overall performance of different operations (INF, 2004). This definition is different as compared to functional requirements which outline the actual system’s functions and capabilities.
The system’s attributes that determine the runtime behaviour of the software package and the user’s overall experience. In simple terms, the system qualities will determine the impact that the systems will have on the users depending on the application platform (Chung, 2012). Let’s highlight some of these qualities:
System integrity – an element that falls within the larger topic of design qualities which is the inherent property that defines the collaboration of system operations. In all, the system must uphold its original user’s specifications.
System usability – the ability to meet the users’ demands and requirements through seamless interactions and performance (Lowey, 2017).
Reliability – A quality that will determine the consistency of operations i.e. it’s exhibited when the system is able to uphold its operational objectives.
Performance – the system’s responsiveness to user commands and operations.
Security – the guarantee of protecting user’s resources more so data as extensive networking infrastructures lose (Rahman, Safadi, & Basaula, 2015).
In data management, visual displays are critical components of delivering the results to the end users. In essence, these elements (Visual displays) deliver the final solutions of data management operations to the end users using appropriate visual elements. Now, the user interface defines the interaction with the user through the GUIs (graphical user interface). Moreover, they determine the level of engagement experienced by the user (Hassan, 2015). This outcome defines the following non-functional requirements for these interfaces:
- Availability and accessibility– while a multitude of factors may affect these attributes, their existence dictate the system’s performance. The technical elements i.e. coding, deployment and user platforms must collaborate seamlessly to improve the system’s outcome.
- Interface reliability and consistency– minimal technical bugs or hitches should affect the systems more so when they are applied in different user platforms.
System qualities
Elements that will hinder the overall system’s operations by affecting the achievement of the initial objectives (Taylor, 2000). In this case, we have:
- Strict timelines– the system compromise on some attributes so as to beat the set development deadlines.
- Technical requirements– from different deployment platforms to coding languages, the developer must compromise on some features to ensure the system runs on all user platforms.
Cloud computing has come a long way since its inception in the early days of the developing the computing architecture. In essence, the modern applications are the fruits of continuous research and system’s test. Furthermore, most organizations have in the past inherently used cloud computing without its deliberate definition. This application includes the sharing of resources such as data through centralized servers that are accessed via local and wide area networks. Essentially, these resources are leased to users from the storage facilities, an outcome that defines cloud technologies (Primault, 2016). Now, the modern definition sees computational resources such storage, processors and networks being offered to subscribers based on their immediate demands. This functionality increases their availability and access. However, at the same time due to the enhanced availability and nature of the application environment, the resources tend to have many limitations particularly those of security and privacy (cloud., 2017).
- Resource availability and accessibility – unlike in-house facilities, the users do not need a physical connection to the storage equipment, instead, they only require an internet connection and their services are delivered instantly.
- System mobility and flexibility – the Headspace project will be available from any location and at any given time if it’s hosted on the cloud facilities. Furthermore, this benefit will improve the system reliability as several access locations (backups) will be in existence.
- Minimal expenditures – the end user leases most of the resources from the service provider who not only establishes them but also maintains them. Therefore, in the end, the users just performs front-end activities i.e. applies them(Alton, 2015).
- Data security – a concern is given in the project’s proposal where its data security, access and ownership are highlighted. In essence, the technology’s deployment into public infrastructures affects its security because the resources are readily available online. Furthermore, since it’s a public and international system, the Australian laws may not affect it. Therefore, despite its security limitation, the legal stipulations cannot help the end user. Therefore, to eliminate this weakness, the Headspace project must apply proper security features such encryption and authentication. In this case, encryption will maintain the integrity of the data as only verified members will understand it. On the other hand, authentication will enhance the system’s accountability an outcome that will maintain the ownership of the data used(Primault, 2016).
- Loss of user control – it’s also very easy for users to loss control over their resources because they are unable to track them. Moreover, the same resources are stored in foreign locations and using unknown support technologies.
SDLC is the process that design and implements software packages based on the user’s requirements. In essence, there are very many factors to consider before implementing software solutions. These factors include the functional requirements, user preferences and deployment platforms among many others. Now, the developers must assess these elements and develop effective solutions that cater to them all. Furthermore, they must ensure the objectives and functionalities of the final solution are achieved. Therefore, project-like initiatives are used to govern the development process to ensure all the milestones of the system are accomplished (Isaias & Issa, 2010). Now, SDLC has several methods depending on the user’s demands the focus of this section.
This approach depends on the predictability of system parameters including the elements operation such as the user requirements and functionalities. In the modern environment, it is difficult to predict the variables of a system which outlines why the approach is designated as a traditional SDLC method (Okoli & Carillo, 2010). In essence, the approach defines the traditional procedures of implementing projects where minimal features and variables are given. Nevertheless, the approach will use the following implementation procedure:
- First, the developers define the system’s requirements which will include the functionalities and the defining user attributes.
- These elements are outlined and documented for accountability reasons.
- The implementation stages are defined having different functionalities depending on the system’s requirements and assumptions
- From the definition of the system’s requirements, the implementation procedure is executed having a logical and sequential flow of events. Furthermore, the stages of implementation must be followed precisely without any form of deviation or overlap (MSB, 2011).
Therefore, in the end, the approach ends up using a predictable procedure that does not change regardless of the prevailing conditions. This approach exhibits the following advantages and disadvantages:
- It is a very simple process that can implement easy and straightforward systems.
- Furthermore, its strict documentation process enhances accountability as all resources are closely managed.
- Finally, it requires minimal technical expertise which minimizes its overall expenditures.
- Highly inflexible owing to its inability to adapt to changes, this outcome affects its overall application.
- Its also time intensive as all the stages of development must be followed sequentially without any form of overlap (Peru, 2014).
The exact opposite of the predictive approach because of its ability to integrate versatility and adaptability into its functions. In essence, the adaptive approach defines a modern outlook into system design where the rapid user demands are continuously fulfilled by changing the parameters of the development process (UT, 2017). In all, the following implementation procedure is used:
- First, the approach defines the overall implementation stages, from planning to system deployment.
- These stages are then used to divide the entire project into different sections.
- Thereafter, these stages are executed separately by different experts holding experiences in their respective fields. Now, these stages are also run concurrently which makes the process time efficient.
- After completion, the development stages are assembled to form the final solution. In this stage, a number of iterative techniques (repetitive assembly methods) are used which perfects the final solution(MSB, 2011).
- A flexible approach that can adapt to system changes.
- Secondly, the approach produces efficient results because the development process adapts to the changes of users’ requirements.
- Finally, it’s a time efficient method as different implementation stages are can run concurrently.
- This approach requires a lot of expertise due to its specialization functionalities that dictate the different development stages(Okoli & Carillo, 2010).
Runtime factors
Let’s first highlight the benefits that would be experienced by using each development method. While using the predictive approach, the Headspace project would improve its accountability measures as all the necessary resources would be strictly documented. Furthermore, minimal resources would be used as the approach require simple implementation techniques and expertise, however, the benefits would end there. On the other hand, the adaptive method would facilitate the development of a modern system accounting for the different system changes. Moreover, the system would be rapidly developed as many experts would be able to collaborate their efforts. In addition to this, the approach would guarantee the integration of cloud computing into the system by repetitively testing the effectiveness of the collaboration (MSB, 2011). In the end, the adaptive approach is the best SDLC method for implementing the Headspace project.
Conclusion
Reflecting back at the discussions of this report the overall concepts that define system design are seen to be versatile in nature. In essence, the development process will continuously change in an effort to adapt to the immediate needs of the users. Furthermore, the non-functional requirements will have a huge role in the implementation process as they will determine the users’ judgment of the system’s performance. Finally, cloud computing is necessary for the success of the project’s objectives where information availability and accessibility is needed. In the end, the project at hand should employ adaptive procedures to meet the ever-changing user demands.
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