Thursday, September 13, 2012

Day 27-Software Development Methodologies

Fardani (2011) has defined Software development methodologies as "structure imposed on the development of software product and software development methodology includes procedures, techniques, tools and documentation aids which will help system developers in their task of implementing a new system"(Fardani.  2011).

Today lecture was done by Ms. Manesha. Ms. Manesha started the lecture by stating that a software development methodology use in software engineering as a framework used to structure, plan and control the process of developing an information system. In software development main goals is to give a quality output which satisfy the client. If the product is not quality it is definite that client will reject the product. Because of this development team make sure work according to a plan in-order to give a quality output. In-order to that development team need to come up with a proper plan, for the plan need to gather requirements and need to come up with a  proper design in order to develop the system. These steps are common to any project, whatever the company, project or context follow these steps. But there are steps which are cannot to use in every projects and there are steps which can do paralleled and which cannot do paralleled. In this case development team need to follow a methodology. 

Most of the projects due to mainly because of two reasons. They are because of gone beyond the budget and not keep in to a schedule. The best example is Chaos report. According to Chaos report less than 20% software development projects are successive in Sri Lanka. Which means more than 80% of projects are failed and they have found out the reasons for these failures as problems that has mentioned above. 

After that lecturer mentioned the main thing need to do before using a methodology is to analyse whether the methodology is suitable for the PROJECT NOT for the system. Also lecturer mentioned most of the students   do mistake when choosing a methodology to the final year project. What they do is without looking at limitations and constraints of the project try to come up with a methodology to the project which is wrong way of doing a project. First of all need to find out what are the constraints, limitations and problems in the project then only need to select a methodology for the project. This way is heading to a effective outcome of the project.

After that lecturer stated there are various characteristics which are can use to define a project. They are,



  • What is up Against
  • The uncontrollable Constrains
  • Time Limits
  • Milestones to Achieve
  • Progress to Achieve
  • Availability of Resources
  • Knowledge
  • Skill Availability

Then she started explain different types of software development methodologies.
Structured Methodologies
In these methodologies phases are structured. The best example for the structured methodology was SDLC (System Development Life Cycle). In SDLC there are eight phases they are, planning, feasibility study, analysis, design, implementation, support and security and maintenance. 
All most all the methodologies based on SDLC because SDLC is the only methodology which is covered all the work in software development process.

