You are on page 1of 31

3/6/2012

INTRODUCTION to SOFTWARE ENGINEERING RESEARCH

Today
What is Software Engineering?
Software Engineering and Science

Methods of Software Engineering Software Engineering Research


Example Software architecture

3/6/2012

What is Software Engineering?


Software engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after gone into use. Ian Sommerville, Software Engineering We need further explanation of:
Engineering discipline All aspects of software production

Engineering
Engineers make the things work Solving problems understand the problem analyze the problem Find solutions Constructing the solution from parts that address the problem's various aspects - do a synthesis To achieve the goal engineers apply theories, methods and tools from different disciplines Search for solutions even when there is not theory or methods

3/6/2012

Science vs. Engineering


Science
study what things are like Study of existing object & phenomena

Engineering
to make it possible to construct new objects Study on how to do things & how to create new objects

Analysis of a problem

3/6/2012

The synthesis

Engineering Example the Vasa Ship


A master piece of work!
1625 King Gustav II Adolf decided to start build Wasa 1628 - maiden voyage.

Length- 69 metres
Maximum width - 11.7 metres From keel to the top of the main mast - 52.5 metres Height of the stern - 19.3 metres Crew: 445 men, Seamen 145, Soldiers 300 Thousands of people involved in the project Selecting wood, building different parts Providing food, other services

3/6/2012

Vasa Example of Bad Engineering


the ship capsized on her maiden voyage in the harbor of Stockholm.

Why did the Vasa capsize?

Why did the Vasa capsize?


The Vasa capsized because it was not stable; The Vasa capsized because
the methods for calculating stability were not known or the building process (or in terms of software engineering, the development project) was inadequate.

3/6/2012

How to calculate stability?

3/6/2012

The ship stability

Why did Vasa capsize?


Engineering
Solve problems even when there is no formal theory Experience best practices Observations Rules of thumb Processes to ensure the feasibility of problem solving

3/6/2012

Other reasons why Vasa capsized?


Resource & budget plan. The project was delayed and in its later phases, there was enormous pressure to finish work on time. Project management. The main builder (or in modern terms, the project manager) unfortunately sickened and died during the building of the ship, and the consequence was weak management and very poor coordination of the groups building different parts. Changes in requirements. The original requirement for one gun deck was changed to two gun decks when the building of the ship had already begun. Because the king was behind the decision, its possible consequences were not analyzed.

Other reasons why Vasa capsized?


Conflicting requirements and trade-off analysis. The Vasa was intended to be a new type of ship combining superior sailing characteristics and maneuverability with overwhelming striking force. Design changes during the construction. The dimensions of the ship were changed several times during its construction with no proper analysis of the consequences. Scalability. Vasa was designed as a smaller ship, and its dimensions were merely proportionally increased. Validation. The stability and other tests were primitive and not well performed. (Test: running across the deck)

3/6/2012

Vasa Disaster Similar to Software Projects


Similar situation in software development project
No formal/theoretical background for requirements and solution Feasibility of the requirements not analyzed Changes in requirements during the project work Time and Budget not properly planned No proper verification/validation Bad quality assurance Shortage in knowledge in new disciplines

Engineering vs. Software Engineering


Many similarities
Methods and procedures Similar objectives and goals

Many differences
Difference between software and hardware/the real world
Software no physical limits Not visible Modifiable More complex

Different theories and methods used Different experiences, traditions Different maturity level

3/6/2012

Computer Science vs. Soft Eng.

CS vs. SE

10

3/6/2012

Nature of SE Research
SE research studies the real-world phenomena of SE and concerns 1. the development of new, or modification of existing, technologies to support SE activities, 2. the evaluation and comparison of the effect of using such technology

Methods & Techniques

11

3/6/2012

SE Body of Knowledge

SWEBOK

12

3/6/2012

SWEBOK

Research topics in SE

Cai K-Y & Card D. 2008. An analysis of research topics in software engineering 2006, The Journal of Systems and Software 81, pp. 1051-1058

13

3/6/2012

Research Topics in SE

What is then SE Research?


Analyzing natures of problems and their solutions Finding more general principles that SE can use Developing methods and tools Implementing principles on new problem domains

14

3/6/2012

SE Research Lifecycle
What is the SE research lifecycle Different research methods used in SE research.
Exemplified by Software Architecture

Research Model- Different phases in Research Lifecycle

15

3/6/2012

16

3/6/2012

17

3/6/2012

18

3/6/2012

19

3/6/2012

SE Research Model
Questions real-world problem Real-World Validation Task 2 Does the result help Solution to to solve the practical problem Practical problem Objectives - to solve practical problem practical problem & to increase software quality Strategy to set researchable Results solution for idealized problem problem Real-World Validation Task 1 Does the product solve Idealized problem the idealized problem? or researchable problem Research Setting Research setting Solution to idealized problem & can increase quality

Research Products - technique, method, model, tool, system etc.

SE Research Process

20

3/6/2012

Types of Research Questions

Examples of Research Questions about SW Structure

21

3/6/2012

Examples of SW Architecture Research Questions

Research Strategy

22

3/6/2012

Types of Research Results

Examples of SW Architecture Research Results

23

3/6/2012

Research Objectives

Types of Research Validation

24

3/6/2012

Examples of SW Architecture Research Validation

Complete Research Results

25

3/6/2012

No-Nos for SE Research

Building Block for Research

26

3/6/2012

A Common Plan

A Common, but BAD Plan

27

3/6/2012

The Other Good Plans

Research Method

Blum Beyond Programming, 1996

28

3/6/2012

Research Methods vs. Development Methods

Marcos SE Research vs sw Development, 2005

Wrong SE Research Methodology


1. 2. 3. 4. 5. 6. 7. Poor Understanding the lack of attention to the understanding aspect of theory Understanding of Concept - ignore definition of certain basic concepts of software Contradictory Hypotheses in Use - ignoring the understanding aspect of our theories may lead to an unacceptable situation Understanding and Control- when we cannot measure, we cannot really control Poor Testing - almost no controlled test or no test at all to verify hypotheses Blind Belief on Experts - dangerous if we can accept theory without verifying if it has been borne out or not Causality Unjustified- When methods are proposed with experimental tests, the situation is not really better, in most cases

Xia Whats Wrong with SE Research Methodology, 1996

29

3/6/2012

Wrap up

Wrap up

30

3/6/2012

Acknowledgement

Formulation of your research problem


Identify the issues you want to explore and write a general problem background of your research(this may get modified as the research progresses). Derive your research questions, objectives. Identify your contribution in SWEBOK Discuss with your supervisor before next class

31

You might also like