Download presentation
Presentation is loading. Please wait.
1
Welcome to Software Engineering
2
Metaphysics of Software Engineering
Lecture 1 Metaphysics of Software Engineering Alex Iskold
3
General Disclaimer All thoughts, ideas, techniques, truths and mistakes, contained herein and in all the rest of the lectures, assignments and tests are based on my personal experiences and, therefore, are completely subjective. If you plan to use them in mission-critical environments, you are on your own...
4
Books
5
There is only one constant - change
6
Model is simplification of reality
7
Requirements change
8
Software is cheap!
9
Software Engineering is not just a science
Software Engineering is not just a science. It is an intricate blend of science and art.
10
Beauty in Software Engineering
A piece of code is beautiful if every line in it serves a concrete, explainable purpose.
11
Beauty in Software Engineering
A design is beautiful if it creates all encompassing and succinct model of the process.
12
Occam’s Razor Things must be complex,
but no more complex that they really need to be.
13
Complex vs. Complicated
Complex is Natural - complexity arises out of simplicity through non-linear permutations. Complicated is really Man-Made - arises when the problem is not well understood, when details come before global picture.
14
Code as a Living Entity Iterate through the code every day
Don’t be afraid to change it Get feedback from your code Recfactor, compact, reduce (but not at the expense of the correct design)
15
First pass is the last pass
Never say ‘I will make this better later…’ Consider every pass through the code to be the last pass. Do it cleanly, elegantly, compactly Then later, if you see a better way, come back and re-write it all.
16
Patterns 1,0,1,0,1,0,1,0,1,... 1,0,1,1,0,1,1,1,0,.… 1,1,0,1,0,0,0,1,1,...
17
Godel Theorem It is not possible to construct a mathematical system based on axioms such that it will be both sound and complete. There will always be statements that are true, but unprovable.
18
Simple sentence which contradicts itself
This sentence is false.
19
Turing Theorem It is not possible to determine via mathematical algorithmic procedure whether given Turing machine will halt on the given input. Or simply: There are things that are not possible to compute!
20
Modeling What is it that will make our models better, closer to perceived reality?
21
What is a Class? Class is a category, aggregate abstraction, a philosophical form, which unites underlies and describes objects or entities of similar type. Entities, which are similar enough to be assigned to a single class. Class is a blueprint for an object. Class, as far as program is concerned, is a meta physical entity.
22
What is an Object? Object, is a member, instance of a class. Objects are grouped into classes by similar features. Object, as far as program is concerned, is a physical entity.
23
Example public class Human {
// Constructs human with first name & last name public Human( String sFirstName, String sLastName ) { this.sFirstName = sFirstName; this.sLastName = sLastName; } public String getFirstName() { return sFirstName; } public String getLastName() { return sLastName; } public String toString() { return sFirstName + " " +sLastName; } private String sFirstName, sLastName; // Lets try it out public static void main( String[] args ) { Human ka = new Human("Ken", "Arnold"); // an instance of a class is object System.out.println( "We have created human [" + ka.getName() + "]" );
24
Please read Prefaces and first chapters of all the books that you got.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.