目次

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