COP merupakan pemrograman yang meletakkan context sebagai hal pertama yang diperhatikan. Context adalah sekumpulan informasi yang dapat mengelompokkan situasi sebuah entiti. Entiti disini dapat berupa orang, tempat atau objek yang sesuai dengan interaksi antara pengguna dan aplikasi. Context ini dapat berupa lokasi, device atau kebijakan untuk seorang user.
Dalam implementasinya, ada beberapa bagian dalam pogram COP. Bagian yang paling utama 2 adalah skeleton. Skeleton merupakan bagian program yang sering disebut dengan program utama. Dalam COP skeleton terdiri dari satu atau lebih open term atau gap. Open term ini muncul karena adanya perbedaan di sisi user. Pada open term inilah akan didefinisikan sebuah context yang sedang aktif atau sedang terjadi pada user. Open term yang ada akan diisi dengan potongan progam yang mendefinisikan sebuah goal dari program yaitu stub. Stub yang akan digunakan untuk mengganti open term ini dipilih sesuai dengan kondisi context yang sedang terjadi pada sisi user. Proses pemilihan otomatis ini disebut dengan context filling. Proses inilah yang melatarbelakangi kelebihan – kelebihan dari COP.
Context memiliki kesamaan antara kelas dan objek, hanya saja pada bahasa OO, context lebih dekat dengan objek. Seperti kelas, context tidak memiliki instansiasi data. Namun, berbeda dengan kelas, contex tidak memiliki instansiasi, sementara kelas diinstansiasi untuk menjadi sebuah objek. Context dapat dimanipulasi pada program, hal ini berbeda dengan kelas, karena pada OO justru objek yang dapat dimanipulasi. Kelas dari sebuah context adalah satu set context yang dapat berubah – ubah yang mengimplementasikan method yang memiliki definisi yang sama.
Dengan dasar ini, maka dalam perancangan, sebuah context akan dibuat menjadi sebuah kelas abstrak. Kelas abstrak ini akan di-extend oleh kelas – kelas yang mewakili gap yang ada. Sementara dalam implementasi penulisan kode program, ada tiga cara yang dapat dipakai untuk mengimplementasikan COP pada OOP. Pertama, dapat dipakai polimorfisme. Polimorfisme ini dipakai untuk method – method yang merepresentasikan goal yang akan bekerja sesuai dengan context. Jadi method ini memiliki berbagai perilaku sesuai dengan context yang sedang terjadi.
Cara yang kedua adalah dengan menggunakan statement case. Dengan adanya case, maka potongan program yang sesuai dengan context akan langsung diisi dengan potongan program dan berjalan sesuai dengan context yang sedang terjadi. Cara yang ketiga adalah dengan menggunakan Virtual Method Table (VMT). Ketika menggunakan VMT, pada method yang merepresentasikan goal, maka akan ada sebuah pointer yang akan menunjukkan method yang sesuai dengan context yang sedang terjadi.