Q 1. What is an Agile Process ? State its
principles.
ð
Explanation:-
1) Agile
software development is not only a process but it referred as philosophy.
2)
The agile software development focuses on the rapid development of the software
product by
considering the current market requirements and time limits.
3)
Agile development focuses on face to face or interactive processes than
documentation.
4)
It helps
in quickly transferring the ideas.
5)
Agile software development saves man power, cost, documentation and most importantly time.
6)
It is recent
approach for Project Management.
7)
Agile process model uses the cocept of Extreme Programming.
8)
Agile focuses
on modularity, iterative, time bound, parsimony, adaptive, incremental
convergent, collaborative approach.
9)
Today’s market is rapidly changing and
unpredictable too. Root of agile software development is in the reality of
today’s markets.
10)
If we compare
waterfall model with agile software development, we find agile software
development is very much useful and practically applicable.
11)
It does not believe in more and more
documentation because it makes difficult to find out the required information.
12)
It supports teams
to work together with management for supporting technical decision making.
13)
This method focuses mainly on the coding because directly deliverable to
the users.
Principles:-
//////////////////////////////////////////////////////////////////////////////////////////////
Q 2. Explain about the incremental model.
ð
Diagram:-
1)
Incremental model is also called as iterative enhancement model.
2)
In this model the software is built in an incremental fashion.
3)
Fig shows the
project is divided into small subsets called as increments and are implemented by
individually.
4)
In
this model the product is designed, implemented, integrated and tested as a
series of incremental builds.
5)
The incremental model combines elements of the linear sequential model with the iterative
philosophy of prototyping,
6) Each
linear sequence produces deliverable increments of the software.
7)
The
incremental model is iterative in nature. When an incremental model is used,
the first increments are often a “core product”.
8)
Thai
is basic requirements are addressed, but many supplementary features remain
undelivered.
9)
Incremental
development is useful when staffing is unavailable for a complete implementation
by the business deadline that has been established for the project.
10)
Each build consist of code pieces from
various modules interacting to provide a specific functional capability.
·
Example:
Word processing software
developed using the incremental paradigm, might deliver basic file
management editing and document
production in the first increment, more
sophisticated editing and document production capabilities in second
increment;
Spelling and grammar checking in third increment and advanced page layout capability in
fourth increment and at the end the software get’s ready to use.
Q
3. Explain RAD model and state the drawbacks of it.
ð
Diagram:-
/////////////////////////////////////////////////////////////diagram
from book
Explanation:-
1) RAD
is modern software process that focus on a short development cycle.
2)
The RAD is “High speed” adaption then of
waterfall model in which rapid development is achieved.
3)
As compared to waterfall model team size
of RAD model is large to function with proper coordination.
4)
If requirement are well understood
and project scope is considered, the RAD process is create a “Fully
functionally system” within a very short period of time (normaly 60 to 90
days).
Drabacks:
1.
RAD
model needs enough human resources to create the required number of RAD teams.
2.
If
developers and customers are not committed to the rapid model, the RAD project
fails.
3.
Rapid-fire
activities need to be completed in very short or small time frame. Time is
the major constraint in RAD.
4.
RAD
has to be modularized in a proper way otherwise creates a lots of confusions
and problems.
5.
In
case of high performance requirement, RAD cannot be ideal model.
6.
Still
if RAD model has to be used then it can be done by making tune between
interface and system components.
Q
4.
Spiral model is a realistic approach to the development of Large-Scale
systems and software. Justify and
explain the model ?
è
Diagram:-
1) From
the figure given above, a spiral model is divided into a set of framework activities defined by the software engineering
team.
2) As
this evolutionary process begins, the software team performs activities in a
clockwise direction, beginning at the center.
3) Spiral
model combines development activities with risk management to minimize and
control the risk impact.
4) It
also provides scope for RAD for increasingly complete software.
5) Cost
& schedule are adjusted based on feedback derived from the customer after
delivery.
6) In
addition, the project manager adjusts the planned number of iterations required
to complete the software.
7) This
may be a realistic approach for large scale software development.
8) As
the process progresses both users and developers better understand the system.
Advantages:
1. One is a cyclic approach for
incrementally growing a system‘s degree of definition and implementation while
decreasing its degree of risk.
2. The
set of anchor point milestones for ensuring stakeholder commitment to obtain
feasible and mutually satisfactory system solutions.
Limitations:
1. The system demands risks
identification and monitoring to prevent hurdles.
2. System
can get into infinite iterations.
Q 5. What are the characteristis of the
software ?
è
1. Functionality:
It refers to the degree of performance of the
software against its intended purpose.
2. Reliability:
It refers to the ability of the software to provide
desired functionality under the given conditions.
3. Usability:
It refers to the extent to which the software can be used with ease and
simple.
4. Maintainability:
Software must evolve to meet changing needs.
5. Dependability:
Software must be trustworthy.
6. Efficiency:
Software should not make wasteful of system resources.
7. Acceptability:
Software must accepted by
the users for which it was designed.
8. Portability:
It refers to the ease with which software developers can transfer
software from one platform to another, without changes.
9. Integrity:
It refers to the degree to which unauthorized access to the software
can be prevented.
10. Robustness:
It refers to the degree to which the software can keep on functioning
in spite of being provide with invalid data.
Q 6 .Explain extreme programming concpt.
èDiagram:
1) EXtreme Programming (XP) was conceived and developed
to address the specific needs of software development by small teams in the
face of changing requirements.
2) Extreme Programming is one
of the Agile software development methodologies.
3) It provides values and
principles to guide the team behavior. The team is expected to self-organize.
4) Extreme Programming provides
specific core practices where −
• Each practice is simple
and self-complete.
• Combination of practices
produces more complex and emergent behavior
Why is it called “Extreme?”
Extreme Programming takes the effective principles and practices to
extreme levels.
1. Code reviews are effective
as the code is reviewed all the time.
2. Testing is effective as
there is continuous regression and testing.
3. Design is effective as
everybody needs to do refactoring daily.
4. Integration testing is
important as integrate and test several times a day.
5. Short iterations are
effective as the planning game for release planning and iteration planning.
Q 7. State
& explain XP practice principles
è Extreme
Programming is based on 9 principles:
1.
The planning process
2.
Small releases
3.
Metaphor
4.
Simple design
5.
Testing
6.
Refactoring
7.
Pair programming
8.
Colective ownership
9.
Continuous integration
The Planning Process - The desired features of
the software, which are communicated by the customer, are combined with cost
estimates provided by the programmers to determine what the most important
factors of the software are. This stage is sometimes called the Planning Game.
Small Releases - The software is developed
in small stages that are updated frequently, typically every two weeks.
Metaphor - All members on an XP team use common
names and descriptions to guide development and communicate on common terms.
Simple Design - The software should
include only the code that is necessary to achieve the desired results
communicated by the customer at each stage in the process. The emphasis is not
on building for future versions of the product.
Testing - Testing is done consistently
throughout the process. Programmers design the tests first and then write the
software to fulfill the requirements of the test. The customer also provides
acceptance tests at each stage to ensure the desired results are achieved.
Refactoring - XP programmers improve the
design of the software through every stage of development instead of waiting
until the end of the development and going back to correct flaws.
Pair Programming - All code is written by a
pair of programmers working at the same machine.
Collective Ownership - Every line of code belongs
to every programmer working on the project, so there are no issues of
proprietary authorship to slow the project down. Code is changed when it needs
to be changed without delay.
Continuous Integration - The XP team integrates and
builds the software system multiple times per day to keep all the programmers
at the same stage of the development process at once.
Q 8. What do you mean by
evolutionary process flow ? Explain any one evolutionary process model?
èDiagram:
1.
The evolution model
divides the development cycle into smaller, "Incremental Waterfall
Model" in which users are able to get access to the product at the end of
each cycle.
2.
The users provide
feedback on the product for planning stage of the next cycle and the
development team responds, often by changing the product,plans or process.
3.
These incremental
cycles are typically two or four weeks in duration and continue until the
product is shipped.
1)
These models are more suited
to object oriented systems.
2)
They are iterative in
Process.
3)
They enable the
software developer to develop increasingly more Complex versions of the
software.
4)
Like all Complex
systems, software involve over period of the time and hence evolutionary models
are more suited to software development.
5)
Requirements gets
changed while the software is under development.
·
Advantages of Evolutionary Model:-
1)
Error reduction: As the version is tested with customer which reduces the error
throughlly.
2)
User satisfaction: User gets satisfied and he gets the full chance of
experimenting partially developed system.
3)
Business benefit: Successful use of this model can benefit not only business
result but marketing and the internal operations as well.
4)
High quality: As you should get satisfied with every version, it produces
the high quality product.
5)
Low risk: There is significant reduction of risk as a versions is
implemented. This risk may be associated with
6)
missing schedule deadline
7)
wrong feature sets
8)
poor quality
9)
Reduction Cost: Some design issues are cheaper to resolve through
experimentation than through analysis. It reduces cost by providing structured
and disciplined avenue for experimentation.
·
Disadvantages of Evolutionary Model:-
1)
Several version
release: Developer has to make table version which
increases their Efforts.
2)
Dividing software: It is difficult to "divide the software and the problems
in several versions that would be acceptable to the customer which can be
implemented and delivered incrementally.
3)
Uncertain nature of
customer needs: A confused user has
uncertainty over his requirements, so giving him several version may change his
requirement Rapidly.
4)
Time And Cost:As this model reduces "Time And Cost" but requirement
is not gathered correctly. It will subsequently time, cost and efforts.
5)
Confusion by several
version: An user might get "confused by several
versions of the software. It will affect on the final product.
Q 1. What is an Agile Process ? State its principles.
Q 2. Explain about the incremental model.
Q 3. Explain RAD model and state the drawbacks of it.
Q 4. Spiral model is a realistic
approach to the
development
of Large-Scal systems and software.
Justify
and explain the model ?
Q 5. What are the characteristis of the software ?
Q 6 .Explain extreme programming concept.
Q 7. State & explain XP practice principles.
Q 8. What do you mean by
evolutionary process flow ?
Explain any one evolutionary process
model?
No comments:
Post a Comment