"V" Model: Requirements Acceptance Testing
"V" Model: Requirements Acceptance Testing
"V" Model: Requirements Acceptance Testing
Architectural
Design Integration Testing
Coding
Test Software
Requirements
Build Software
Acceptance Testing
Operate and
Test Software
Maintain Software
Installation
Evalutate Test
Effectiveness
A. Volume Testing - seeks to verify the physical and
logical limits to a system's capacity and ascertain whether such limits are acceptable to meet the
projected capacity of the application's required processing.
A. The purpose of Volume Testing is to find
weaknesses
in the system with respect to its handling of large amounts of data, server requests, etc.
B. Security
i. Protecting access to your organization’s technology assets.
C. Privacy
i. Ensuring customer’s confidential data is not compromised.
D. Client server.
i. Identifying risks of distributed processing.
ii. Distributed Processing - Refers to any of a variety of computer
systems that use more than one computer, or processor, to run
an application. This includes parallel processing, in which a
single computer uses more than one CPU to execute programs.
More often, however, distributed processing refers to local-
area networks (LANs) designed so that a single program can
run simultaneously at various sites. Most distributed
processing systems contain sophisticated software that detects
idle CPUs on the network and parcels out programs to utilize
them.
F. E-Commerce.
i. Brochure ware, storefront, or a selling channel.
ii. Brochure ware - A website that is little more than a corporate
brochure, video, or other corporate media.
iii. Storefront - The software you use to build and manage your
online store is critical to the overall success of your e-
commerce venture. Your customers will want easy navigation
of your product catalog, all the modern features of a shopping
cart system, a simple check-out process, flexible payment
options and clear confirmation that their order has been
received.
G. E-Business.
i. A new business strategy built around demand and trust.
ii. eBusiness is an interaction with business partners, where the
interaction is enabled by information technology. This is an
accurate definition, but doesn't give us much insight into the
excitement surrounding eBusiness and eCommerce.
iii. It is the information technology available to "enable" business
transactions electronically
A. Integrity Checkers
B. Virus Detection
C. War Dialing
A. There are several software packages available (see Appendix C) that allow
hackers and network administrators to dial large blocks of phone numbers in search
of available modems. This process is called war dialing. A computer with four
modems can dial 10,000 numbers in a matter of days. Certain war dialers will even
attempt some limited automatic hacking when a modem is discovered. All will
provide a report on the .discovered. numbers with modems.
Documentation Stage
Curtain Raiser
Like any other set of engineering products, software products are also oriented towards
the customer. It is either market driven or it drives the market. Customer Satisfaction
was the buzzword of the 80's. Customer Delight is today's buzzword and Customer
Ecstasy is the buzzword of the new millennium. Products that are not customer or user
friendly have no place in the market although they are engineered using the best
technology. The interface of the product is as crucial as the internal technology of the
product.
Market Research
A market study is made to identify a potential customer's need. This process is also
known as market research. Here, the already existing need and the possible and potential
needs that are available in a segment of the society are studied carefully. The market
study is done based on a lot of assumptions. Assumptions are the crucial factors in the
development or inception of a product's development. Unrealistic assumptions can cause
a nosedive in the entire venture. Though assumptions are abstract, there should be a move
to develop tangible assumptions to come up with a successful product.
The Sales & Marketing division starts selling the software to the available customers
and simultaneously works to develop a niche segment that could potentially buy the
software. In addition, the division also passes the feedback from the customers to the
developers and the R&D division to make possible value additions to the product.
While developing a software, the company outsources the non-core activities to other
companies who specialize in those activities. This accelerates the software development
process largely. Some companies work on tie-ups to bring out a highly matured product
in a short period.
The following are some basic popular models that are adopted by many software
development firms
This is also known as Classic Life Cycle Model (or) Linear Sequential Model (or)
Waterfall Method. This model has the following activities.
As software is always of a large system (or business), work begins by establishing the
requirements for all system elements and then allocating some subset of these
requirements to software. This system view is essential when the software must interface
with other elements such as hardware, people and other resources. System is the basic
and very critical requirement for the existence of software in any entity. So if the system
is not in place, the system should be engineered and put in place. In some cases, to
extract the maximum output, the system should be re-engineered and spruced up. Once
the ideal system is engineered or tuned, the development team studies the software
requirement for the system.
2. Software Requirement Analysis
This process is also known as feasibility study. In this phase, the development team
visits the customer and studies their system. They investigate the need for possible
software automation in the given system. By the end of the feasibility study, the team
furnishes a document that holds the different specific recommendations for the
candidate system. It also includes the personnel assignments, costs, project schedule,
target dates etc.... The requirement gathering process is intensified and focussed specially
on software. To understand the nature of the program(s) to be built, the system engineer
or "Analyst" must understand the information domain for the software, as well as
required function, behavior, performance and interfacing. The essential purpose of this
phase is to find the need and to define the problem that needs to be solved .
In this phase, the software development process, the software's overall structure and its
nuances are defined. In terms of the client/server technology, the number of tiers needed
for the package architecture, the database design, the data structure design etc... are all
defined in this phase. A software development model is thus created. Analysis and
Design are very crucial in the whole development cycle. Any glitch in the design phase
could be very expensive to solve in the later stage of the software development. Much
care is taken during this phase. The logical system of the product is developed in this
phase.
4. Code Generation
The design must be translated into a machine-readable form. The code generation step
performs this task. If the design is performed in a detailed manner, code generation can
be accomplished without much complication. Programming tools like compilers,
interpreters, debuggers etc... are used to generate the code. Different high level
programming languages like C, C++, Pascal, Java are used for coding. With respect to
the type of application, the right programming language is chosen.
5. Testing
Once the code is generated, the software program testing begins. Different testing
methodologies are available to unravel the bugs that were committed during the previous
phases. Different testing tools and methodologies are already available. Some companies
build their own testing tools that are tailor made for their own development operations.
6. Maintenance
The software will definitely undergo change once it is delivered to the customer. There
can be many reasons for this change to occur. Change could happen because of some
unexpected input values into the system. In addition, the changes in the system could
directly affect the software operations. The software should be developed to
accommodate changes that could happen during the post implementation period.
Back to top
B. Prototyping Model
This is a cyclic version of the linear model. In this model, once the requirement analysis
is done and the design for a prototype is made, the development process gets started.
Once the prototype is created, it is given to the customer for evaluation. The customer
tests the package and gives his/her feed back to the developer who refines the product
according to the customer's exact expectation. After a finite number of iterations, the final
software package is given to the customer. In this methodology, the software is evolved
as a result of periodic shuttling of information between the customer and developer.
This is the most popular development model in the contemporary IT industry. Most of
the successful software products have been developed using this model - as it is very
difficult (even for a whiz kid!) to comprehend all the requirements of a customer in one
shot. There are many variations of this model skewed with respect to the project
management styles of the companies. New versions of a software product evolve as a
result of prototyping.
Back to top
The RAD modelis a linear sequential software development process that emphasizes an
extremely short development cycle. The RAD model is a "high speed" adaptation of the
linear sequential model in which rapid development is achieved by using a component-
based construction approach. Used primarily for information systems applications, the
RAD approach encompasses the following phases:
1. Business modeling
The information flow among business functions is modeled in a way that answers the
following questions:
2. Data modeling
The information flow defined as part of the business modeling phase is refined into a set
of data objects that are needed to support the business. The characteristic (called
attributes) of each object is identified and the relationships between these objects are
defined.
3. Process modeling
The data objects defined in the data-modeling phase are transformed to achieve the
information flow necessary to implement a business function. Processing the descriptions
are created for adding, modifying, deleting, or retrieving a data object.
4. Application generation
The RAD model assumes the use of the RAD tools like VB, VC++, Delphi etc... rather
than creating software using conventional third generation programming languages. The
RAD model works to reuse existing program components (when possible) or create
reusable components (when necessary). In all cases, automated tools are used to facilitate
construction of the software.
Since the RAD process emphasizes reuse, many of the program components have already
been tested. This minimizes the testing and development time.
Back to top
Back to top
Conclusion
All these different software development models have their own advantages and
disadvantages. Nevertheless, in the contemporary commercial software evelopment
world, the fusion of all these methodologies is incorporated. Timing is very crucial in
software development. If a delay happens in the development phase, the market could be
taken over by the competitor. Also if a 'bug' filled product is launched in a short period of
time (quicker than the competitors), it may affect the reputation of the company. So, there
should be a tradeoff between the development time and the quality of the product.
Customers don't expect a bug free product but they expect a user-friendly product. That
results in Customer Ecstasy!
V model
Coding
The SDLC begins with the identification of requirements for software and
ends with the formal verification of the developed software against those
requirements. In between we have design, planning, coding and testing.
In which order they should performed will depended on the process model that we
follow.