Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

60
Page 1, 06/12/22 Software engineering and Scientific Methods Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering [email protected] http:// www.idt.mdh.se/~icc

description

Software Engineering and Science. Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering [email protected] http://www.idt.mdh.se/~icc. Contents. What is Software Engineering? Software Engineering and Science Methods of Software Engineering - PowerPoint PPT Presentation

Transcript of Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 1: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 1, 04/22/23Software engineering and Scientific Methods

Ivica CrnkovicMälardalen University

Department of Computer Science and Engineering [email protected]

http://www.idt.mdh.se/~icc

Page 2: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 2, 04/22/23Software engineering and Scientific Methods

ContentsContents

What is Software Engineering? Software Engineering and Science Methods of Software Engineering Software Engineering Research

Example – Software architecture

Page 3: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 3, 04/22/23Software engineering and Scientific Methods

What is Software Engineering?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

Page 4: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 4, 04/22/23Software engineering and Scientific Methods

EngineeringEngineeringEngineers 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

Page 5: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 5, 04/22/23Software engineering and Scientific Methods

PROBLEM

Subproblem 1 Subproblem 3Subproblem 2

Analysis of a problemAnalysis of a problem

Identify different aspects of the problem

Arrange the problems in clearly defined and understandable sub-problems

Page 6: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 6, 04/22/23Software engineering and Scientific Methods

SOLUTION

Solution 1Solution 3

Solution 2 Solution 4

The synthesisThe synthesisFind solutions for subproblems

Put together solutions to a consistent view

Provide (make) a solution

Page 7: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 7, 04/22/23Software engineering and Scientific Methods

Engineering Example – the Vasa ShipEngineering Example – the Vasa Ship

1625 King Gustav II Adolf decided to start build Wasa

 1628 - maiden voyage. 

Length- 69 metresLength- 69 metresMaximum width - 11.7 metresMaximum width - 11.7 metresFrom keel to the top of the main mast - 52.5 metresFrom keel to the top of the main mast - 52.5 metresHeight of the stern - 19.3 metres Height of the stern - 19.3 metres Crew: Crew: 445 men, Seamen – 145445 men, Seamen – 145, , Soldiers - 300 Soldiers - 300

ArmamentArmament 64 guns64 guns

Thousands of people involved in the projectThousands of people involved in the projectSelecting wood, building different partsSelecting wood, building different partsProviding food, other services Providing food, other services

A master piece of work!

Page 8: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 8, 04/22/23Software engineering and Scientific Methods

Vasa – Example of Bad EngineeringVasa – Example of Bad Engineering the ship capsized on her maiden

voyage in the harbor of Stockholm.

Why did the Vasa capsize?

Page 9: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 9, 04/22/23Software engineering and Scientific Methods

Why did the Vasa capsize? Why did the Vasa capsize?

The Vasa capsized because it was not stable;

The Vasa capsized because the building process (or in terms of software engineering, the

development project) was inadequate.

Page 10: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 10, 04/22/23Software engineering and Scientific Methods

How to calculate stability?How to calculate stability?

Gravity forceGravity forceShip weightShip weight

Ship’s center of gravityShip’s center of gravity

BuoyancyBuoyancy(bärkraft)(bärkraft)

Center of buoyancyCenter of buoyancy(water) displacement(water) displacement

The forces are of equal size and in the opposite directionsThe forces are of equal size and in the opposite directions

Page 11: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 11, 04/22/23Software engineering and Scientific Methods

The ship heels at an angleThe ship heels at an angle

Ship’s center of gravityShip’s center of gravityCenter of buoyancyCenter of buoyancy(water displacement)(water displacement)Has moved rightHas moved right

hh h – leverage effecth – leverage effect(påtryckning)(påtryckning)

Page 12: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 12, 04/22/23Software engineering and Scientific Methods

Leverage effect (Moment)Leverage effect (Moment)

http://members.aol.com/PhysicsDad/calcphys/lecture.htmlhttp://members.aol.com/PhysicsDad/calcphys/lecture.html

Torque is defined as the product Torque is defined as the product of radius, force, and the sine of the of radius, force, and the sine of the angle between force and radius: angle between force and radius:

t = r F (sin(X))t = r F (sin(X))

XX

Page 13: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 13, 04/22/23Software engineering and Scientific Methods

The ship heels at an angleThe ship heels at an angle

hh

h – leverage effecth – leverage effect(påtryckning)(påtryckning)

This Torque (Moment)This Torque (Moment)will force thewill force theShip to return back Ship to return back

