ivica crnkovic mälardalen university department of computer science and engineering
Post on 12-Feb-2016
49 Views
Preview:
DESCRIPTION
TRANSCRIPT
Page 1, 04/22/23Software engineering and Scientific Methods
Ivica CrnkovicMälardalen University
Department of Computer Science and Engineering ivica.crnkovic@mdh.se
http://www.idt.mdh.se/~icc
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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 04/22/23Software engineering and Scientific Methods
Wind
S1
S2
A
B
Torque
Stability Curve Stability Curve
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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 04/22/23Software engineering and Scientific Methods
REAL WORLDREAL WORLDPractical problemPractical problem
REAL WORLDREAL WORLDPractical SolutionPractical Solution?
Page 32, 04/22/23Software engineering and Scientific Methods
Research ModelResearch Model
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, 04/22/23Software engineering and Scientific Methods
Software architecture – system decompositionSoftware architecture – system decomposition
SystemSystem
subsystemsubsystem SubsystemSubsystem
componentcomponent componentcomponent componentcomponent
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, 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, 04/22/23Software engineering and Scientific Methods
<<subsystem>>ComAIComA
Next step: FormalizationNext step: Formalization
<<subsystem>>ComBIComB
<<subsystem>>ComCIComA
ConceptualArchitecture
Example - UMLExample - UML
Page 38, 04/22/23Software engineering and Scientific Methods
Page 39, 04/22/23Software engineering and Scientific Methods
Page 40, 04/22/23Software engineering and Scientific Methods
Page 41, 04/22/23Software engineering and Scientific Methods
Page 42, 04/22/23Software engineering and Scientific Methods
SE Research phasesSE Research phases
Research Questions
Research Results
Result Validation
Page 43, 04/22/23Software engineering and Scientific Methods
Page 44, 04/22/23Software engineering and Scientific Methods
Page 45, 04/22/23Software engineering and Scientific Methods
Page 46, 04/22/23Software engineering and Scientific Methods
Page 47, 04/22/23Software engineering and Scientific Methods
Page 48, 04/22/23Software engineering and Scientific Methods
Page 49, 04/22/23Software engineering and Scientific Methods
Page 50, 04/22/23Software engineering and Scientific Methods
Page 51, 04/22/23Software engineering and Scientific Methods
Page 52, 04/22/23Software engineering and Scientific Methods
Page 53, 04/22/23Software engineering and Scientific Methods
Page 54, 04/22/23Software engineering and Scientific Methods
Page 55, 04/22/23Software engineering and Scientific Methods
Page 56, 04/22/23Software engineering and Scientific Methods
Page 57, 04/22/23Software engineering and Scientific Methods
Page 58, 04/22/23Software engineering and Scientific Methods
Page 59, 04/22/23Software engineering and Scientific Methods
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
top related