Luennot
Luentojen järjestykseen ja sisältöihin voi tulla muutoksia!
Luennoista taltioidaan videolle nauhoitus+kuvankaappaus Windows Media Player 9:n formaatissa (WMV). Luennot tulevat verkkoon pääsääntöisesti heti luennon jälkeen ja 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).
Luentokalvot
tulostettavassa muodossa (päivitetty 1.3.2010).
Luentomoniste.
Sisältötiivistelmä
(luentorunko html-puuna, epävirallista materiaalia)
Kurssikirjan UML-tiivistelmä.
Muita UML-pikareferenssejä: Google UML Cheatsheet.
Luentomoniste, Bennett (luvut 1-14, 16-18, soveltuvin osin myös
15-16, 19-21)- ja Cockburn-materiaalit sekä ICONIX-prosessi
kuuluvat tenttiin, muut linkit ja artikkelit ovat hyödyllistä
lisätietoa.
- Kurssin esittely, demoista ja
harjoitustyöstä. Oliot.
- Moniste, luku 1
- Bennett, luku 4: What Is Object-Orientation
- Tietojärjestelmien kehityksestä ja prosessimalleista
- Moniste, luku 2
- Bennett, luvut 1-3: What Are Information Systems?, Problems in Information Systems Development, Avoiding the Problems
Luento 3 - Ti 23.3.2010 klo 12:15, Ag Aud. 3 - Video - Demo 1
- UML-mallinnuskäsitteistä,
aktiviteettikaaviot
- Moniste, luvut 2 & 3.3
- Bennett, luku 5: Modelling Concepts, Activity Diagrams
- Kurssilla käsiteltävät kaaviot ja muut tekniikat yhdessä taulukossa
- Agate-aihekuvaus
- Lisämateriaalia
-
- Agile Modeling: Activity Diagrams + Style Guidelines
- RUP-alkeita, vaatimukset
- Moniste, luvut 2 & 3.1
- Bennett, luvut 5-6 (jatkuu), 21: Development Process, Requirements Capture, Software Development Processes (osittain)
- ICONIX-prosessi (lähinnä harjoitustyön suoritusjärjestystä)
- Kurssilla käsiteltävät ja painotettavat asiat kehitysprosessin aktiviteettien (vastaa karkeasti Bennettin ym. lukurakennetta) kannalta
- Kurssikirjan kehitysprosessi aktiviteettikaavioina (+ vaihtoehtoinen, käyttötapauspohjainen malli vaatimusten kartoitukseen liittyvään prosessin osaan)
- Lisämateriaalia
- Käyttötapauskaaviot, käyttötapausten kirjoittaminen
- Luentokalvot
- Moniste, luku 3.2
- Bennett, luku 6 (jatkuu): Use Case Diagrams
- Cockburnin tyyliohjeet käyttötapausten kirjoittamiseen
- Lisämateriaalia
-
- Cockburn: Vaihtoehtoiset käyttötapauspohjat + laajempi esimerkki
- ICONIX: Use Cases (minimalistinen lähestymistapa käyttötapausten kirjoitukseen)
- Wikipedian yleiskuvaus käyttötapauksista
- Bittner: Why Use Cases Are Not "Functions"
- Agile Modeling: Use Case Diagrams + Style Guidelines
- Esimerkki vaatimusten dokumentoinnista ja liittämisestä käyttötapauksiin: UCOT-vaatimusmäärittely
- Luokkakaaviot,
tietohakemisto
- Moniste, luvut 4.2
- Bennett, luvut 7, 8: Requirements Analysis, Refining the
Requirements Model
- Agate-vaatimusmäärittely ja käyttötapaukset
- Lisämateriaalia
-
- Agile Modeling: Class Diagrams + Style Guidelines
- Yhteistoimintakaaviot
- Moniste, luku 4.3 & 5.2.1 (osittain)
- Bennett, luku 9 (osittain): Object Interaction: Communication
Diagrams
- Rosenberg: Successful Robustness Analysis (ICONIX-tyylinen korkean tason yhteistoimintakaavio)
- Agate-analyysivaiheen malleja (uml-standardin mukainen yhteistoimintakaavioesimerkki)
- Lisämateriaalia
-
- Agile Modeling: Robustness Diagrams
- Agile Modeling: Communication Diagrams + Style Guidelines
- ICONIX:
Robustness Analysis
- Suunnittelusta, malliajattelusta
- Moniste, luku 4.3.3, 5.3.1 (osittain)
- Bennett, luku 13, 9: System Design, Specifying Operations
- Lisämateriaalia
-
- C++ FAQ: Is Circle an Ellipse? (esimerkki korvausperiaatteen soveltamisesta)
- ICONIX:in Analysis Paralysis -varoitukset
- SourceMaking: Analysis Paralysis -antipattern
- SourceMaking: Mushroom Management -antipattern
- Martin Fowler: Transaction–Transaction Line Item, analysis pattern
- Sekvenssikaaviot, CRC-kortit, operaatioiden määritys
- Moniste, luvut 4.3 & 4.5
- Bennett, luvut 7 (jatkuu): Object Interaction: Sequence Diagrams
- ICONIX: detailed design
- 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
- Sekvenssikaaviot (jatkuu), arkkitehtuurista
- Moniste, luvut 4.1 & 5.1
- Bennett, luku 12: System Architecture
- 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
- Arkkitehtuurimallit
- Moniste, luvut 5.3
- Agate-pakettirakenne
- Lisämateriaalia
-
- Trygve Reenskaug: Model-View-Controller, architectural pattern
- Steve Burbeck: How
to use Model-View-Controller (MVC)
- SourceMaking: Observer, design pattern
- Anoop Madhusudanan: Applying The Observer Pattern
- Yksityiskohtainen suunnittelu, uudelleenkäyttö, komponentti- ja sijoituskaaviot
- Moniste, luvut 5.1.2 & 5.2
- Bennett, luvut 15, 19-20 (soveltuvin osin): Design Patterns, Implementation, Reusable Components
- Bennett, luku 14: Detailed Design
- Lisämateriaalia
-
- SourceMaking: Singleton,
design pattern
- SourceMaking: Composite,
design pattern
- Agile Modeling: Component Diagrams + Style Guidelines
- Agile Modeling: Deployment Diagrams + Style Guidelines
- Robert Martin:
Design Principles and Design Patterns
- SourceMaking: Singleton,
design pattern
- Tilakaaviot
- Moniste, luku 5.3.2
- Bennett, luku 11: Specifying Control
- Agate-analyysi- ja suunnitteluvaiheen malleja
- Lisämateriaalia
-
- dummies.com: Building Protocol State Machines in UML 2
- SourceMaking: Facade, design pattern
- Käyttöliittymät, käyttöliittymäluokkien suunnittelu
- Moniste, luku 5.3.3
- Bennett, luvut 16-17 (soveltuvin osin): Human–Computer Interaction, Designing Boundary Classes
- Kohdealueluokkien tiedonhallinnan suunnittelu
- Moniste, luvut 5.3.4
- Bennett, luku 18 (soveltuvin osin): Data Management Design
- Toteutuksesta, Case: hajautettu oliojärjestelmä
- Bennett, luku 19 (soveltuvin osin): Implementation
- Luentokalvot
- Big Ball of Mud
- Kertaus
- Agate-yksityiskohtaisen suunnittelun malleja
- Lisämateriaalia
-
- Joseph Bergin: Understanding Object Oriented Programming
