This is one persons slice out of a large and complex conference: [ oopsla2k ]
Oct 15 Workshop 13: Active Learning for Object-Oriented Design
Invitation: [ 13.html ] and details [ http://www.mcs.vuw.ac.nz/research/design1/ ] of plans. Results: [ v3_document.htm ]
My notes follow:
Session 1
This was very like the [ wiki?ExtremeHour ] on the WikiWikiWeb.
Kuzniarz
Poland: central plan -> market, students now look for marketable topic& quality. EU
finance restructure education. TEMPUS: ind software development in 3 univ., partner w UK+FR+ES universities.
3 years
industry OO+process+application domain 1. engineering &tech 2. industrial informatics
subject boxes.
Mancl
lucent c++ evangelist
transfer. Don't just tell them. Need practice. so you must act as a coach or mentor.
New users of design methods have these Problems:=
Net
people issues, listening.
Challenge: can we teach this.
Trevino
Faculty as part-time teaching & working. CKS ITESM.
Work is changing, divergence. Work helps teacher change. New net risk + speed + competition. New students, outcomes. Work is learning. Research wit industry. Divergent values. You become Knowledge manufactory. New compensation. Empathy conscience participate continuous improvement. Client vs student. Our health. +ve. Stress. Learning "no" but "I'll learn".
. . . . . . . . . ( end of section Session 1) <<Contents | End>>
Session 2
Vincent
UK want 40% participation in HiEd. various goals. range. Spot special gifts. more
students now want Flash not coding!
Framework 5..6 classes. {controls -> Player + controls -> cyclic counter }-> graphics.
Simple lets smart see opportunities
students create more. But wanted control panel for animation.
Barrett - lessons dynamic polymorphism
Indirect runtime dispatching generalization. Example. parameter multi-methods?
Inheritance for data? No! Think about behavior.
Interface first. Ex. Collection patterns: adapter bridge.
Not easy. So when? Need maturity to handle it. Need many good examples.
contravariant precondition vs covariant post-condition. A Contravariant condition gets stronger lower, covariant is weaker at lower level.
Spiral. Example vs theory.
. . . . . . . . . ( end of section Session 2) <<Contents | End>>
Student taught by (religion, home school, self). Apprenticeship. Master & student.
Adolescence as myth.
In a practical context easy to rapidly fill in the small holes that have turned up vs trad CSci degree.
XP Studio: pairing, see others, stand-up meeting, conference room for planning game, white-boards, pairvine,
From audience notes that grad student is master + student. Later: UK tutor-tutee relationship.
Whitelaw - SAD -> OOA/D+teams
assessment?,
must have teams.
Past based on final product.
XP need dynamic sub-teams.
So teach teamwork assess on what it is experienced + context + role
Many deliverables, consultants, rework, progressive cross-team peer YN assessment.
Works. Up to 50 students.
O'Callaghan
Identity. Eng or sci or infsys.
Old educational model based on positivist model of sci knowledge
positivist model of sci knowledge:
Net
Shouldn't split it up!
Eg. can not factorized ala sci method. Engineer/ teaches theory in context of practice.
Propose 3 steps: studio-based design, study great software, study classic text Parnas Brooks.
Joe Bergin - OOSD internet
buzzword 620 grad distributed 20people, www documentation, pedagogical patterns
content: HCI, games, Java, DB, client-server objects, ethics.
2 classes, scops; midterm design & exam, final exam.
Www, list, email, chat AOL -> www -> FAQ -> email, office by appointment, feedback on
www pages.
http://csis.pace.edu/~bergin/
capture everything
Tomek - different teaching OOA/D
context. 2nd.year software development team course.
Prerequisite: C, OO, DS, AI
15 student..
Content. 2 approaches. Idioms patterns framework architecture using Smalltalk.
Present: 1. waterfall ooa/d documentation, 2. Lightweight test-driven evolve refactoring traditional. Larman UML...text+video. XP
consequences.
trad. process not exciting, design first OK. documentation stinks
XP. limited time. Story><effort. test cases. Code. Regression testing. Refactor. Students liked. Want more. Missionaries! Initial estimates are truly bad. YAGNI (You Ain't Gointa Need It)is hard. Test first procedure took longer than estimated.
Conclusions: 2 is good. XP 1st because less to learn. Need good environment. Start with old code.
. . . . . . . . . ( end of section Session 3) <<Contents | End>>
Activity for participants to list the 5 key ideas of OO.
He said he would send a video to WWW with names.
. . . . . . . . . ( end of section Session 4) <<Contents | End>>
. . . . . . . . . ( end of section Oct 16) <<Contents | End>>
keynote Tsichritzis
Socrates: writing is in context|-misinterpreted |- not written.
Object becoming alive.
Many OO ideas have been around a long time.
Net
But find better way :. Smalltalk
Two missing things: network until Java, agent just starting.
Need Autonomous mobility.
Death is needed. Limited life or ways to kill. A way to terminate classes/designs.
No object metabolism. Need Internal activity of objects. Speeds up reactions. Clear Functionality & roles. Eg leg.
A different way to think. Not closed world any more. Fast change. Sociology of systems.
Creation took 6 days + millions of year of evolution. So need ways to let code/objects evolve
discussion.
legacy ideas can hold us back. Need new ideas.
. . . . . . . . . ( end of section Tues 1) <<Contents | End>>
Can do 2-3 iteration in 30mins.
How to integrate.
static Www sim. Accept. Architecture prototype to test tech options. Jini.
Xp Business needs vs development estimating & scheduling...
However, some don't get buttons when on paper.
.Question jini. OK on LAN. But not reliable over internet under stress. So XML tunnel from LAN to LAN. Good dsign made change easy.
?test. How often?
?2 developers+4users. partitioned
?distributed team. so no pair ping
Pelrine AP in switzland daedalos
example simulation vaccine. effect increase value/price.
Risk factor - age & time.
Fixed price, scope, quality. Var time. Xp process. risk swapping. variation of Planing game. Development to fast for user.
Hurry up & wait. estimate time & certainty -> load factor(1.5, 2.2, ...). Spread sheet -> budget.
simplest: gra&reports -> excel. YAGNI -> country determines benefits etc. No premature international. wrong country. Avoided useless work. pair programming -> w customer
"let them use Java, Smalltalk is our secret weapon".
demo
Newirk & martin of Object Mentor screw up XP
XP for user area commercial web site.
Harvest XP knowledge
asp to JSP JRun JDBC JUnit
3 week release cycle, 1 week iteration 40hours work. 6people pairing. No known bugs.
Stories. Customer vs programmers. Common ideas. 2 day
when refactor? Jit, when see it.
stories -> tasks, sign up, est, too long. So "we'll try". We did it. What did we loose? Should not let customer bully us.
employee became bullying customer.
Infrastructure. Obvious but still too early.it was Wrong! Refactor.
test servlets? No! So refactoring tough. Place for untested! Minimize them. Acceptance testing. Customer asked for a testing system.
Testable designs are better.
"email is oral".
. . . . . . . . . ( end of section Tues 2 practitioner) <<Contents | End>>
Tues 3 Highsmith
Three inequalities:
Situational. Projects.
Culture ( self selected, cmm vs xp ). . .
Situational. leadership.
picture: flea on an elephant "I'm in charge".
How soon will it become unmaintainable?
So rework refactor all the time & so retest & refactor.
High risk first to kill bad projects faster.
Crystal methods by cockburn
Rapid exciting large hi-quality research projects in unstable world.
incompatible: Innovate & disciplined & adaptable.
Original plans are irrelevant now.
Optimization vs adaptation like armor vs mobility.
lifecycle
lite - customer value, tacit knowledge(grease taste test), collaboration, adaption,
minimalize.
[ ASD ]
collaboration
table
vision
harnessing change
not resist change.
. . . . . . . . . ( end of section Tues 3 Highsmith) <<Contents | End>>
Values scale even if practices don't.
Problem in Germany with formal structure vs social networks.
Risk of artifact that has no immediate evaluation.
Customers!!
Forget discipline! Go for addiction or habits.
. . . . . . . . . ( end of section Tues 4 panel) <<Contents | End>>
. . . . . . . . . ( end of section Oct 17) <<Contents | End>>
Software is complex. Software engineering is difficult. Getting worse. Continuous catch up. New ways to develop software.
Essence
Agents encapsulate complex system and are autonomous in environment with
goals. Control own state &
behavior. Flexible: can refuse. persistent threads of control. Objects with an attitude.
Many definition.
Normally Multi-agents. Interacting knowledge. Not predefined. Late binding for interactions
Part of an organization. Changeable. Ways to negotiate teams to achieve goals.
integration engineering. protocols: Contract net, Auctions
example: {
1buyer many seller - increase price etc. until bid from seller.
Freedom to lie! Truth is dominant strategy!
}
Organizational Engineering. Eg. Common purpose hence coop behavior. Win-win. Fuzzy.
Argument in favor
Simon complex systems. almost separable. Primitives nor primitive. Intermediate forms.
Interacting agents natural decomposition. level of abstraction. Min gap between world/solution & construction!
Mainstreamed because fits software development trends.
Drawbacks
disaster possible! Interaction engineering, organizational engineering.
.Question: trust
.Answer: engineered!
Conclude
need 1. practical methods. 2. Industrial toolkits. 3. Reusable know-how & technologies
patterns.
. . . . . . . . . ( end of section Weds 1 Agents software engineering) <<Contents | End>>
Weds 2 models
smaller pieces. Bus types vs classes. A matter of roles not attributes +operations, financial concepts are human conventions and so always shift. so model deep structure instead.
financial terms: overloaded, inconsistency, turf protection. This costs time & money.
multiple inheritance spaghetti. Generalization is not inheritance. Real inheritance is individual not classification.
Containers
Kilov. multiple Subsets w different discriminator. But root doesn't.
Use roles to classify they act like interfaces.
Classification are runtime objects using logic but features become the objects.
Astudillo arch -> bus proc
on web
Strom@acm.org
CYC ontology Lisp -> reader macro CLIPS ->generate code production system rulebase
-> Java Beans
ooa lags behind ood/oop. Fragile models.
CYC upper ontology 3k facts&rules. Published. Large. well tested. Machine readable. Multiple layers.
Genis -> extends. Bin predicate -> attribute -> Java Bean naming pattern.
? Multiple inheritance. Via interface+delegation. ? Multiplicity not shown. ? Hi-order classes. Fowler. ? Relations between relationship.
Mistake. Shoulda used code gen to make GUIs. Mismatch of GUI & ontology.
->> rule based > graphic. stake holder Buyin. Automate as much as possible.
Mac LISP MCL!
. . . . . . . . . ( end of section Weds 2 models) <<Contents | End>>
. . . . . . . . . ( end of section Weds 3 OOA to OOD) <<Contents | End>>
Weds 4 patterns
John Vlissides
patterns in software: They are a means to an end. Capture proven development practice.
As aids to communication and refactoring. Small automation eg. CD
6 years later: some anecdotes in favor, 1 experiment in favor.
The Book? Still selling.
Next. Too many software patterns so need refactoring & indexing (see almanac by Linda Rising). Tools & language? Theory is Jim Coplien's job.
Just do it.
Need clearing house. For example the WikiWikiWeb.
Dave Ungar
Hates c++
GoF suffered from linguistic myopia: displayed Band-Aids for C++/Smalltalk problems & does not indicate solutions embedded in other languages. Makes it ok to use the language.
.Example fixing assembler.
Alternatives: Know the values and you will see patterns. Push good things down towards automation, so into languages or lower.
Should we duplicate good practices in physical design disciplines.
Frank Bushmaann
Patterns are not a magic bullet. Failure from comes from lack of skill & knowledge
when using patterns. Patterns are not blueprints and can not replace intelligence,
creativity, & skill. Patterns can be a trap. Many patterns once new and original are
now Obsolete.
Work in process. Transitional.
(Rebecah Wirf-Broch saw the danger of reification on the bible with 23 patterns -- 7
years ago.)
James Coplien
Patterns are not the paradigm shift that the software development field badly needs!
Alexander criticized pattern movement because it ignores the morality and depth needed for good design. A pattern must be part of whole pattern language dedicated to the quality of human life. resultant properties: generative, liveness.
(dick): `sounds like he is pursuing the "Quality without a Name" via symmetry groups
(eg. indenting in C). Perception Harvard psychology. See GCSE Coplein's www site.
Note. "Running a Trojan Horse up against the walls of Academe".
(dick): did he refer to Gestalt theory, Constructivism, or something else?
quote: "Disfunctional industry. Delivering crap. A continuing intellectual laziness that ignores prior art." Example - object based, self.
Discussed pattern #1 (Region) of Alexander. Not found in Europe, or found in Europe? Model for Growth.
GoF is half truth. It appeals to Alexander & ignores the "real" message. "its a crock". But by becoming dominant it has failed to be a paradigm shift and preserved the status quo..
Morality:= economic | casuistic | ?.
. . . . . . . . . ( end of section Weds 4 patterns) <<Contents | End>>
. . . . . . . . . ( end of section Oct 18) <<Contents | End>>
Oct 19
Richard P Gabriel enrobed with music
[ mob in ThurAM ]
(But he wore a different hat and clothes).
The hacking you liked is coming back home.
Capitalist gloom. commodity Vs gift economy - debt of food etc for poetry friendship xenia.
Harris. sacrifices.
NASA: engineering via failure. Not by planing. Endless fiddling. Failure = Death.
Mob
We know how to do small software. Large software needs fiddling & failure.
Poet vs news. Pinter. Writing workshops. Synergy. Home-brew. Shared open. Shared view
with individuals. Incremental. Designer needs to be user & implementer.
Swarm
Termites. More individuals raises IQ. Flocking. Complexity. Sugarscape. Simple local
rule & actions.
Chaordic. Gas..solid.
Duende. Lorca. Death.
Software
Math blinders FORTRAN C equivalent... linked into one ordered whole. Physics model.
Alternate languages ridiculed.
Distributing Performing Software. Example: Jini Service distribution. Services evolve. API Evolution. Repair agents fix mismatches. All change, all version are needed.
Scarcity habit. Under-funded-maned software development. Rebuilding the same. Hectic
development.
Order
Modules. Reuse across context. Context -> part, part document -> context.
Ariane. Part trusted. Body Not modular. Not pluggable. Better to allow separate compilation with no reuse.
Levittown. Planned. Remade by users. Vs concrete towers.
Teaching
Secret software has led to a loss of educational capital -> no shared literature for
learning good coder.
Who programs
Assume abundant programmers & time. Many small termite user programmers. Never down &
never stable. Need to let go. Divergent. Eg. Jini. Dip into pool of software. Use,
customize, improve, annotate. fix/version & return. Robots fix interfaces.
Workshop education. Shared code so seeking beauty.
Open Software movement: moving slowly making a parallel alternatives to dollar driven code. Convergent. Technology.
Code used to be published & shared. MacLisp... Then dollars for secret code. Vs gift economy of code & advice. A literature of source code. missed Knuth!
Example of a mob developing a large piece of high quality work: Oxford English dictionary. Mob submits citation. The best submitter was an insane doctor Smithsonian.
The Mob works by Enthusiasm. Developers are users with some brilliant unemployed. Sharing.
vs NASA. This analysis says that they did not have enough people.
Post modern literature
topos: shared reusable units of text!
Fantasy?
Ex. Www.
When real people get at technology
Drift back to gift.
Trend to Hibrid like ancient Greece with parallel capital and gift economy.
. . . . . . . . . ( end of section Thurs 1 mob sw) <<Contents | End>>
Thurs 2 Processes
Brian Henderson-Sellers
Not one size, so need a common language.
(meta model; process; process instance).
{
Tony
Ritual vs ceremony. Company goals, as-is. Proc migrates as-is towards goals.
Mcconnell. Visible progressed. Brookes software architecture -> organization. Adapt.
Retrospectives
Steve Mellor
processes -> work flows, visible, usable. So correct. If it don't hurt then its
wrong!
Alistair Cockburn
Process is secondary. People -> values -> ceremony. Quotes his published Matrix.
Shows a Video clip of "The Matrix" ( People as
batteries).
Norman distributes cards for questions. OO evaluation.
----
q1.
dick leaves to attend theory session and returns later
Guru
Learn how to learn your own wisdom.
. . . . . . . . . ( end of section Thurs 2 Processes) <<Contents | End>>
Thurs 3 Theory...
why. Feynman. Explain to 1st year. Failed formal vs meaning. Need both & more.
Inheritance as abstraction vs Darwin.
Species/class
Aristotle -> abstraction. genus & species.
Aristotle includes ( Plato -> ideal | Russell -> extension set | Darwin -> evolve within genus ).
Def.
predication
modes of supposition : material, real, logical
Inference. transference : ab&bc -> ac. Metaphor
conclusions
Programming Languages need a conceptual framework.
Like Beta.
Next
Studying substance vs phenomenon. 10 meanings for "to be". IDE based on syllogism.
. . . . . . . . . ( end of section Thurs 3 Theory...) <<Contents | End>>
Thurs 4 Fest wrap up
| who problem | Surprises | good | minus | interesting |
|---|---|---|---|---|
| randy Viking | time 2 sort out process. | not lonely | locked into tech | end of time discussion thrash while others do work |
| mike xray | Java is a bearable lang for communication. | heady design process | 0 | ur ding analysis again |
| scott order book matching | 3 strangers * 2 hours to yet codable solution. | = contribution not personalities. time constraints & understanding 0 | ||
| ryan xray | able to agree on finite-sate-machines & No code | allowed design | time&media3pages diagram | parallel on PC |
| chris vlab | 2hours? 0.5 day. | other people | need black/white-board | parallel working |
| Johnston Viking: | 2 in 1st half, 6 in next half, 0 time to doc! |
. . . . . . . . . ( end of section Design Fest) <<Contents | End>>
2. Viking. Java. 5boxes -> 20 classes. Front vs back end. - Viking class??
3. Order book. Java. 3people. 10 mins choose design? No! Take time 2 pick design team by observing them. Picked an impressive team. Worked with them+domain expert. Only had to add parts that designers had no time to work out.
4. game. Single coder c++ with directx. Client server. No graphics. But looked good.
. . . . . . . . . ( end of section Code Fest) <<Contents | End>>
. . . . . . . . . ( end of section Thurs 4 Fest wrap up) <<Contents | End>>
Thurs 5 Educ wrapup
---
O'Callaghan: where is design in our courses?
Joe Bergin: design Needed for accreditation. But CSci focuses on algorithms.
Mike Whitelaw: Teach Programming by oral methods. COBOL as pigeon or creole language. Our subject is humanities.
Jim Coplien. Programming in high school. So teach domain knowledge.
Alistair Cockburn: need reflective practitioners. So Parallel class reflecting on others.
O'Callaghan : service learning. Design studios. Reflection on work done.
Anna Trevino: what must they know by end of degree. No time later.
50/50 project/classes. But who learns what.
Jim Coplien. Teach skill or thinking.
Exams teach us to hide our ignorance. Software development needs us to expose & fix errors.
Dick: sci or eng or craft or art ?
Employer: They don't know what is good!
Piano playing discussion.
O'Callaghan: The scientific mold is broken.
. . . . . . . . . ( end of section Thurs 5 Educ wrapup) <<Contents | End>>
. . . . . . . . . ( end of section Oct 19) <<Contents | End>>
. . . . . . . . . ( end of section OOPSLA 2000 Minneapolis) <<Contents | End>>
End