IT代考 Question 1

Question 1

1. As a user I want to be able to spell check my words so that I can avoid spelling errors
2. As a user I want to be able to import images into my document so that my work will be well illustrated

Copyright By PowCoder代写 加微信 powcoder

3. As a user I want to be able to convert my document into PDF format so that I can sent it out for others to peruse
4. As a user I want to be able to search through the document via keywords so that I can filter to the page
5. As a user I want to be able to open, save, edit my document so that I can update my work
6. As a user I want to be able to set the font styles to improve the readability of my document

Use case ID:

Updating of Document

Description: 
To be able to open, save or edit

Primary Actor:

Secondary Actor (if any):

Pre-conditions:
There must be document work to be saved
The document must exist to be opened for editing

Post-conditions: 
Users can open, save, or edit their document successfully

Main Flow:
1. User written work down on a document
2. User decides to save the work
3. Work saved successfully

Alternate Flow:
1. User open the document saved previously
2. User edits changes to the opened document
3. User saves the document after making changes
4. Changes saved successfully

Question 2
2. Test for functionality of opening, saving, and editing of the document

a. Open the document
b. Save the document
c. Edit the document

Expected Result
a. The document should open, displaying the information previously saved (if any)
b. The document should correctly and accurately save all information
c. The document information should be editable when the document is in the opened state

Observations (if any)

Pseudo Code:
def unit_test_7():
if openDocument():
return True
if saveDocument():
return True
if editDocument():
return True
return False

Continuous Integration (CI) and Delivery (CD) for Word Editor software:
Firstly, the team developing this software will maintain a single source repository where everyone commits frequently (Every commit should build the main codebase on an integration machine). A version control system like Git is used to manage the commits and codebase. A developer can be working on font styles, and another on document opening, saving, and editing, where the commits will then be integrated together in the source repository.
Secondly, the development will be test driven, where test scripts are written for all unit test cases and system testing. All code related to the software will be in the repository (example, test scripts, code libraries, test data, etc.). Unit test scripts should be written for all use cases, like for the functionality of opening, saving, and editing of the document. System test scripts should be written to test when different components which are integrated together to find if there are any faults with component interactions.
Thirdly, the build should be automated from the codebase for the software. Build automation can be done with the help of tools like Jenkins on the integration machine. All code will then be compiled, configurations automatically configured, to produce a running Word Editor software (build scripts will have to be written for the full automation of the build process). The automated build process should be fast and broken builds should be fixed by developers immediately so that the CI pipeline can keep running.
Fourthly, the build will be automatically tested. Unit, system, and acceptance test scripts will be run here to automatically test the Word Editor software. If any of the tests fails, the developers will be notified, and they can rectify the issue. For example, if the unit test for opening, saving, and editing documents failed, the developer will know which component is broken and fix the issue from there. All testing is done in the staging environment to negate the risk of issues relating to having a different environment than production.
The CI/CD process is as follows. A new build is automatically built whenever new commits are pushed to the codebase. A Word Editor software is then produced, and automated testing is then performed on the staging environment. Testing in the staging environment also addresses non-functional requirements for example, whether the Word Editor software will encounter issues if there is too much information stored in the document.
Lastly, after the build and testing is automated, and the testing is successful, the Word Editor can be manually deployed to the production environment.

Question 3.

One functionality of this application that uses data-driven approach will be the tracking of Covid-19 cases. This data can be projected to all end users to prompt them about the infected areas and to promote safety awareness at the same time. Under the public health strategy, flatten the curve, it proves that it is possible to use the data collected and communicate urgent facts and guidelines in a compelling yet resonant way to the public. With the constant collection of data to this feature, users can avoid areas that are found to be visited by Covid-19 cases or if they have been in close proximity with them and take the necessary steps to prevent any further spread.
Data can be an useful and power tool to effect change in public attitudes and governing policies. In this advanced age of technology, more data are available than ever before, hence the need to apply data-driven approach to developing software’s – especially a software which concern the general public’s health.

Although there is a widespread agreement that digital data collection can prove to be useful in the current Covid-19 crisis. But there is an increasing concern that the collection of data can lead to a permanent suspension of rights and liberties that have unintentional consequences. There are two differing view as to whether data storage should be decentralized or centralized. Both approaches have their own vulnerabilities that need to be addressed, including the personal and private data of the public collected and stored. In conjunction of the ethic principal: Act consistently with the public interest. The collection and use of this delicate data by relevant and health authorities must have limit on their usage, to strictly necessary for the operation of public’s health process. Be it centralized or decentralized, the authorities handling this data should ensure the usage is in conformity with privacy and ethical principles.

