Science & SWE Differences and Similarities Amardeo Sarma
Basic Assumptions of Science Realism: The world exists independent of our existence and perceptions Naturalism: There exist natural causes for all phenomena Skepticism: Our theories and assumptions are revisable in the light of new evidence – no final truths 23.11.2018
Basic Assumptions of Science Universalism: Scientific theories are or should be independent of culture Testability: Scientific theories must be testable by evidence and must have consistently passed tests Falsifiability: There must be some way to show a theory is wrong 23.11.2018
Illustration: Anti-Science Supernaturalism: Supernatural causes for phenomena Postmodernism: Truth is relative Traditionalism: Truth depends on the length of belief in something Constructivism (as a philosophy): Theories are just constructions of the mind 23.11.2018
Procedure Invent a hypothesis with good mathematics Empirists: Induction Rationalists: Just think Test the hypothesis based on observations of the real world (experience) Falsification more severe than verification After long successful testing the hypothesis becomes a tested theory A theory can be killed by new evidence 23.11.2018
Software Engineering Assumptions All assumptions of science and scientific theories are valid Engineerability: A partial world can be developed (constructed) according to our desires Specifiability: Our desires can be formulated as a formal specification 23.11.2018
Software Engineering Assumptions Implementability: A specification should lead to an implementation Conformance: An implementation should work according to the specification 23.11.2018
Procedure (for good software engineering) Invent and agree on a Specification with good formalisms Create an implementation based on the specification Test the implementation based on observations of the partial real world (testing) Verification more important than falsification After long successful testing the implementation becomes a product A product can be killed if it doent work 23.11.2018
Comparison The procedure is very similar Correspondence between hypothesis or specification with the (SWE: constructed) real world is called for In science what is (the real world) is important In software engineering what we want is important 23.11.2018
Constructivism doesn‘t work for SW engineering either Imagine: A car that just works for Europeans A compiler that creates different code for women A coffee machine delivers coffee if you use a German coin for a Swiss machine because you think it is a Swiss coin 23.11.2018