270 likes | 397 Views
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
E N D
PaSOOS Programming of Large Object-Oriented Systems Henrik Bærbak Christensen
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
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
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
PaSOOS • The division between ToolTech and APF is somewhat artificial • I will mix the topics a little bit... Henrik Bærbak Christensen
ToolTech Henrik Bærbak Christensen
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
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
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
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
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
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
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
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
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
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
Book outline Yellow: Additional material, “warstories” Review Questions: Rehearse for a mini exam Henrik Bærbak Christensen
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
Book outline Design pattern box Henrik Bærbak Christensen
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
Web site • [Demo] • Schedule / week plan • Lessons and exercises • RFSE • anarchistic updating is my specialty... Henrik Bærbak Christensen
(Mandatory) Exercises • Follow a rigid format • product • rubrics Henrik Bærbak Christensen
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
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
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
DAIMI accounts / access • You have a DAIMI account • Building Access Henrik Bærbak Christensen
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