Question 1 (7 marks)
Reflect on how your group has followed an agile methodology to develop the system in the project by discussing how your group have addressed the twelve agile principles. For each agile principle, describe what your group has done or did not do to support it. In addition, discuss how you would improve (with respect to each agile principle) if you work on a similar project again in the future.
The Agile software development methodology is one of the simplest and effective processes to turn a vision for a business need into software solutions. Agile is a term used to describe software development approaches that employ continual planning, learning, improvement, team collaboration, evolutionary development, and early delivery. It encourages flexible responses to change.
During the develop the system, Firstly ,our project leader will encourage project members to communicate and collaborate with stakeholders face-to-face, so that products and requirement of customer are aligned with the company’s goals.
Secondly, Usually a few weeks apart, we need to deliver working software frequently. We adopt the principle of shorter delivery cycle to face the requirement changed from customer .
Thirdly, Whatever internal or external of team, we adopt the most effective way to convey information is face-to-face conversation. Team members must cooperate with each other.
Fourthly , Team member use Scrum for task sprints . Sprints continues one to two weeks usually and it can help the team to iterate on the software regularly.
During the develop the system , we also have some shortcoming . For example , Project planning is not specific: sometimes it is difficult to determine the delivery date of the software. Although agile is based on time nodes for delivery, the project leader will constantly adjust the task priority, causing skip the original delivery project . At the same time, any new requirements will be taken extra time in the project , thereby prolonging the entire project schedule.
Ability of project members: Agile teams are usually small, so team members need to be proficient in various fields. Our team member still need to improve IT knowledge and skill.
In future , I think Agile team member should have proficient IT knowledge and skill so that small and nimble agile team requirement .
Regarding demand analysis: At this stage, Multiple meetings and discussions are necessary with product managers, stakeholders and users in order to determine the requirement . The develop team needs to collect all information (such as who will use the product and how will they use the product, etc.). These requirements must be detailed, quantifiable, and relevant .

Question 3 (6 marks)
Assume that you have a team of 6 people. Describe how you would apply the Scrum methodology to develop the quiz-making system above in 2 months starting from today. Your discussion should include the following details:

a) How would you organize your team (e.g. roles and tasks)?

Member 1 (Support) – Wireframing, User Test Data/Bug report Generation, Finalization of Report, Requirements Traceability Matrix
Member 2 (Support) – Sequence Diagrams, Use case diagram, BCE Class Diagrams, Use Case Descriptions, User Stories
Member 3 (Develop) – Back/Front End Programmer, Database Variable
Member 4 (Develop) – Test Function, Bug Lifecycle Management
Member 5 (Develop) – Back/Front End Programmer, Database Variable
Member 6 (Project leader) – Documentation, Meeting Minutes document, SCRUM master, Quality Check ,Workflow management

b) What are the processes you would follow?

1. Investor/user/market/BOSS proposes requirements

2. Po (product owner) sorts the demand pool and makes demand pk (determine which requirement should be prioritize)

3. Iteration plan (determine the goal of each iteration)

4. sprint backlog (list of sprints)

5. Iterative execution (including possible N sprints, daily stand-up,review yesterday, clarify today’s work, and assign tasks)

6. Deliver product increments

7. Iterative review (acceptance by po and other stakeholders)

8. Iteration review (master and team participation)

9. Go back to the demand pool and start the next iteration

c) What are events/meetings that you would organize and when?

1. Daily stand-up meeting

15min status meeting every day; same time and same place every day; check adaptation for sprint; answer three questions (yesterday, today, hindrance)

2. sprint review meeting

Input: sprint goals; product backlog items promised by the sprint; items completed by the team; backlog items not completed; important decisions made by the team; obstacles encountered by the team

Output: review results and result updates of the version plan; review summary and improvement

Participants: po, scrum master, team, management, customers, stakeholders

3. sprint retrospective meeting

Input: sprint review results; sprint work results; problems encountered by the team; ideas of the team on the current sprint work

Output: start, stop, continue

Participants: scrum master, team

Time box: 2h

d) What is your plan in terms of iterations and milestones? What should be delivered in each iteration and when?

I plan the iteration period is 1 week (5 days) It is based on team capacity (the amount of work that team can complete in one iteration).
Need to finish the sprints task and delivery operational software in weeks

e) How do you execute your plan, monitor it and make adjustments if necessary?

I will start a 15-minute stand-up meeting every morning to follow up on the progress of the project . Every team member need to talk about their task and completion status on yesterday . Also need to talk today’s task so that ensure the normal progress of iteration plan. Whether they have encountered any problem, whether problem will affect other related tasks or other members, Ensure we can avoid risks timely.
If the requirement was changed significantly, I need to hold a team meeting to discuss solutions. As time changes, problems are discovered, new requirement are solved and tasks are completed, I will adjust and modify the Sprint Backlog constantly .

f) Discuss how your team would use Planning Poker in this project. Give a specific scenario of this use.

1.To start a poker planning session, I will read an agile user story or describes a feature to the estimators.
For example:
“Customer logs in to the reservation system”
“Customer enters search criteria for a hotel reservation”
2.Team members of the group make estimates by playing numbered cards face-down to the table without revealing their estimate (Fibonacci values: 1,2,3,5,8,13,20,40)
3.Cards are simultaneously displayed
4.The estimates are then discussed and high and low estimates are explained
5. Repeat as needed until estimates converge
By hiding the figures in this way, the group can avoid the cognitive bias of anchoring, where the first number spoken aloud sets a precedent for subsequent estimates.

