Monday, August 20, 2018


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.




















 software 





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?










Hello click here