1 / 27

PaSOOS

PaSOOS. Programming of Large Object-Oriented Systems. The lecturer. Henrik Bærbak Christensen Associate professor (lektor) since 2003 adjunkt and phd Software developer/architect in industry, 91-94 Ms.Sc. in Astrophysics Faglig koordinator for Master og Diplom (SWK) Owner of

tamah
Download Presentation

PaSOOS

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. PaSOOS Programming of Large Object-Oriented Systems Henrik Bærbak Christensen

  2. The lecturer • Henrik Bærbak Christensen • Associate professor (lektor) since 2003 • adjunkt and phd • Software developer/architect in industry, 91-94 • Ms.Sc. in Astrophysics • Faglig koordinator for Master og Diplom (SWK) • Owner of • Course development and consultancy • http://www.imhotep.dk Henrik Bærbak Christensen

  3. PaSOOS • PaSOOS • Three pieces • Værktøjer og teknikker (ToolTech) • Arkitektur, Patterns og Frameworks (APF) • Programmeringsprojekt (ProgProj) • Audience • Diploma Students • Forthcoming Master Students Henrik Bærbak Christensen

  4. PaSOOS • ToolTech • Focus on the supporting techniques for large systems • APF • Focus on the architecture and design of large systems (or at least some of it) • ProgProj • Try it out on a (small ) large system Henrik Bærbak Christensen

  5. PaSOOS • The division between ToolTech and APF is somewhat artificial  • I will mix the topics a little bit... Henrik Bærbak Christensen

  6. ToolTech Henrik Bærbak Christensen

  7. APF • Software Architecture • primarily from the operational point of view • that is: help me to write flexible, testable, code! • design patterns, • frameworks • quality attributes • advanced testing techniques Henrik Bærbak Christensen

  8. ProgProj • Project course • most work will be in the groups with the project • Project = template with possibilities of choices • (I will probably cancel some of the seminars) Henrik Bærbak Christensen

  9. Course focus • Focus is on: • Operational level • use technique X to produce reliable, flexible, software • and next the reflective level • discuss technique X and relate it to technique Y, Z… Henrik Bærbak Christensen

  10. Scientific Foundation • The course is anchored in an empirical tradition. • Computer Science - Software Engineering • Results arise from: • practice and experience • reflection over practice • logical argumentation and analysis • That is: • No proofs nor QEDs • which is not natural science anyway  • No ultimate truths – it is generally “best practice” • But – terminology, concepts, analysis ! Henrik Bærbak Christensen

  11. Notes • This is a contact-sport! You learn by doing it. • It is like chess – or playing the piano: • the rules are easy to learn (lectures) • but the game is difficult to master (doing it) Henrik Bærbak Christensen

  12. Course layout • The main elements • Seminars: I talk you to death; exercises; discussions • Week plan: Defines the course’s heartbeat • Mandatory exercises: Ensure your hearts beat  • Learning is doing... • Contact: • Teaching Assistant (TA): See web site • Handles mandatory exercises • Group meetings (phone, en-face, or...) • Questions – e-mail, phone • Me • Tricky questions  • Process issues, exam, etc. Henrik Bærbak Christensen

  13. Process • Doing it: • Exercises: Group work and “meetings” with TA • Group’s responsibility to define what you will discuss ! • You define the “meeting” type with TA • phone meeting, en-face, net meeting, ? • Mandatory exercises: • PDF report + Zip with code sent by email to TA Theory Reflection Programming Henrik Bærbak Christensen

  14. Teaching Assistent • Your initial assignment is to: • Define groups of 2 or 3 persons • Email (navn,årskortnummer, email) to TA • He will assign you a group number • You can review your group number on web-site • Fixed naming conventions on deliveries: • R17.pdf = report from group 17 • C17.zip = zip with code + ant script from group 17 Henrik Bærbak Christensen

  15. Literature • Primary literature • Reliable and Flexible Software Explained (RFSE) •  Work in progress... •  Cheap! • Comments most welcome! • Compendium • Extracts from various books • Electronic material • Papers etc. posted on the web site. Henrik Bærbak Christensen

  16. Book outline Blue: Definitions In-text exercises. Stop and think! Usually there is a solution at the back of the chapter. Reflection: Stop and think! Henrik Bærbak Christensen

  17. Book outline Yellow: Additional material, “warstories” Review Questions: Rehearse for a mini exam  Henrik Bærbak Christensen

  18. Book outline My own solution/hints to the in-text exercises Larger exercises Reference to “starter code” The learning focus of the exercise Henrik Bærbak Christensen

  19. Book outline Design pattern box Henrik Bærbak Christensen

  20. Book comments • The book treats a number of patterns but certainly not “all”. • The book does not give an in-depth treatment of each pattern; it is more focused upon the underlying principles... • Thus a good pattern book is recommended ! • GoF: Old, C++, but still the best in my opinion • Grand: Java based, but overdoing the patterns... • (See website for details). Henrik Bærbak Christensen

  21. Web site • [Demo] • Schedule / week plan • Lessons and exercises • RFSE • anarchistic updating is my specialty... Henrik Bærbak Christensen

  22. (Mandatory) Exercises • Follow a rigid format • product • rubrics Henrik Bærbak Christensen

  23. Passing the exam • You are here to learn but you would probably also be focused upon passing the exam, right? • Terminology! • If we are to discuss the difference between pears and apples, it is a fatal flaw to call it all fruit ! • Be precise: • say class if you mean class, object if you mean object • UML is our almost-precise language – use it! • Know why A is better than B (and why B is bad) • “It says so on the slide I read”  • “Because if I code it like B it looks like this ... and right here I get in trouble X, Y and Z”  Henrik Bærbak Christensen

  24. Passing the exam • Relate to the code level ! • All aspects of this course revolve around producing better software! Even the most abstract concept!!! • Thus if you cannot demonstrate adequate abilities of applying technique X at the code level then it is • really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, • really bad !!! Henrik Bærbak Christensen

  25. Thus... • Read, Code, Reflect! • Then read again. Code it another way – code it the bad way – reflect upon why it is bad. • Or – maybe the damn book is all wrong? Henrik Bærbak Christensen

  26. DAIMI accounts / access • You have a DAIMI account • Building Access Henrik Bærbak Christensen

  27. Course Language • Why Java and not C#? • Laziness  • Conceptually they are identical is all but details... • Could I use C#? • In the beginning some of the way but... • Build management by Ant • Will probably use packages not available in C# Henrik Bærbak Christensen

More Related