Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Building Useable Software

(34208, 34210, 34206, 36987)

Part 2: Software Architecture and Testing (40%)

Deadline:  12-07-2023

1 Rationale

The coursework prepares students for the design of a software engineering solution, focussing on the design activities of the software engineering life cycle (SDLC). This coursework mimics that the students are involved in an actual software project and have to conceptually design a software system.

2 Learning Outcome

.  Design and evaluate a computer-based system that meets these user requirements.

.  Explain and apply modern methodologies for software design and development.

.  Explain and interpret the software lifecycle.

3 Assignment Type

The assignment is designed to be developed in the same groups as those for assignment 1, BUS-ED-# for UoB Edgbaston and BUS-DB-# for UoB Dubai.

4 Description

Based on the proposed applications/system for assignment Part 1 to tackle Challenge 1:  Net Zero and Challenge 2: Remote health monitoring, we would like you to continue working on the conceptual design of your software system by completing the following tasks.

A. Software specification, analysis, and design with UML (10% in total) - (2% each of the tasks)

A1. Activity diagram

Provide TWO activity diagrams, each describing a non-trivial scenario of interest.  Make sure the activity diagrams follow the right notation and include control nodes, decision nodes, branching, and swim lanes.

Note:  With non-trivial scenario, we mean to consider those scenarios that are core to the features/functionalities of your system, rather than the simple ones like sign-up.

A2.  Class diagram

- Perform a noun-verb analysis on your system specification. Identify the main nouns and verbs crucial to understanding the system’s functionality.

- Generate the class diagram for the entire proposed system.  The class diagram should include at- tributes, operations, visibility, relationships,  multiplicity, etc.   to offer  a comprehensive view of your system’s design. Please state any assumption you make.

A3. Object diagram

Provide an object diagram for ONE non-trivial scenario of interest. Make sure the object diagrams follow the right notation.

A4.  Sequence diagram

Provide TWO sequence diagrams, each describing a non-trivial scenario of interest.  Make sure the sequence diagrams follow the right notation and include guard conditions, interaction frames, etc.  Please state any assumption you make.

A5. State diagram

Provide TWO state diagrams, each describing a non-trivial object transition or component of the system.  Make sure the object diagrams follow the right notation and include guard conditions, parallel states, etc. Please state any assumption you make.

Note: For tasks A1 to A5, select scenarios from those documented as part of the use case diagram (Assignment 1 - Task B1) and generate scenarios/user stories (Assignment 1 - Task B3).  Please ensure consistency in the actors, external systems, and use case names as much as possible.  Also, be sure to specify any assumptions you make during the analysis.

B. Software Architectures - (6% in total) - (3% each of the tasks)

You are now a software architect and you need to adopt a sensible architecture style for your system.

B1.  Component Diagram

Select TWO possible architecture styles for the software design of your system and describe each of them using UML Component Diagrams. The diagram should include at least 25 components / subcom- ponents in total.

B2. Architectural Styles

Compare and contrast the TWO selected candidate architecture styles in B1 in terms of their quality attributes (tradeoff analysis) in a (max 400 words).  Among the numerous possible trade-offs, you may consider security, performance,  scalability,  availability,  safety,  and/or usability, etc., while evaluating architecture choices and decisions.   After  the trade-off analysis,  provide  a sensible conclusion on the reasons behind selecting one of the two architectures to implement your system. Note: You may choose to combine multiple styles in your design.

Trade-off analysis. Evaluate these architectures based on specific criteria such as performance, main- tainability, testability, security, scalability and any other relevant factors. In your analysis, consider the strengths and weaknesses of each architecture in meeting these criteria.  What are the implications of these trade-offs for the overall design of the system?

C. Software Development Methodology - (6% in total) - (3% each of the tasks)

Select a team that does an interesting / core part of the software you are building.  Now imagine yourself as the product owner of the team.

C1.  Software Methodology

Describe the development methodology (e.g., Scrum / Kanban / Hybrid) that you will adapt to develop your system and the reasons behind it (max 400 words). For instance, if you consider Kanban, then you need to describe the Kanban board, the length of the sprints, etc. How do they choose these parameters and why.

C2. Version control

How will you design version control for your application in terms of the different repositories,  their dependencies and the strategy to create brunches. Reason about the design (maximum 200 words).

Hint: You may choose to use a diagram to explain the design.

D. Software Testing and Quality Assurance (9% in total) - (3% each of the tasks)

This question focuses on the testing aspect of the component your team is building.

