A Study About Software Engineering Tools Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Software engineering is a systematic approach to the design, implementation, testing and maintenance of the software. Software engineering tools speed up the development process and produce high quality maintainable software.

Choosing Software Engineering Tools

Software development consists of several stages each demands careful selection of tools which are suitable for the requirements and easy to be integrated into the development process. The support for the chosen development method offered by the tools is as important as the support for development process. The support for application domain and software reuse was discussed in the selection process. Availability of code generators and system architecture design compatibility were some of the main priorities in this phase.

As some of the team members were familiar with Netbeans and PHP we decided to choose those tools as the programming environment.

Database Reverse Engineering Tools

Reverse engineering is the process of deriving design decisions and technological principles from a product through structural and functional analysis. It helps to gain in depth knowledge about the product to help improve its performance or develop a better system based on the original prototype.

The SQL script we have been given was used to produce the tables but to understand the relationships between the tables it was necessary to produce an entity relationship diagram through reverse engineering. The ER diagram helped us to write the code more efficiently and minimised the risk of errors. We used SQL Workbench to produce ER diagram as the installation and usage of MySQL was straight forward.

MySQL Workbench 5.2.30

MySQL workbench is an open source visual database design tool to mange MySQL database. Its features include data modelling, database administration and SQL Editor. The data modelling feature can forward and reverse engineer SQL script and database.

Modelling Tools

Modelling tools are used to express information about a system in a structured manner based on a set of rules. It helps to understand the requirements and components in a system without tied to any specific programming language. It helps the stakeholders to understand the system that is being modelled.


StarUML is an open source UML modelling tool running on win32 platform and supports model driven architecture. It provides customization variables like UML profile, MDA code, Model Framework, Approach, Notation Extension, and Document Template. It has a plug-in architecture and provides many user friendly features.

SarUML is no longer maintained which makes it less popular as it does not offer support for the latest improvements in software modelling.

Database Management Tool

Databse management tools help database administrator to maintain the relational database efficiently and easily without the hardship of executing queries in a commands prompt.


We chose phpMyAdmin as the database management tool as it is quick to install and easy to operate. Also it is open source which contributes to its state as one of the most popular database management tool in the current market.

It is written in php and supports MySQL database management. Its user interface supports most database operations and has an SQL command window to execute SQL commands. It also features import and export of database in various formats, multiple server administration, Query by example.

Version Control Tool

Version control is the process of managing changes to programs, documents and any related files of a system during software development. It helps to identify and track changes by storing details about the timestamp and the person responsible for the change.

Concurrent Versions System(CVS)

We used CVS as version control tool because it is integrated with the Netbeans IDE and most suitable in our development environment. This open source software helps efficient collaboration of developers work. CVS has a client server architecture where the server stores the latest version and clients connect to the server to check out the latest project copy and check in with the updated version. If the check in version is accepted CVS updates the project creating a timestamp in the logfile with the user and auto increments version number.

CVC allows anonymous read access, update option, branch project operation running different versions, delta compression for efficient storage.

CVS lacks the atomic commit feature which notifies the control that the user wants to make a group of changes and make it available to others. Some of the disadvantages of CVS are expensive branch operations, no revision for file update and modify revision for per file not for the collection, textual file default, no distributed revision control support.

Bulletin Boards

Bulletin boards help developers communicate over the internet. Our main communication mediums were Kingston mail system and Skype. We tried to meet regularly and more often near the deadline to finalise our project.


A WIKI account has been created but we found other options suitable for our communication.

Issues Tracker

Issue tracking systems are used to help developers manage issues and bugs relating to the system. It helps to prioritise the development request based on the pending items for next release.


We chose phpBugTracker, a web based bug tracker to manage issues in our development. Some of the benefits of phpBugTracker are track bugs by multiple users on multiple projects, Bug history, access restriction, CSS and HTML, bug search Localization, anonymous bugs, bug dependencies.

Deployment Environment

WampServer 2.0i

WampServer is windows based web development environment that comes with Apache, PHP, phpMyAdmin and MySQL database. It is easy to install and configure the servers. Wamp components can be managed using effective GUI tools and has a tray icon for easy access.

