Non-Agile Method (Week3)
Non-Agile Method (Week3)
By:
A s s i s t a n t P ro f D r S a re r u s a e n y e
1. To understand non agile methodology in software
engineering (continue models) Spiral model, SSADM,
Prototype model
The spiral model is used by software engineers and is favored for large, expensive and
complicated projects.
The spiral model looks like a coil with many loops. The number of loops
varies based on each project and is often designated by the project
manager.
At the end of the spiral the product is deployed.It repeatedly passes through these phases in iterations (called
Spirals in this model).
1.Planning 3. Construct
2. Design 4. Evaluation
Planning: This phase starts with the gathering of business requirements. In the subsequent spirals as the product
matures, identification of system requirements and unit requirements are done in this phase.
This also includes understanding of system requirements by continual communication between the customer and the
analyst.
Spiral model
Design: Design phase starts with the design in the baseline spiral and involves architectural, logical design of
modules, physical product design and final design in the successive spirals.
Construct: Construct phase refers to development of the final software product at every spiral. In the spiral
when the product is just thought and the design is being developed, a Proof of Concept (POC) is developed in
this phase to get the users’ feedback. Then in the successive spirals with higher clarity on requirements and
design a working model of the software called build is developed with a version number. These versions are
sent to the users for feedback.
Evaluation and Risk Analysis: Risk analysis includes identifying, estimating, and observing technical
feasibility such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, user
evaluates the software and provides the feedback. Based on the customer assessment, development process
enters into the next iteration and afterwards follows the linear approach to implement the feedback provided by
the user. The process of iterations along the spiral carries on with throughout the life of the software.
•When costs and risk evaluation is important
•NASA
Advantages vs
disadvantgaes Disadvantages of Spiral Development Model
and Design Method
and documenting the
data requirements of
the system being
It is visual since it uses graphical diagrams. This makes the system easier for
users/programmers to understand
It is a mature technique
It allows one to plan, manage and control a project well. These points are essential to
deliver the product on time.
It is relatively simple
It assumes that the requirements do not change during the development of a project.
It may incur delay in system delivery due to the considerable delay in the analysis and design phases which could
Disadvantages of SSADM
Hard System approach HSM
There are several hard systems approaches available all of which are based on a refined
version of the problem solving meta-process.
The Hard Systems Methodology (HSM) starts with a problem or opportunity, shown at the
top of figure (next page) as a hexagon.
This is something that exists in the real world and is waiting to be “processed” through the
HSM to arrived at an implemented change.
The idea is that by performing the actions in the boxes successively in a clockwise direction,
the desired end result will “pop out”.
Hard System approach HSM
Problem definition is about answering the question “what is the problem or opportunity?”
In systems terms we are saying that there exists a system whose output(s) is demonstrating an
unwelcome deviation from an expected performance.
Analysis of situation is about defining the current “as is” state and performance level. It is at
this point the system boundary is defined in order to decide on “what’s in and what’s out”.
Identification of objectives and constraints is about defining where we would like to be and
the constraints that make affect our ability to achieve the new state.
Routes to objectives is about exploring the different ways of achieving the defined objectives.
This itself is a Divergent-Convergent Thinking activity with the divergent phase concerned with
generating as many ideas as possible then to converge on a realistic number of definite
possibilities to take forward.
Hard System approach HSM
Measures of performance is about defining measurable means of assessing the efficacy of any definite
possibility. It’s really asking and answering the question “how will we know if the change has occurred?”
Develop Options is about developing the definite possibilities to the position where they could be
implemented. This involves doing sufficient work on each option for technical and other details to be defined,
and for costs and benefits to be assessed, while at the same time minimising the time and resources devoted
to the task.
Evaluation of options is about evaluating how well each option will work. The objective of this step is to
determine whether:
• it is technically feasible
• it is organizationally feasible
Implementation is about the detailed design, development and installation tasks required to
get the agreed proposal operating.
Soft System approach SSM
Soft Systems Methodology (SSM) has long been associated with information system analysis.
Its social construction perspective and management focus distinguish SSM from the software
engineering approach of information system analysis, making it a valuable candidate methodology in
highly unstructured problem settings.
As information systems became more complex, system analysts sought advanced tools to assist
them in the analysis process.
The field of system analysis has seen the emergence and prospering of many structured
methodologies.
SSM provides a mechanism to allow relevant human, social, political, and cultural factors to form
structure and act as explicit entities in the system analysis process.
Soft System approach SSM
This methodology does not seek to define the ‘best’ systems.
Instead, it aims to better meet the diverse needs of various stakeholders by exploring the
problem in a forum that encourages discussion and debate among all the parties.
The basic framework of SSM consists of seven steps that guide the analysis process moving
from the ‘real world’ to the ‘conceptual (systems) world’ and back again, but these stages are
not necessarily followed in a linear fashion.
Stages 1 and 2: Finding out
These stages create a ‘rich’ picture of the problem situation and
identify the ‘soft’ elements within it:
· People - essentially all those have interest in the system or
who are likely to be affected by changes to it
· Culture - social roles, norms of behavior, values
· Politics - commodities of power and how they are obtained,
used, preserved and transmitted
At this stage, the analysis process goes back into the real world by
comparing the conceptual model with what happens in the real
world.
Stage 6: Identifying changes
This stage defines the desirable and feasible changes based on the
analysis in prior stages.
In the ideal situation, the changes should cover all aspects of the
system being analyzed and the viewpoints
of all participants.
However, projects in the real world are always subject to schedule
and resource constraints.
As a result, system analysts have to make decisions to prioritize the
various requirements.
Stage 7: Taking action
This stage puts into practice the most appropriate changes identified
in the previous stage.
In the case of IS projects, this stage represents the development and
implementation phases.
Rapid Application Development RAD
Rapid Application Development RAD
Rapid application development follows a continuous iteration process that enables developers
to respond to customer feedback and requests during the development process.
Rapid application development follows a continuous iteration process that enables developers
to respond to customer feedback and requests during the development process.
When it be use?
Speed is the primary motto of Rapid Application Development. With rapid prototyping and continuous testing, the
software development cycle takes a much shorter time than traditional models.
Cost-Effective
Advantages &
Since the product is built to the customer’s specifications, the chances of certain features being rejected in the end
product are nil. The time and resources invested in the project are not wasted in RAD, making it a cost-effective
model.
disadvantages Satisfaction
RAD Since the client provides feedback at every step of development, the result is software that meets the client’s
expectations. A happy client leads to happy developers.
There is also a particular joy that developers get during the development process when the client appreciates their
work. It motivates them to work harder.
Reduced Risk
Since the requirements in RAD are not set in stone, it becomes easier to mitigate risks even when they appear after the
development has started.
Requires Skilled Developers
The developers have to foresee the client’s requirements and spend more time understanding the needs to
eliminate too many development iterations.
Advantages It calls for highly skilled developers with strong modeling skills. The project suffers if the developers are not
up to the mark.
disadvantage While it is easier for a small team to collaborate, constant communication can become complicated when the
team is large.
s Modularization Issues
RAD Rapid Application Development builds only those projects/systems that can be modularized. RAD breaks
down the software into different modules. The team then develops prototypes parallelly, based on the various
modules. Not all software requirements support modularization.
Client Participation
The success of RAD relies on active client participation. The client invests a significant amount of time in
testing the product and providing feedback. While it does guarantee a high-quality product, not all clients
will be willing to participate enthusiastically in the process.
System approach and Planning process
Systems can be categorized as physical and abstract systems. Physical system corresponds to
concrete operational systems made up of tangible (i.e. physically available objects) entities such as
people, materials, machines, and other physical things that may be static or dynamic in operation of a
system.
The physical systems display some activity or behavior. Elements of such system interact to achieve a
common objective. For example physical parts of a dairy plant are equipment, employees, office
establishment, furniture, building that facilitate operation of plant.
Abstract systems are conceptual or non physical entities. These are an orderly arrangement of
interdependent ideas or constructs which may or may not have any counterpart in real world.
They may be as straight forward as formulas of relationships among sets of variables or models of an
abstract conceptualization of physical situations.
System Approach
Model is representation of a real or planned system. For example set of instructions or
procedure for manufacturing milk products (e.g. paneer, cheese, ice-cream etc.) is an
example of abstract system.
This approach takes complex problems and breaks them down into small manageable
problems. It identifies problems from the top-down and then solutions are derived from the
bottom-up.
7 steps of planning
process
1. Brainstorming and planning
3. Design
The software engineering team has to make sure their code meets the software requirements specifications, conforms to the
stakeholders’ requirements, etc. but if the previous stages of software development were carefully fulfilled, the ready-to-use
software is bound to match the requirements to the software project.
The software development release cycle proceeds from alpha, beta, release candidate to actual production build. Once the
complete architecture (DB, API, etc) and planned functionality of the solution is built, the testing stage starts.
Depending on the complexity of the project it might be a straightforward release (if the project is simple) or staggered released (in
stages) in case of a more complex project. Now system analysts and the end-users can actually see and try out the ready
application.
Object oriented development OOD
A computer system can be developed on a component basis which enables the effective re-use of
existing components and facilitates the sharing of its components by other systems.
This methodology employs international standard Unified Modeling Language (UML) from the
Object Management Group (OMG). UML is a modeling standard for OO analysis and design which
has been widely adopted in the IT industry.
The ultimate objective of OOM is application assembly where the construction of new business
solutions from existing components.
The components are combined in different ways to meet the new requirements specified by the user
community.
Only completely new functionality will have to be built to complete the solution.
Best suits IT project using OOD
Projects of medium to large scale
Departments/project teams with a planned series of developments within a similar business area
Projects with an inventory of suitable components available either in-house or in the market
Projects with development/implementation environment which provide adequate support for object
technology
The details on OOD
Prototype Methodology
Prototyping is the rapid development and testing of working models (prototypes) of new
applications through an interaction and repetitive process that is commonly used by information
system experts and business experts.
A tool that gives ideas to potential makers and users about how the system functions in its full
form, and the process of producing a prototype called prototyping.
All Prototyping model is a process of making software that is repetitive and with rapid planning
where there is feedback that allows the occurrence of repetition and improvement of software
until the software meets the needs of the user.
Prototyping models are one simple model of making software which allows users to have an
initial / basic description of the program and carry out initial testing based on the working model
concept..
Understand on
Prototyping
methodology
Iterative vs throw away