From Natural Language Requirements to Executable Models of Software Components.
Quality Management. What is a software product? Software product = computer programs (sources and...
-
Upload
leona-washington -
Category
Documents
-
view
216 -
download
2
Transcript of Quality Management. What is a software product? Software product = computer programs (sources and...
Quality Management
What is a software product?• Software product = computer programs (sources and
executable) + associated documentation• Software products may be – Custom - developed for a particular customer, according
to its specifications– Generic (“package”) - developed for a general market, to
be sold to a range of different customers• Types of software products– Business support software
• Includes software engineering tools in the software engineering business
– Personal productivity software• spreadsheets, word processing tools, …
– Embedded software– …
What is a software development process?• Is the definition of a set of activities whose goal is the development or
evolution of a software product – To be followed/instantiated in individual software development projects
• It’s the main business process in a software development business• Generic activities in all software processes are:
– Specification - what the system should do and its development constraints– Development - production of the software system– Validation - checking that the software is what the customer wants– Evolution - changing the software in response to changing demands
New or changedrequirements
(problem)
New or changed software product
(solution)
Software DevelopmentProcess
The importance of software• The economies of ALL developed nations are
dependent on software• More and more systems are software controlled– Including an increasing number of safety-critical and
mission-critical systems, with high demands on dependability
• More and more businesses depend on software for their success– Software and Information Systems are critical success
factors in an increasing number of businesses and organizations
• Software engineering expenditure (in the development and maintenance of software products) represents a significant fraction of GNP (Gross National Product) in all developed countries
what is product quality?
• Quality, simplistically, means that a product should meet its
specification
– The software product should deliver the required functionality
(functional requirements) with the required quality attributes (non–
functional requirements)
• This is problematical for software systems
– Tension between customer quality requirements (efficiency,
reliability, ...) and developer quality requirements (maintainability,
reusability, ...)
What is product quality?
– Some quality requirements are difficult to specify in an
unambiguous way
– Software specifications are usually incomplete and often
inconsistent
– The quality compromise: we cannot wait for specifications to
improve before paying attention to quality, and procedures must be
put into place to improve quality in spite of imperfect specification
• Quality attributes are frequently conflicting and increase development
costs, so there is a need for weighting and balancing
Software qualities ?
• Different users may have different opinions
about what constitutes software
quality(impossible to satisfy all the
stakeholders)
• Depending on a software project , some may
be important than others.
• Software qualities need to be identified ,
defined and classified
Correctness
Correctness is the degree to which the software
product performs the required functions
accurately.
Problem : it is possible to have correct software
for incorrect requirements as these
are rarely defined precisely
Reliability= Dependability
Reliability is the degree to which the software
product is trusted and believed in by the users
because it behaves well and in the way the users
expect( include correctness)
A reliable software may contain “known bugs”
Robustness
Robustness implies that the software is unlike to
fail or break.
Correctness + reliability + robustness define
whether the software product performs its
designated functions as expected
Performance
Usually performance relates to the response time
of the software system, it specify how long time the
user is prepared to wait for the system to respond
to the user´s request.
Usability
Usability relates to the user friendness of the
software, how easy it is for the users to make the
software work for them.
Usability is subjective property.
Usability is a feature of the UI design
UnderstandabilityEase with which internal structure and behaviour of the system is comprehended by the maintainer. Understandability is a condition for maintainability
Maintainability • Correcting software errors and deficiencies
( repairability )• Adapting software to new requirements• Perfecting the software to give it new qualities
Scalability
Ease with which the software can be scaled up or evolved in response to the growth in demand for its functionality.
Require clear , understandable architectural design.
Scalability diminishes with architecture deterioration during repair of the software
Understandability + maintability + scalability = supportability
Reusability
Defines the level to which the software components
can be used for construction of other products ( as
component of another product or framework to
create another product
Portability ( crucial)
Can software run on various hardware/software
platforms without any modifications or after
undergoing minor customization or
parameterization ?
Interoperability (open systems)
Crucial in software system , it defines the ability to coexist or work together with other software ( even non existant ones)