Wednesday, January 15, 2014

Software Development Methodologies

Software Development Methodologies

A software development methodology can be simply stated as a “structure imposed on the development of a software product” (Faridani, 2011). This structure comprises of tools, procedures, techniques etc. which helps planning, designing, validating and managing the actions being done in building up a system. According to Rico (n. d), development methodologies date back to 1960’s where it was 1st introduced through flowcharting method. The following diagram gives a brief aspect at the evolution of development methods.


Figure 1- History of development methods (Rico, n. d)

As it can be seen, the development methodologies have considerably changed over the time. The reason for this can be stated as the ever changing technological aspects and the requirements which become complicated over the time.

Types of development methodologies

Use of development methodologies varies with the type of the project that is present. It is important to choose the proper development methodology for the project in order to be a success. If the wrong methodology is used, the whole project can be a failure leading to unaccountable losses. The following are evaluations of some methodologies which can be used in deciding the appropriate methodology for use.

Structured System Analysis Development Methodology (SSADM)

According to Government CIO of Hong Kong (2012) SSADM is a structured methodology which dates back to 1980’s. It is data driven and consists of structural standards, technique guides and document standards. As stated by University of West England (n. d) the development objective is to integrate 3 views which help in completion and accuracy of the model. These 3 views are;

·         Data Flow Diagrams – shows all the data and information used by the system
·         Entity Relationship Models – shows the way information is stored and the relation among them
·         Entity Life Histories – shows the changes of information within its lifetime

Government CIO of Hong Kong (2012) describes about the different stages in SSADM methodology

1.      Feasibility – assesses the business case to develop a system and to determine the effectiveness of fulfilling requirements by the system. Provides current system description and data flow models, requirements catalogue, constraint lists etc.
2.      Requirement Analysis
·         Investigation of current environment – investigates completely the current environment and its problems. Provides business activity model, user catalogue, requirement catalogue etc.
·         Business systems option – provides possible options which will fulfill the requirements in order to help the project team to decide on the best option
3.      Requirement specification – detailed specifications of the data and process requirements of the selected option. Provides requirement system description, function definitions, work practice model etc.
4.      Logical systems specification
·         Technical systems option – defines possible physical implementation to the system and helps users to select the optimum option. Provides application style guide, sizing model etc.
·         Logical design – defines user dialogues, update processes and enquiry processes. Provides process models and report layouts
5.      Physical design – prepares the physical data and process design. Provides optimized physical data design, program specifications and process data interfaces

In order to carry out proper analysis and the outcome as a whole, SSADM uses 3 key tools. Scottish Qualifications Authority (2007) describes these 3 tools as follows;

Ø  Logical data modelling – identifies, models and documents data requirements. Consists of logical data structures (LDS) which represents entities and relationships
Ø  Data flow modelling – models and documents the data flow of the system. Consists of DFDs which represent process and functions, data stores, external entities and data flows
Ø  Entity event modelling – identifies and documents the events influencing each entity in the sequence that they occur. Consists of entity life histories for each entity.

Advantages and disadvantages of SSADM

Advantages
Disadvantages
Has an intense focus on analysis and design
Its incomplete due to the absence of testing and development phases
Well defined techniques and documentation involved helps future changes
As it’s structured and sequential, it’s difficult to retreat to make changes
Reduces error rate of IS through quality levels
Due to the sequential process time is wasted
Delivers the system on time
For some conditions it’s too large to handle
Uses common skills thus reducing costs of training of specialized skills
Consistent checks cannot be carried out due to various description methods
Table 1- Advantages and Disadvantages of SSADM (ITC InfoTech, n. d)

Rational Unified Process (RUP)

Introduced by IBM, RUP is a framework that delivers best, industry-tested practices for software and development projects. This framework was in order to overcome the inefficiencies of the traditional/waterfall methodology which was recognized as risky and that which idle key team members for long time periods. RUP sets milestones to be achieved during the process and each step is compared against these set milestones to check the progress (ITInfo, 2014).

