1. 第11回:ユーザインタフェースのプログラミング
  2. ユーザインタフェース部分
  3. インタフェース作成の面倒さ
  4. インタフェース作成の面倒さ(cont'd)
  5. リアルタイム性
  6. 様々な要素技術
  7. アプリケーション部とインタフェース部の交錯
  8. AppとI/Fの分離
  9. 分離の困難さ
  10. 並列処理
  11. 並列処理(cont'd)
  12. 例外処理
  13. エラー処理記述の面倒さ
  14. 柔軟性/頑強性
  15. ユーザ補助機能
  16. 評価/再設計の繰り返し
  17. 関連技術(1)
  18. 関連技術(2)
  19. 関連技術(3)
  20. 解決法1: UIMS
  21. UIMS = User Interface Management System
  22. Seeheimモデル
  23. UIMSの問題点
  24. 解決法2: UI記述言語
  25. UI記述言語の問題点
  26. 解決法3: ツールキット
  27. 各種のグラフィックツールキット
  28. オブジェクト指向ツールキット
  29. 例: NeXTstepのプログラム
  30. UIツールキットの問題点
  31. UIツールキットの問題点(cont'd)
  32. 解決策4: 状態遷移プログラミング
  33. 状態遷移機械の問題点
  34. 拡張状態遷移機械単純な状態遷移機械を拡張したモデル
  35. 状態遷移プログラミング
  36. 状態遷移プログラミング例
  37. 変換後のソース
  38. 解決策5: 並列プログラミング
  39. 並列処理はUIプログラミングに非常に重要
  40. ツールキットの並列動作
  41. 並列プログラミングの問題点
  42. 解決法6: インターフェースビルダ
  43. インターフェースビルダ
  44. NeXTのインタフェースビルダ
  45. Xcodeのインタフェースビルダ
  46. インターフェースビルダの問題点
  47. 解決法7: 制約プログラミング
  48. 参考: Cinderella
  49. 制約システムの問題点
  50. 解決法8: 例示プログラミング
  51. 例示システムの問題点
  52. どうするのがよいか?
  53. 工夫のいろいろ
  54. From scratch, 小規模システムの場合
  55. From scratch, 大規模システムの場合
  56. ウィンドウシステムの場合
  57. プロトタイプシステムをとりあえず動かす場合
  58. ツールの実例1: Flex
  59. Flex適用例
  60. C出力
  61. ツールの実例2: Linda
  62. Lindaモデル
  63. 8-Queen
  64. Lindaによる解法
  65. 端末インタフェースをもつ8-Queenプログラム
  66. ウィンドウインタフェースをもつ8-Queenプログラム
  67. 8-Queen
  68. Lindaによる解法
  69. Node+Linda
  70. End