D1. Provide  a  testing  plan using the template explained in class of your system,  covering  EIGHT functional and FOUR non-functional requirements. Your plan should cover the test items, features to be tested, features not to be tested, Test approach, at least ONE positive test case and TWO negative test cases for each feature selected; and the testing exit criteria.  Select interesting and important test cases to include.

Detailed marking scheme: For each test case you will get 0.5 marks and for the rest of the test plan content and structure carry 2 marks.

Hint: A good answer to the test approach will contain thoughts on how you will handle non-trivial cases, for example, where a feature has an external dependency. An excellent answer to the test cases will list cases for unit testing, integration testing, and system testing.

D2. Argue which test cases you describe in D1 need to be automated and which are not, and why in a maximum of 300 words.

Hint: A good answer will include interesting cases, e.g., where automation is critical from a feature perspective, but complex to achieve for other reasons or viceversa.  An excellent answer will also quantify the estimated effort saved by automation.

D3. As the product develops, the automated tests proposed above may need to be continuously updated to remain relevant.  Think of a strategy to perform this task efficiently  (in terms of the hours of work needed in this maintenance in addition to the new features that will be added) in maximum 300 words.

Hint: A good answer will present at least two mitigation approaches and argue which is better and why. An excellent answer will quantify the advantage.

E. Software Deployment and Maintenance (3%)

Describe your deployment and maintenance plan for your software project in a maximum of 400 words. The plan should include details about the deployment platforms (e.g., on-premises, public cloud, private cloud, hybrid cloud), the CI/CD tool that you will use to automate the process, and the maintenance strategy(ies) that you could apply in your project.

F. Software Ethics (3%)

Describe how the proposed system follows ethical and responsible design based on the IEEE/ACM soft- ware engineering code of ethics in a maximum of 400 words.

G. Remarks (3%)

This question requires you to break down the contribution of each group member to assignment 2.  Please also mention the number of feedback sessions that the team has signed up for.  Make sure to carefully discuss and write this section in agreement with the rest of the team members.

Refer to Table below.  Each member should fill in the corresponding row.  Put a number (point) between 0 − 5 in a cell to denote the contribution to the corresponding task. The meaning of the points is up to your group to decide and you should add a table to explain this (think of the table discussed in class to explain the story points in week 7). Feel free to add more columns as necessary.

Name

Email

Member 1’s details

Emails member 1

Member 2’s details

Emails member 2

5 Submission

This submission must be a single PDF document and should be uploaded to Canvas on December 7th, 2023 at 17:00  (UK time).  Only one submission per group is required.  The deliverable is

Members/Tasks

A1

A2

A3

A4

A5

B1

B2

C1

C2

D1

D2

D3

E

F

Management

Member 1

Member 2

Member 3

...

Table 1: Team member’s contribution

assessed according to the criteria set out in Canvas.

Note:   It  is your responsibility to ensure that the work has been successfully submitted in electronic format and can be opened on any computer. If it cannot be opened, it will not be marked.

6 Important Notes

Feedback: 15 working days from the submission date (see Canvas for more details).

TAs sessions: Each session has a duration of 15 minutes and must be booked online (more information on Canvas and Teams).

Late Submission Policy: If work is submitted late and no extension has been granted, then a penalty of 5% on the actual achievement mark should be imposed for each day the assignment is late until 0 is reached, for example, a mark of 67% would become 62% on day one, 57% on day two, etc. Days counted should not include weekends, public holidays, and university closed days. (Submission Policy)

Plagiarism and Generative AI: Generative AI is a rapidly developing technology, and there is still much to learn about the use of the tools effectively and ethically.   Because of this, the University is committed to protecting academic integrity, ensuring that the work submitted for evaluation remains the student’s.  The University Code of Practise for Academic Integrity sets out what plagiarism is and provides examples of academic misconduct. (Plagiarism Policy) and (GenAI Policy)

References

[1] Can the UK achieve net-zero greenhouse gas emissions by 2050?.

[2] https://www.bbc.co.uk/news/science-environment-58874518

[3] https://friendsoftheearth.uk/climate/whats-net-zero-strategy-and-why-are-we-trying-fix-it [4] https://www.england.nhs.uk/blog/catherine-thompson/

[5] https://www.ageuk.org.uk/globalassets/age-uk/documents/reports-and-publications/reports-and- briefings/health-wellbeing/ageukbriefingstateofhealthandcareofolderpeoplejuly2023.pdf