As stated by IBM (2003) RUP can be defined as an iterative, incremental, architecture centric and use case driven approach. It is known as iterative development happens in repeated cycles (includes processes such as prototyping, testing, analyzing and refining a product or processes) and allows the developer to develop in various parts within the cycle and continue progressively through the development phase. As development increments gradually in the development phase it is said to be incremental. As the whole system is drawn at large and then the components are taken individually to analyze closely derives the fact that it is use case driven while the focus given from early stages for the architecture of the application where working prototypes are created to identify problems derives the fact that it is architecture centric (Staffordshire University, 2008).

The following diagram depicts the iterative approach of RUP

Figure 2 - Iterative Approach of RUP (IBM, 2003)

RUP consists of 4 phases and 9 disciplines that are followed in order to complete a development project successfully. The following diagram shows how these disciplines are involved in the different phased of RUP


Figure 3 - RUP Lifecycle (Staffordshire University, 2008)

The phases of are described below in accordance with Staffordshire University (2008) and IBM (2003)

·         Inception – this is the initial phase where customer requirements are gathered and an initial business case is drawn using use case diagrams, project plans and business processes. Based on these the initial costing is done and budgets are set in order to check the feasibility of the project.

·         Elaboration – this phase involves in mitigating risks where lists the probable risks that can be encountered during the process and prototypes are drawn to overcome these.

·         Construction - this is the phase where the system is developed and coding is done. The use cases are broken to smaller segments and development of prototypes for each part is done (beta versions)

·         Transition - here the implantation and testing are done. The system is integrated so that the performance can be evaluated and refined. The users of the system are given proper training and quality checks are performed. 

Advantages and disadvantages of RUP

Advantages
Disadvantages
It’s a complete methodology that covers the entire development spectrum
Highly complex process which can lead to confusions of the users
As activities are done in parallel, time is saved and resources are utilized to maximum
Is not suitable for small time projects as it will be costly and complex
More user involvement throughout the project
There are excess number of models involved
Aims to diminish risks before facing them
As it only uses UML which isn’t constructive, it can worsen inconsistencies.
Uses rich modelling language (UML)

Helps to accommodate the changing requirements of clients

Can be highly reused (codes etc.)

Table 2- Advantages and Disadvantages of RUP (Ramsin, n. d)

Due to the identification of weaknesses of RUP, an extended version of RUP was introduced known as EUP (Enterprise Unified Process) which introduced 2 new disciplines and phases. It also uses modelling methods such as DFDs along with UML (Ramsin, n. d). the following diagram depicts the EUP disciplines and phases

Figure 4 - EUP lifecycle (Ramsin, n. d)

Agile

Agile methodology focuses minimizing risks through development of software within short time periods (1-4 weeks) known as iterations. Similar to mini software projects these consists of all tasks involved in releasing the final project (analysis, design, coding, testing etc.) and project priorities are re-evaluated at the end of the each iterations. (ITInfo, 2014)

The agile methods are principle based known as the agile manifesto which has been introduced by the agile alliance which is shown below

Figure 5 - Agile Manifesto (Williams, 2007)

There are different types of agile development methodologies such as scrum, DSDM, crystal, XP

Scrum

Scrum focuses in increasing productivity through teams, which recognizes that empirical challenges cannot be addressed in the traditional method of process control and maximizing teams’ ability to respond in agile ways for the challenges faced. Scrum teams are self-organized and self-directed and are committed to a specific goal where they have the authority and independency to determine the process of achieving it. (ITInfo, 2014).

According to Williams (2007), scrum teams produce 3 main documents called Product Backlog (contains functionalities needed to be developed and the defects to be fixed), Sprint Backlog (daily updated list of features, enhancements and defects scheduled for sprints/iterations) and Sprint Burn Down Chart (graphically displays hours remaining to complete sprints)

Williams (2007) further describes about the different roles in a scrum team which consists about 7 members

