Saturday, 11 November 2017

Software Quality Factors

Software Quality Factors
The aim of the Software Developer  is to develop high-quality software within a specified time and budget. To achieve this, Software should be developed according to the user’s requirements and set of standards as expected.
Software is said to be of high quality if it is free from errors and is according to user requirements. In order to obtain the desired quality, factors commonly defined in ISO 9126 are followed.

Correctness: It means that software is free from design defects and from coding defects i.e. fault-free. The software developed meets its specified requirements. It is able to satisfy the user expectations.
Reliability: It means the ability of the program to perform a required function under some condition for a stated period of time.
Efficiency: It means that software performs all its functions with minimum use of computing resources.
Integrity: It means all the software is integrated together and cannot be accessed by unauthorized user.
Portability: It means that way by which software can be transferred from one computer system to another computer system.
Accuracy: A qualitative assessment of freedom from errors.
Robustness: It means that software can be able to operate correctly unless the introduction of invalid inputs.
Testability: The effort required to test the programs for their functionality.
Maintainability: The effort required to locate and fix an error in a program.
 Usability: Effort required in learning, operating, preparing input and interpreting output of a program.
Verifiability: It means to verify the software that it meets the user’s requirement or not.
User Friendliness: A software system is user friendly if it is easily used by the users.

Cost Estimation
n  Software cost estimation is the process of predicting the amount of effort required to build a software system.
n  Models provide one or more mathematical algorithms that compute cost as a function of a number of variables.
n  Size is a primary cost factor in most models and can be measured using lines of cods or function points.
n  Models used to estimate cost can be categorized as either cost model or constraint models.
n  COCOMO is an example of a cost model and SLIM is an example of a constraint model.
n  For a given set of requirements it is desirable to know how much it will cost to develop the software to satisfy the given requirement and how much time the development will take.
n  These estimates are needed before development is initiated.
    Factors affecting cost
n  Programmer ability
n  Product complexity
n  Product size
n  Available time
n  Level of technology
    Need for cost estimation
n  The primary reason for cost and schedule estimation is to enable the client or the developer to perform a cost benefit analysis and for project monitoring and control.
n  In bidding for the software projects where the developers must give cost estimates to a potential client for the development contract.
n  Techniques of Cost Estimation:
n  Estimation can be based on subjective opinion of some persons or  determine through the use of models.
n  1.Estimations based on subjective opinion :
n   Under the subjective Opinion three main techniques for estimation are:
n  a) Delphi technique
n  b)Proportionate task time method
n  c)Work breakdown structure
n  2.Estimation based on models:
n  1.Estimation based on subjective opinion
n  Delphi technique
n  a)This was developed by Rand Corporation in 1948 to obtain unbiased Estimates from experts.
n  b)Requirement analyses of modules are given to several project managers. The project managers can be briefed in a joint meeting.
n  The project managers are asked to submit their estimates for each task. They are not to consult each other.
n  After estimates are obtained graphical representation of frequency distribution is made.
n  In case of too much deviation from the mode, a meeting of all the estimators is called once again to explain the task involved and ask them to re-estimate. The process is repeated till consistent estimates are obtained.
 Advantages:
This technique reduces the risk involved in project management.
    Disadvantages:
n  Large number of specialists should be available in the organization, which cannot be possible in any organization.
n  This technique should be applied only when no other estimates are available in similar projects.
Proportionate Task Time Method (PTT):
n  in this method, model of relative proportion of different stages is used from similar projects.
n  To apply this method a databank of past projects costs should be built up and maintained from the actual cost from the life-cycle phases.
n  When a project is given for cost estimation this databank is referred to and a similar project is found out.
n  The cost of the present project is determined on the basis of past similar project taking into consideration the increase in productivity  of the progammer due to advancement in  the software used to develop the project.
     Advantages:
     This techniques is based on actual experience. Hence is more  reliable.
    Disadvantages :
     This techniques does not take into account factors like individual programmer productivity, individual machine performance etc.
    Work Breakdown Structure:
n  A product breakdown structure is a hierarchical chart that accounts for the individual parts of a system.
n  In this technique a project is broken down to individual modules and sub-modules.
Complexity level is associated with each one of them. Cost is estimated for each module and then totalled up for the entire project.
        Advantages:
       a) Most practical technique to estimate the cost required.
       b) Skill-levels required for each type of program can be estimated and hence for the project as a whole.
