|
Total Questions:
02
Total
Marks:20
Case
Study
“HomeAide” is a mobile application for
the android platform. It is for the use of household ladies and aims to make
their lives easier by automating some of their tasks and supporting them.
This application also provides custom installation. It offers various features
such as a family corner where the location of the husband and children can be
traced. Kitchen corner where new recipes can be discovered and recipes can be
used to make grocery lists, meals can be planned and cookbooks can be made.
Budget management can be done in the budget management corner where
expenditures are recorded and the budget is allocated. Reminders can be set
for daytime activities. Self-Care corner helps maintain beauty, health, and
wellness. There is also a housekeeping corner where housekeepers can be hired
according to the needs of the user. Event Corner where guest lists and
invitations are handled. There is also an entertainment corner where seasonal
songs and plays are available, and fashion brands subscriptions and updates
are provided. Life hacks corner provides users with access to a wide range of
creative and problem-solving ideas related to everyday tasks.
Product Functions
The following list offers a
brief outline and description of the main features and functionalities of the
HomeAide app. The features are as follows.
Reminder Corner
l
Corner to view and
maintain reminders regarding all the events of daily routine.
l
Add new reminders.
l
Share reminders with
anyone.
Kitchen Corner
l Provides the user with recipe management facilities such
as from searching to customizing and sharing recipes, everything can be done.
l Provides the feature to manage kitchen grocery list and
kitchen budget.
Entertainment Corner
l
Allow users to
subscribe to different channels and fashion brands to get their
notifications.
l
Allow users to
listen to their favorite songs and weather sensed auto-generated playlists.
Family Corner
l
Facilitates the user
to track his/her family member's real-time location to ensure their loved
ones are safe and sound.
l
Generate alerts when
someone has reached or arrived at his/her desired location.
Self-Care Corner
l
Enable users to plan
and track diet and fitness plans.
l
Set reminders for
parlor visits.
l
Get beauty and
health tips.
Groceries Corner
l
Helps users to plan
for grocery shopping.
l
Maintains a list of
user groceries.
l
Help in better
planning for budget.
Budget Corner
l
Manage fixed budget.
l
Manage previous’ budget graph statistics.
l
Generate the current month's budget.
Life Hacks
l
Provide creative ideas for party/home decor
etc.
l
Help to solve problems quickly which usually
takes too long.
House Keeping
l
Search Maid.
l
Display Maids data.
l
Hire maid.
Event Corner
l
Generate event.
l
Generate guest list.
l
Send invitation messages to the guests.
Most of the Features of HomeAide use internet services to communicate with
the server.
The primary design constraint is the mobile platform. Since the application
is designated for mobile handsets, limited screen size and resolution will be
a major design consideration.
Creating
a user interface that is both effective and easily navigable will pose a
difficult challenge. Other constraints such as limited memory and processing
power are also worth considering. HomeAide is meant to be quick and
responsive, even when dealing with large groups of people, so each feature
must be designed and implemented with efficiency in mind.
The
most important aspect of the system will be its usability. As the application
will be used by users with different levels of exposure to the technology, so
the application should be easy to use to such an extent that everyone can
easily understand it. GUI should be attractive and easy to use. Screens will
be designed in such a way that multiple points pop up should be shown to
guide the user if something went wrong.
Moreover,
the system should be maintainable that can be easy to modify, and testable
for any error or fault. It should also be scalable as it is a versatile “all
in one” app for housewives and working women. So, it should be extendable and
easily modifiable.
The system should be available 24/7. It should not stop working in the
presence of the internet and GPS. The correctness of operations is also of
high priority. As the application has too many features, correctness must be
taken into more consideration because there is a risk that at some point it
may be ignored.
Communication with the external interfaces and data exchange must be secured.
Moreover, security should be considered when communicating between servers
and apps. The family and personal information of the user must be kept
private and confidential. Use encryption where sensitive information is
transferred i.e. family location and passwords if any.
Question 1:
(15)
Entertainment
Corner
One very interesting feature in the
entertainment corner of this app is the weather-sensed auto-generated
playlist of songs. Users can relax and enjoy the weather by listening to her
playlist. For that mobile internet and location service should be enabled.
The app uses location coordinates (longitude, latitude) to extract humidity,
precipitation, air temperature, air pressure, and wind speed to predict the
current weather. A playlist of songs is created to match the current weather
forecast. The user can save the playlist for later with the title of her
choice. The user has also been given the liberty to search, add or remove any
song by entering the song’s title. The device's music player will be used to
play, pause, shuffle or repeat playlist songs.
Read the paragraph above to identify the classes and attributes and
create a class diagram using UML object model notations (as discussed in
Lecture 15) on StarUML or MS Visio.
Important
Links:
Tool download link: https://staruml.io/download
Download and
installation guide: https://www.youtube.com/watch?v=0y61Z2C56u8
Links for class diagram tutorial:
https://support.microsoft.com/en-us/office/create-a-uml-class-diagram-de6be927-8a7b-4a79-ae63-90da8f1a8a6b#OfficeVersion=Web
https://docs.staruml.io/working-with-uml-diagrams/class-diagram
Question 2:
(1)
Choose the most appropriate architectural style for the ‘HomeAide’
mobile app from the following options.
Options:
·
Client-Server
Architecture
·
Layered
Architecture
·
Pipe
and Filter Architecture
·
Repository architectures
Question 3:
(4)
1. #include <iostream>
2. #include<string>
3. #include<cmath>
4. using namespace std;
5. int main() {
6. // Write C++ code
here
7.
8. int key, age, input
= 0;
9. double weight = 0;
//declaring and initializing weight
10. double h = 0.0;
//declaring height initializing height
11. double bodymassindex
= 0.0;
12. string n;
//declaring name
13.
14. cout <<
"Menu" << endl;
15. cout <<
"Press 1 for Reminder Corner " << endl;
16. cout <<
"Press 2 for Kitchen Corner " << endl;
17. cout <<
"Press 3 for Entertainment Corner " << endl;
18. cout <<
"Press 4 for Family Corner " << endl;
19. cout <<
"Press 5 for Self-Care Corner " << endl;
20. cout <<
"Press 6 for Groceries Corner " << endl;
21. cout <<
"Press 7 for Budget Corner " << endl;
22. cout <<
"Press 8 for Life Hacks Corner " << endl;
23. cout <<
"Press 9 for Housekeeping Corner " << endl;
24. cout <<
"Press 10 for Events Corner " << endl;
25.
26. cin >> key;
27. switch (key)
28. {
29. case 1:
30. cout
<< "Welcome to Reminder Corner";
31. break;
32. case 2: cout
<< "Welcome to Kitchen
Corner"; break;
33. case 3:
34. cout
<< "Welcome to Entertainment Corner";
35. case 4:
36. cout
<< "Welcome to Family Corner";
37. break;
38. case 5:
39. cout
<< "Welcome to Self-care Corner" << endl;;
40. cout
<< "Press 1 to calculate your Body Mass Index (BMI)" <<
endl;
41. cin
>> input;
42.
43. if(input
== 1)
44. {
45.
46. cout
<< "***BMI Calculator***" << endl;
47. cout
<< "Enter your name" << endl;
48. cin
>> n;
49. cout
<< "Enter your age" << endl;
50. cin
>> age;
51. cout
<< "Enter your Height (centimeters)" << endl;
52. cin
>> h;
53. cout << "Enter your
weight (kg)" << endl;
54. cin
>> weight;
55. bodymassindex =
weight/pow((h/100),2);
56. cout
<< "Dear " << n << ", your BMI is "
<< bodymassindex << " " << endl;
57. cout << "Healthy BMI range:
18.5 kg/m2 - 25 kg/m2" << endl;
58. break;
59. }
60. else
61. {
62. break;
63. }
64. case 6:
65. cout
<< "Welcome to Groceries Corner";
66. break;
67. case 7:
68. cout
<< "Welcome to Budget
Corner";
69. break;
70. case 8:
71. cout
<< "Welcome to Life Hacks Corner";
72. break;
73. case 9:
74. cout
<< "Welcome to Housekeeping Corner";
75. break;
76. case 10:
77. cout
<< "Welcome to Events Corner";
78. break;
79. default:
80. cout
<< "Settings";
81. break;
82. }
83. return 0;
84. }
Keeping in view the
best coding style guidelines discussed in lectures, identify any 4 coding
style mistakes that violate best coding practices in the above code and write
them in the table below. Also, mention the line number/s where you
encountered the mistake.
|
Sr.
|
Line number/s
|
Coding Style Mistakes
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
4
|
|
|
|
5
|
|
|
Note:
·
Only one class diagram (model) is required which should cover the whole
scenario.
·
The class diagram should be pasted into the MS Word file as an image,
and the MS Word (.docx) file should be uploaded on VULMS.
Your solution must be uploaded on or before 24th August
2022.
|
Thanks everone