·         Product owner – creates product backlog, determines the next sprint and reviews system at the end of the sprint  
·         Scrum master – conducts daily scrum meetings, fortifies product goals, sprints, scrum values and practices, provides resources and engage in development
·         Developer – a scrum team member

The scrum process is depicted in the diagram below

Figure 6 - Scrum process (Williams, 2007)

DSDM (Dynamic Systems Development Model)

This is another method that is based on the fact that nothing is built perfectly at once and considers software development as an investigative attempt. It revolves around 9 principles which focuses on high user involvement, frequent delivery of products, reversible changes during development, integrated testing throughout the cycle etc. (ITInfo, 2014)

DSDM (2014) states that it is independent of vendors and covers the lifecycle of the project providing best practice guidance for projects of any size or in any business area. DSDM (2014) also indicates that techniques such as Facilitated Workshops, Modelling and Iterative Development, MoSCow Prioritization and Time Boxing are used to develop systems.

The DSDM development process, which is comprised of 7 processes is shown below

Figure 7- DSDM process (Clifton & Dunlap, 2003)


Crystal

As stated by ITInfo (2014), this method focuses on people, interactions, skills and communications as they are believed to be the core effects on performance and states process as secondary. This is a family of methods which includes crystal clear, crystal yellow, crystal orange and crystal red and follows 2 principles;

·         Incremental cycles shouldn’t exceed 4 months
·         Reflection workshops should be held after every delivery.
(Williams, 2007)



Advantages and Disadvantages of agile methodology
Advantages
Disadvantages
Easily adaptive to changes
If the customer isn’t clear about the requirements, the whole process will be off track
High user involvement ensuring customer satisfaction
More helpful for management than for developing
Less documentation required
Difficulty in maintaining the varying changes due to lack of documentation for the developer  
Reduces development risks due to continuous delivery of working software
Wastage of resources if the working software produced constantly is not approved
High quality software within the shortest time

Table 3- Advantages and disadvantages of agile methodology (Sharma et al, 2012)
 \

Rapid Application Development (RAD)

As stated by ITInfo (2014), RAD focuses on developing applications faster and in high quality by;

·         Using focus groups for requirement gathering
·         Prototyping and user testing of designs
·         Reusing software
·         Keeping meetings and communications informal

RAD follows object oriented programming to a certain extent where it uses languages such as C++ and Java. It uses minimal planning and which enables faster software development and adaptability to changes (RAMSOFT, 2012). The following diagram shows RAD methodology

Figure 8- RAD process (RAMSOFT, 2012)

Advantages and disadvantages of RAD
Advantages
Disadvantages
Faster development
Due to time boxing, features of applications maybe lesser than other applications
Ability to measure progress
Lack of scalability
Changes can be easily accommodated
Needs highly skilled developers
Higher reusability of components
Complex management
Table 4- Advantages and Disadvantages of RAD (TutorialsPoint, 2014)


Choosing an appropriate software development methodology

When using a development methodology to be used in a project, it is highly important that the correct and the suitable methodology are used in order to obtain the optimum results. Not every methodology is suitable for any project; the usability of methodologies differs in accordance with several factors. As stated by Geambasu et al. (2011) the following are some facts to consider for choosing a suitable methodology

v  Nature of the project
v  Flexibility and incorporation of requirement changes in the project
v  Obtaining functional forms of the system during development
v  Development costs and feasibility
v  User involvement and communications between developers and customers
v  Duration of the development
v  Constraints and drawbacks




References