Page 14: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 14, 04/22/23Software engineering and Scientific Methods

hh

The ship is unstableThe ship is unstableh – leverage effecth – leverage effect(påtryckning)(påtryckning)

Torque has change the directionTorque has change the directionThe ship will capsizedThe ship will capsized

hh

Page 15: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 15, 04/22/23Software engineering and Scientific Methods

The ship is stableThe ship is stable

hh

hh

If the center of gravity is very low – the ship will be stableIf the center of gravity is very low – the ship will be stable

Page 16: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 16, 04/22/23Software engineering and Scientific Methods

Why the ships heel?Why the ships heel?

hh

Because of wind!Because of wind!Or waves…Or waves…

Page 17: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 17, 04/22/23Software engineering and Scientific Methods

Wind

S1

S2

A

B

Torque

Stability Curve Stability Curve

Page 18: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 18, 04/22/23Software engineering and Scientific Methods

Why did Vasa capsize?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 COULD VASA BE SUCSSESFULLY BUILT IN SPITE OF

LACK OF THEORY? WHAT DID PROJECT FAILED TO DO?

Page 19: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 19, 04/22/23Software engineering and Scientific Methods

Other reasons why Vasa capsized?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.

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.

Page 20: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 20, 04/22/23Software engineering and Scientific Methods

Other reasons why Vasa capsized?Other reasons why Vasa capsized? Design changes during the construction. The dimensions of

the ship were changed several times during its construction with no proper analysis of the consequences.

System design vs. detailed design. In many parts the design of the system was not clear and completed, and the final design was shaped during the implementation. The entire process is reminiscent of prototype building. In combination with poor project coordination this resulted in inadequate dimensions of some parts, such as insufficient space for ballast.

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)

Page 21: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 21, 04/22/23Software engineering and Scientific Methods

Vasa Disaster – Similar do Software ProjectsVasa Disaster – Similar do 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 Bad quality assurance Shortage in knowledge in new disciplines....

Page 22: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 22, 04/22/23Software engineering and Scientific Methods

Engineering vs. Software EngineeringEngineering vs. Software Engineering Many similarities

Methods and procedures Base objectives and goals

Many differences Difference between software and hardware/the real world

Software – no physical limitsNot visibleModifiableMore complex

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

Page 23: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 23, 04/22/23Software engineering and Scientific Methods

All aspects of Software DevelopmentAll aspects of Software Development

Aspects Technical (how technicaly solve the problem) Organisational (how to organize people) Financial Marketing Professional and ethical responsibility Research and Science

Page 24: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 24, 04/22/23Software engineering and Scientific Methods

SOFTWARE ENGINEERING

COMPUTER SCIENCE CUSTOMER

Theories

Principles, Methods and Tools to Solve

Problem andConstruct sSolutions

ProblemComputer Functions

Computer Science Vs. Software EngineeringComputer Science Vs. Software Engineering

SolutionSoftware EngineeringSoftware EngineeringResearch & ScienceResearch & Science

OTHER SCIENCES

Page 25: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 25, 04/22/23Software engineering and Scientific Methods

Computer Science Vs. Software EngineeringComputer Science Vs. Software Engineering

COMPUTER SCIENCEAlgorithms and data structures

Programming languagesArchitecture

Numerical and symbolic computationOperating systems

Software methodology and engineeringDatabases and information retrieval

Artificial intelligence and roboticsHuman-computer communication

Social, ethical, and professional issues

SOFTWARE SOFTWARE ENGINEERINGENGINEERING

In many cases a defuseIn many cases a defuse

boundaries between SE and CSboundaries between SE and CS

Page 26: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 26, 04/22/23Software engineering and Scientific Methods

Methods and Technologies Methods and Technologies

Requirements Analysis Design Implementation Delivery MaintenanceTest

Software/Systems Engineering Methods

Different Technologies

Service

Solution

Phases

Page 27: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 27, 04/22/23Software engineering and Scientific Methods

SE disciplines - examplesSE disciplines - examples Project management Development processes Requirements engineering Reverse engineering Test and Verification Software Maintenance Software Architecture Object-oriented modelling Software analysis Formal specification Software reliability

Real-time Tools and environments Software Configuration

Management Software engineering and the

Internet Component-based SE Software Metrics Education Software Economics ......

Page 28: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 28, 04/22/23Software engineering and Scientific Methods

Software Engineering Methods - ExamplesSoftware Engineering Methods - Examples

Project Management

Software Development Models and Processes support

Analyse/design methods (UML, OOP, Formal methods, ...)

Programming Methods /Languages