Zend Server

Our application server was Zend as it is integrated with the Netbeans IDE. Some of its features are debugger interface, page caching and application monitoring.

Programming Environment

Netbeans IDE for the chosen languages HTML, CSS, PHP, JavaScript

Code build and deployment Tools

Apache Maven 3.0

For project management and build automation, we chose Apache Maven as Netbenas IDE features Maven plug in option. A construct, Project Object Model (POM) is used in Maven to describe the project, its dependencies and the build order. It comes with pre-defined targets for performing compilation of code and its packaging. Maven requires the structure and operations of a project to be defined in POM file on which Maven relies extensively to function, which is one of its downsides.


Testing is the process of validating and verifying software so to help developers improve the software performance and inform stake holders about product quality.

Testing Frameworks

Unit testing is done by testing a unit; the smallest testable part of an application, to determine whether it is free of errors. Netbeans IDE offers support for PHPUnit and Selenium testing.


PhpUnit is a unit testing framework which we thought would be useful in conducting unit testing. It helps to determine whether the code serves the intended purpose.

Integration Testing

Integration testing verifies the interface between components against the software system’s functional and reliability requirements. Here individual modules are combined and tested as a group.


After installing the Testing_Selenium package, the test directory has to be configured in order to write testcases. It offers auto complete, save as HTML, debugging, intelligent field selection etc.

Static Code Analysis

Static code analysis is a way of analysing the software dynamically without executing the actual code from the software. It is performed on object code or on some versions of the source code.

Yasca 2.2

Yasca is a command line tool used to find security vulnerabilities, performance, and quality during software development. It generates reports in various formats.

Code Refactoring

Code refactoring is a process of improving the source code to satisfy non functional requirements without affecting functional requirements. This improves usability, readability and maintainability of the software.

RefactoringNG, a Netbeans module

This is a powerful and flexible Java refactoring tool, written as NetBeans module.

User Interface Design and Prototype

The design of software as user friendly as possible is the main priority in user interface design.


This GUI design-tool integrated in Netbeans enables developers to prototype and design Swing GUIs by dragging and positioning GUI components.


MVC Frameworks


Object Persistence Framework


Integrated Development Environment

NetBeans IDE 6.9.1

A PHP version of the Netbeans IDE for developing PHP web sites with PHP editor that is dynamically integrated with scripting and mark-up languages HTML, JavaScript and CSS is used for development. Some of Netbeans features are

Iterative development support

modular development approach

An Ant-based project system,

Maven support


Version control (supporting CVS, Subversion, Mercurial and Clearcase).

Excludes individual directories in properties for faster code scanning

Zend and Symfony Framework support

PHP Source Code Editor with features such as code completion, pop-up documentation, syntactic and semantic code highlighting, marking of occurrences and exit points, code formatting and folding. PHP editor understands marking of occurrences and exit points.

Easy Code Navigation, a tasks window lists all warnings in the project, warns about code problems by flagging them and giving hint in a pop-up.

Generates report for code coverage for php files to examine test cases

PHP Unit Testing with PHPUnit and Selenium with option to define a custom XML configuration file, a bootstrap file for command line options, or a custom test suite, or let the IDE generate skeleton code.

PHP Debugging using Xdebug with command-line debugging and remote debugging features.

Remote and Local Project Development

Options to set watches and breakpoints, live code evaluation, local variables inspection, easy navigation to files, declarations and types using hypertext links and Go To shortcuts.

Use of global PHP include path

MySQL Integration: Database explorer

Support for multiple Kenai-based team servers

Plugin browser which allows you to find plugins easily

Project Planning and Control

Microsoft Project

Configuration and resolving issues

Project Phase

Choosing Software Engineering Tools

Reverse Engineering

The MySQL script of the database design had to be reverse engineered to understand the database relationships. MySQL workbench is one of the tools available to generate an entity relationship diagram from the MySQL script and we used it as it was quick producing a self explanatory diagram.

Building Application


Project Planning and Control