top of page

Practical Approach

The course of Software Engineering is conducted for undergraduate students for Computer Science and Engineering as per ACM guidelines for Software Engineering education in

the third year of their curriculum having 4 credits with lectures and a practical lab. In the lab a team of 3 -4 students were formed where each one will be playing a different role in each phase. In this section we discuss the approach and the phases that we followed for our practical approach to teach Software Engineering 

using Open source tools. The different project categories based on the problem statements chosen by the students were identified as

shown in the table 1.

In the first week, a problem statement was designed and given to the students for applying Software Engineering techniques to it. This problem statement was then formulated into SMART (Specific, Measurable, Achievable, relevant and Time Bound) matrix that helps in coming up with Goals and Objectives of the problem to be solved. Based on these goals and objectives, features are listed down for the software to be developed for the defined problem statement.

Now based on the features, requirements elicitation is carried out to create the Software Requirement Specification (SRS) using the tool called OSRMT (Open Source Requirements Management Tool). It provides a GUI interface for specifying the requirements, add dependencies between them. Once the final requirements are ready, a report on the requirements can be exported using the tool. Based on the categories of projects as identified in table we have identified top requirements for each category as shown in the table 2

Music

In the next phase, planning is carried out for the project using ProjLibre. With the help of this tool, team of students identify the different type of activities and their dependencies that needs to be carried out during the project and their roles in each activity. At the end of this phase, a project plan or schedule generically called as Gantt chart is prepared.

A software project is driven by various cost drivers such as application experience, required reliability and so on. In this phase, effort estimation is carried out for the project based on COCOMO model using tool available by University of Southern California. The selection of cost drivers is estimated based on the features, requirements and planning schedule as carried out in the previous phases. At the end of this phase, effort required for the project is calculated in person months with number of resources required at each phase.The next phase of the project is Design where the features and requirements are now represented schematically using StarUML tool. The modules can be identified based on the class diagrams and the sequence diagrams.

A software project involves risks such as personnel shortfalls, wrong software function implementation and so on. The next phase involved risk analysis and mitigation using risk management toolkit. A risk matrix was prepared with XLS sheet with common fields. Once the risks are listed down, the priority and the rank of the risks is maintained with mitigation steps to control it.

Implementation or Coding was carried out in the next phase. During coding, we also followed unit testing approach where the students carried out unit testing with JUnit framework. Cyclomatic complexity of a module was calculated using the McCabe formula, V(G)=e-n+p by representing unit tested modules as a graph G with n nodes and e edeges. Depending on the range of the cyclomatic complexity, those modules were further broken down if needed. Finally, during testing phase, we followed manual testing approach where test cases were designed with a template as shown in the table. These test cases were run against the features designed during the first phase and test report was generated.

bottom of page