You are on page 1of 6

Assignment No.

02
Total Marks: 20
Semester: Spring 2022
Software Engineering-1 (CS504) Due Date: 24-08-2022

Assignment No. 2 covers lecture-13 to lecture-33.


Instructions:
Please read the following instructions carefully before submitting the assignment:
 You should submit your assignment before or on the due date through the VULMS.
 Your assignment should be your work in your own words. It should not be copied from the
Internet, handouts, or books.
 Your Assignment solution must be in Microsoft Word document format. Assignment
solutions in other than Microsoft Word documents will not be accepted.
 Assignments sent via Email will not be replied to and accepted.
 If the submitted assignment does not open or the file is corrupt, it will not be marked and
hence awarded zero marks.

Objectives:
 To have hands-on experience in object-oriented analysis using the starUML tool or Microsoft
Visio.
 To improve the learning of students related to software design patterns and system
architecture.
 To improve the learning of students regarding best programming practices and naming
conventions in C++.

For any query about the assignment, contact at CS504@vu.edu.pk

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
 Corner to view and maintain reminders regarding all the events of daily routine.
 Add new reminders.
 Share reminders with anyone.

Kitchen Corner
 Provides the user with recipe management facilities such as from searching to customizing and
sharing recipes, everything can be done.
 Provides the feature to manage kitchen grocery list and kitchen budget.

Entertainment Corner
 Allow users to subscribe to different channels and fashion brands to get their notifications.
 Allow users to listen to their favorite songs and weather sensed auto-generated playlists.

Family Corner
 Facilitates the user to track his/her family member's real-time location to ensure their loved ones
are safe and sound.
 Generate alerts when someone has reached or arrived at his/her desired location.

Self-Care Corner
 Enable users to plan and track diet and fitness plans.
 Set reminders for parlor visits.
 Get beauty and health tips.

Groceries Corner
 Helps users to plan for grocery shopping.
 Maintains a list of user groceries.
 Help in better planning for budget.

Budget Corner
 Manage fixed budget.
 Manage previous’ budget graph statistics.
 Generate the current month's budget.

Life Hacks
 Provide creative ideas for party/home decor etc.
 Help to solve problems quickly which usually takes too long.

House Keeping
 Search Maid.
 Display Maids data.
 Hire maid.

Event Corner
 Generate event.
 Generate guest list.
 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.

You might also like