Question 4
Assume that your team is now also considering to follow the Rational Unified Process (RUP) methodology to develop the quiz-making system. The duration of the project remains unchanged (i.e. 2 months).
a) Discuss the differences your team would do if your team follows RUP instead of Scrum to develop the quiz-making system.

1. Cycle – IF I follow RUP to develop system , My Formal Cycle is defined across 4 phases, but some workflows can be concurrent. However ,For the scrum cycle , each sprint (iteration) is a complete cycle.
2. Planning – IF I follow RUP to develop system , I use formal project plan, associated with multiple iterations is used. The plan is end-date driven and also has intermediate milestones .For scrum , No end-to-end project plan. Each next iteration plan is determined at the end of the current iteration (NOT end-date driven). Product Owner (Key Business User) determines when the project is done.
3. Scope – For RUP , Scope is predefined ahead of the project start and documented in the Scope document. Scope can be revised during the project, as requirements are being clarified, but these revisions are subject to a strictly controlled procedure . For Scrum , Instead of scope, SCRUM uses a Project Backlog, which is re-evaluated at the end of each iteration (sprint).
4. Artifacts – For RUP, I need prepare Vision/Scope Document, Formal functional requirements package, system architecture document, development plan, test plan, test scripts, etc. For scrum , The only formal artifact is the operational software.

b) Discuss the advantages and disadvantages of following RUP instead of Scrum to develop this quiz-making system.
Advantages of RUP Software Development
This is a complete methodology in itself with an emphasis on accurate documentation
It is proactively able to resolve the project risks associated with the client’s evolving requirements requiring careful change request management
Less time is required for integration as the process of integration goes on throughout the software development life cycle.
The development time required is less due to reuse of components.
Disadvantages of RUP Software Development
The team members need to be expert in their field to develop a software under this methodology.
The development process is too complex and disorganized.
On cutting edge projects which utilize new technology, the reuse of components will not be possible. Hence the time saving one could have made will be impossible to fulfill.
Integration throughout the process of software development, in theory sounds a good thing. But on particularly big projects with multiple development streams it will only add to the confusion and cause more issues during the stages of testing

Question 5
Assume that you are responsible for the verification and validation activities in the development of the quiz-making system above.
a) Discuss how you would conduct static verification and dynamic verification for this quiz-making system. Provide examples that are specific to this quiz-making system. (3 marks)
static verification -The purpose of static code analysis techniques is to improve the quality of code without executing it.For example we need to perform syntax check ,linting check , cross-clock domain check and formal verification for system .

Dynamic verification is performed during the execution of software, and dynamically checks its behavior; it is commonly known as the Test phase. Verification is a Review Process. Depending on the scope of tests, we can categorize them in three families:
Test in the small: a test that checks a single function or class
Test in the large: a test that checks a group of classes, such as Module test (a single module) , Integration test (more than one module) ,System test (the entire system)
Acceptance test: a formal test defined to check acceptance criteria for a software
Functional test
Non functional test (performance, stress test)
The aim of software dynamic verification is to find the errors introduced by an activity (such as a stress test for a web server, i.e. check if the current product of the activity is as correct as it was at the beginning of the activity).
b) Describe how you would apply test-driven development to develop this quiz-making system. Provide the steps and examples that are specific to this quiz-making system. (3 marks)

In simple terms, test cases for each functionality are created and tested first and if the test fails then the new code is written in order to pass the test and making code simple and bug-free.
1. Add a test.
2. Run all tests and see if any new test fails.
3. Write some code.
4. Run tests and Refactor code.
5. Repeat.

c) Assume that you are asked to adopt a DevOps approach to develop this quiz-making system. Discuss what changes you would make to your verification and validation activities to ensure a successful adoption of a DevOps approach. The discussion must be specific to this quiz-making system. (3 marks)

1. Implement the Agile Methodology
In order to ensure that the software verification and validation process is running smoothly, it is essential to have a roadmap with the best strategy to produce a high quality and software.
2. Implement Small Iterations for Better Control
Small changes are the correct way to implement continuous integration. Introducing a few changes at a time is what enables frequent integration. At this point, if bugs or errors occur it will be easier to detect their root causes. These bugs are often detected at early stage leading to fewer issues in the production environment. Validation and deployment can be done very fast as well leading to a reduced time to market and also to a frequent delivery.
3. Document the Process
Documentation is also important for the deployment process. Deployment differs slightly from one application to another. These differences can include: configuration needed by the application (upload folder, database, etc.) and prerequisites in order to run the software (CPU, memory etc.). Standardized documents can help overcome this obstacle. The deployment process should be clear so that we are not wasting time reporting back and forth on deployment issues. We should have in mind that deployment in the DevOps context will happen frequently, so the documentation has to be as thorough as possible to speed the process

Team Leader able to create an account ,edit a

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com