Research Area

Software Reliability

 Software reliability is the probability that software will provide failure-free operation in a fixed environment for a fixed interval of time. Probability of failure is the probability that the software will fail on the next input selected. Software reliability is typically measured per some unit of time, whereas probability of failure is generally time independent. These two measures can be easily related if you know the frequency with which inputs are executed per unit of time. Mean-time-to-failure is the average interval of time between failures; this is also sometimes referred to as Mean-time-before-failure.

 Possibly the greatest problem in the field of software reliability estimation has to do with the accuracy of operational profiles. Without accurate profiles, estimates will almost certainly be wrong! An operational profile is the probability density function (over the entire input space) that best represents how the inputs would be selected during the life-time of the software. There is nothing fancy about operational profiles; they are really just “guesses” about what inputs will occur in the future.

Software Process Modeling and Simulation

Software Process Modeling and Simulation is an enabling technology that enables users to predict impacts of process changes and technology insertions into processes without tying valuable resources to pilot projects. It has been used as a process managing support tool since the early 80’s in software engineering process (Abdal-Hamid & Stuart Madnick). Some of primary benefits from process simulation are as follows:

  • Process change/technology insertion experimentation via simulation (CMM5 KPA)
    - Trade-off analysis and process optimization
  • Quantitative evaluation of the software process (CMM- Level 4)
  • Effects of process strategies on cost, schedule, and quality

This technology can be applied to build re-usable, re-composeable, and re-configurable components for process segments or whole process in order to help their predictability on process improvement activities.

Software Six Sigma

 Six Sigma methodology was created by Motorola in the mid of 80’s and has been evolved from a lot of companies such as GE, Sun Microsystems, etc. It’s has been used for managing manufacturing, business, and IT processes. Recently, some of software development organizations in U.S. started to use six sigma methodologies (DMAIC, DMAIDV, etc) to accelerate and sustain continuous improvements in software development productivity and software product quality by applying six sigma tools (Project Charter, QFD, SPC, etc). These kinds of tools enable to manage the process and product with trustworthy metrics and characterize a stable software development process within an organization. A proper set of six sigma tools can be applicable to software development process management. Typically, 30-50% of software product development cost can be reduced by increasing quality and decreasing cycle time. It can also be applicable to any CMM level organization.

Software Product Line Scoping

 Product line scoping is product management activities for product lines. The main goal of scoping methods is to identify the products that will belong to the product line as well as to define their major features. There are at least three different forms of scoping [Bosch 2000b]:

  • Product portfolio scoping
  • Domain scoping
  • Asset scoping

 Product portfolio scoping aims at defining the products that should be developed as well as their key features. Domain scoping aims at defining the boundaries of a domain and closely corresponds to the classical project scoping. Asset scoping aims at identifying particular components to be developed for reuse.

Locations of visitors to this page