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