Downloadfile 32
Downloadfile 32
1.What is Software...?
Ans: Software is more than just a program code. A program is an executable code, which
serves some computational purpose. Software is considered to be collection of executable
programming code, associated libraries and documentations. Software, when made for a
specific requirement is called software product.
3. Software validation where the software is checked to ensure that it is what the customer
requires.
The system development should be complete in the pre-defined time frame and cost.
SDLC consists of a detailed plan which explains how to plan, build, and maintain specific
software. Every phase of the SDLC life Cycle has its own process and deliverables that feed
into the next phase. SDLC stands for Software Development Life Cycle and is also referred to
as the Application Development life-cycle. A structured set of activities required to develop a
software system. The way we produce software, including:
• Requirements Analysis:
The requirement is the first stage in the SDLC process. It is conducted by the senior team members with
inputs from all the stakeholders and domain experts in the industry. Planning for the quality assurance
requirements and recognition of the risks involved is also done at this stage. This stage gives a clearer
picture of the scope of the entire project and the anticipated issues, opportunities, and directives which
triggered the project. Requirements Gathering stage need teams to get detailed and precise requirements.
This helps companies to finalize the necessary timeline to finish the work of that system. The requirements
are collected using a number of practices as given:
• Feasibility study:
Once the requirement analysis phase is completed the next SDLC step is to define and document software
needs. This process conducted with the help of 'Software Requirement Specification' document also known
as 'SRS' document. It includes everything which should be designed and developed during the project life
cycle. There are mainly five types of feasibilities checks:
• Designing/Modeling
In this third phase, the system and software design documents are prepared as per the
requirement specification document. This helps define overall system architecture. This design
phase serves as input for the next phase of the model.
• Coding /Development
Once the system design phase is over, the next phase is coding. In this phase, developers start build the
entire system by writing code using the chosen programming language. In the coding phase, tasks are
divided into units or modules and assigned to the various developers. It is the longest phase of the Software
Development Life Cycle process.
In this phase, Developer needs to follow certain predefined coding guidelines. They also need to use
programming tools like compiler, interpreters, debugger to generate and implement the code .
• Testing
Once the software is complete, and it is deployed in the testing environment. The testing team starts testing
the functionality of the entire system. This is done to verify that the entire application works according to the
customer requirement. During this phase, QA and testing team may find some bugs/defects which they
communicate to developers. The development team fixes the bug and send back to QA for a re-test. This
process continues until the software is bug-free, stable, and working according to the business needs of that
system. An estimate says that 50% of whole software development process should be tested. Errors may
ruin the software from critical level to its own removal
• Implementation / Integration phase
Once the software testing phase is over and no bugs or errors left in the system then the final deployment
process starts. Based on the feedback given by the project manager, the final software is released and
checked for deployment issues if any.
• Operation/Maintenance
Once the system is deployed, and customers start using the developed system, following 3 activities occur
o Bug fixing - bugs are reported because of some scenarios which are not tested at all.
o Upgrade - Upgrading the application to the newer versions of the Software
o Enhancement - Adding some new features into the existing software
• Documentation
Different types of documents are created through the whole software development lifecycle (SDLC).
Documentation exists to explain product functionality, unify project-related information, and allow for
discussing all significant questions arising between stakeholders and developers.
The main focus of this SDLC phase is to ensure that needs continue to be met and that the
system continues to perform as per the specification mentioned in the first phase.
• Linear process models – phases that happen sequentially, one after another
o Waterfall Model
o V-Model
• Iterative process models – phases that are repeated in cycles
o Spiral model
• Parallel process models – activities that occur concurrently
o Unified process model
• This model is simple to implement also the number of resources that are required for it is
minimal.
• The requirements are simple and explicitly declared; they remain unchanged during the
entire project development.
• The start and end points for each phase is fixed, which makes it easy to cover progress.
• The release date for the complete product, as well as its final cost, can be determined
before development.
• It gives easy to control and clarity for the customer due to a strict reporting system.
Disadvantages of waterfall model:
• Requirement Analysis
• Feasibility Study
• Software Design
• Coding/Implementation
• Software Testing
• Software Deployment
• Software Maintenance
What is V model?
Ans: V- model is also called Verification and Validation model .This model is the extension of
the Waterfall Model. In this model one phase for verification and other for validation and the
coding phase joins the both phases verification and Validation .so that makes the V shape so
this model is called V-model. This process starts from the top left i.e. verification phase towards
the top right phases i.e. validation phases and follows a linear improvement like waterfall model.
Process of V Model
This model consists two main phases:
• Verification phase: Verification is the process to verify that the software product
development phase to determine that specified requirements meet or not? In this phase,
there is no need to execute the code for testing.
• Validation phase: Validation is the process to verify that the software product fulfills the
customer requirements and expectations or not. In this phase, there is need of execution
of the code.
• Unit Testing: Unit testing is a type of white box testing. These Unit Test Plans are
executed to remove bugs at code level. Unit Test Plans are created during the module
design phase.
• Integration Phase: In the integration testing, the integration test cases are executed
which were developed in the High-level design phase. Integration testing is a testing
process in which unit tested modules are integrated and evaluated. It verifies that the
modules work together as expected or not.
• System Testing: System testing is done corresponds with the system design phase. It
tests the functional and non-functional requirements and evaluate the whole system
functionality and the communication of the system with external systems.
• Acceptance Testing: This testing is done to check that the delivered system meets
user’s requirement or not? Nonfunctional testing such as Load, Stress etc. are also done
in this phase.
Advantages of V Model:
Disadvantages of V Model:
• The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
• New requirements can be easily accommodated as there is scope for refinement.
• Missing functionalities can be easily figured out.
• Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
• The developed prototype can be reused by the developer for more complicated projects
in the future.
• Flexibility in design.
Disadvantages –
• Large project: Evolutionary model is normally useful for very large products.
• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.
Disadvantages of Incremental Model
This model considers risk, which often goes un-noticed by most other models. The model starts
with determining objectives and constraints of the software at the start of one iteration. Next
phase is of prototyping the software. This includes risk analysis. Then one standard SDLC
model is used to build the software. In the fourth phase of the plan of next iteration is prepared.
The whole development process is completed in the 4 phases. The spiral model has four
phases in a spiral:
• Planning: The requirements are collected from the clients. Feasibility study is done in
this phase. It includes cost estimation, schedule, objectives are defined and other
resources for the iteration to develop a software project.
• Risk analysis: In the second phase of development, risks are identified and find
different solutions to remove risks. If any risk is found out during the phase, then
alternate solutions are designed and implemented the best way among them.
• Development and testing: After risk analysis phase is completed, the software product
is developed and tested at the end of each iteration so there is development and testing
applied at same phase.
• Evaluation: In the last phase, the feedback is taken from the customer and evaluate the
developed project after completion of each iteration. To carry on next iteration,
evaluation phase is completed.
Advantages of Spiral Model:
• Team leader must to do work with developers to complete the work on time.
• Customer involvement are needed.
• There is no reusable component are used to lead the failure of the project.
• This model works only when the requirements are clearly specified.
• This model can be more complex if prototype is refined again and again.
• RAD model is not suitable for the short projects.
• Communication: XP has a culture of oral communication and its practices are designed
to encourage interaction.
• Simplicity: Design the simplest product that meets the customer’s needs. An important
aspect of the value is to only design and code what is in the current requirements rather
than to anticipate and plan for unstated requirements.
• Feedback: The development team obtains feedback from the customers at the end of
each iteration and external release. This feedback drives the next iteration.
• Courage: Allow the team to have courage in its actions and decision making. For
example, the development team might have the courage to resist pressure to make
unrealistic commitments.
• Respect: Team members need to care about each other and about the project.
The life cycle of XP consists of five phases:
• Exploration:
o The customers write out the story cards that they wish to be included in the first
release
o At the same time the project team familiarize themselves with the tools, technology
and practices they will be using in the project
o He exploration phase takes between a few weeks to a few months, depending largely
on how familiar the technology is to the programmers
• Planning:
o User’s stories are written
o Estimate the effort of working with the user stories
o Priorities are given to the user stories to be implemented
o Release planning creates the release schedule
• Iterations to Release:
o Includes several iterations of the systems before the first release
o Each take one to four weeks to implement
o The first iteration creates a system with the architecture of the whole system.
o This is achieved by selecting the stories that will enforce building the structure for the
whole system
o The customer decides the stories to be selected for each iteration
o At the end of the last iteration the system is ready for production
• Productionizing:
o Requires extra testing and checking of the performance of the system before the
system
o can be released to the customer
o New changes may still be found and the decision has to be made if they are included
in the
o current release
o The iterations may need to be quickened from three weeks to one week
o The postponed ideas and suggestions are documented for later implementation
• Maintenance and Death:
o After the first release is productionized for customer use, the XP project must both
keep
o the system in the production running while also producing new iterations
o Requires an effort also for customer support tasks
o Development velocity may decelerate after the system is in production
o May require incorporating new people into the team and changing the team structure
XP - PRACTICES:
• Simple design: The emphasis is on designing the simplest possible solution that is
implementable at the moment
• Testing: Software development is test driven. Unit tests are implemented continuously
• Refactoring: Restructuring the system by removing duplication, improving
communication, simplifying and adding flexibility
• Collective ownership: Anyone can change any part of the code at any time
• Pair programming:
o Two people write the code at one computer.
o One programmer, the driver, has control of the keyboard/mouse and actively
implements the program. The other programmer, the observer, continuously
observes the work of the driver to identify tactical defects (syntactic, spelling, etc.)
and also thinks strategically about the direction of the work.
o Two programmers can brainstorm any challenging problem. Because they
periodically switch roles.
• Continuous integration: A new piece of code is integrated into the code-base as soon
as it is ready.
• 40-hour week: A maximum of 40-hour working week
What is Scrum?
Ans: Scrum is a framework within which people can address complex adaptive problems, while
productively and creatively delivering products of the highest possible value.
Scrum is not a process or a technique for building products; rather, it is a framework within
which you can employ various processes and techniques. Scrum makes clear the relative
efficacy of your product management and development practices so that you can improve.
• Pre-game:
o Planning: A Product Backlog list is created, Definition of the system being
developed, project team, tools, controlling issues, training needs and verification
management approval.
o Architecture: A design review meeting is held, Backlog items are identified, The
high level design of the system including the architecture is planned
• Development (game phase): This phase is treated as a "black box" where the
unpredictable is expected
• Post-game: This phase is entered when an agreement has been made such as the
requirements are completed. In this case, no more items and issues can be found nor
can any new ones be invented.
SCRUM PRACTICES
• Scrum Master: Scrum Master is responsible for ensuring that the project
• Product Owner: Product Owner is officially responsible for the project
• Scrum Team: Scrum Team is the project team that has the authority to decide on the
necessary actions and to organize itself in order to achieve the goals of each Sprint.
• Customer: Customer participates in the tasks related to product Backlog items for the
system being developed or enhanced.
• Management: Management is in charge of final decision making
• Project Manager
• Chief Architect
• Class Owners
• Domain Experts
• Chief Programmers
FDD Supporting Roles