ユーザがこうして欲しい、こうなって欲しいという仕様は、コンピュータ上では、制約を用いて設定します。
一方、私達、人間は、言葉を用いて、他人とコミュニケーションを取ります。
コンピュータ上の言葉は、制約になります。制約という言葉で、欲しい仕様をコンピュータに伝え、実現していきます。

人間でも、重要な情報は、文書で取り交わして、意思の齟齬がないようにします。
同じように 制約というのは、誰が読んでも明確であり、読む人の間で齟齬が生まれる余地はありません。

しかしながら、仕様を実現する制約記述方法は、一意に決まるものではなく未だ自由度は大き過ぎます。
そこで、スケジュールナースでは、モデリング方法として、シフト勤務表とタスク勤務表という二つのモデルを用意しています。

シフト勤務表とタスク勤務表

シフト勤務表は、シフトのみの勤務表です。シフトは、時間帯という概念です。勤務表を作るのに「シフト」だけを使うモデリング方法です。
一方、タスク勤務表は、シフトに加えて「タスク」という仕事の種類を追加したモデルになります。シフト勤務表では、シフト解だけが答えになります。
タスク勤務表では、それに加えてタスク解も加わります。

また、予定についても、シフト勤務表は、シフト予定だけになりますが、タスク勤務表では、タスク予定もあります。
いずれの勤務表もシフトをベースとするのは、変わりません。
しかし、タスク勤務表の方が、タスクがある分複雑ですから、シフトのみで記述可能ならばシフト勤務表を作成するのがよいでしょう。

看護師・介護士の勤務表は、殆どの場合、シフト勤務表で記述可能です。

シフト勤務表

スケジュールナース上の制約は、3つの集合、日(Day)集合、スタッフ集合、シフト集合のベースの上にあります。

タスク勤務表