Flexible Software Development – Methodology
This chapter discusses the methodologies which have been selected to base the project upon. The chapter will provide details on how each step of the methodology was followed which form the basis for successfully completion of the overall project. The chapter will also talk about the research methodology carried for this project.
3.2. Software Development Method
For the project management there are a lots of software development methodologies available to chose between, such as Waterfall Lifecycle without iteration, Structured System Analysis and Design (SSAD) and etc. However, according to the research based on software maintainability, an appropriate methodology has to be chosen. The methodology which has been chosen to base this project on was Iterative Waterfall Lifecycle. The reason behind selecting this methodology is that this methodology ensures that project runs through smoothly from one stage of the project lifecycle to the next. Iterative Waterfall Lifecycle provides the ease and flexibility to visit any previous stage of the project whenever required and can apply changes to each of the phases at any time (Harris, 1995).
All the stages of the Iterative Waterfall Lifecycle (Figure 3.2) for this project are described below.
Figure 3.2: Iterative Waterfall Lifecycle for Management of This Project
The sub-stages of Iterative Waterfall Lifecycle illustrates that each phase contains the related sub-stages:
- Literature Review
In this phase of the project life cycle current literature about the software architecture is described, followed by various designing patterns. The chapter represents details on multiple designing patterns with different method of development that each has different level of flexibility. The main point of the literature review is to gather information about the software development patterns based on business logic of the application with different level of flexibility & maintainability. Two domain logics were reviewed named Transaction Script and Table Module, and each has distinct approach of development. Other crucial designing patterns were reviewed as well that each grant software with various performance and flexibility. The other patterns are called Table Data Gateway, Row Data Gateway which is the data source layer of the software.
- System Design
In this step of the project life-cycle Unified Modelling Language (UML) notations are used to demonstrate how the software is designed. The notations used in the design part of the project are Sequence Diagram that shows system interaction, Class Diagram shows the objects in the system and their relationship with each other, Entity Relationship Diagram (ERD) shows the logical design of the database tables those will be used to hold data of the system. As well software architecture will be designed to show system layers.
The implementation of the software would be carried using a core programming language and database structured language. It will be Java programming language and Structured Query Language (MySQL) to implement the software and as well Java will be used for the user interface design (Java Swing Components). The tools in which application developed will be NetBeans 6.0.
The type of testing used will be V-Model, because faults found earliest in this process are least costly to correct, generally fewer than 20% of the cost of correcting the same error post implementation. Therefore there is significant financial benefit from monitoring and managing testing to identify and perform corrections at the least costly opportunity (T-Plan 2007). Thus V-Model testing will be used to ensure that each bit and pieces of the software operates well. The testing will be carried from earliest development stage till the completion of the whole system.
The final stage of the software development lifecycle is maintenance. In this stage of the project further changes would be applied to the software, that each modification will test the flexibility of the software. The result received from the changes will be recorded and analysed to demonstrate how flexible the each version of the application was. This will be shown in the evaluation of the report it will also represents the performance of the applications.
3.3. Project Research Method
The type of research used for this project is experimental research. A simple explanation of experiment added from Wikipedia suggesting, experiment is a set of observation performed in the context of solving a problem or question, to retain research concerning phenomena.
In this case the research is based on software flexibility and maintainability but experiment would be carried on the performance of the software too. An experiment to carry on the software flexibility, a table with the following columns and rows are to be sketched, which holds information about the time needed to build the applications is shown below (Table 3.1).
The session columns will be holding the number of changes to the software. A column called ‘Class’ will be holding the name of the class followed by ‘Objects’ column represents the number of methods changed in the particular class and finally the ‘Overall Time’ column will indicate the time required to build that particular method.
After all modifications, a chart will be drawn to demonstrate the ease and speed of the applications.
This chapter described the software development methodology and as well the research method carried for the project. The chapter summarized the stages of the software development lifecycle for this project and as well it shows how the research will be conducted on this project. The next chapter of the project will talk about the design of the software.
CONTINUE reading -:)