0% found this document useful (0 votes)
72 views

Specialized Project Models and Agile Process Development

Specialized Project Models take on characteristics of conventional models like the spiral model, component based development, formal methods, and aspect oriented development. Component based development focuses on reusable software components and has an iterative approach. Formal methods use mathematical notation to specify, develop, and verify systems. Aspect oriented development addresses modularity issues not resolved by other approaches.

Uploaded by

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

Specialized Project Models and Agile Process Development

Specialized Project Models take on characteristics of conventional models like the spiral model, component based development, formal methods, and aspect oriented development. Component based development focuses on reusable software components and has an iterative approach. Formal methods use mathematical notation to specify, develop, and verify systems. Aspect oriented development addresses modularity issues not resolved by other approaches.

Uploaded by

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

Specialized Project Models

Special Project Models take on many characteristics of one or more of the conventional models
presented.

1. Component Based development (CBD): It has many characteristics of a spiral model. It


is evolutionary in nature. It has a iterative approach to the creation of software. CBD is a
procedure that accentuates the design and development of computer based systems with
the help of reusable software components. The focus shifts from software programming
to software system composing.
• Available component based products are researched and evaluated for the
application domain in question.
• Component integration issues are taken into consideration.
• Software architecture is designed to accommodate the components.
• Comprehensive testing is conducted to ensure proper functionality
• It leads to software reuse and this provides many benefits to developer.
2. Formal Methods Model: It consists of a set of activities that leads to formal
mathematical specification of computer software. It enables a software engineer to
specify develop and verify a computer based system by applying a mathematical
notation. It offers the promise of Defect- free software.
Advantages :
• Discovers ambiguity incompleteness and inconsistency in software.
• Incrementally grow after each iteration

Disadvantages:

o Time consuming and expensive


o Extensive training is required since only few developers have the necessary
knowledge to implement
3. Aspect Oriented Software development (AOSD):
It addresses the modularity issues that are not properly resolved by other software
approaches like procedural structured and object oriented programming. AOSD
complements these other types of software approaches.
It provides better modularization support of software design reducing software design,
development and maintenance cosyts.
Agile software development
What is “Agility”?
 Effective (rapid and adaptive) response to change
 Effective communication among all stakeholders
 Drawing the customer onto the team
 Organizing a team so that it is in control of the work performed
Yielding …
Rapid, incremental delivery of software
Agility and the Cost of Change

Agile Process
 Is driven by customer descriptions of what is required (scenarios)
 Recognizes that plans are short-lived
 Develops software iteratively with a heavy emphasis on construction activities
 Delivers multiple ‘software increments’
 Adapts as changes occur

Features of the Agile Software Development Approach


Modularity
Modularity allows a process to be broken into components called activities. A software
development process prescribes a set of activities capable of transforming the vision of
the software system into reality.
Iterative
Agile focuses on short cycles. Within each cycle, a certain set of activities is completed.
These cycles will be started and completed in a matter of weeks. However, a single cycle
called iteration will probably not be enough to get the element 100% correct.
Time-Bound
Iterations become the perfect unit for planning the software development project. One
can set time limits (between one and six weeks is normal) on each iteration and schedule
them accordingly. Functionality may be reduced or activities may be rescheduled if they
cannot be completed within the allotted time period.
Parsimony
Agile does not create impossible deadlines. Instead, agile software processes focus on
parsimony. That is, it focusses on minimal number of activities necessary to mitigate
risks and achieve their goals.
Adaptive
During an iteration, new risks may be exposed which require some activities that were
not planned. The agile process adapts the process to attack these new found risks. New
activities can be added to allow the goal to be reached. Similarly, activities may be
discarded.
Incremental
An agile process does not try to build the entire system at once. The software is
developed in increments. Each increment is tested independently. When an increment is
completed and tested, it is integrated into the system.
Convergent: Constantly the risks are attacked and so the system becomes closer to
reality that we are looking for.
Collaborative: It fosters communication among team members for integrating the
increments into a large project. This requires collaboration.
People oriented: Focuses on people than the process and technology. Developers are
empowered and so raise productivity, quality and performance

Assumptions Characterising Agile


 It is difficult to predict in advance which software requirements will persist and which
will change. It is equally difficult to predict how customer priority will change as the
project progresses.
 The design and testing are interleaved. It is very difficult to predict how much design is
necessary before construction.
 Analysis, Design, Construction and Testing are not as predictable as we would want it to
be.
Agile process Models
 Extreme Programming(XP)
 Adaptive Software Development(ASD)
 Dynamic System Development Model(DSDM)
 Scrum
 Crystal
