W poprzednim temacie omówione zostało wprowadzenie do zaawansowanego programowania. Niniejszy temat traktuje o filozofii pracy zespołowej związanej z tworzeniem systemu.

Programowanie zespołowe wymaga przygotowania projektu systemu i dokonania jego podziału na grupy robocze. Podział powinien być przeprowadzony w sposób pozwalający na zajęcie się danym, wybranym, kompleksowym zagadnieniem tak, aby w pracy zleconej grupie nie występowały zagadnienia przenikające się z kompetencjami innych grup. Punktem styku pomiędzy grupami roboczymi winny być interfejsy (sprzęgi programowe) określone poprzez dane grupy, których temat dotyczy i sformalizowane w sposób umożliwiający przygotowanie wymiany danych pomiędzy opracowanymi przez grupy podsystemami w sposób tworzący jeden, całościowy system, realizujący zlecone mu zadania, a leżące jako podwaliny jego całego.

Podsystem zorientowany na podmiocie: Książka. Zawiera wyszczególnienie atrybutów i metod oraz tablicę interakcji z innymi podsystemami.

Zaprezentowany powyżej funkcjonalny blok podsystemu wydawać by się mógł zrealizowaniem ww. koncepcji. Jednakże jest on bardzo sprymitywizowany i w zasadzie mało przydatny w pracy zespołowej. Stanowi on raczej szkic niż realny schemat blokowy. Należy zauważyć, że pomimo wymienienia elementów klasy, czyli jej atrybutów i metod, z listą dostępnych z zewnątrz metod i zwracanych na zewnątrz danych nadal nie wiadomo jak wygląda interfejs komunikacyjny z zewnętrznymi podsystemami. Nie wiadomo praktycznie wcale (może za wyjątkiem, że w ogóle jest) jak wygląda interakcja (przepływ danych) z innymi podsystemami. Należałoby go rozbudować o listę metod z parametrami i zwracanymi wartościami. Arkusze pracy zespołowej wykraczają poza zakres modułu Podstawy Programowania i stanowią treść innych modułów w późniejszym toku studiów. Pewnym zalążkiem koncepcji pracy zespołowej będzie semestralny program zaliczeniowy wykonywany w grupach dwu-, trzy-osobowych.