Week 2 - Software DVT Methodologies
Week 2 - Software DVT Methodologies
User involvement
Executive management support
Clear business objectives
Optimising scope
Agile process
Project management expertise
Financial management
Standard tools and Infrastructure
Skilled resources
Formal methodology
Agile Methodologies:
What is Agile?
The word ‘agile’ means − Able to move your body quickly and easily.
In business, ‘agile’ is used for describing ways of planning and doing work
wherein it is understood that making changes as needed is an important part of the job. Business
‘agility’ means that a company is always in a position to take account of the market changes.
In software development, the term ‘agile’ is adapted to mean ‘the ability to respond to changes −
changes from Requirements, Technology and People.
Definition: -
The Agile methodology is a project management approach that involves breaking the project into
phases and emphasizes continuous collaboration and improvement.
According to Fowler (2003),
(2) User oriented - Systems analyst or tester or manager, are not as important as the
individuals who fill those roles.
The Agile Manifesto also outlined 12 core principles for the development process. They are as
follows:
2. Break big work down into smaller tasks that can be completed quickly.
4. Provide motivated individuals with the environment and support they need and trust them to
get the job done.
8. Assemble the project team and business owners on a daily basis throughout the project.
9. Have the team reflect at regular intervals on how to become more effective, then tune and
adjust behavior accordingly.
eXtreme programming:
XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop a
software.
Conceived and developed to address the specific needs of software development by small teams
in the face of vague and changing requirements.
eXtreme Programming is an approach to software development put together by Beck and Andres
(2004).
Why eXtreme Programming?
development process.
– Reliance on an evolutionary approach to development that lasts throughout the lifetime of
the system.
– Planning, analysis, design, and construction are all fused into a single phase of activity.
– The programmers who write the code also develop the tests.
– Testing is on things that can break or go wrong, not on testing everything.
– Codes are tested after they are written.
– If all the tests run successfully, then development proceeds. If not, the code is reworked until
the tests are successful.
– All coding and testing is done by two people working together to write code and develop
tests.
– Involves two programmers working together on the problem they are trying to solve,
exchanging information and insight and sharing skills.
Note: - Although the eXtreme Programming process has its advantages, just as with any other
approach to systems development, it is not for everyone and is not applicable to every project.
Object-oriented approaches use the industry standard for modeling object-oriented systems,
called the Unified Modeling Language (UML), to break down a system into a use case
model.
Object-oriented programming differs from traditional procedural programming by
examining objects that are part of a system.
Each object is a computer representation of some actual thing or event.
Objects usually correspond to the real things an information system deals with,
e.g. customers, suppliers, contracts, and rental agreements, items, orders, and so on.
Objects are represented by and grouped into classes that are optimal for reuse and
maintainability.
A class defines the set of shared attributes and behaviors found in each object in the class.
Why OOAD?
The goal of OOAD is to make systems elements more reusable, thus improving system
quality and the productivity of systems analysis and design.
Another key idea behind object orientation is inheritance. Inheritance allows the creation of
new classes that share some of the characteristics of existing classes.
The Unified Modelling Language: - UML is a format for providing modelling information to
other people.
The diagrams used are the common vocabulary of the design.
It is made up of over a dozen specific kinds of diagrams.
These extend from two main categories:
a Structure diagrams, which define the infrastructure of the system being described.
b Behaviour diagrams, which define the interactions that are handled by the system.
UML Diagrams
• All UML diagrams are relatively straightforward and made up of only a handful of symbols.
• The nature of object-oriented systems though is that they often become large and intricate.
- Software can help us develop these diagrams and permit ease of maintenance.
• Imagine we are developing a small program to keep track of cars that are in for repairs in a
garage.
- The cost
Reduced cycle time and improved productivity with fewer team member would mean lower
costs.
Customer’s involvement throughout the complete cycle minimizes the risk of not achieving
customer satisfaction and business value.
Depends on strong team and individual performances for identifying business requirements.
Only system that can be modularized can be built using RAD
Requires highly skilled developers/designers.
High dependency on modeling skills
Inapplicable to cheaper projects as cost of modeling and automated code generation is very
high.
When there is a need to create a system that can be modularized in 2-3 months of time.
When there’s high availability of designers for modeling and the budget is high enough to
afford their cost along with the cost of automated code generating tools.
RAD SDLC model should be chosen only if resources with high business knowledge are
available and there is a need to produce the system in a short span of time (2 – 3 months).
Is modern and new concept of software development. Each service executes one action. Each
service can be used in other application within the organization or even in other
organizations.
We can say that service-oriented architecture is simply a group of services that can be called
upon to provide specific functions.
Rather than including calls to other services, a service can use certain defined protocols so
that it can communicate with other services.
Disadvantages
SOA requires high investment cost (means large investment on technology, development and
human resource).
There is greater overhead when a service interacts with another service which increases the
response time and machine load while validating the input parameters.
SOA is not suitable for GUI (graphical user interface) applications which will become more
complex when the SOA requires the heavy data exchange.