SSADM(Structured (Structured System Analysis and Design Methodology)

SSADM is a document driven methodology. It involves in lots of documents. SSADM is an old methodology which focuses on feasibility, analysis and design. SSADM does not focus on development of the system. Phases in the SSADM are,

  • Feasibility Study
  • Requirement Analysis
  • Requirement Specification
  • Logical System Specification
  • Physical Design
Feasibility Study
In this phase define the scope and evaluate it. Look at the domain of the problem and check how to solve the problems.
Requirement Analysis
Look at the client's requirements for the project and focus on each and every section of the system in-order to fulfill customer's need.
Requirement specification
focus on both functional and non-functional requirements.
Functional Requirements:- Requirements that should be in the system. If the system build up without this requirements the system will not solve the problems and system will be a failure.
Non-functional Requirements:-
These requirements are not must to the system. But with these requirements can improve the system. Without these requirements system will not be a failure.
Logical system Specification
In this phase logical solutions will be defined. All the diagrams will be drawn in this phase. Some of the diagrams are DFDs, ERDs etc.
Physical Design
Focus on hardware which will be useful in-order to implement the system.

Techniques used in the System

Logical data modeling-  Explain the logical design of the system- ERDs
Data Flow Modeling- Describe the data flows of the system-DFDs
Entity Behavioral Model- Entity Life History Diagram (ELH)

Limitations of the SSADM Model\

SSADM only focuses on client requirements or mostly on document. This methodology does not focus on the development phase of the system.

RUP (Rational unified Process)

This methodology made for UML. Because UML users found out UML has certain benefits which helpful to effective analysis and developers can map up the user requirements easily for the developing system. There are four main phases in the RUP. They are,

Figure 1: RUP Methodology (cs.nmsu.edu, 2012)
  1. Inception
  2. Elaboration
  3. Construction
  4. Transition
Activities or indiscipline take place in RUP are,


  • Business Rule Modeling
  • Requirements
  • Analysis Design
  • Implementation
  • Test
  • Deployment
  • Configuration and Change Management
  • Project Management
  • Environmental Analysis 

Above figure illustrated of RUP methodology. As shown in the figure bulk of work will be done in the inception phase. In the elaboration phase two iterations have taken place. Normally iterations happen in prototyping.

Prototypes- There are mainly two types of prototyping they are, evolutionary and throw away prototyping.
Evolutionary Prototype
Evolves in final output.
Throwaway Prototype
Doing for get the approval and get requirements correctly.

Agile Methodology
As Ms Manesha stated Agile is not a methodology. It is just guidelines. These have build up on iterative and incremental development.

Agile Manifesto
-Individuals and iteration over process and tool
-Working software over comprehensible documentation
-Customer collaboration over contract negotiation
-Respond to change over following a plan- Does not stick to a plan, when there are changes in the project, change the plan and do the corrections.

 After giving a explainable discussion about Agile, lecturer started discuss about methodologies in Agile.


SCRUM Methodology 
As mentioned in oberig (2011) SCRUM methodology is "iterative incremental framework for managing complex work (such as new product development) commonly used with agile software development. Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as a general project/program management approach."


Oberig (2011) explained more about ACRUM methodology as "Of all the agile methodologies, Scrum is unique because it introduced the idea of “empirical process control. That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases (Oberig, 2011). In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, stakeholders and team members meet to assess the progress of a project and plan its next steps. This allows a project’s direction to be adjusted or reoriented based on completed work, not speculation or predictions"(Oberig, 2011).



Figure 2: SCRUM Methodology ( Oberig, 2011  )
Oberig (2011) has stated "Philosophically, this emphasis on an ongoing assessment of completed work is largely responsible for its popularity with managers and developers alike. But what allows the Scrum methodology to really work is a set of roles, responsibilities, and meetings that never change. If Scrum’s capacity for adaption and flexibility makes it an appealing option, the stability of its practices give teams something to lean on when development gets chaotic (Oberig, 2011)."

DSDM Methodology (Dynamic System Development Method)
Heavy methodology which includes,

  • Feasibility Study
  • Business Study
Sequence of Iterations
  • Functional Model
  • Design 
  • Implementation
Spread the word (2009) explained DSDM as "Dynamic System Development Method (DSDM) is a framework which provides a controlled but flexible process for delivering new and better systems. It involves effective use of knowledge with tools and techniques for development of prototypes which allows achieving efficient and fixed project delivery timescales. This methodology allows development of robust systems in private, public, business and education sectors. This framework provides an ideal basis for a development and implementation process involving human resources, technology and the processes that bind them (DSDM Consortium, 2007). (Spread the word, 2009)"

Figure 3: DSDM Methodology (Spread the word, 2009) 

Learning Outcomes:-

From today lecture I learnt different types of methodologies and how to apply those methodologies in projects. Before the lecture I thought Agile is a methodology but during the lecture I understood it is not a methodology but it is set of guidelines. Also I understood the different methodologies has in agile. They are SCRUM and DSDM. I also understood when and what to use these methodologies. When discuss about SSDM it is a well structured methodology which focus on customer requirements but the draw back in the methodology is it does not focus on the development stage of a project. I finally learnt that all these methodologies are build on SDLC because SDLC is the only methodology which covers the entire software development process. I am looking forward to apply one of this methodologies in my final year project and I make sure to be careful select a appropriate methodology which suits to my project not for the system.

Finally lecturer mentioned things consider when selecting a methodology.
  • Scope
  • Deliverable
  • Constraints - Only up to requirements
  • User Involvement
  • Most important Nature of the project - Focus on what kind of project no the software and things need to do in the project.

References:-

CS.NMSU. (2012c). RUP Methodology. [Online]. Available at: http://www.cs.nmsu.edu/~jeffery/courses/591/lecturenotes/rup-graph.gif [Access 13th September 2012]

Faridani, H. (2011). Software development methodologies. [Online]. Available at: http://www.gtislig.org/HamidFaridani_GuideToSelectingSWMethodologies_SOC_PDD_20110305.pdf [Access 13th September 2012]

Oerig (2011). SCRUM Methodology. [Online]. Available at: http://oberig.com/scrum.php 
[Access 13th September 2012]

Spread the word (2009). DSDM Methodology.  [Online]. Available at: http://spreadthewordz.blogspot.com/2009/10/dsdm-is-it-coming-back.html [Access 13th September 2012]

No comments:

Post a Comment