Luennot
Luentojen järjestykseen ja sisältöihin voi tulla muutoksia!
Vuoden 2010
kurssin luennoista on taltioitu videolle
nauhoitus+kuvankaappaus Windows Media Player 9:n formaatissa (WMV).
Nämä ovat katseltavissa suoraan verkosta (Mediasoittimessa File
-> Open URL - ei toimi suoraan selaimesta) tai ne voi ladata
omalle koneelle (oikealla napilla Save Link as...). Katseluohjeet (+omat
ohjeet Mac
OS X:lle). Videohakemisto
(tarkista aiheet aiemman kurssin luentosivulta)
Luentokalvot tulostettavassa muodossa
Luentomoniste (huom. virhelista
wikissä - täydennä tarvittaessa).
Sisältötiivistelmä
(MN) (luentorunko html-puuna, epävirallista materiaalia)
Luentomoniste, Bennett (luvut 9-14, 16-18, soveltuvin osin myös 15, 19-20) ja ICONIX-prosessi kuuluvat tenttiin, muut linkit ja artikkelit ovat hyödyllistä lisätietoa.
UML-ohjeita verkossa:
- Kurssikirjan UML-tiivistelmä.
- Holubin tiivis UML-referenssi
- Laajempi UML-tutoriaali: www.uml-diagrams.org
- Agile modeling: kaavioesimerkit ja tyyliohjeet
- UML:stä ja suunnittelumalleista: SourceMaking
- Muita UML-pikareferenssejä: Google UML Cheatsheet.
Luento 1 - Ke 14.3.2012 klo 14:15, Ag Aud. 2 (MN)
- Kurssin esittely, suunnittelusta,
malliajattelusta
- Moniste, luku 5 (osittain)
- Bennett, luku 13: System Design
- Lisämateriaalia
- Analyysistä suunnitteluun
- Moniste, luku 5.3.1 (luokkakaavioiden tarkentaminen - osittain)
& 4.3 (dynaaminen mallintaminen)
- Bennett, luku 9 (osittain): Object Interaction: Communication
Diagrams
- Agate-analyysivaiheen malleja (uml-standardin mukainen yhteistoimintakaavioesimerkki)
- Rosenberg: Successful Robustness Analysis (robustness-analyysin kertaus)
- Bittner: Why Use Cases Are Not "Functions"
- Lisämateriaalia
- ICONIX-prosessi (analysis/preliminary design -> detailed design)
- ICONIX:in Analysis Paralysis -varoitukset
- SourceMaking: Analysis Paralysis -antipattern
- SourceMaking: Mushroom Management -antipattern
- Martin Fowler: Transaction–Transaction Line Item, analysis pattern
- Agile Modeling: Robustness Diagrams
- Agile Modeling: Communication Diagrams + Style Guidelines
- Esimerkki vaatimusten dokumentoinnista ja liittämisestä käyttötapauksiin: UCOT-vaatimusmäärittely
- Sekvenssikaaviot, CRC-kortit
- Moniste, luvut 4.3 (dynaaminen mallintaminen) & 4.5 (mm.
operaatioiden lisääminen luokkakaavioon)
- Bennett, luvut 7 (jatkuu): Object Interaction: Sequence Diagrams
- PlantUML -
sekvenssikaavioita (ja muitakin) tekstistä
- Lisämateriaalia
-
- HotDraw-CRC-esimerkkejä
- Agile Modeling: Class Responsibility Collaborator (CRC) Models
- TraceModeler: tiivis sekvenssikaavioesittely
- informIT: esimerkki ehdollisista kutsuista
sekevenssikaaviossa
- developerWorks: laajempi sekvenssikaavioesittely
- Agile Modeling: Sequence Diagrams + Style Guidelines
- Arkkitehtuurista
- Moniste, luvut 4.1 (arkkitehtuurin mallintaminen) & 5.1 (arkkitehtuurin suunnittelu)
- Bennett, luku 12: System Architecture
- Agate-pakettirakenne
- Lisämateriaalia
-
- Kruchten: Architectural Blueprints—The "4+1" View Model of Software Architecture
- Tyree & Akerman: Demystifying Architecture
- Parnas: On the Criteria To Be Used in Decomposing Systems into Modules
- Coplien:
Architect Also Implements -pattern + c2 wiki: Architects
Don't Code -antipattern
- SourceMaking: The Grand Old Duke of York -antipattern ("implementationists outnumber abstractionists approximately 4 to 1")
- vico.org: Broker,
architectural pattern
- Oliosuunnitteluperiaatteista
- Bennett, luku 12 (jatkuu)
- Moniste, luku 5.1 (jatkuu), 5.2 (arkkitehtuurimalleista)
- Martin: Design Principles and Design Patterns
- Lisämateriaalia
-
- SourceMaking: Observer, design pattern
- Madhusudanan:
Applying The Observer Pattern
- Reenskaug: Model-View-Controller, architectural pattern
- Burbeck: How to use Model-View-Controller (MVC)
- Krasner & Pope: A
Description of the Model-View-Controller User Interface Paradigm in
the Smalltalk-80 System
- C++ FAQ: Is Circle an Ellipse? (esimerkki korvausperiaatteen soveltamisesta)
- Yksityiskohtainen suunnittelu
- Moniste, luku 5.3.1 (luokkakaavioiden tarkentaminen)
- Bennett, luku 14: Detailed Design
- Operaatioiden spesifiointi
- Moniste, luku 5.3.2 (ohjausrakenteiden tarkentaminen)
- Bennett, luku 11: Specifying Operations
- Lisämateriaalia
-
- JI: Johdatus Pythoniin
- Learn Python-tutoriaali
- Uudelleenkäyttö, komponentti- ja sijoituskaaviot
- Moniste, luvut 5.1.2 (fyysinen arkkitehtuuri) & 5.2
(uudelleenkäytöstä)
- Bennett, luvut 19-20 (soveltuvin osin): Implementation, Reusable Components
- Lisämateriaalia
-
- Agile Modeling: Component Diagrams + Style Guidelines
- Agile Modeling: Deployment Diagrams + Style Guidelines
- Prieto-Diaz: Classifying Software for Reusability
- Suunnittelumalleista
- Moniste, luku 5.2.1 (suunnittelumallit)
- Bennett, luku 15 (soveltuvin osin): Design Patterns
- Lisämateriaalia
-
- Appleton: Patterns and Software: Essential Concepts and Terminology
- Tarr: Singleton Pattern
- Tarr: Composite Pattern
- Hillside Group: Design
Patterns Library
- SourceMaking: Singleton,
design pattern
- SourceMaking: Composite, design pattern
- Foote & Yoder: Big Ball of Mud
- c2 wiki
(Portland Pattern Repository)
- Tilakaaviot
- Moniste, luku 5.3.2.1 (tilakaaviot)
- Bennett, luku 11: Specifying Control
- Agate-analyysi- ja suunnitteluvaiheen malleja
- Lisämateriaalia
-
- dummies.com: Building Protocol State Machines in UML 2
- Käyttöliittymät, käyttöliittymäluokkien suunnittelu
- Moniste, luku 5.3.3 (käyttöliittymäluokkien
suunnittelu)
- Bennett, luvut 16-17 (soveltuvin osin): Human–Computer Interaction, Designing Boundary Classes
-
- Lappalainen: Tapahtumapohjainen ohjelmointi
Luento 12 - To 26.4.2012 klo 12:15, Ag Aud. 2 (MN)
- Kohdealueluokkien tiedonhallinnan suunnittelu
- Moniste, luku 5.3.4 (tiedonhallinnan suunnittelu)
- Bennett, luku 18 (soveltuvin osin): Data Management Design
- Lisämateriaalia
Luento 13 - Ke 2.5.2012 klo 14:15, Ag Aud. 2 (Wetterstrand)
- Toteutuksesta, käytännön
case
- Bennett, luku 19 (soveltuvin osin): Implementation
- Lisämateriaalia
-
- Reeves: Code as Design
- Kertaus
- Agate-yksityiskohtaisen suunnittelun malleja
- Bergin: Understanding Object Oriented Programming
- Lisämateriaalia
-
- SourceMaking: Facade, design pattern
