Skip to content

Advanced Software Engineering

Definition of Software Engineering

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines”

(Pressman. 1992).

Software Engineering Principles

  • Adopt Project Management
  • Apply Measurements
  • Apply well defined and repeatable methods
  • Utilise standard components

Economical Software

  • ‘Get it Right First time’
  • Reduce Risk
  • Use a quality approach
  • Encourage reuse
  • Understand the process of developing software

Reliable and Efficient Software

  • Introduce methods to measure software performance and attributes
  • Monitor the software performance
  • Tailor the software to the hardware it will run on
  • Apply appropriate software to appropriate systems

Real Machines

  • Concentrate development process
  • Allow for future expansion
  • Do not neglect the different platforms of computer systems
  • Match the performance of the software to the requirements

Risk

Two Main Factors that Comprise Risk

  1. likelihood of occurrence (Probability).
  2. Consequence of occurrence (impact).

Risk = Probability X Impact

Boehm’s “Top 10 risk items”

  • Personnel shortfalls
  • Unrealistic schedules and budgets
  • Developing wrong functions
  • Developing wrong user interface
  • Gold plating
  • Changing requirements
  • Shortfalls in externally produced components
  • Shortfalls in externally performed tasks
  • Real-time Performance inadequacies
  • Straining CS [computing] capabilities

The General Risk Management Framework

  • Goal definition
  • Risk identification
  • Risk impact and probability evaluation
  • Risk prioritisation
  • Modelling risk relationships
  • Mitigation and contingency planning
  • Allocating and monitoring budget levels
  • Continual risk monitoring

Software Measurement

What is measurement?

“Measurement is the process by which number or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules.” (Fenton, 1991)

Why Measure?

Developers use measurements to evaluate their progress towards completion.

Managers use measurement to assess project health and progress towards milestones.

Customers use measurements to determine quality and functionality of systems.

Maintainers Use measurement for decisions on reusability and reengineering.

The Goal Question Metric (GQM)

The goal question metric paradigm can be split into four steps:

  1. Identify the goals, questions and metrics
  2. Plan the measurement
  3. Measure
  4. Analyse and interpret the data

Step 1: Identify the Goals, Questions and Metrics

The Goal Template

Purpose: To [characterise, evaluate, predict, motivate, etc] the [process, product, model, metric] in order to [understand, manage, assess, engineer, learn, improve, etc] it.


Perspective : Examine the [cost, effectiveness, correctness, defects, changes, product measures, etc] from the viewpoint of the [developer, manager, customer].


Environment: The environment consists of the following factors: process(es), people, problem, methods, tools, constraints, etc.

Questions

Questions is the hardist part of the GQM, the aim of the questions is to clarify and defing the attributes of the entities. It is more practical to split the Goals into sub- goals to make it easier to make questions.

Metrics

One or many metrics may be required for one question. This step is not as hard as finding questions for goals but it is not automatic either. There are many factors that influence metrics and some are:

  • The way the metric will be used in feedback
  • The collection feasability
  • Development practices
  • Etc.

Step 2: Plan the Measurement

Priorities Metrics

Consider the following when priorities:

  • Cost to collect and analyse
  • Benefit to be gained
  • Probability of success


Consider the following when planning for each metric:

  • The collection Technique
  • Data Validation

Step 3: Measuring

This is the physical action of measuring and recording

Step 4: Analysis and Interpretation

Here the original goals must be reviewed in light of the measurements we have taken. After doing this, it may be required to rework the goals and start the GQM process again like a cycle.

Basic Measurement Theory

There are several points on a scale of measurement and they are:

Nominal scale

This is where we measure by sorting items into categories.


Ordinal scale

This is where we measure by Ranking each Item.


Interval scale

This is where we measure using marks equal distances between one point to another, like temperature.


Ratio scale

This is where we introduce proportions when measuring.


Absolute scales

This scale involves entities that are simple counted.

Cyclomatic Complexity

Cyclomatic Complexity is the number or independent paths through a program module. It is used to measure the complexity of the software program.

There are three different ways to calculate the Cyclomatic Complexity of a module and they are:

  • The number of simple decisions + 1
  • The number of enclosed spaces +1
  • The number of edges minus the number of nodes +1

Drawing a flow chart of the module makes it easier to work out the Cyclomatic Complexity.

Past Exam Questions

Exam 1

Exam 2

Exam 3

Exam 4