System’s Non-Functional Requirements
In the past, setting up multiple data centres was the only way the accessibility of data resources in an organization’s ICT environment. This outcome increased the overall cost of operations as the data centres were determined by the size and number of users or branches. Furthermore, the implementation of information systems was defined by a challenging process that required constant and continuous replication of its defining elements on all the data centres of a given organization. Now, fast track to today and these limitations or challenges have been eliminated by the growth of cloud computing where multiple resources are hosted online and are accessed when needed (Kim, 2009). A similar objective is held by Headspace, a medical organization that deals with a lot of information owing to its treatment procedures of mental illnesses. In essence, a cloud solution is being sorted out as an alternative to meet the needs of the IT resources (Mu-Hsing Kuo, 2011). This report highlights the elements of cloud computing where its defining components are investigated. Furthermore, the report analyses the structure of the system including its development procedure.
A system’s performance is determined by a wide range of factors, most of which are not necessarily inclined to the functional elements. In this case, the functional requirements will represent the factors that determine the system’s operations. On the other hand, the non-functional requirements are the abstract elements that define the processes of achieving the said operations (Alsaleh & Haron, 2016). Furthermore, these elements are determined by the user’s preferences and their interactions with the system. Because of this outcome, non-functional requirements are measured using subjective factors such as the system’s behaviour or user experience.
These are the defining attributes of a system, for instance, Google, the search engine, is widely used because of its availability and simplicity (Singh & Tripathi, 2012). These are the focus elements in this section. Therefore, the system at hand should have the following qualities:
- Widely available – to enhance this performance and reliability, the user must have a constant interaction with the system, this outcome may be facilitated by the cloud resources.
- Content integrity – a security feature that ensures the data and resource used are not tampered with, this can be met using a variety of security features such as authentication and encryption.
- Supportability And Maintainability – an allowance for system support in case faults or damages happen. Moreover, there should be a management structure to maintain the overall functionalities(Dorsey, 2005).
Consider the various aspects of an information system such as storage, processing and presentation. These functional elements interact with one another to give the functionalities of the system (Microsoft, 2017). Therefore, various stages of input and output are experienced, the true definition of an interface where system components interact to exchange content over a boundary.
- Stability – the interface between the cloud service and the Headspace system needs to promote a consistent and reliable performance.
- Flexibility – the protocols used by the external resources are unknown thus, the system’s interface must be agile to accommodate any new element.
- Collaborative – interfaces are all about information exchange, therefore, the boundaries developed should not limit this critical objective(Bowman, 2013).
A vital boundary between the users and the software package where the actual system interaction takes place (Microsoft, 2017). Therefore, the following requirements must be met:
- Simplicity – the graphical or visual element should be simple and understandable based on the system’s ability to portray with ease all the necessary functionalities.
- Rapid response – lagging interfaces will deter users, therefore, the interface must give rapid responses based on the user’s inputs.
- Environmental familiarity – finally, the interface needs to reflect the surrounding environment to boost the user’s engagement(Coursera, 2017).
Unlike the functional requirements that are determined by the capabilities and operations needed, the non-functional requirements are dictated by the ability of the system to fulfil all the user’s preferences. Therefore, satisfying these requirement based on the technical elements is the biggest constraint of the system. Furthermore, other subsidiary elements such as budget and timeline will also affect the functionality of the final system (Dorsey, 2005).
Although cloud technology holds all the answers to the problem facing Headspace, its implementation will require an analysis of the existing service models. Now, some models will offer more control than others but will also increase the overall risk of the system’s security. Therefore, a balance is needed between the user’s requirements and the constraint of the technology. As a result of these requirements, the following benefits and weaknesses can be expected while using cloud solutions (Bisong & Rahman, 2011).
- Cost reduction: By far, this is the most notable benefit of using cloud solutions because the users need not worry about setting up the infrastructure. Further, they do no manage or support the actual resource themselves.
- System availability supported by extended flexibility: Headspace system can be accessed at all time and from any location with an internet connection. This will improve the services of the institution and also facilitate its expansion.
- Robust services – hosting resources with a cloud service provider guarantees their availability as they specialize and own various resource centres(Singh U. , 2015).
- Security and loss of privacy – by migrating system online, the physical security of this resource is lost, which is again intensified by the fact that the user surrenders their control to a third party member.
- Internet downtime – an independent factor exists in accessing cloud solutions, the internet. Its availability is not guaranteed by the cloud service provider’s agreement. Therefore, the cloud facilities may be available all the time but will be hindered by the state of the internet connection.
System Qualities
A significant disadvantage of cloud-based solutions is the security of the online facilities. For one, they are a constant target for cyber intruders as they hold more content than any other online resource. Furthermore, since they can be accessed from any location, they do not fall under the jurisdiction of any country. Therefore, the only solution to this problem is to implement proper security features to the cloud and access facility (Headspace system). So, the first step is to contract a reliable service provider with a good track record. Secondly, the standardization of the security measure where all access devices should maintain a certain minimal protection level e.g. authentication and encryption using multiple factor parameters (Obrutsky, 2016). Finally, isolate the access to the data resource based on the user’s roles i.e. Headspace staff should only access the record they need and not all of them. In all, these security features will account for all the data used which will maintain the data integrity and ownership.
Planning and implementation procedures are a crucial component of project management. By themselves, these component define the success of the project based on the requirements given. Now, SDLC (system development life cycle) is usually the project plan for designing and implementing software solutions. In essence, it will define the requirements, preferences and the implementation phases (Velmourougan, Davachelvan, & Ravimohan, 2010). This definition provides a logical procedure for developing the system, an outcome that guarantees the results. In this instance, two different methods of implementing solutions are highlighted; predictive and adaptive SDLC.
A classical approach to implementing solutions, where traditional procedure are consulted to satisfy the users’ requirements. This approach will predict (as the name suggests) the development plan based on the initial requirements and assessments. In addition to this prediction, the approach will document a logical and sequential procedure for developing the solution. Therefore, similar to the general or classical procedure of SDLC, the stages of development i.e. planning, designing, implementing (coding), testing and deployment will be followed. Furthermore, once the process has started, the method will not allow any significant changes to its structure. Moreover, each development phase will be executed independently having a specific timeline (Scroggins, 2014). So, each subsequent development stage will only start after the previous stage is completed.
- Simple and easy to execute – the entire plan, including the timelines, is clearly determined before the implementation process starts.
- Time efficient – its predictability feature enables it to determine the deadlines of each subsequent stage.
- Minimal implementation resources – this approach is most often used for small projects which have minimal requirements. Therefore, the resource requirements are also usually minimal.
- Emphasis on tools and not the user – system developed by the predictive method have good technical prowess but have poor user satisfaction rates.
- Time limitation – while using the approach, the developers cannot run several implementation stages together(Chitu & Kevin, 2012).
This method is all about the user’s preferences and their requirements as it implements projects using a flexible approach that caters for any immediate needs. Therefore, the process could be in its final stages but be able to accommodate a last minute system alteration. Furthermore, the implementation process does not follow a sequential plan but instead will divide it into several logical groups that are deployed at the same time. In all, the approach will define a number of development phases using the available requirements, for instance, the project at hand could be divided based on its functionalities i.e. interface, database and data analyzer (Rabbi & Beg, 2015). These phases are then combined to form the final solution where several optimization phases are conducted repetitively.
- Agility and flexibility of the development process – the approach can adapt to any system changes without any significant setbacks.
- Optimal structure – systems developed by the approach have desirable characteristics based on the users’ preferences.
- Time efficient – the segmentation of the system’s functionalities during the development process minimizes the execution time.
- Requires a lot of resources – more so experts (personnel) who are needed for each implementation stage/segment(Wolak, 2017).
By all accounts, the adaptive approach presents the best solution for the project at hand as it has the best features and implementation procedure. For one, the development process will be able to accommodate any new requirements that are identified by the organization’s stakeholders. Furthermore, the final system will have a desirable structure owing to the user-centred approach adopted by the method (Rabbi & Beg, 2015). Therefore, the Headspace system will not only satisfy the functional requirement but also the non-functional elements which are the main focus of this report. Now, in a world where the predictive approach is used, the final solutions will only have a consistent implementation process that will most likely fail to live up to the users’ expectations.
Conclusions
Through the services of cloud solutions organizations, today are able to deploy multiple IT resources in single instances. This outcome has facilitated the growth of the digital environment which today hosts most of the information systems. Headspace cannot guarantee the treatments given to its patient because it lacks a structure to store their detailed account (stories), elements that determine the treatments. However, with cloud solutions, this limitation will be eliminated and this will improve the services of the institution.
References
Alsaleh, S., & Haron, H. (2016). The Most Important Functional and Non-Functional Requirements of Knowledge Sharing System at Public Academic Institutions: A Case Study. Lecture Notes on Software Engineering, Retrieved 04 October, 2017, from: https://www.lnse.org/vol4/242-IT084.pdf.
Bisong, A., & Rahman, S. (2011). AN OVERVIEW OF THE SECURITY CONCERNS IN ENTERPRISE CLOUD COMPUTING. International Journal of Network Security & Its Applications (IJNSA),, Retrieved 04 October, 2017, from: https://arxiv.org/pdf/1101.5613.
Bowman, S. (2013). Impact of Electronic Health Record Systems on Information Integrity: Quality and Safety Implications. PMC, Retrieved 04 October, 2017, from: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3797550/.
Chitu, O., & Kevin, C. (2012). The best of adaptive and predictive methodologies: open source software development, a balance between agility and discipline . Spectrum Research Repository, Retrieved 04 October, 2017, from: https://spectrum.library.concordia.ca/7098/.
Coursera. (2017). Design Better User Interfaces. Retrieved 04 October, 2017, from: https://www.coursera.org/specializations/user-interface-design.
Dorsey, P. (2005). Top 10 Reasons Why Systems Projects Fail. Dulcian, Inc, Retrieved 04 October, 2017, from: https://sites.hks.harvard.edu/m-rcbg/ethiopia/Publications/Top%2010%20Reasons%20Why%20Systems%20Projects%20Fail.pdf.
Kim, W. (2009). Cloud Computing: Today and Tomorrow. JOURNAL OF OBJECT TECHNOLOGY, Retrieved 04 October, 2017, from: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.591.2485&rep=rep1&type=pdf.
Microsoft. (2017). Chapter 16: Quality Attributes. Design fundamentals, Retrieved 04 October, 2017, from: https://msdn.microsoft.com/en-us/library/ee658094.aspx.
Mu-Hsing Kuo, A. (2011). Opportunities and Challenges of Cloud Computing to Improve Health Care Services. PMC, Retrieved 04 October, 2017, from: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3222190/.
Obrutsky, S. (2016). Cloud Storage: Advantages, Disadvantages and Enterprise Solutions for Business. Research gate, Retrieved 04 October, 2017, from: https://www.researchgate.net/publication/305508410_Cloud_Storage_Advantages_Disadvantages_and_Enterprise_Solutions_for_Business.
Rabbi, F., & Beg, A. (2015). An Improved & Adaptive Software Development Methodology. Computer Engineering and Intelligent Systems, Retrieved 04 October, 2017, from: https://iiste.org/Journals/index.php/CEIS/article/download/248/133.
Scroggins, R. (2014). SDLC and Development Methodologies. Global Journal of Computer Science and Technology: CSoftware & Data Engineering, Retrieved 04 October, 2017, from: https://computerresearch.org/index.php/computer/article/download/148/148/.
Singh, P., & Tripathi, A. (2012). Treating NFR as First Grade for Its Testability. Journal of Software Engineering and Applications, Retrieved 04 October, 2017, from: https://file.scirp.org/Html/3-9301547_26213.htm. .
Singh, U. (2015). 11 Pros and Cons of Cloud Computing Everyone Should Know. LinkedIn, Retrieved 04 October, 2017, from: https://www.linkedin.com/pulse/11-pros-cons-cloud-computing-everyone-should-know-umesh-singh.
Velmourougan, P., Davachelvan, P., & Ravimohan, S. (2010). Evolving A New Model (SDLC Model-2010) For Software Development Life Cycle (SDLC). IJCSNS International Journal of Computer Science and Network Security, Retrieved 04 October, 2017, from: https://paper.ijcsns.org/07_book/201001/20100115.pdf.
Wolak, R. (2017). DISS 725 – System Development: Research Paper 1 SDLC on a Diet. Retrieved 04 October, 2017, from: https://codecourse.sourceforge.net/materials/System-Development-Life-Cycle.html.