0% found this document useful (0 votes)
13 views4 pages

BUS_2023_2024_Coursework-2 (2)

The document outlines a coursework assignment focused on software architecture and testing, requiring students to design a software engineering solution. Key tasks include creating UML diagrams, selecting software architecture styles, and developing a testing plan, all aimed at simulating real-world software project scenarios. The assignment emphasizes collaboration in groups and has a submission deadline of December 7, 2023.

Uploaded by

mahmouddehab7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

BUS_2023_2024_Coursework-2 (2)

The document outlines a coursework assignment focused on software architecture and testing, requiring students to design a software engineering solution. Key tasks include creating UML diagrams, selecting software architecture styles, and developing a testing plan, all aimed at simulating real-world software project scenarios. The assignment emphasizes collaboration in groups and has a submission deadline of December 7, 2023.

Uploaded by

mahmouddehab7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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 develop 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

1
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 - (7% in total) - (3.5% 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 - (7% in total) - (3.5% 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.

2
D. Software Testing and Quality Assurance (7% in total) - (3.5% 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 vice versa. An excellent answer will also quantify
the estimated effort saved by automation.

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 Email’s member 1
Member 2’s details Email’s member 2

Members/Tasks A1 A2 A3 A4 A5 B1 B2 C1 C2 D1 D2 E F Management
Member 1
Member 2
Member 3
...

Table 1: Team member’s contribution

3
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
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/ageu kb rief ings tateo fh ealtha ndc areo fo lderp eoplej uly2023.pdf

You might also like