Extreme Programming
 Extreme Programming is an instance of an Agile Software Development method.
 XP is a method that is optimized for small to medium-sized project teams that fit a certain
profile.
 It promotes rapid feedback and response to continual change.
 It is based upon the four values of simplicity, communication, feedback, and courage and
is consistent with the values of agile software development.

Characteristics of an XP Project
1. A small to medium-sized team (fewer than 20 people on the complete team)
2. Co-located, preferably in a single area with a large common space
3. A committed, full-time, on-site customer or customer representative

XP activities
 Planning
 Design
 Coding
 Testing
Planning: Begins with creation of a set of User stories that describes features and
functionality for the software to be built.
The customer assigns a priority to the story based on business value of the feature. The
customer and XP team work together for the planning of release
Design: It Follows the Keep It Simple Principle. It
encourages the use of CRC Cards(Class Responsibility Collaborator) to identify and
organise the object oriented Classes that is relevant to the current software increment.
For difficult design problem , a prototype is created called Spike Solution which will
minimize the risk when actual implementation happens.
Coding: XP recommends development of a series of Unit test that will be used for the
story that is to be included in the current increment. The key concept in coding is “ Pair
programming”. Then the code is integrated with the work of others
Testing: XP acceptance test are specified by the customer and focuses on overall system
features and functionality deployed for the customer

Adaptive Software Development (ASD)


It is a technique for building Complex software and systems. ASD lifecycle incorporates
3 phases
 Speculation
 Collaboration
 Learning
Speculation:
 The project is initiated and adaptive cycle planning is conducted.
 It uses project initiation information that includes
 customer mission statement, project constraints, basic requirements and release cycles
Collaboration: Motivated people work together which increases the talent and creative
output beyond their absolute number. People working together must trust each other.
They should be able to:
 Criticize each other
 Assist without Resentment
 Work very hard
 Communicate effectively so that problem lead to actions
Learning: ASD emphasizes on learning that will improve the real understanding of the
components to be developed. ASD team learns in 3 ways
• Focus group: The customer and the end user provide feedback on a software increment
that have been delivered. This provides a direct indication of whether the product is
satisfying the business needs.
• Formal Technical review: The team members review the software components
improving quality and learning as they proceed
• Post Mortem: The team analyses its own performance and process
Dynamic System Development Method (DSDM):
 It provides a framework for building and maintaining system which meet tight time
constraints through the use of incremental prototyping in a controlled project
environment.
 It uses the RAD process model
The DSDM activity is divided into 3 stages
 Pre Project
 Project Lifecycle
 Post Project

Pre Project

The Pre project stage consists of the project funding and the commitment from the team
members.

Project Lifecycle

The Project lifecycle consists of following stages

 Feasibility study: It establishes the basic business requirement and constraints associated
with the product to be developed

 Business Study: Establishes the functional and information requirements that will allow
the application to provide business value. It also defines the basic architecture and
identifies the maintainability requirement for the application.

 Functionality model iteration: Produces a set of incremental prototypes that


demonstrate functionality for the customer
 Design and Build Iteration: The prototypes are revisited during the functional model
iteration to ensure that each has been engineered in a manner that will enable it to provide
operational business value for end users
 Implementation: The latest software implemented is placed in the operational
environment. Changes may be requested as the increment is put in place

Post Project
It is meant for providing maintenance support and Review
Scrum:

Key characteristics of Scrum


 Small working teams are organized to “ Maximize communication , minimize overheads
and maximize sharing of informal knowledge
 The process should be adaptable to both technical and business changes to ensure the
development of best possible product
 The process yields frequent software increments that can be inspected, adjusted, tested
and documented
 Development work and people who perform it are partitioned
 Constant testing and documentation is performed as the product is built

Stages of Scrum Development


 Backlog: A prioritized list of project requirements that provide business value for the
customer
 Sprints: It consists of work units that are required to achieve a requirement defined in
backlog. This needs to fit into time box of 30 days. Sprint allows team members to work
in short terms, but stable environment.
 Scrum Meetings: Daily 15 minutes meeting
 Demonstration: Deliver the software increment to the customer so that the functionality
that has been Implemented can be demonstrated and evaluated by the customer

Crystal Programming:

It is mainly used for Maneuverability. It is a set of methodologies each with core elements
that are common to all and roles process patterns, work products and practice that are unique
to each element.

Crystal methods are focused on:

People

Interaction

Community

Skills

Talents

Communication

The seven properties of crystal are:

1. Frequent Delivery
2. Reflective improvement
3. Close communication
4. Personal safety
5. Focus
6. Easy access to expertise
7. Technical environment with automated tests, config Management and frequent
integration

You might also like