page 1, 6/22/2015 software engineering and scientific methods ivica crnkovic mälardalen university...
Post on 21-Dec-2015
218 views
TRANSCRIPT
Page 1, 04/18/23Software engineering and Scientific Methods
Ivica Crnkovic
Mälardalen University
Department of Computer Science and Engineering
http://www.idt.mdh.se/~icc
Page 2, 04/18/23Software engineering and Scientific Methods
ContentsContents
What is Software Engineering?
Software Engineering and Science
Methods of Software Engineering
Software Engineering Research
Page 3, 04/18/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/18/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 22, 04/18/23Software engineering and Scientific Methods
All aspects of Software DevelopmentAll aspects of Software Development
Aspects
Technical (how technically solve the problem)
Organizational (how to organize people)
Financial
Market
Professional and ethical responsibility
Research and Science
Page 23, 04/18/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/18/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 26, 04/18/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 27, 04/18/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/18/23Software engineering and Scientific Methods
What is then Software Engineering Research?What is then Software Engineering 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
……
Page 29, 04/18/23Software engineering and Scientific Methods
Software Engineering ResearchSoftware Engineering Research
Research lifecycle
Different methods used SE
Exemplified by Software Architecture
Presentation based on Mary Show’s presentation
http://www-2.cs.cmu.edu/~Compose/paper_abstracts/etaps-2002.html
Page 30, 04/18/23Software engineering and Scientific Methods
Research Model – different phases in research life cycleResearch Model – different phases in research life cycle
Page 31, 04/18/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 32, 04/18/23Software engineering and Scientific Methods
Software architecture – system decompositionSoftware architecture – system decomposition
SystemSystem
subsystemsubsystem SubsystemSubsystem
componentcomponent componentcomponent componentcomponent
Page 33, 04/18/23Software engineering and Scientific Methods
Recurring structures that occur in software systems
AS = {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 34, 04/18/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 35, 04/18/23Software engineering and Scientific Methods
<<subsystem>>ComAIComA
Next step: FormalizationNext step: Formalization
<<subsystem>>ComBIComB
<<subsystem>>ComCIComA
ConceptualArchitecture
Example - UMLExample - UML
Page 37, 04/18/23Software engineering and Scientific Methods
Page 38, 04/18/23Software engineering and Scientific Methods
Page 40, 04/18/23Software engineering and Scientific Methods
REAL WORLDREAL WORLDPractical problemPractical problem
REAL WORLDREAL WORLDPractical SolutionPractical Solution?
The basic characteristic of SEThe basic characteristic of SE
Page 41, 04/18/23Software engineering and Scientific Methods
Page 42, 04/18/23Software engineering and Scientific Methods
Page 43, 04/18/23Software engineering and Scientific Methods
Page 44, 04/18/23Software engineering and Scientific Methods
Page 45, 04/18/23Software engineering and Scientific Methods
Page 46, 04/18/23Software engineering and Scientific Methods
Nasreddin story and Software EngineeringNasreddin story and Software Engineering
Story about a lost ringStory about a lost ring
Page 47, 04/18/23Software engineering and Scientific Methods
Page 48, 04/18/23Software engineering and Scientific Methods
SE Research processSE Research process
Research Questions
Research Results
Result Validation
Page 50, 04/18/23Software engineering and Scientific Methods
Page 52, 04/18/23Software engineering and Scientific Methods
Page 53, 04/18/23Software engineering and Scientific Methods
Research Questions
Page 54, 04/18/23Software engineering and Scientific Methods
Page 55, 04/18/23Software engineering and Scientific Methods
Page 56, 04/18/23Software engineering and Scientific Methods
Page 57, 04/18/23Software engineering and Scientific Methods
Page 58, 04/18/23Software engineering and Scientific Methods
Page 61, 04/18/23Software engineering and Scientific Methods
Page 62, 04/18/23Software engineering and Scientific Methods
Method/meansMethod/means SystemSystem EvaluationEvaluation
Page 63, 04/18/23Software engineering and Scientific Methods
PersuasionPersuasion
TechniqueTechnique
Method/meansMethod/means
Page 64, 04/18/23Software engineering and Scientific Methods
Page 65, 04/18/23Software engineering and Scientific Methods
Page 67, 04/18/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