System Design Report Task 1: Database Design and Normalisation A) First Normal Form (1NF)
System Design Report Task 1: Database Design and Normalisation A) First Normal Form (1NF)
c) Process of normalisation
1NF
1NF requires relations in which the intersection of each row and column contains one
and only one value. This requires elimination of repeating groups.
2NF
Candidate Keys
Extracting candidate keys we have:
i. (CustomerNo, PropertyNo)
ii. (CustomerNo, RentStart)
iii. (PropertyNo, RentStart)
From this we can introduce Rental Relations with PropertyNo and CustomerNo as
foreign keys.
Functional Dependencies
Extracting all functional dependencies we have:
i. CustomerNo, PropertyNo → RentStart, RentFinish (Primary Key)
ii. CustomerNo → CustomerName (Partial Dependency)
iii. PropertyNo → PropertyAddress, Rent, OwnerNo, OwnerName (Partial
Dependency)
iv. OwnerNo → OwnerName (Transitive Dependency)
v. CustomerNo, RentStart → ProprtyNo, PropertyAddress, RentFinish, Rent,
OwnerNo, OwnerName (Candidate Key)
vi. PropertyNo, RentStart → CustomerNo, CustomerName, RentFinish
(Candidate Key)
We can summarize relations with the following functional
dependencies:
i. CusomertNo, PropertyNo → RentStart, RentFinish
ii. CustomerNo → CustomerName
iii. PropertyNo → PropertyAddress, Rent, OwnerName, OwnerName
3NF
Customer
CustomerNo → CustomerName
Rental
CustomerNo , PropertyNo → RentStart, RentFinish
PropertyNo, RentStart → CustomerNo, RentFinish
PropertyOwner
PropertyNo→ Paddr, Rent, OwnerNo, OwnerName
OwnerNo → OwnerName
We can now generate the following tables from these relations:
i. Customer(CustomerNo, CustomerName)
ii. Rental(CustomerNo, PropertyNo, RentStart, RentFinish)
iii. PropertyForRent(PropertyNo, PropertyAddress, Rent, OwnerNo)
iv. Owner(OwnerNo, OwnerName)
Task 2 : Architecture Design
The proposed management system is going to be a web based system for all the users
accessible via web browsers and native mobile and desktop applications. The system
can be used within any operating system with internet connectivity.
The backend will be developed using nodejs, the web frontend in reactjs and flutter
for mobile frontend.
For the database management system we will use MYSQL.
Persistent data management deals with how the persistent data such as file, database,
etc. are stored and managed and to outlive a single execution of the system. This
Persistent data management describes the persistent data stored by the system and the
data management infrastructure required for it. The proposed system will use MySQL
database for storing data.
Most functionality in system is concerned with creating or manipulating persistent
data. For this reason, access to the data should be fast and reliable.
In proposed property management systems there are different actors interacting with
the system. Each
actor should have different level of authentication to different functionality and data
in a system.
For this reason there is need for an authentication mechanism to control the data
access by different
stake holders as well as users, so that information is protected from unauthorized
users.
There for the system will ask every actor or user to Login before performing any
operation depending on their level of authentication given by the Administrator.
Task 3 : UI Design principles & User Interface Mock-up
The system uses bottom navigation bar on mobile devices and Sidebar navigation for
desktop devices.
On Desktop devices the navigation menu uses texts that clearly define what is
expected on performing given action.
On mobile links not on the bottom navigation bar are highlighted in green.
The system uses bottom navigation bar on mobile devices and Sidebar navigation for
desktop devices.
This maintains platform consistency hence the app looks and feels native to the
platform being used.
From the UI the property listing clearly hints to users who are searching for property.
4. Familiar UI elements
Task 4 : UI Design process
I’d choose and stick to an existing standard, such as The Macintosh Human Interface
Guidelines, even if the standard seems wrong, it's rarely profitable to deviate from
widely established conventions.
By creating sketches of all screens of the application, having them reviewed by an
ergonomy-expert to correct mistakes, and, only then, proceed to development.
Ensuring the user gets an overall view before being presented with all the details,
defining and capturing hierarchies.
Visibility
Ensure users should be able to clearly see how and where they can achieve their goal.
Consistency
Achieved by keeping all the repeating elements of your design the same, whether it’s colour,
typography, function or location.
Learnability
By using commonly recognised design conventions and helping users to complete tasks by giving
feedback are good places to start.
Feedback
Achieved by communicating whether the user has completed an action successfully or not.
For example, using a tick when an action has been completed successfully is a globally recognised way
of saying “that is ok”.
d) Choosing a prototyping technique and an interface evaluation technique
Paper Prototyping
Prototyping on paper allows one to create, throw away and iterate multiple times
pretty fast with less wasting time.
Paper prototype is good to simulate series of user interactions when building an app,
even for a Physical product. And you don’t need to have Software tool to do that. All
you need is pen (colored) , paper (colored) and sometimes some glue.
It also facilitates experimentation by using different pens, colored papers, glue sticks,
may be stencils.
It gives more freedom than using a software. One can also check multiple user
usability issues by just drawing it on paper and making improvements.
This involves a small set of analysts judging the UI against a list of usability
principles(heuristics).
Usability Requirements
An interface should be easy to learn and easy to remember how to use. The latter
pertains especially to devices that require infrequent use. Users should not be required
to consult a manual each time they need to use a kitchen blender for instance.
Usability Requirements for an interface design should support the following from the
perspective of its primary users:
i. Efficiency of use: goals are easy to accomplish quickly and with few or no
user errors.
ii. Intuitiveness: the interface is easy to learn and navigate; buttons, headings,
and help/error messages are simple to understand.
iii. Low perceived workload: the interface appears easy to use, rather than
intimidating, demanding and frustrating.
User Requirements
User Requirements define how to meet the physical and cognitive needs of the
intended users of the system.
Users should be able to comfortably and effectively use an interface to accomplish the
goals that it has been designed to support.
When one can clearly define who will be using your interface, and the environment(s)
in which it will be used, you can specify User Requirements.
A Contextual Task Analysis is one method you can use to gain insights about how
and where your users expect to use your interface, by observing how they currently
perform a task that your interface will, or already does, support.
If you learn that a majority of your intended users have impaired vision, hearing, or
motor skills, you may need to design your interface to support accessibility.
For example, website form fields and error messages should support assistive devices
such as text-to-speech readers.
Another example is providing the ability to adjust font size (e.g., small, medium,
large) to help users with impaired vision, which may include someone who does not
always wear his or her glasses.
References