Chapter 3 - Software Development Methodologies
Chapter 3 - Software Development Methodologies
Methodology
Types of Research
Descriptive vs. Analytical: Descriptive research includes surveys and fact-finding enquiries
of different kinds. The major purpose of descriptive research is description of the state of
affairs as it exists at present. In social science and business research we quite often use the
term Ex post facto research for descriptive research studies. The main characteristic of this
method is that the researcher has no control over the variables; he can only report what
has happened or what is happening. Most ex post facto research projects are used for
descriptive studies in which the researcher seeks to measure such items as, for example,
frequency of shopping, preferences of people, or similar data.
Ex post facto studies also include attempts by researchers to discover causes even when
they cannot control the variables. The methods of research utilized in descriptive research
are survey methods of all kinds, including comparative and correlational methods. In
analytical research, on the other hand, the researcher has to use facts or information
already available, and analyze these to make a critical evaluation of the material.
Applied vs Fundamental
Applied vs. Fundamental: Research can either be applied (or action) research or
fundamental (to basic or pure) research. Applied research aims at finding a solution
for an immediate problem facing a society or an industrial/business organisation,
whereas fundamental research is mainly concerned with generalisations and with
the formulation of a theory. “Gathering knowledge for knowledge’s sake is termed
‘pure’ or ‘basic’ research.”4 Research concerning some natural phenomenon or
relating to pure mathematics are examples of fundamental research.
Applied vs Fundamental
Similarly, research studies, concerning human behaviour carried on with a view to
make generalisations about human behaviour, are also examples of fundamental
research, but research aimed at certain conclusions (say, a solution) facing a concrete
social or business problem is an example of applied research. Research to identify
social, economic or political trends that may affect a particular institution or the copy
research (research to find out whether certain communications will be read and
understood) or the marketing research or evaluation research are examples of
applied research. Thus, the central aim of applied research is to discover a solution
for some pressing practical problem, whereas basic research is directed towards
finding information that has a broad base of applications and thus, adds to the
already existing organized body of scientific knowledge
Quantitative vs. Qualitative
Quantitative research is based on the measurement of quantity or amount. It is
applicable to phenomena that can be expressed in terms of quantity. Qualitative
research, on the other hand, is concerned with qualitative phenomenon, i.e.,
phenomena relating to or involving quality or kind. For instance, when we are
interested in investigating the reasons for human behaviour (i.e., why people
think or do certain things), we quite often talk of ‘Motivation Research’, an
important type of qualitative research. This type of research aims at discovering
the underlying motives and desires, using in depth interviews for the purpose.
Other techniques of such research are word association tests, sentence
completion tests, story completion tests and similar other projective techniques.
Attitude or opinion research i.e., research designed to find out how people feel
or what they think about a particular subject or institution is also qualitative
research.
Quantitative vs. Qualitative
Qualitative research is specially important in the behavioural sciences where
the aim is to discover the underlying motives of human behaviour. Through such
research we can analyse the various factors which motivate people to behave in
a particular manner or which make people like or dislike a particular thing. It
may be stated, however, that to apply qualitative research in practice is
relatively a difficult job and therefore, while doing such research, one should
seek guidance from experimental psychologists.
Conceptual vs. Empirical
Conceptual research is that related to some abstract idea(s) or theory. It is generally
used by philosophers and thinkers to develop new concepts or to reinterpret
existing ones. On the other hand, empirical research relies on experience or
observation alone, often without due regard for system and theory. It is data-based
research, coming up with conclusions which are capable of being verified by
observation or experiment. We can also call it as experimental type of research. In
such a research it is necessary to get at facts firsthand, at their source, and actively
to go about doing certain things to stimulate the production of desired information.
In such a research, the researcher must first provide himself with a working
hypothesis or guess as to the probable results. He then works to get enough facts
(data) to prove or disprove his hypothesis. He then sets up experimental designs
which he thinks will manipulate the persons or the materials concerned so as to
bring forth the desired information
Conceptual vs. Empirical
Empirical research is appropriate when proof is sought that certain variables
affect other variables in some way. Evidence gathered through experiments or
empirical studies is today considered to be the most powerful support possible
for a given hypothesis.
Research Methods
Research methods may be understood as all those methods/techniques that are
used for conduction of research. Research methods or techniques*, thus, refer
to the methods the researcher use in performing research operations. In other
words, all those methods which are used by the researcher during the course of
studying his research problem are termed as research methods. Since the object
of research, particularly the applied research, it to arrive at a solution for a given
problem, the available data and the unknown aspects of the problem have to be
related to each other to make a solution possible
Research based Project
Principles of Sampling
•Principle one: In a majority of cases where sampling is done there will be a
difference between the sample statics and the true population mean, which is
attributable to the selection of
the units in the sample.
•Principle two: The greater the sample size, the more accurate will be the
estimate of the true population mean.
•Principle three: The greater the difference in the variable under study in a
population, for a given sample size, the greater will be the difference between
the sample statistics and the true
population mean.
Variable Identification
There are four measurement scales used in the social sciences: nominal, ordinal,
interval and ratio. Any concept that can be measured on these scales can be
called a variable. Variables are important in bringing clarity and
specificity to the conceptualization of a research problem, formulation of
hypotheses, and to the development of a research instrument. They affect the
whole research (data analysis, selection and application of statistical tests, data
interpretation and presentation and the conclusion). A variable can be classified
from three perspectives that are not jointly exclusive: casual relationship, design
of the study, and unit of measurement. There are 4 types of variables; nominal,
ordinal, interval and ratio variables
Sampling
Sampling is the process of selecting a few (a sample) from a bigger group (the
sampling population) to become the basis for estimating or predicting a fact,
situation or outcome regarding the bigger group
Data Collection
•Numerical data whether primary or secondary has different resources such as
population census, hospital registrations or government documentary data. The
data is collected by surveys,observations, interviews, documentary records and
questionnaires.
•The commonly used method and its wording should be clear and simple,
relevant and well designed to provide the needed information Personal or
private questions should be avoided and hypothetical questions are of limited
value. The questions should be put in a logical order to be easy for the
respondent to remember the answers. Leading questions should be avoided
Processing and Displaying Data
•The processing of data includes all operations undertaken from when a set of
data is collected until it is ready to be analyzed either manually or by a
computer.
•Computers primarily help by saving labour, save time and increase speed. The
extent of their application depends upon the purpose of the study.
•Statistics primarily help to make sense of data, explore relationships and
interdependence between variables, ascertain magnitude of an existing
relationship or interdependence and place confidence in the findings.
Processing and Displaying Data
•Data displaying is to format the findings in the form of a tables or graph instead
of a form a text, this makes the communication easy and clear.
•Depending upon the number of variables there are three types of tables:
univariate (frequency), bivariate (crosstabulation) and polyvariate. On the other
hand there are many forms of graphs; the histogram, the bar diagram, the
stacked bar chart, the 100 per cent bar chart, the frequency polygon
Development based Project
Software design methodology provides a logical and systematic means of proceeding
with the design process as well as a set of guidelines for decision-making.
The design methodology provides a sequence of activities, and often uses a set of
notations or diagrams. The design methodology is especially important for large
complex projects that involve programming-in-the-large (where many designers are
involved); the use of a methodology establishes a set of common communication
channels for translating design to codes and a set of common objectives.
In addition, there must be an objective match between the overall character of the
problem and the features of the solution approach, in order for a methodology to be
efficient.
Software Design Life Cycle
The systems development process is also called a systems development life cycle
(SDLC) because the activities associated with it are ongoing.
As each system is built, the project has timelines and deadlines, until at last the
system is installed and accepted. The life of the system continues as it is
maintained and reviewed.
If the system needs significant improvement beyond the scope of maintenance,
if it needs to be replaced because of a new generation of technology, or if the IS
needs of the organization change significantly, a new project will be initiated and
the cycle will start over.
Five phases of SDLC
Advantages and Disadvantages:
Waterfall Model
This method might work satisfactorily if design requirements could be perfectly
addressed before flowing down to design creation, and if the design were
perfect when program implementation began, and if the code were perfect
before testing began, and if testing guaranteed that no bugs remained in the
code before the users applied it, and of course if the users never changed their
minds about requirements. Alas, none of these things is ever true.
Advantages of Waterfall Model
Since technical documentation is a necessary part of the initial requirements
phase, this means that everyone understands the objectives. New developers can
get up to speed quickly – even during the maintenance phase.
The phased development cycle enforces discipline. Each step has a clearly defined
starting point and conclusion, which makes progress easy to monitor. This helps
reduce any project “slippage” from agreed timescales.
Test scenarios are already detailed in the functional specification of the
requirements phase, which makes the testing process easier and more transparent
Even before the software development starts, the design is hammered out in
detail which makes the needs and the outcome clear to everyone.
Disadvantages of waterfall model
It could be challenging to conceptualise their needs in terms of a functional
specification during the requirements phase. This means that they may change
their minds once they see the end product, which is difficult to address if the
application needs to be re-engineered to any large extent.
There may be issues with the flexibility of the model to cater for new
developments or changes of requirements which may occur after the initial
consultation. Changes due to business plans or market influences may not have
been taken into account when planning is all done up front.
Agile
Agile project management philosophy has been introduced as an attempt to
make software engineering more flexible and efficient.
Agile methodologies take an iterative approach to software development. Unlike
a straightforward linear waterfall model, agile projects consist of a number of
smaller cycles – sprints. Each one of them is a project in miniature: it has a
backlog and consists of design, implementation, testing and deployment stages
within the pre-defined scope of work
Advantages of Agile
Customer satisfaction is rapid, continuous development and delivery of useful software.
Customer, Developer, and Product Owner interact regularly to emphasize rather than
processes and tools.
Product is developed fast and frequently delivered (weeks rather than months.)
A face-to-face conversation is the best form of communication.
It continuously gave attention to technical excellence and good design.
Daily and close cooperation between business people and developers.
Regular adaptation to changing circumstances.
Even late changes in requirements are welcomed.
Disadvantages of Agile
It is not useful for small development projects.
There is a lack of intensity on necessary designing and documentation.
It requires an expert project member to take crucial decisions in the meeting.
Cost of Agile development methodology is slightly more as compared to other
development methodology.
The project can quickly go out off track if the project manager is not clear about
requirements and what outcome he/she wants.
Prototyping
•Prototyping takes an iterative approach to the systems development process. During
each iteration, requirements and alternative solutions to the problem are identified
and analyzed, new solutions are designed, and a portion of the system is implemented.
•Users are then encouraged to try the prototype and provide feedback.
•Prototyping begins with creating a preliminary model of a major subsystem or a
scaled-down version of the entire system.
•For example, a prototype might show sample report formats and input screens. After
they are developed and refined, the prototypical reports and input screens are used as
models for the actual system, which can be developed using an end-user programming
language such as Visual Basic.
• The first preliminary model is refined to form the second- and third-generation
models, and so on until the complete system is developed
Advantages and Disadvantages
Rapid Application Development
The key benefit of a RAD approach is fast project turnaround, making it an
attractive choice for developers working in a fast-paced environment like
software development. This rapid pace is made possible by RAD’s focus on
minimizing the planning stage and maximizing prototype development.
By reducing planning time and emphasizing prototype iterations, RAD allows
project managers and stakeholders to accurately measure progress and
communicate in real time on evolving issues or changes. This results in greater
efficiency, faster development, and effective communication.
Advantages and Disadvantages