Answer the following questions in a few sentences. It would be best to express yourself in your own words based on the knowledge you gained from the Reading Assignment and Video Lecture. You must also construct good, correct sentences free of grammatical errors. Only answers should be typed and uploaded to the Sakai course site as instructed. There are always deadlines to meet.
All submissions will be subjected to Plagiarism CHECKING. Therefore. Students are advised to desist from any such act that will attract severe consequences.
1. Baetjer notes:’ the process provides interaction between users and designers, between users and evolving tools, and between designers and evolving tools [technology).” Lisl five questions that (1} designers should ask users, (2} users should ask designers, (3) users should ask themselves about the software product that is to be built, and (4) designers should ask themselves about the software product that is to be built and the process that will be used to build it. (1)
Designers should ask users:
- Are there any specific requirements for the software?
- How long will it take for this project to be completed?
- Exactly who will be making use of this product?
- How will we know whether the project was a success?
- Are you aware of any further iterations and recommendations that may develop along the way?
Users should ask designers:
- Is there anything more that needs to be tested or designed for this module?
- Are the requirements clear?
- When can we expect the prototype turnover?
- Do we need any additional requirements?
- Will you provide technical or training support after the product turnover?
Users should ask themselves about the software product that is to be built:
- What is the project scope?
- What is the purpose of the project?
- Do we have the proper staff and skills?
- Is the project within the estimated?
- Can we handle the product maintenance?
Designers should ask themselves about the software product that is to be built and the process that will be used to build it:
- Is there a specific approach we should use?
- What are the resources we will be working with?
- Do we have any specific goals in mind?
- What are the possible drawbacks?
- What specific actions will we take next?
(2) During communication, a common problem occurs when you encounter two stakeholders with conflicting ideas about the software. That is, they have mutually contradictory requirements. Develop a process pattern that addresses this problem and suggests a practical approach.
(2) Pattern name: Conflicting Requirements
Intent: Using this paradigm, stakeholders can iteratively evaluate a prototype to discover or establish software needs.
Type: The stage layout.
Initial context: Before beginning this pattern, the following prerequisites must be fulfilled:
(1) It has been determined who the participants are;
(2) Stakeholders and the software team have devised a method of communication.
(3) Stakeholders have highlighted the primary software issue that needs to be addressed;
(4) Original project scope, business requirements, and project limitations have been established.
Problem: An issue must be solved, and it is necessary to tackle it using the software. Stakeholders have differing views on what the programmer should look like and how it should function.
Solution: The disagreement may be resolved more quickly if we take an evolving flow process approach. Evolving process flows are characterized by their “circular” nature. The programmer becomes better and better when the five activities are completed. Participants can review once the main project has been completed and both parties have identified their needs. Once the disagreement is addressed, the program goes through the procedure again. (Pressman 2010).
Resulting context: Stakeholders give their permission to a software prototype. After that, either the prototype may be used to build the product software, or it can be abandoned, and a new process pattern can be used to build the production software.
Related patterns: This motif can be found in the following: Getting to know your customers, gathering their requirements, and assessing their needs are just a few steps in a successful project.
Known uses and examples: This design pattern is advised in situations when there are several stakeholders with divergent needs.
(3) Explain why the fundamental software engineering principles of process, dependability, requirements management, and muse are relevant to all types of software systems.
(3) Software refers to instructions used to accomplish a particular operation following the user’s needs. There are a few fundamental rules that any software should adhere to. These concepts include user needs, platform reliability, development process definition, and updates and maintenance. Regardless matter whether the programmer is generic or customized, the same principles apply. The reasons behind this are as follows:
- Both generic and bespoke software require the requirement collecting process.
- Every sort of software application necessitates the creation of a document outlining the steps involved in the development process.
- Updating is a must for any software, necessitating a new version of every piece of software.
- Software development would be incomplete without maintenance, and creating any form of application is essential.
- In order to function appropriately, software must meet specific requirements. Consequently, all software development takes platform dependability into account.
(4) Explain how electronic connectivity between various development teams can support software engineering activities.
(4) The creation of software is a team effort that relies heavily on collaboration, highlighting electronic connectivity’s significance; this enables rapid iterations and open communication, which is necessary for the project to go without hiccups. They are not more quickly if there are any problems or issues.
Incremental software development could be very effectively used for customers who do not have a clear idea about the systems needed for their operations. Discuss.
(5) The incremental development of software provides a faster turnover rate, allowing for faster product testing. It is helpful for those who do not have a clear scope since it allows them to instantly understand whatever they want to add or what the product needs, both of which are obvious to them immediately. In addition to this, it is adaptable to change. Additionally, one’s attention might be divided across many domains simultaneously.
Pressman, R. S., & Maxim, B. R. (2015). Software engineering: a practitioner’s approach. Mcgraw-Hill.