Software engineering coursework report
Table of Contents
Introduction and Overview
Group Management theory
Risk Analysis and Management
Conclusion and References
Introduction and Overview
Introduction and Overview
The software engineering coursework is mainly based on a software which is called HWUniversal where it is an international e-commerce and online retailer that sells a range of digital, consumer electronic , and household products on its website through a searchable catalogue.
In order to extend its ability to meet its customers' needs, and keep up with its competitors, the company has decided to implement both a recommender and a review system. The review system enables customers to leave online feedback about products they have purchased. While each system is to be developed as an independent software component, the company would like both systems to be linked to each other and to its existing online catalogue interface.
The main web application is intended to be used by the customers of online shopping where the application is used. People of all ages, education levels and demographics can easily use the application via all popular web browsers over different platforms whether through their pcs or mobile phones or ipad tablets.
All the data pertaining to the menu items, prices, orders, customer information and login information will be stored in MySQL database. The data will be backed up frequently to avoid data loss and prevent downtime.
So databases are important mainly because of the following :
They are important for storing records of the customer , payment details and details about the products , customer login details, password details, account details, order details and much more.
Sensitive information such as customer login details will be encrypted before storing in the database and will not be disclosed to third parties without their consent.
Software engineering project -essential topics and components
In addition the major parts for any software engineering project are the design patterns which are the diagram design – activity diagrams, use case diagrams, data flow diagrams and sequence diagrams where it depicts the process of the functions of the app. The second major part of the software engineering project is the group management theory or the group work where it is one of the most essential part of any successful software engineering project. It is extremely essential and it really causes a great impact on any software engineering project. In addition, it helps you build ideas about creating software or apps or webpages as well as you can easily explain to your group members about what are you good at and also you can develop skills easily.
Software engineering design patterns
So how to create a successful software or a webpage. So regarding software engineering it has processes which are design , design patterns, software requirements such as functional and non functional requirements, diagrams such as activity diagrams, uml use case diagrams, activity diagrams, data flow diagrams and sequence diagrams. So design theories in software engineering are extremely important and they do play an important role in any software design .
Next , comes the group management theory so what do we know about group management theory in software engineering and why is it extremely important and why is it beneficial ?
Moreover , it has lots of advantages and benefits.
The features of group meetings or group management.
It helps you build up ideas
It is important for roles assignments
It is helpful for role allocation where each group member chooses an appropriate role or a skill in which the group member is good at it.
The second most important reason to why group works are extremely important mainly because Some tasks are just too big or needed in too short a timescale for one person to do them
? Most computing jobs are team based
? Good for your CV
There are other benefits though…
? Learning from others
? Sharing responsibilities
? You can specialise in areas you are comfortable with
? It’s a natural thing for us to do: we are a gregarious species
Types of groups
A formal team is a group that has been set up by an organisation for the purpose of achieving specific objectives and goals.
? Often rules/guidelines about how and when the team will meet
? Some form of leadership structure.
An informal team is a group not officially set up by an organisation, that sees the benefit of working together.
? Usually less structured and rule-bound than formal teams.
Formal versus informal
? Not always clear-cut!
? Informal groups have their place and play an important organisational and social role
? Formal groups may become more informal as relationships between group members develop.
Requirements of the Software Engineering Project
What are the requirements of the software project?
What do we know about the requirements?
What are the types of the requirements?
How important are they?
Requirements are mainly defined as the things where what exactly you want the software or the system to do.
Requirements are extremely important especially in designing software or app or a webpage and to apply these requirements it is mainly based on the case description.
Requirements are of two types and they are :
The Functional requirements where it is known as what the system should do exactly
Then comes the non functional requirements where it is mainly about the appearance of the web page as well as usability etc.
Usability ? Efficiency ? Performance ? Space ? Reliability ? Portability ? Programming language ? Platform ? Scalability
External ? Interoperability ? Ethical ? Legislative Privacy
Organisational ? Delivery ? Implementation ? Standards
Types of non functional requirements
These requirements are extremely important where it is dependent on designing any software or app.
Software design diagrams
Software design diagrams
Software design diagrams are also an important part or component of any software engineering project also it helps the designers how to find solutions and make the software for all people to use them easily .
Here are some examples of the diagrams which are important for designing the software or webpage.
Activity diagrams , sequence diagrams and the data flow diagrams for the Admin and the cutomer or user
Benefits of activity diagrams
Also, these activity diagrams are useful in following methods:
Functions that occur in parallel
Complex chain of multiple use cases
Software flows and logic control configurations
Procedures with judgment points and alternate flows
Here is the sample of the data flow diagram for the Admin since the admin is also one of the users for the webpage
This image displays the data flow diagram for the admin and the admin must have login and password details . In addition the admin is responsible for managing the database parts as well as the staff details and therefore having authentication systems is a must.
Next comes the sequence diagram of the Admin
Here is the diagram below.
In this diagram as we can see it clearly explains about the process of the Admin logs in and after the admin logins the modify menu items is displayed and the processes are clearly mentioned above and for every online ordering webpage , the admin plays a very important role in organising data, staff details ,modifying items , updating features of the web page and much more.
So therefore , sequence diagrams are important for any software or webpage design and also it helps identify the procedures easily in order to make the webpage easy for all the users, staff and administrators.
What is SCRUM?
Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time. It also allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month). The business sets the priorities. Teams self-organise to determine the best way to deliver the highest priority features. Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint.1
Scrum has also been used by many corporations
Microsoft ,Yahoo ,Google ,Electronic Arts ,High Moon Studios ,Lockheed Martin ,Philips ,Siemens ,Nokia ,Capital One ,BBC ,Intuit ,Nielsen Media ,First American Real Estate ,BMC Software ,Ipswitch ,John Deere ,Lexis Nexis ,Sabre ,Salesforce.com ,Time Warner ,Turner Broadcasting ,Oce
Benefits of Agile Scrum
Agile scrum helps the company in saving time and money.4
Scrum methodology enables project’s where the business requirements documentation is hard to quantify to be successfully developed.4
Fast moving, cutting edge developments can be quickly coded and tested using this method, as a mistake can be easily rectified.4
It is a lightly controlled method which insists on frequent updating of the progress in work through regular meetings. Thus there is clear visibility of the project development.4
Like any other agile methodology, this is also iterative in nature. It requires continuous feedback from the user.4
Due to short sprints and constant feedback, it becomes easier to cope with the changes.4
Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members.4
Issues are identified well in advance through the daily meetings and hence can be resolved in speedily4
It is easier to deliver a quality product in a scheduled time.4
Agile Scrum can work with any technology/ programming language but is particularly useful for fast moving web 2.0 or new media projects.4
The overhead cost in terms of process and management is minimal thus leading to a quicker, cheaper result.1
Scrum projects make progress in a series of sprints ?
Analogous to Extreme Programming iterations
Typical duration is 2-4 weeks or a calendar month at most .
A constant duration leads to a better rhythm
Product is designed, coded, and tested during the sprint.
Moreover the SCRUM methodology is also one of the most important solutions to the second problem which is mentioned in the coursework specification.1
RISK Analysis and Management
PLANNING RISK MANAGEMENT
Planning risk management is the process of deciding how to approach and plan for risk management activities for a project, and the main output of this process is a risk management plan. A risk management plan documents the procedures for managing risk throughout the project. Project teams should hold several planning meetings early in the projects life cycle to help develop the risk management plan. The project team should review project documents as well as corporate risk management policies, risk categories, lessons-learned reports from past projects, and templates for creating a risk management plan. It is also important to review the risk tolerances of various stakeholders. For example, if the project sponsor is risk-averse, the project might require a different approach to risk management than if the project sponsor were a risk seeker. A risk management plan summarizes how risk management will be performed on a particular project. Like other specific knowledge area plans, it becomes a subset of the project management plan
Plan risk management Output:
Risk management plan Process: Identify risks Output: Risk register Process: Perform qualitative risk analysis Output: Risk register updates Process: Perform quantitative risk analysis Output: Risk register updates Process: Plan risk responses Outputs: Risk register updates, risk-related contract decisions, project management plan updates, project document updates
Monitoring and Controlling Process: Monitor and control risks Outputs: Risk register updates, organizational process assets updates, change requests, project management plan updates, project document updates Project Start Project Finish
address. It is important to clarify roles and responsibilities, prepare budget and schedule estimates for risk-related work, and identify risk categories for consideration. It is also important to describe how risk management will be done, including assessment of risk probabilities and impacts as well as the creation of risk related documentation. The level of detail included in the risk management plan can vary with the needs of the project.2
THE IMPORTANCE OF PROJECT SCHEDULES
Many information technology projects are failures in terms of meeting scope, time, and cost projections. Managers often cite delivering projects on time as one of their biggest challenges and the main cause of conflict. Perhaps part of the reason schedule problems are so common is that time is easily and simply measured. You can debate scope and cost overruns and make actual numbers appear closer to estimates, but once a project schedule is set, anyone can quickly estimate schedule performance by subtracting the original time estimate from how long it really took to complete the project. People often compare planned and actual project completion times without taking into account approved changes in the project. Time is also the one variable that has the least amount of flexibility. Time passes no matter what happens on a project.
What is risk analysis?
Risk analysis and management are a series of steps that help a software team to understand and manage uncertainty. Many problems can plague a software project. A risk is a potential problem—it might happen, it might not. But, regardless of the outcome, it’s a really good idea to identify it, assess its probability of occurrence, estimate its impact, and establish a contingency plan should the problem actually occur.2
Who does it?
Everyone involved in the software process—managers, software engineers, and customers—participate in risk analysis and management.
What are the steps?
Recognizing what can go wrong is the first step, called “risk identification.” Next, each risk is analyzed to determine the likelihood that it will occur and the damage that it will do if it does occur. Once this information is established, risks are ranked, by probability and impact. Finally, a plan is developed to manage those risks with high probability and high impact.
The Importance Of Project Risk Management
Project risk management is the art and science of identifying, analyzing, and responding to risk throughout the life of a project and in the best interests of meeting project objectives. A frequently overlooked aspect of project management, risk management can often result in significant improvements in the ultimate success of projects. Risk management can have a positive impact on selecting projects, determining the scope of projects, and developing realistic schedules and cost estimates. It helps project stakeholders understand the nature of the project, involves team members in defining strengths and weaknesses, and helps to integrate the other project management knowledge areas.2
Good project risk management often goes unnoticed, unlike crisis management. With crisis management, there is an obvious danger to the success of a project. The crisis, in turn, receives the intense interest of the entire project team. Resolving a crisis has much greater visibility, often accompanied by rewards from management, than successful risk management. In contrast, when risk management is effective, it results in fewer problems, and for the few problems that exist, it results in more expeditious resolutions
These are the most common risks which usually happens in any software engineering project.
The list of Risk analysis and how to over come these risks
These risks which are listed below are the most common ones in designing any software or in any software engineering project.
THE TEAM MEMBER LEAVES THE PROJECT
The entire project is subdivided into multiple tasks and each task is worked in pairs. Furthermore meetings are held twice a week so everyone is familiar with the entire project and its progression, in case a group member leaves there will be minimal impact on the project as a whole.
So regarding the two problems which were mentioned in the coursework instruction report
Where the first problem is where two of the students live in a different city and find it difficult to commute to the office every day. They would like to work offsite but the rest of the team is worried that this will slow down progress on the project.
The first problem which is mentioned above is one of the most common risks that happens in any software engineering project or in an app design.
Absence of a team member usually happens and
this is one of the major risks.
Another team member can cover up for an absent member and they can continue completing their task when they’re back from their absence.
However there are reasons for the absence
The reason is that they are finding it difficult to commute to the office every day mainly because of the following reasons :
The first reason is that regarding the transportation
Since these two students do not have driving licence according to their CVs, it is very difficult to commute everyday where nowadays driving skills are mandatory and it is extremely important to have a driving licence since it plays an important role in any software engineering project meetings.
So possessing a driving license is very crucial and it has plenty of advantages.
The advantages of having a driving licence as a team member are :
You can show up in every meeting easily as long as you have your driving license where you wont have any transportation difficulties and you can drive at any time .
The second advantage is that as along as you have your driving licence you can get back to your home easily and at any time you want and you can stay in any group meeting for a long time without any fear or worry. Also it is less time consuming where if you have a driving licence, you don’t need to use any transportation services such as public transport bus or metro where these services have restricted timings. So that is why driving licence are extremely important .
Now, how can this risk be solved ? how can we overcome this major risk? How can we prevent this risk? Since group meeting attendance is extremely important and this risk causes a great impact on the group project and affects the other group members as well. Moreover , there should be solutions to overcome this major risk and unfortunately it has happened in the mid duration of the project where it can easily hinder the group from submitting the project on time and they may miss the deadline. So how to overcome this major risk ?
Here are the solutions below:
The first solution is that regular meetings must be conducted and there should also be more meetings in order to compensate the missing tasks of the project.
Secondly the team has to reassign roles again and instead of having two meetings in a week there should be four meetings in a week. Moreover the meeting hours should be longer in order to finish the whole project on time where this reduces stress.
The third solution is that those two team members who have difficulty in showing up in every meeting or those who don’t have a driving licence should be assigned with small roles such as designing a questionnaire and designing software mockups where these can be done easily online and be sent easily on online social media or by emails to the group leader. Also these two members can also conduct online meetings or through videoconferencing where it can save time easily no need to come for every meeting this is also a solution for the lack of communication risk .
Where easily the other group members
The team is well updated with all the assigned tasks and roles so another team member can cover up for an absent team member.
If a member leaves under any circumstance a group meeting would take place to discuss and assign new roles.
THE PROJECT TEAM LACKS DEVELOPMENT EXPERIENCE
How to prevent:
Before the development of the system, members are encouraged to go through a short development or programming course and learn different development skills and techniques. 3
Members that are strong in developing programs would be assigned the development roles whereas the other members would be assigned to different non-development tasks.3
The Servers are unavailable
How to overcome:
Have a backup server that would at least help function the basic and important components of the system.3
The back-up server should be used in this case
The back-up database should be used in this case. 3
ORGANISATIONAL FINANCIAL PROBLEM
How to overcome or how to prevent:
During the development process the entire project cost is estimated and reserves are created. 3
In case of an underestimation of the budget the reserve would be used. If the cost exceeds the estimate and the reserve, the project would be terminated. 3
INCOMPATIBLE USER MACHINES
How to prevent:
The customer should be notified before the purchase of the restaurant management system about the minimum compatibility requirements.3
If the customer has an incompatible system, a lower spec of the software will be provided or a copy of the software won’t be provided. 3
LACK OF COMMUNICATION BETWEEN TEAM MEMBERS
How to prevent:
Weekly formal meetings are held to keep everyone synchronized and individual work is updated through a shared Google drive link. 3
A team meeting will be held to assess the situation and discuss further action that needs to be taken.3
The following risks which are listed below are related to the second problem of the coursework specification and the solutions are also listed below as well
PROJECT COMPLETION EXCEEDING DEADLINE
How to prevent:
Project planning is done to approximate the time that would be taken for the completion of the project. 3
Implement the important elements and contact the project manager for a possible extension. 3
SYSTEM GETS OUTDATED AFTER DEVELOPMENT
How to prevent:
Latest and up to date software shall be used to develop the application following the trends in the current industry 3
In the highly unlikely event of this happening a market study would be conducted and the software would be updated as soon as possible. 3
Changes to the requirements during later stages of development
How to prevent:
We follow an AGILE SCRUM
development method so that changes to the requirements can be incorporated into the application without facing difficulties. 3
In this the case, the customer will be notified and a meeting will be held to discuss the action to be taken.3
PROBLEMS RELATING TO USING OPEN SOURCE SOFTWARES
A detailed study is done about the software which will be used in terms of usability, general compatibility and flexibility of usage before the decision of using them is made. 3
In the unlikely event of encountering an issue (e.g. Compatibility, platform flexibility) a different software may be used after a discussion in the group meeting. 3
THE TEAM MEMBER LEAVES THE PROJECT
How to prevent:
Data is collected through questionnaires and interviews on general opinion about the product and personal interests of prospective customers. Meetings are held with customers so that the final product matches customer expectations.3
Further suggestions can be taken into consideration and minor changes could be made.3
The System Is Infected By Malware
Regular backup and multiple copies of the system would be stored and an appropriate cyber security measures (e.g.: firewall, anti-virus) are taken to ensure that the system does not infected.3
In case of malware infection a copy for the backup will be used to restore the system and the system will be checked by a professional before any further use.3
Conclusion and References
In conclusion, this coursework is very interesting and I have gained a lot of experience in it and also the ideas which I have described were mainly based from the group project experience. I have clearly learnt about how important group meetings are. How important punctuality is, regarding the group meeting where it extremely important and also I was the meeting report writer regarding the coursework group. Also it helped me gain experience in designing diagrams where I have gained a lot of experience in designing activity diagrams which was also my major role in the project group coursework and also I have learnt how important software diagrams are particularly the activity diagrams , sequence diagrams , data flow diagrams.
Where these diagrams are active in every software engineering project. Particularly in online shopping apps or webpages or software.
Moreover, most of the diagrams that I have done in the group project are mainly based about the customer accessing the app and it is also related to databases where every time the customer orders or accesses the app and after filing his details it is also recorded. Therefore databases are extremely important in any software engineering project . In addition what I have done in the coursework is almost similar to the group coursework and all the ideas, suggestions and opinions were mainly based from the experience which I have gained from the meetings as well as from the topics from the learning materials.
Moreover the diagrams which I have designed are mainly based about the customers ordering online.
Also in this coursework I have learnt how to give opinions to solve problems like what was mentioned in the coursework specification and all the solutions , suggestions and opinions are mentioned in the risk management and analysis where I have clearly described them. Moreover, the coursework is almost similar to the group coursework but the difference is that the webpage that we have done was about ordering system while this coursework it is mainly about a webpage displaying electronic products but it has the same users such as the admin and the customer exactly that we have done in the group coursework. Also all the ideas that I have gained were mainly based from lectures and learning materials as well as the group meeting experience and all of them are applied in this coursework.
Learning materials on vision
Group meeting project report