Configuration Management

Component-based Software Engineering (CBSE)

Customer support, Maintenance

Test and Verification

Architectural analysis (tradeoff analysis, quality, attributes…)

Requirements Engineering

Requirements Analysis Design Implementation Delivery MaintenanceTest Service

Page 29: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 29, 04/22/23Software engineering and Scientific Methods

What is then Software Engineering Research?What is then Software Engineering Research?

Analyzing natures of problems and their solutionsFinding more general principles that SE can useDeveloping methods and tools Implementing principles on new problem domains……

Page 30: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 30, 04/22/23Software engineering and Scientific Methods

Software Engineering ResearchSoftware Engineering Research

Different methods used SEExemplified by Software Architecture

Presentation extracted from Mary Show’s presentation on ICSE 2001 in Toronto

http://www-2.cs.cmu.edu/~Compose/paper_abstracts/etaps-2002.html

Page 31: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 31, 04/22/23Software engineering and Scientific Methods

REAL WORLDREAL WORLDPractical problemPractical problem

REAL WORLDREAL WORLDPractical SolutionPractical Solution?

Page 32: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 32, 04/22/23Software engineering and Scientific Methods

Research ModelResearch Model

Page 33: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 33, 04/22/23Software engineering and Scientific Methods

Example: Software ArchitectureExample: Software Architecture

The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them

    L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998

Page 34: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 34, 04/22/23Software engineering and Scientific Methods

Software architecture – system decompositionSoftware architecture – system decomposition

SystemSystem

subsystemsubsystem SubsystemSubsystem

componentcomponent componentcomponent componentcomponent

Page 35: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 35, 04/22/23Software engineering and Scientific Methods

Recurring structures that occur in software systemsAS = {Component types,Connector types,Constraints}

Next step - Architectural StyleNext step - Architectural Style

Component and Connector Types

Layered Abstract MachinesBuss

Shared Repository

Component and Connector Types

Pipe and Filter

Page 36: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 36, 04/22/23Software engineering and Scientific Methods

Next step: Aspects of Software ArchitectureNext step: Aspects of Software Architecture

Connector

RolePort

Attachment

(sub)System

Arch Component

Representation

Elements and Form

Rationale Describes how the architecture satisfies system requirements for both

functional and extra-functional properties.

Page 37: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 37, 04/22/23Software engineering and Scientific Methods

<<subsystem>>ComAIComA

Next step: FormalizationNext step: Formalization

<<subsystem>>ComBIComB

<<subsystem>>ComCIComA

ConceptualArchitecture

Example - UMLExample - UML

Page 38: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 38, 04/22/23Software engineering and Scientific Methods

Page 39: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 39, 04/22/23Software engineering and Scientific Methods

Page 40: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 40, 04/22/23Software engineering and Scientific Methods

Page 41: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 41, 04/22/23Software engineering and Scientific Methods

Page 42: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 42, 04/22/23Software engineering and Scientific Methods

SE Research phasesSE Research phases

Research Questions

Research Results

Result Validation

Page 43: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 43, 04/22/23Software engineering and Scientific Methods

Page 44: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 44, 04/22/23Software engineering and Scientific Methods

Page 45: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 45, 04/22/23Software engineering and Scientific Methods

Page 46: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 46, 04/22/23Software engineering and Scientific Methods

Page 47: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 47, 04/22/23Software engineering and Scientific Methods

Page 48: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 48, 04/22/23Software engineering and Scientific Methods

Page 49: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 49, 04/22/23Software engineering and Scientific Methods

Page 50: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 50, 04/22/23Software engineering and Scientific Methods

Page 51: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 51, 04/22/23Software engineering and Scientific Methods

Page 52: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 52, 04/22/23Software engineering and Scientific Methods

Page 53: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 53, 04/22/23Software engineering and Scientific Methods

Page 54: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 54, 04/22/23Software engineering and Scientific Methods

Page 55: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 55, 04/22/23Software engineering and Scientific Methods

Page 56: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 56, 04/22/23Software engineering and Scientific Methods

Page 57: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 57, 04/22/23Software engineering and Scientific Methods

Page 58: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 58, 04/22/23Software engineering and Scientific Methods

Page 59: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 59, 04/22/23Software engineering and Scientific Methods

Page 60: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

Page 60, 04/22/23Software engineering and Scientific Methods

SummarySummary

Software Engineering is oriented on practical things from the real word Understanding problems, providing solutions

SE uses methods and tools for solving the problems from different disciplines

SE research Understanding principles Defining principle for solving the problems Developing tools and methods