Clifton, M. and Dunlap, J. 2003. What Is DSDM? - CodeProject. [online] Available at: http://www.codeproject.com/Articles/5097/What-Is-DSDM [Accessed: 11 Jan 2014].
DSDM. 2014. What is DSDM? | DSDM CONSORTiUM. [online] Available at: http://www.dsdm.org/content/what-dsdm [Accessed: 11 Jan 2014].
Faridani, H. 2011. A Guide To Selecting Software Development Methodologies. [e-book] Newtown Square: PMI SOC Greater Toronto Information Systems Branch. Available through: http://www.gtislig.org/HamidFaridani_GuideToSelectingSWMethodologies_SOC_PDD_20110305.pdf [Accessed: 10 Jan 2014].
Geambasu, C., Jianu, I., Jianu, I. and Gavrila, A. 2011. INFLUENCE FACTORS FOR THE CHOICE OF A SOFTWARE DEVELOPMENT METHODOLOGY. [e-book] Romania: The Bucharest Academy of Economic Studies. Available through: http://www.cig.ase.ro/articles/10_4_3.pdf [Accessed: 11 Jan 2014].
Government CIO Of Honk Kong. 2012. AN INTRODUCTION TO STRUCTURED SYSTEMS ANALYSIS & DESIGN METHODOLOGY. [e-book] Hong Kong: Office of Government Chief Information Officer of Honk Kong. Available through: http://www.ogcio.gov.hk/en/infrastructure/methodology/ssadm/doc/s3a_pub.pdf [Accessed: 10 Jan 2014].
IBM. 2003. Rational Unified Process: A Best Practices Approach. [e-book] Toronto: University of Toronto. Available through: http://www.eecg.utoronto.ca/~jacobsen/courses/ece1770/slides/rup.pdf [Accessed: 11 Jan 2014].
ITC Infortech. n.d. Structured Systems Analysis and Design Methodology. [e-book] India: ITS Infortech. Available through: http://vijaysamyal.tripod.com/SSAD.pdf [Accessed: 10 Jan 2014].
Itinfo. 2014. Software Development Methodologies. [online] Available at: http://www.itinfo.am/eng/software-development-methodologies/ [Accessed: 11 Jan 2014].
Ramsin, R. n.d. Integrated Object-Oriented Methodologies: RUP/USDP and EUP. [e-book] Sharif University of Technology. Available through: http://sharif.edu/~ramsin/index_files/sdmlecture6.pdf [Accessed: 11 Jan 2014].
RAMSOFT. 2012. Methodology - Ramsoft Consulting. [online] Available at: http://www.ramsoft.com.au/methodology.php [Accessed: 11 Jan 2014].
Rico, D. n.d. SHORT HISTORY OF SOFTWARE METHODS. [e-book] David Rico. Available through: http://davidfrico.com/rico04e.pdf [Accessed: 10 Jan 2014].
Scottish Qualifications Authority. 2007. SSADM Tools. [online] Available at: http://www.sqa.org.uk/e-learning/SDM01CD/page_03.htm [Accessed: 10 Jan 2014].
Sharma, S., Sarkar, D. and Gupta, D. 2012. Agile Processes and Methodologies: A Conceptual Study. [e-book] International Journal on Computer Science and Engineering (IJCSE). Available through: http://www.enggjournals.com/ijcse/doc/IJCSE12-04-05-186.pdf [Accessed: 11 Jan 2014].
Staffordshire University. 2008. RUP Summary. [online] Available at: http://projects.staffs.ac.uk/suniwe/project/rup.html [Accessed: 11 Jan 2014].
Tutorialspoint. 2014. SDLC RAD Model. [online] Available at: http://www.tutorialspoint.com/sdlc/sdlc_rad_model.htm [Accessed: 11 Jan 2014].
University Of West England. n.d. SSADM. [online] Available at: http://www.cems.uwe.ac.uk/~prawling/ssadm.htm [Accessed: 10 Jan 2014].
Williams, L. 2007. A Survey of Agile Development Methodologies. [e-book] North Carolina State University. Available through: http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf [Accessed: 15 Jan 2014].



4 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This is a really informative knowledge, Thanks for posting this informative Information. Travel Portal Software

    ReplyDelete
  3. We website designing company in Chicago, Build User & SEO Friendly websites with customized features and designs all according to the needs and requirements of our clients.

    ReplyDelete
  4. Nice blog. Please add this url https://letsdreambeyond.com/ to this site too.

    ReplyDelete