Upload
arron-small
View
214
Download
2
Embed Size (px)
Citation preview
LESSON 3
Properties of Well-Engineered Software
•The attributes or properties of a software product are
characteristics displayed by the product once it is installed or
put into use.
•These are not the services provided by the product. Rather, they are
concerned with the product’s dynamic behaviour and the use
made of the product.
•Examples of these attributes are efficiency, usability, maintainability,
reliability, portability and so on.
•Optimizing all of the attributes is difficult as some are restricted. For
example, the relationship between cost and improvements in
each of these attributes is not linear. Small improvements in
any of the attributes can be expensive.
Properties of Well-Engineered Software
• For some kind of systems, efficiency is a prime consideration.
The software may have to run on a computer where weight and
size considerations limit the power of the hardware which can be
used. It may have to run in a relatively small memory with no
associated disks. It may be necessary to optimize efficiency at
the expense of the other systems attributes.
• Almost all software, irrespective of application domain, must have
these characteristics.
Properties of Well-Engineered Software
1.Maintainability 2.
Dependability
3.Efficiency
4.Usability5.
Portability
6.Availability of
Documentation
Properties of Well-Engineered Software
It should be possible to evolve software to meet the changing
needs of customers.
Software maintainability is defined as the ease of finding and
correcting errors in the software. While there is as yet no
way to directly measure or predict software
maintainability, there is a significant body of knowledge
about software attributes that make software easier to
maintain. These include modularity, self (internal)
documentation, code readability, and structured coding
techniques. These same attributes also improve
sustainability (the ability to make improvements to the
software).
Properties of Well-Engineered Software
Software Dependability includes a range of characteristics
including reliability, security and safety.
Dependable software should not cause physical or economic
damage in the event of system failure.
It is often defined as the extent to which a program can be
expected to perform intended functions which required
precision over a given period of time.
It is also concerned with the detection and correction of errors
in the software; even more, it is concerned with
techniques to compensate for unknown software errors
and for problems in the hardware and data environments in
which the software must operate.
Properties of Well-Engineered Software
Software should not make wasteful use of system resources
such as memory and processor cycles.
Efficiency is the extent to which software uses minimum
hardware resources to perform its functions. There are
many other software qualities. Some of them will not be
important to a specific software system, thus no activities
will be performed to assess or improve them.
Maximizing some qualities may cause others to be decreased.
For example, increasing the efficiency of a piece of software
may require writing parts of it in assembly language. This
will decrease the transportability and maintainability of the
software.
Properties of Well-Engineered Software
This is the extent to which a product can be used by specified
users to achieve specified goals with effectiveness, efficiency
and satisfaction in a specified context of use.
Software should have an appropriate user interface and
adequate documentation.
Although developers would like to know what attributes to
incorporate in the code to reduce the effort required for use, it
is usually impossible to know how users will respond
until they have actually experienced use of a prototype system.
4 characteristics can be considered usable: Quick and easy to
learn; Efficient to use; Allows rapid recovery from errors; Easy
to remember.
Properties of Well-Engineered Software
Transportability is defined as the ease of transporting a given
set of software to a new hardware and/or operating
system environment.
Properties of Well-Engineered Software
Properly produced and maintained system documentation is a
tremendous aid to maintenance engineers.
System documentation includes all of the documents describing
the implementation of the system from the requirements
specification to the final acceptance test plan.