Coding Conventions
Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices, and methods for each aspect of a program written in that language. It makes the programs well organized and easier to work with.
Code conventions are important to programmers for a number of reasons: 40%–80% of the lifetime cost of a piece of software goes to maintenance.[2] Hardly any software is maintained for its whole life by the original author. Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly. If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create. Common coding conventions are Comment convention, Indent style conventions, Line length conventions, Naming conventions, Programming practices, Programming principles, Programming style conventions etc.
Coding conventions followed by our team are listed below. Prefix all view elements with short abbreviation of their type. (btnSubmit) Activities are suffixed with Activity. For example, MainActivity.java Variables always starts with lowercase letter and it follows camel case convention. Example : Button btnLogin; Method names are always verbs which represent what they do, and are written in lowercase. Command lines are given in each class and methods. We always try to stick on to these coding conventions. But it is impossible to ensure that everyone in the group is following these rules. We always have discussions about coding conventions in our internal group meetings. So that, we can help each other by giving suggestions and corrections if needed.
Specify Context of Use
For our App, we are focusing on people who would like to analyse the time they have invested in different categories. While talking to people about our project, we observed that this app is very essential for students, since they have to manage plenty of things together without affecting their studies. For example, a student can easily understand if he is not spending much time on studies, if he is logging his time usage daily. We found some potential users for our app. Two of them are included below.
Micheal Micheal is pursuing masters in Sensor Systems. Currently doing thesis in AUV. He is 25 years old.
“ As I always try to improve my productivity, this app will be really helpful for re-thinking about my time usage. So that I can plan better to achieve my goals. I believe this app would the best option to find the wastage of time in daily life.”
Anna Anna is doing her masters in Logistics in Canada. She is 19 years old.
“I always have a tendency to deviate from my studies due to my interest in sports. I would like to maintain a proper balance my studies and sports. I hope, this app would be really helpful for that. ”
Design Solution
The mockup of our application, symbiote is as follows,
User stories
We tried our best to meet the expectations of our user about the application. Some of the scenarios are given below,
User story 1
Edwin would like to log the activities that consumes much time. So that he can analyse the time consumption. He wants to categorize these activities in certain categories. He would like to give specific colours to each category. He found that some activities are repeating daily, weekly or monthly. So, for easiness he would like to have a repeat option along with the enter activity option. | | | | User story 2
To analyse the time usage, Sebastian would like to see the logs he entered. He would like to get some filtering options for analysing the log, such as filtering by date, activity, category or a combination of them.
Summary of Changes
By mistake we assigned the colours to activities instead of category. So, we had to change it as per the customer’s suggestion. Since there is a new suggestion from the customer to implement the see log and overview/export feature together in one page, a slight modification may be required on the design. Instead of a hybrid filter, we implemented separate filters for date, category and activity. Later, we changed it to a hybrid filter to make it more compact.