Upload
sailisurve424
View
217
Download
0
Embed Size (px)
Citation preview
8/13/2019 Quality Software
1/5
goryQuality
attributeDescription
sign
alities
Conceptual
Integrity
Conceptual integrity defines the consistency and coherence of the overall design. This
includes the way that components or modules are designed, as well as factors such as
coding style and variable naming.
Maintainability Maintainability is the ability of the system to undergo changes with a degree of ease.
These changes could impact components, services, features, and interfaces when adding
or changing the functionality, fixing errors, and meeting new business requirements.
Reusability Reusability defines the capability for components and subsystems to be suitable for use
in other applications and in other scenarios. Reusability minimizes the duplication of
components and also the implementation time.
n-time
alities
Availability Availability defines the proportion of time that the system is functional and working. It
can be measured as a percentage of the total system downtime over a predefined period
Availability will be affected by system errors, infrastructure problems, malicious attacks,
and system load.
Interoperability Interoperability is the ability of a system or different systems to operate successfully by
communicating and exchanging information with other external systems written and run
by external parties. An interoperable system makes it easier to exchange and reuse
information internally as well as externally.
Manageability Manageability defines how easy it is for system administrators to manage the applicatio
usually through sufficient and useful instrumentation exposed for use in monitoring
systems and for debugging and performance tuning.
Performance Performance is an indication of the responsiveness of a system to execute any action
within a given time interval. It can be measured in terms of latency or throughput.
Latency is the time taken to respond to any event. Throughput is the number of events
that take place within a given amount of time.
Reliability Reliability is the ability of a system to remain operational over time. Reliability is
measured as the probability that a system will not fail to perform its intended functions
over a specified time interval.
Scalability Scalability is ability of a system to either handle increases in load without impact on the
performance of the system, or the ability to be readily enlarged.
Security Security is the capability of a system to prevent malicious or accidental actions outside o
the designed usage, and to prevent disclosure or loss of information. A secure system
aims to protect assets and prevent unauthorized modification of information.
8/13/2019 Quality Software
2/5
Quality Software
Good software
Basically there are FOUR ( 4 ) attributes of a good software ... 1. Maintainability The software
should be written in a way that it can be evolve to meet changing needs of the customer . Sincethe change of needs ( requirement change of customer ) is unavoidable, this is a CRITICAL
ATTRIBUTE .2. DependabilityA software MUST be Trustworthy ( can we trust the software ? )
, Reliable , Safe andSecured ( are we secured using this software ? ) . Use of the software shouldnot be harmful to the customer in anyway ( even something goes wrong ) . Even at a system
failure, a dependable software
should NOT cause physical or economical damage . Also malicious users should not be able to
access or damage the system .3. EfficiencyA software should be efficient in everyway . The
software should not make wasteful of system resources ( ex. memory, processing cycles ) . Responsiveness
should be there, and the memory utilization should be minimum and also the processing time is a
consideration .4. AcceptabilityThe software must be acceptable to the group of users forwhich it's designed for . Software should be understandable , reliable and compatiblewith other systems they use .
Prototyping[edit]
Software prototyping,is the development approach of activities duringsoftware development,the creation
of prototypes, i.e., incomplete versions of the software program being developed.
The basic principles are:[2]
Not a standalone, complete development methodology, but rather an approach to handle selected
parts of a larger, more traditional development methodology (i.e. incremental, spiral, or rapid
application development (RAD)).
Attempts to reduce inherent project risk by breaking a project into smaller segments and providing
more ease-of-change during the development process.
tem
alities
Supportability Supportability is the ability of the system to provide information helpful for identifying
and resolving issues when it fails to work correctly.
Testability Testability is a measure of how easy it is to create test criteria for the system and its
components, and to execute these tests in order to determine if the criteria are met.Good testability makes it more likely that faults in a system can be isolated in a timely
and effective manner.
er
alities
Usability Usability defines how well the application meets the requirements of the user and
consumer by being intuitive, easy to localize and globalize, providing good access for
disabled users, and resulting in a good overall user experience.
http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=6http://en.wikipedia.org/wiki/Software_prototypinghttp://en.wikipedia.org/wiki/Software_prototypinghttp://en.wikipedia.org/wiki/Software_developmenthttp://en.wikipedia.org/wiki/Software_developmenthttp://en.wikipedia.org/wiki/Software_developmenthttp://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_developmenthttp://en.wikipedia.org/wiki/Software_prototypinghttp://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=68/13/2019 Quality Software
3/5
User is involved throughout the development process, which increases the likelihood of user
acceptance of the final implementation.
Small-scale mock-ups of the system are developed following an iterative modification process until
the prototype evolves to meet the users requirements.
While most prototypes are developed with the expectation that they will be discarded, it is possible in
some cases to evolve from prototype to working system.
A basic understanding of the fundamental business problem is necessary to avoid solving the wrong
problem.
Incremental development[edit]
Various methods are acceptable for combining linear and iterative systems development methodologies,
with the primary objective of each being to reduce inherent project risk by breaking a project into smaller
segments and providing more ease-of-change during the development process.
The basic principles are:[2]
A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small
part of a system, before proceeding to the next increment, or
Overall requirements are defined before proceeding to evolutionary, mini-Waterfall development of
individual increments of a system, or
The initial software concept, requirements analysis, and design of architecture and system core are
defined via Waterfall, followed by iterative Prototyping, which culminates in installing the final
prototype, a working system.
Recoverytesting is the forced failure of the software in a variety of ways to verify that recovery is properly
performed. Recovery testing should not be confused withreliability testing,which tries to discover the
specific point at which failure occurs.Recovery testing is basically done in order to check how fast and
better the application can recover against any type of crash or hardware failure etc
Robustness testingis any quality assurance methodology focused on testing the robustness of
software. Robustness testing has also been used to describe the process of verifying the robustness (i.e.
correctness) of test cases in a test process.
ANSIandIEEEhave defined robustness as the degree to which a system or component can function
correctly in the presence of invalid inputs or stressful environmental conditions
Boundary value analysis:
Its widely recognized that input values at the extreme ends of input domain cause more
errors in system. More application errors occur at the boundariesof input domain.
Boundary value analysis testing technique is used to identify errors at boundaries rather
than finding those exist in center of input domain
Alpha testing[edit]
http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=7http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=7http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=7http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/wiki/Reliability_testinghttp://en.wikipedia.org/wiki/Reliability_testinghttp://en.wikipedia.org/wiki/Reliability_testinghttp://en.wikipedia.org/wiki/ANSIhttp://en.wikipedia.org/wiki/ANSIhttp://en.wikipedia.org/wiki/IEEEhttp://en.wikipedia.org/wiki/IEEEhttp://en.wikipedia.org/wiki/IEEEhttp://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=25http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=25http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=25http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=25http://en.wikipedia.org/wiki/IEEEhttp://en.wikipedia.org/wiki/ANSIhttp://en.wikipedia.org/wiki/Reliability_testinghttp://en.wikipedia.org/wiki/Software_development_methodology#cite_note-CMS08-2http://en.wikipedia.org/w/index.php?title=Software_development_methodology&action=edit§ion=78/13/2019 Quality Software
4/5
Alpha testing is simulated or actual operational testing by potential users/customers or an independent
test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of
internal acceptance testing, before the software goes to beta testing.[35]
Beta testing[edit]
Beta testing comes after alpha testing and can be considered a form of external user acceptance testing.Versions of the software, known asbeta versions,are released to a limited audience outside of the
programming team. The software is released to groups of people so that further testing can ensure the
product has few faults orbugs.Sometimes, beta versions are made available to the open public to
increase thefeedbackfield to a maximal number of future users
Rapid application development(RAD) is asoftware development methodologythat uses minimal
planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with
writing the software itself. The lack of extensive pre-planning generally allows software to be written muchfaster, and makes it easier to change requirements.
1. Requirements Planning phasecombines elements of the system planning and systems
analysis phases of theSystems Development Life Cycle(SDLC). Users, managers, and IT staff
members discuss and agree on business needs, project scope, constraints, and system
requirements. It ends when the team agrees on the key issues and obtains management
authorization to continue.
2. User design phaseduring this phase, users interact with systems analysts and develop
models and prototypes that represent all system processes, inputs, and outputs. The RAD
groups or subgroups typically use a combination of Joint Application Development (JAD)
techniques and CASE tools to translate user needs into working models. User Designis a
continuous interactive process that allows users to understand, modify, and eventually approve a
working model of the system that meets their needs.
3. Construction phasefocuses on program and application development task similar to the
SDLC. In RAD, however, users continue to participate and can still suggest changes or
improvements as actual screens or reports are developed. Its tasks are programming and
application development, coding, unit-integration and system testing.
4. Cutover phaseresembles the final tasks in the SDLC implementation phase, including data
conversion, testing, changeover to the new system, and user training. Compared with traditional
methods, the entire process is compressed. As a result, the new system is built, delivered, and
placed in operation much sooner.Advantages
Flexible and adaptable to changes
Can handle large projects without a doubt
RAD realizes an overall reduction in project risk
RAD realizes an overall reduction in project risk.
http://en.wikipedia.org/wiki/Software_testing#cite_note-35http://en.wikipedia.org/wiki/Software_testing#cite_note-35http://en.wikipedia.org/wiki/Software_testing#cite_note-35http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=26http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=26http://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=26http://en.wikipedia.org/wiki/User_acceptance_testinghttp://en.wikipedia.org/wiki/User_acceptance_testinghttp://en.wikipedia.org/wiki/User_acceptance_testinghttp://en.wikipedia.org/wiki/Beta_versionhttp://en.wikipedia.org/wiki/Beta_versionhttp://en.wikipedia.org/wiki/Beta_versionhttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Feedback#In_organizationshttp://en.wikipedia.org/wiki/Feedback#In_organizationshttp://en.wikipedia.org/wiki/Feedback#In_organizationshttp://en.wikipedia.org/wiki/Software_development_methodologyhttp://en.wikipedia.org/wiki/Software_development_methodologyhttp://en.wikipedia.org/wiki/Software_development_methodologyhttp://en.wikipedia.org/wiki/Systems_Development_Life_Cyclehttp://en.wikipedia.org/wiki/Systems_Development_Life_Cyclehttp://en.wikipedia.org/wiki/Systems_Development_Life_Cyclehttp://en.wikipedia.org/wiki/Systems_Development_Life_Cyclehttp://en.wikipedia.org/wiki/Software_development_methodologyhttp://en.wikipedia.org/wiki/Feedback#In_organizationshttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Beta_versionhttp://en.wikipedia.org/wiki/User_acceptance_testinghttp://en.wikipedia.org/w/index.php?title=Software_testing&action=edit§ion=26http://en.wikipedia.org/wiki/Software_testing#cite_note-358/13/2019 Quality Software
5/5
Generally Rad incorporates short development cycles (According to the wiki.answer.com)