1 / 24

Welcome to Software Engineering

Welcome to Software Engineering. Lecture 1. Metaphysics of Software Engineering. Alex Iskold iskold@cs.nyu.edu. General Disclaimer.

kmaddox
Download Presentation

Welcome to Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Welcome to Software Engineering

  2. Lecture 1 Metaphysics of Software Engineering Alex Iskold iskold@cs.nyu.edu

  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...

  4. Books

  5. There is only one constant - change

  6. Model is simplification of reality

  7. Requirements change

  8. Software is cheap!(not really…)

  9. 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.

More Related