About Expert


Key Topics
Analysis and designing of the university course management system
The report is about the analysis and design of the university course management system. The requirements are based on the students, faculty, courses, assignment, marks etc. The user requirement have been analyzed and created in the form of a list. We created two list that is functional and non-functional requirements separately. Functional requirements are those which defined by user and non-functional are hidden requirements. This entire analysis help in visualizing requirements better and creating more clear diagrams before actual development starts. On the basis of these requirements, we further designed the Usecase and class diagram from the requirements gathered.
The functional requirements are:
System should be able to provide secure login
System admin should be able to add, edit or delete faculty members, students, courses, modules etc.
Student should be able to enroll for a course
Student should be able to view module
Student should be able to view and submit back assignments
Student should be able to view marks
Academic faculty should be able to mark the assignments
Academic faculty should be able to view and teach modules
Academic faculty should be able to upload assignments
Academic faculty should be able to login
Registered users should be able to login
Courses should have one or more modules
Modules will have one or more assignments
Some of the non-functional requirements are:
Admin functions
Authentication
Authorization levels
External Interfaces for access
Reporting Requirements to generate reports as per the requirements
Historical Data addition
Reliability
Portability
Compatibility with user’s hardware
The Usecase diagram is representation of the users and processes of the system. In other words it describes who the users are and what will the access and what all are the processes and how the process are related. This diagram helps in creating an outline of the system which further helps in deciding the individual attributes and functions that will be implemented. Apart from that we see that the requirements that were gathered are being fulfilled through this diagram or system outline. So rather than implementing a fixed model directly, we should first develop an outline of the system to save time and resources and also to avoid errors. The Usecase diagram of the system is as follows:
The class diagram as the name says represents the classes and the attributes and the functions that have to be coded into the system to develop an actual application and also check that the requirements and previous designs are correlated before any actual coding begins. It also describes the relationship between the classes like inheritance, association, dependency, aggregation etc. The diagram is designed so as to visualize the classes as per the requirements and to check their correctness. Another importance is that, the coding is complex and difficult to change when implemented, but if we visualize it first and add or edit the things, it will make the implementation process easier. Apart from that, it will also help the coder to understand the system better before coding. Hence the final system so developed will be a good one.
The software engineering techniques help in understanding the scenario better and then designing it into visuals and then into an actual products. All this time may be time taking yet it saves a lot of time, resources and avoids the errors that would occur id f we directly develop the application. If we develop the products directly, there will complexities and bugs. But by following these techniques we can end up with an error free product. Moreover, these diagrams developed in the process are created to help the developers and the testers.
Hence by following these techniques, we analyze, visualize, build, test and maintain the application. Nowadays, when the applications a big enough and user requirements and platforms are changed every now and then, these techniques do help a lot to overcome the problems.
1. A summary of your understanding of the need and value of these software engineering techniques in software development