0% found this document useful (0 votes)
36 views10 pages

Week 2 - Software DVT Methodologies

Uploaded by

muyajohnty
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views10 pages

Week 2 - Software DVT Methodologies

Uploaded by

muyajohnty
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

 Top 10 Reasons for Project Success

 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.

Able to think quickly and clearly.

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),

The Agile Methodologies share three key principles:


(1) iterative development - Iterative development focuses on the frequent production of
working versions of a system that have a subset of the total number of required features.
Iterative development provides feedback to customers and developers alike.

(2) User oriented - Systems analyst or tester or manager, are not as important as the
individuals who fill those roles.

(3) promote a self-adaptive software development process. As software is developed, the


process used to develop it should be refined and improved. Development teams can do
this through a review process, often associated with the completion of iterations.
 The 12 principles of Agile

The Agile Manifesto also outlined 12 core principles for the development process. They are as
follows:

1. Satisfy customers through early and continuous delivery of valuable work.

2. Break big work down into smaller tasks that can be completed quickly.

3. Recognize that the best work emerges from self-organized teams.

4. Provide motivated individuals with the environment and support they need and trust them to
get the job done.

5. Create processes that promote sustainable efforts.

6. Maintain a constant pace for completed work.

7. Welcome changing requirements, even late in a project.

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.

10. Measure progress by the amount of completed work.

11. Continually seek excellence.


12. Harness change for a competitive advantage.

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?

– Because of its short cycles

– It offers incremental planning approach

– focus on automated tests written by programmers and customers to monitor the

development process.
– Reliance on an evolutionary approach to development that lasts throughout the lifetime of

the system.

– use of two-person programming teams.

– Planning, analysis, design, and construction are all fused into a single phase of activity.

Coding and Testing is a same process –

– 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 Analysis and Design:


Object-oriented (O-O) analysis and design is an approach that is intended to facilitate the
development of systems that must change rapidly in response to dynamic business environments.

 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 object-oriented approach to systems development shares the iterative development


approach of the Agile Methodologies.
 One of the most popular realizations of the iterative approach for object- oriented
development is the Rational Unified Process (RUP), which is based on an iterative,
incremental approach to systems development.

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.

- Small diagrams can be drawn by hand without difficulty.

• 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.

• Like program code, UML diagrams are supposed to be living documents.

Example of UML diagram: Scenario – 1

• Imagine we are developing a small program to keep track of cars that are in for repairs in a
garage.

• We need to keep track of:

- The owner and their contact details

- The date the car was put in for repairs

- The repairs needed and whether they were done

- The cost

- And various other things

Rapid Application Development (RAD)

 Rapid application development is a software development methodology that uses minimal


planning in favor of rapid prototyping.
 A prototype is a working model that is functionally equivalent to a component of the product.
 Functional modules are developed in parallel as prototypes and are integrated to make the
complete product for faster product delivery.
 RAD projects follow iterative and incremental model.
 Projects are developed by small teams comprising of developers, domain experts, customer
representatives and other IT resources working progressively on their component or
prototype.
 While developing prototype, developer has to ensure that the developed prototypes are
reusable.

Rapid Application Development (RAD) Model (ref pg.68 of 151)

Rapid Application Development (RAD) model has the following phases


 Requirements Planning phase − a workshop needs to be conducted to discuss business
problems in a structured manner.
 User Description phase − automated tools are used to capture information from users.
 Construction phase − productivity tools, such as code generators, screen generators, etc. are
used inside a time-box, with a “Do until Done” approach.
 Cut Over phase − installation of the system, user acceptance testing and user training are
performed.

Rapid Application Development Model – Strengths

 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.

 Focus moves to the code in a what-you-see-is-what-you-get mode (WYSIWYG). This


brings clarity on what is being built is the right thing.
 Uses modelling concepts to capture information about business, data, and processes

Rapid Application Development Model – Weaknesses

 Accelerated development process must give quick responses to the user.


 Risk of never achieving closure.
 Hard to use with legacy systems.
 Developers and customers must be committed to rapid-fire activities in an abbreviated time
frame.

Advantages of the RAD model:

 Reduced development time.


 Increases reusability of components
 Quick initial reviews occur
 Encourages customer feedback
 Integration from very beginning solves a lot of integration issues.
Disadvantages of RAD model:

 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 should one use RAD Model

 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).

Service – Oriented Architecture

 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.

Service - Oriented Architecture


Advantages
 SOA allows reuse the service of an existing system alternately building the new system.
 It allows plugging in new services or upgrading existing services to place the new business
requirements.
 It can enhance the performance, functionality of a service and easily makes the system
upgrade.
 SOA has capability to adjust or modify the different external environments and large
applications can be managed easily.
 The companies can develop applications without replacing the existing applications.
 It provides reliable applications in which you can test and debug the independent services
easily as compared to large number of code.

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.

You might also like