2.      Estimation based on models:
        COCOMO(The Constructive Cost Model)
        COCOMO is a hierarchy of software cost estimation models, which include basic, intermediate and detailed sub models.
        Basic models
n  This basic model aims at estimating in a quick and rough fashion, most of the small to medium sized software projects.
Three modes of software development are considered in this model i.e. organic, semi detached and embedded.
n  In the organic mode a small team of experienced programmers develops the software in a very familiar environment. The size of the software development in this mode ranges form small (a few KLOC) to medium (a few tens of KLOC), while in other modes the size ranges from (very large to a few hundreds of KLOC).
n  In the embedded mode of software development, the project has tight constraints, which might be related to the target processor and its interface with the associated hardware.  The problem to be solved is unique and so it is often hard to find experienced persons, as it does not usually exist.
n  The semi-detached mode is an intermediate mode between the organic mode and embedded. Depending on the problem at hand, the team might include a mixture of experienced and less experienced people with only a recent history of working together. The basic COCOMO equations take the form
E=a (KLOC)b
D=c (E)d
Where E is the effort applied in persons-months,and D is the development time in months.the coefficients are given as:
project
ab
bb
cb
db
organic
2.4
1.05
2.5
0.38
semidetached
3.0
1.12
2.5
0.35
embedded
3.6
1.10
2.5
0.32
Intermediate model
          The basic model allowed for a quick and rough estimate, but it resulted in a
Lack of accuracy.
          Boehm introduced an additional set of 15 predictors called cost drivers in the
Intermediate model to take account of the software development.
          Cost drivers are used to adjust the nominal cost of a project to the actual
Project environment,hence increasing the accuracy of the estimate.
The cost drivers are grouped into four categories:
 Product Attributes
a)Required software reliability (RELY)
b)Database size (DATA)
c)Product complexity (CPLX)
 Computer attributes
a)Execution time constraint (TIME)
b)Main storage constraint (STOR)
c)Virtual machine volatility (VIRT)
d)Computer turnaround time  (TURN)
 Personnel attributes
a)Analyst capability (ACAP)
b)Application experience (AEXP)
c)Programmer capability (PCAP)
d)Virtual machine experience (VEXP)
e)Programming language experience (LEXP)
 Project attributes
a)Modern programming practices (MODP)
b)Use of software tools (TOOL)
c)Required development schedule (SCED)
Each cost driver is rated for a given project environment…
The multiplying factors for all 15 cost drivers are multiplied to get the effort adjustment factor (EAF). Typical values for EAF range from 0.9 to 1.4
The intermediate COCOMO equations take the form:
Ei=ai(KLOC)bi
D=ci(E)di
  There fore
Total E=ai(kloc)bi *EAF
Detailed COCOMO model
n  A large amount of work has been done by Boehm to capture all significant aspects of a software development
n  It offers a means for processing all the project characteristics to construct a software estimate. The model introduce two more capabilites.
  1. Phase-sensitive effort multipliers:
       Some phases (design, programming, integration/test) are more affected than other by factors defined by the cost drivers. The detailed model provides a set of phase sensitive effort multipliers for each cost driver. This helps in determining the manpower allocation for each phase of the project.
  1. Three-level product hierarchy:
        three product levels are defined. These are modules, subsystem and system levels. The ratings of the cost drivers are done at appropriate level.
n  Development phases
         A software development is carried out in four successive phases: plans/requirements, product design, programming and integration
         /test.
  1. Plan/requirement:
n  This is the first phase of the development cycle.
n  The requirement is analyzed, the product plan is set up and a full product specification is generated.
n  This phase consumes from 6% to 8% of the effort and 10% to 40% of the development time.
n  These %ages depend not only on mode (organic, semi-detached or embedded), but also on size.
 2.    Product design
n  The second phase of the COCOMO development cycle is concerned with the determination of the product architecture and the specification of the subsystem.
n  This phase requires from 16% to 18% the nominal effort and can last from 19% to 38% of the development time.
3. Programming :
n  The third phase of the COCOMO development cycle is divided into two sub-phase: detailed design and code/unit test.
n  This phase requires from 48% to 68% of the effort lasts from 24% to 64% of the development time.
4. Integration/Test:
n  This phase of the COCOMO development cycle occurs before delivery.
n  This mainly consists of putting the tested parts together and then testing the final product.

n  This phase requires from16 %to 34% of the nominal effort and can last from 18% to 34% of the development time.

No comments:

Post a Comment