Lecture Notes 3 Flashcards
A structured set of activities required to develop a software system.
software process
an abstract representation of a process. It
presents a description of a process from some particular perspective.
software process model
different software processes
Specification
Design and Implementation
Validation
Evolution
defining what the system should do.
Specification
defining the organization of the system and
implementing the system.
Design and Implementation
checking that it does what the customer wants.
Validation
which reflect the responsibilities of the people involved in
the process;
Roles,
changing the system in response to changing customer needs.
Evolution
which are the outcomes of a process activity;
Products,
which are statements that are true before
after a process activity has been enacted or a product produced.
Pre- and post-conditions,
are processes where all of the process
activities are planned in advance and progress is measured against
this plan.
❑Plan-driven processes
most practical processes include elements of both plan-
driven and agile approaches.
❑In practice,
planning is incremental and it is easier to change
the process to reflect changing customer requirements.
❑In agile processes,
❑There are no right or wrong software processes.
true
is a sequential design used in software
development process, in which progress is seen as flowing
steadily downwards.
Waterfall model
Separate and distinct phases of
specification and development.
❑Plan-driven model.
Why waterfall?
Because of the way if falls down
Sequential phases of Waterfall model
❑Requirement Gathering and analysis:
❑System Design:
❑Implementation:
❑Integration and Testing:
❑Deployment of system:
❑Maintenance:
All possible requirements of
the system to be developed are captured in this phase and
documented in a requirement specification doc.
❑Requirement Gathering and analysis:
The requirement specifications from first phase are
studied in this phase and system design is prepared. System Design
helps in specifying hardware and system requirements and also helps
in defining overall system architecture.
❑System Design:
With inputs from system design, the system is first
developed in small programs called units, which are integrated in the
next phase. Each unit is developed and tested for its functionality
which is referred to as Unit Testing.
❑Implementation:
All the units developed in the
implementation phase are integrated into a system after testing of
each unit. Post integration the entire system is tested for any faults and
failures.
❑Integration and Testing:
Once the functional and non functional
testing is done, the product is deployed in the customer environment
or released into the market.
❑Deployment of system:
There are some issues which come up in the client
environment. To fix those issues patches are released. Also to enhance
the product some better versions are released. Maintenance is done to
deliver these changes in the customer environment.
❑Maintenance:
- The next phase is started only after the defined set of goals are
achieved for the previous phase and it is signed off. - In this model phases do not overlap.
- Phases are processed and completed one at a time.
- Works well for smaller projects where requirements are very
well understood.
waterfall model
Water sluice separates the important aspects from the less important
and concentrate on solving them first.
true
combines the structure of the waterfall methodology and
the flexibility of the spiral methodology by enforcing the prioritization of
activities.
Water sluice model
Dr. Ron Burback
Water sluice model
Phases of water sluice model
❑Analysis Phase:
❑Design Phase:
❑Implementation Phase:
❑Testing Phase:
This phase is to know what the user wants; it
understands the user’s needs and defines the requirement of the user.
Therefore, this phase defines the goals of the project undertaken.
❑Analysis Phase:
Design phase accepts the data from the analysis phase
and converts it into an architecture, which defines the components
and its behavior. This phase establishes the plans of the project.
❑Design Phase:
In this phase, the data from the analysis
phase and the architecture from the design phase are taken. In this
phase, the components are built. This phase does the coding work.
❑Implementation Phase:
The testing is done after the completion of the
implementation phase. This phase improves the quality of the product.
In this phase, a completed working condition product is set under
testing. Before giving to the end user, the product is kept under
different types of physical and logical testing.
❑Testing Phase:
in water sluice model, priorities are evaluated and those activities that are
considered most valuable are completed first
true
unifies a software team by providing a common view of the
development process and a shared vision of a common goal.
Rational unified model
Phases Rational unified model
❑Inception Phase
❑Elaboration Phase
❑Construction Phase
❑Transition Phase
define the scope of project
❑Inception Phase
specify requirements in greater detail and define the architecture for the
system.
❑Elaboration Phase
develop the application to the point where it is ready for deployment.
❑Construction Phase
deliver the system into production
❑Transition Phase
Rational unified model
Less time is required for integration as the process of integration
goes on throughout the software development life cycle.
true
way to manage a project by breaking it up into several phases.
Agile methodology
▪ Group of software development methodologies based on iterative development.
Agile methodology
▪ This means that everyone on the team knows what is going on and, if problems arise, can re-plan short-term work to cope with them.
Agile methodology
Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.
true
▪ Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods:
o Focus on the code rather than the design
o Are based on an iterative approach to software development
o Are intended to deliver working software quickly and evolve this quickly to meet changing requirements.
▪ The aim of agile methods is to ______ ________in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
reduce overheads
Customers should be closely involved throughout the development
process. Their role is provide and prioritize new system requirements
and to evaluate the iterations of the system.
Customer involvement
The software is developed in increments with the customer specifying the requirements to be included in each increment.
Incremental delivery
The skills of the development team should be recognized and exploited.
Team members should be left to develop their own ways of working
without prescriptive processes.
People not process
Expect the system requirements to change and so design the system to accommodate these changes.
Embrace change
Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate
complexity from the system.
Maintain simplicity
▪Product development where a software company is developing a
small or medium-sized product for sale.
Agile methodology applicability
clear commitment from the customer to become involved in the
development process and where there are not a lot of external rules
and regulations that affect the software.
Agile methodology applicability