Difference between IEEE/ACM and ACS codes of ethics
Write about the Principles of Software System for ACS Codes of Ethics Principles.
Read the IEEE/ACM and ACS codes of ethics.
- a) Comment on any differences. How to you think these compare?
There is a prevailing major difference between the IEEE/ACM and ACS codes of ethics. The IEEE/ACM code of ethics does not emphasise much on the details about the rules and regulations and focuses more on the thoughtful and empathetic part of the fundamental principles (Punchoojit and Hongwarittorrn 2015). On the other hand, the ACS codes of ethics lack in flexibility when it comes to deviating from the law on humanitarian grounds.
- b) Consider the case when you have been asked to write some software for critical systems. What ethical issues might arise? How would you deal with them?
The ethical issues that might arise while writing some software for critical systems are as follows:
- The software may be unauthorized for using in multiple critical systems for free
- The software may not be compatible with the system requirements of the computer
- The support and documentation may not be properly done
To solve these issues, the person installing the software needs to authorize the software use before writing them in critical systems (Turk, France and Rumpe 2014). He should check for the proper system requirements and documentation.
Conduct a brief research on the ways of recording non- functional requirements in agile environment. Your research should include analysis of the techniques used for recording non-functional requirements.
Having an agile environment in a workplace implies that the environment is empowered by the workforce and not the organization norms. Non-functional requirements are however, the most challenging system development area that deals with the quality of the software more than the technical aspects (Gupta, Chopra and Chauhan 2017). It is noticed, that in case of software development non-functional requirements are often overlooked. While recording Non-functional requirements, it is to be kept in mind that the records should hold the attributes for security, performance, scalability, reliability, maintenance and usability (Mojica et al. 2014). In agile environment, NFR or the Non-functional Requirements in an agile system specifies how a particular entity behaves in the organization.
The methodology for recording the NFRs should be of two types:
- Execution qualities: These are better observed at the runtime, such as usability and security.
- Evolution qualities: These are measureable during the static structure of the computer system, such as, extensibility, scalability, maintainability and testability.
An agile system considers architecture design to come forward with an evolutionary approach. To record the NFR for the agile system, it is required that the technical stakeholders of the organizational structure. These include the architects, the user interface or UI designers, and the operation teams (Ma and Ma 2017). Analysing the procedures, it could be seen that the recording of the NFRs in execution qualities depicts how user friendly or how secured the agile environment is; again, evolution qualities present the non-technical structure, which has usability control over the agile environment.
Conduct a research on some of the important tools used for requirement collection and choose at least three tools, which you can use to gather requirements for the application you are developing. You should provide a summary of the process of requirements collection using your chosen tools.
Ethical issues in critical systems software development
Several tools present are used for requirement collection for gathering requirement information about the application being developed. Amongst them, three of the most important tools are:
- AS-IS and TO-BE process model: In every System Analysis and Design Course, swim lane diagram is taught as a system analysis model. In the study course, it is seen that AS-IS process model is utilised to describe a current business flow (Veryard 2014). On the other hand, a TO-BE process model depicts a future model as a swim lane and describes the adjustment of a business process with the system adjustment.
- User Stories:This is an approach in agile process where the requirements are talked about rather than being written. It generally forms the description of an objective helping a developer to understand the user requirements properly. A user, with the help of proper information transfer does this to achieve proper usability of the application to the user about the application.
- Mind maps:Mind mapping is a tool used in agile environment to capture ideas and requirements helping in engaging a conversation through a number of tangents. It is often seen that while a person is in a session for gathering requirements, running off topics and jumping into another business is a common phenomena. Mind mapping on the other hand, helps in accumulating the comments, ideas and most importantly the requirements and branches it to the major thoughts emerged from the conversations.
Describe the software reuse process and describe the issue relating to using software reuse process in an agile development environment. What solutions exist for these issues? Give examples of some tools available to assist.
Software reuse technology is a process where existing software are used for the construction of a latest software system. This development process is aided by the contribution of software artefacts, which are pieces of formalized knowledge (Gregory et al. 2016). The process depends on three abstraction levels, the modular design level, the architecture level, and the program level. The different processes for the reuse can be described as follows:
- Black-box reuse: In this process, the previous component is reused without any modification performed.
- White-box reuse: In this process, the previous components are reused only after a certain required modification is done over them.
- Glass-box reuse: In this process, the previous components are not directly used by the developers, but are used as framework examples for further developments.
Reuse issues: The main drawbacks of the software reusability is that the reused software needs high maintenance, there are lack of tool support due to the incompatible development environment for supporting the software issues, and it is difficult to maintain a library for the right software to understand its use before reusing.
These issues could be solved if COTS solutions are used. This is commercial off-the-shelf software that are ready made and sold in packages to the users.
Q5. Choose at least three functional requirements of the application you are developing and generate a structured test case scenario for those three requirements.
The functional requirements of software are defined as the functional requirements or components of an application or software (Afzal et al. 2016). It may be the calculations, technical details, or any kind of functionality in the application that defines the usability of an application or software. Three amongst the many functional requirements in the application being developed are:
- Scalability
- Availability
- Reliability
The application FoodHub is developed as a search engine for local eateries and cuisines based on the users’ location. The test case scenario based on the functional requirements are as follows:
Title |
Test Case for FoodHub |
Description |
This is a test performed to check the Scalability, Availability and Reliability for the application FoodHub. It is a standard application built for providing detailed information about the restaurants and cuisines available near the user depending on his or her location. |
Subsystem |
Word processing, Email |
Priority |
High |
Pre-conditions |
Before checking the functional requirements, it is to be made sure that the GPS locator of the device is turned on. |
Step 1 |
Test step: Reliabililty: Check customer login with valid data Expected result: Test passed |
Step 2 |
Test step: Availability: Ready search results Expected result: Test passed |
Step 3 |
Test step: Scalability: Adding information about a new food joint registering with FoodHub Expected result: Test Passed |
Comments |
The product has passed the functional system requirements |
Created by |
Admin User 2018-04-05 13:44:34 |
Reference
Afzal, W., Alone, S., Glocksien, K. and Torkar, R., 2016. Software test process improvement approaches: A systematic literature review and an industrial case study. Journal of Systems and Software, 111, pp.1-33.
Gregory, P., Barroca, L., Sharp, H., Deshpande, A. and Taylor, K., 2016. The challenges that challenge: Engaging with agile practitioners’ concerns. Information and Software Technology, 77, pp.92-104.
Gupta, V., Chopra, R.K. and Chauhan, D.S., 2017. Status of Non-Functional Requirements in Mobile Application Development: An Empirical Study. Journal of Information Technology Research (JITR), 10(1), pp.59-84.
Ma, Z. and Ma, J., 2017. Formulating the application functional requirements of a BIM-based collaboration platform to support IPD projects. KSCE Journal of Civil Engineering, 21(6), pp.2011-2026.
Mojica, I.J., Adams, B., Nagappan, M., Dienst, S., Berger, T. and Hassan, A.E., 2014. A large-scale empirical study on software reuse in mobile apps. IEEE software, 31(2), pp.78-86. Laplante, P.A., 2017. Requirements engineering for software and systems. CRC Press.
Punchoojit, L. and Hongwarittorrn, N., 2015, September. Research ethics in human-computer interaction: A review of ethical concerns in the past five years. In Information and Computer Science (NICS), 2015 2nd National Foundation for Science and Technology Development Conference on (pp. 180-185). IEEE.
Turk, D., France, R. and Rumpe, B., 2014. Limitations of agile software processes. arXiv preprint arXiv:1409.6600.
Veryard, R., 2014. The economics of Information Systems and software. Butterworth-Heinemann.