BAB II DASAR TEORI Bab ini berisi uraian mengenai framework yang diawali dengan pengertian framework kemudian dilanjutkan dengan penjelasan mengenai karakteristik dan klasifikasi framework, proses pengembangan framework, pemodelan framework dengan UML-F dan cara mendokumentasikannya. Sistem informasi sekolah akan dijelaskan pada bagian akhir bab.
2.1. Pengertian Framework Framework telah menjadi isu yang penting dewasa ini bagi industri perangkat lunak ketika perkembangan perangkat lunak semakin kompleks. Teknik guna ulang perangkat lunak merupakan salah satu tujuan yang hendak dicapai dalam rekayasa perangkat lunak beberapa dekade belakangan ini. Tujuannya adalah penghematan dalam hal waktu dan biaya pengembangan. Framework merupakan teknologi yang menjanjikan dalam memperbaiki proses perancangan dan implementasi perangkat lunak dengan meningkatkan kualitas dari perangkat lunak yang dihasilkan. Framework adalah sebuah aplikasi yang “tidak lengkap” yang dapat diguna ulang untuk membuat bermacam-macam aplikasi [JOH88]. “Tidak lengkap” yang dimaksud adalah bahwa framework hanya berupa kumpulan beberapa kelas abstrak pada domain tertentu sehingga pengembang yang mengunakan framework harus melengkapi kelas abstrak tersebut menjadi perangkat lunak yang diinginkan. Framework merupakan sebuah rancangan sistem yang dapat diguna ulang dan mendeskripsikan bagaimana sistem tersebut didekomposisi ke dalam kumpulan objek yang saling berinteraksi. Sistem yang dimaksud dapat berupa keseluruhan aplikasi atau hanya merupakan sebuah subsistem. Framework mendeskripsikan baik itu komponen dari objek-objek maupun bagaimana objek-objek tersebut berinteraksi. Selain itu framework juga mendeskripsikan antarmuka tiap objek dan aliran kendali antar objek.
II-1
II-2 Framework mengambil keuntungan dari tiga karakteristik utama dalam pemrograman berorientasi objek yaitu abstraksi data (data abstraction), polymorphism, dan pewarisan (inheritance). Seperti sebuah tipe data abstrak (abstract data type), sebuah kelas abstrak merepresentasikan antarmuka yang implementasinya dapat berubah. Polimorfisme adalah kemampuan yang dimiliki sebuah peubah (variable) atau parameter dari prosedur untuk menyimpan nilai dengan tipe yang bermacam-macam. Sedangkan pewarisan mempermudah dalam pembuatan komponen yang baru. Framework dapat diibaratkan sebagai sebuah mesin yang membutuhkan tenaga (power) agar dapat hidup. Gambar 2.1 mengilustrasikan bagaimana framework dapat bekerja. Tidak seperti mesin pada umumnya, mesin framework ini memiliki banyak plug. Tiap plug tersebut merupakan hot spot dari framework, yaitu bagian yang dapat diubah berupa kelas-kelas abstrak. Tiap Hot spot harus diberi tenaga agar mesin dapat bekerja. Sumber tenaga tersebut adalah kode dari aplikasi yang akan dibuat yang harus dihubungkan dengan hot spot. Kode aplikasi yang ditambahkan tersebut akan digunakan oleh kernel framework, yaitu bagian framework yang tidak berubah.
Gambar 2.1 – Framework Sebagai Sebuah Mesin [MAR01]
2.2. Karakteristik Framework Keuntungan utama framework terlihat dari aspek pemodulan, guna ulang, perluasan, dan inversion of control yang merupakan karakteristik dari framework.
II-3 2.2.1. Pemodulan (Modularity) Framework terdiri dari beberapa kelas abstrak dengan antarmuka tertentu. Detail implementasi dapat dienkapsulasi dan efek perubahan implementasi dapat dilokalisasi. Lokalisasi juga dapat membantu memahami dan melakukan perawatan terhadap perangkat lunak. 2.2.2. Guna ulang (Reuse) Framework merupakan satu dari beberapa teknik guna ulang [KRU92]. Framework mengguna ulang analisis, rancangan dan juga kode implementasi. 1. Analisis Guna ulang analisis medeskripsikan berbagai jenis objek yang penting dan menyediakan kosakata yang membahas domain masalah yang dihadapi. 2. Rancangan. Guna ulang rancangan (design) dapat dilihat dalam bentuk pola (pattern). Pola (pattern) merepresentasikan kumpulan solusi yang sama yang digunakan untuk menyelesaikan permasalahan dalam pengembangan perangkat lunak dalam konteks tertentu. 3. Kode implementasi. Framework mengguna ulang kode karena akan mempermudah membangun sebuah aplikasi dari komponen-komponen pustaka yang tersedia. Alasan lain framework mengguna ulang kode karena sebuah komponen baru dapat dengan mudah diturunkan dari superclass yang abstrak. Guna ulang analisis dan rancangan lebih penting dari guna ulang terhadap kode karena inti dari guna ulang sebuah perangkat lunak adalah rancangan tingkat tinggi (high-level design) berupa solusi intelektual yang diberikan bukan kode implementasi.
2.2.3. Perluasan (Extensibility) Aspek perluasan diperlukan untuk mengubah fitur dan layanan pada aplikasi baru yang dibuat sesuai dengan kebutuhan. Untuk aspek perluasan, ada lokasi pada sebuah framework di mana fitur aplikasi yang dibuat dihubungkan dengan framework. Lokasi tersebut dinamakan hook.
II-4 Hook pada sebuah framework berada pada hot spot, yaitu bagian framework yang dapat berubah. Hot spot merupakan kelas-kelas abstrak atau metode-metode yang harus diimplementasikan. Framework bukanlah program yang dapat dieksekusi (executable). Untuk menghasilkan program yang dapat dieksekusi, developer harus menginstansiasi framework dengan mengimplementasikan kode-kode untuk aplikasi pada setiap hot spot. Setelah setiap hot spot diinstansiasi barulah framework dapat menggunakan kelas-kelas tersebut. Tetapi ada juga bagian-bagian tertentu dari framework yang tidak dapat diubah. Bagian tersebut merupakan kernel dari framework, atau dapat juga diebut frozen spot framework. Tidak seperti hot spot, frozen spot merupakan kumpulan kode yang telah diimplementasikan pada framework yang kemudian akan memanggil satu atau lebih hot spot yang telah diimplementasikan oleh pengembang aplikasi yang menggunakan framework. Kernel tidak akan berubah, konstan dan merupakan bagian yang selalu ada pada setiap instansiasi framework. 2.2.4. Inversion of Control Pada umumnya, developer yang mengembangkan aplikasi menggunakan pustaka (library) dengan menulis program utama yang memanggil komponen-komponen tersebut ketika dibutuhkan. Developer memutuskan kapan memanggil komponen tersebut dan bertanggung jawab terhadap struktur dan kendali program secara keseluruhan. Hal tersebut berbeda dengan framework di mana yang diguna ulang adalah program utamanya. Developer memutuskan apa saja yang ditambahkan pada program utama tersebut. Yang terpenting dalam hal ini adalah bahwa kode yang dibuat oleh developer dipanggil oleh kode framework yang digunakan. Framework menentukan struktur dan kendali program secara keseluruhan. Perbedaan tersebut dapat dilihat pada Tabel 2.1 dan Gambar 2.2. Tabel 2.1 – Perbedaan Framework dengan Library
Aspek
Library
Framework
Bagian aplikasi yang dikembangkan
program utama (main program)
subkelas dan komponen
Alur kendali
ditentukan pengembang aplikasi
ditentukan framework (pengembang framework)
kode buatan pengembang aplikasi (custom code)
custom code memanggil library code
framework code memanggil custom code
II-5
Custom Code
Custom Code
Custom Code
Framework
Custom Code
Component
Component
Component
Component
Custom Code
Library
Gambar 2.2 – Perbedaan Framework dengan Library
2.3. Klasifikasi Framework Framework dapat diklasifikasikan berdasarkan beberapa aspek seperti lingkup, teknik yang digunakan dalam pengembangan [JOH88], dan tingkat generalitas framework. 2.3.1. Lingkup Berdasarkan lingkupnya, framework dapat dibagi menjadi tiga yaitu: 1. System infrastructure framework Framework ini menyederhanakan pengembangan infrastruktur untuk sistem yang portable dan efisien seperti untuk sistem operasi [CAM93] dan framework untuk sistem komunikasi [SCI97] dan juga pengembangan antarmuka pengguna dan kakas pemroses bahasa. System infrastructure framework digunakan dalam lingkungan internal organisasi dan tidak dijual secara langsung ke konsumen. 2. Middleware integration framework Framework jenis ini umumnya digunakan dalam proses integrasi aplikasi dan komponen yang terdistribusi. Middleware integration framework dirancang untuk meningkatkan kemampuan pengembang perangkat lunak dalam memodulkan, mengguna ulang, dan
memperluas
lunak agar dapat bekerja pada lingkungan terdistribusi.
infrastruktur perangkat
II-6 3. Enterprise application framework Framework ini ditujukan pada domain aplikasi yang luas dan merupakan dasar aktivitas bisnis perusahaan [FAH99]. Dibandingkan system infrastructure dan middleware integration framework, enterprise application framework membutuhkan
biaya
yang besar untuk
mengembangkannya
ataupun
membelinya dari vendor. Namun enterprise application framework dapat memberikan pengembalian investasi (return on investment) karena framework ini mendukung pengembangan aplikasi untuk pengguna akhir (end user) dan produk secara langsung. Sedangkan system infrasturcture dan middleware integration framework fokus pada proses pengembangan perangkat lunak untuk keperluan internal perusahaan. 2.3.2. Teknik Pengembangan Ralph E. Johnson mengklasifikasikan framework menjadi dua berdasarkan teknik pengembangnya yaitu white-box framework atau dikenal dengan architecture-driven framework dan black-box framework yang dikenal dengan data-driven framework [JOH88]. 1. White-box framework Instansiasi framework ini hanya dapat dilakukan dengan menciptakan kelaskelas baru. Kelas-kelas tersebut beserta kode implementasinya dapat ditambahkan dengan pewarisan atau komposisi. Arsitektur white-box framework harus terdokumentasi dengan baik karena pengetahuan yang mendalam mengenai detail arsitektur framework sangat diperlukan untuk mengembangkan aplikasi sesuai dengan keinginan pengembang. Gambar 2.3 memperlihatkan white-box framework.
Gambar 2.3 – White Box Framework [CHE04]
II-7 2. Black-box framework Black-box framework menyembunyikan struktur internalnya. Pengguna hanya mengetahui deskripsi umum penggunaan framework dan hot spot yang disediakan. Mekanisme yang disediakan untuk instansiasi framework ini hanya dengan komposisi sehingga pengguna tidak harus mempelajari detail internal framework. Gambar 2.4 memperlihatkan black-box framework.
Gambar 2.4 – Black Box Framework [CHE04]
2.3.3. Tingkat Generalitas Berdasarkan tingkat generalitasnya, framework dibagi menjadi dua yaitu horizontal framework dan vertikal framework. 1. Horizontal framework Framework ini bersifat lebih umum sehingga dapat digunakan untuk membangun berbagai tipe aplikasi. Namun pengembang biasanya dihadapkan pada fitur-fitur yang tidak diinginkan sehingga banyak fitur framework yang tidak
digunakan.
Horizontal
framework
dapat
digunakan
untuk
mengembangkan antarmuka pengguna sebuah aplikasi pada area yang cukup luas di industri perangkat lunak. Contoh framework ini adalah GUI toolkit. Ilustrasi horizontal framework dapat dilihat pada Gambar 2.5.
II-8 portion of application
generality
portion of framework used
Gambar 2.5 – Horizontal Framework [ROG97]
2. Vertikal framework Vertikal framework atau dikenal juga dengan application framewok ditujukan untuk pembangunan aplikasi yang spesifik pada domain masalah tertentu. Contohnya adalah framework untuk analisis statistik data ekonomi di mana framework ini digunakan khusus untuk aplikasi keuangan. Vertical framework kurang umum, tetapi memiliki utilitas yang lebih baik serta memberikan solusi yang lebih lengkap. Oleh karena itu, framework ini lebih banyak digunakan dalam mengembangkan aplikasi. Gambar 2.6 mengilustrasikan vertikal framework. portion of application
generality
portion of framework used
Gambar 2.6 – Vertikal Framework [ROG97]
II-9
2.4. Proses Pengembangan Framework Sebelum membahas mengenai bagaimana proses pengembangan framework, ada beberapa hal yang harus diperhatikan seperti usaha pengembangan, proses belajar, kemampuan integritas, kemampuan perawatan, dan kurangnya standar. 1. Usaha pengembangan. Mengembangkan perangkat lunak yang kompleks cukup sulit, terlebih lagi mengembangkan framework yang dapat diguna ulang untuk domain aplikasi yang kompleks. Oleh karena itu, dibutuhkan kemampuan dan pengalaman yang baik dari pengembang untuk menghasilkan framework yang baik. 2. Proses belajar. Mempelajari penggunaan framework secara efektif tidak mudah. Sebagai contoh, dibutuhkan waktu 6-12 bulan untuk dapat menggunakan framework antar muka pengguna (GUI framework), seperti MFCs atau MacApp [FAM99]. Umumnya, mentoring dan pelatihan dibutuhkan untuk mengajarkan pada pengembang aplikasi bagaimana cara menggunakan framework dengan efektif. 3. Kemampuan integritas. Masalah
integrasi muncul pada beberapa tingkatan, mulai dari abstraksi,
sampai masalah dokumentasi, konkurensi, dan arsitektur pendistribusian. Sebagai contoh, karena inversion of control merupakan fitur yang penting dalam framework, akan sangat sulit untuk mengintegrasikan sebuah framework dengan framework lain agar dapat bekerja sama. 4. Kemampuan perawatan. Aplikasi akan terus berubah dari waktu ke waktu. Oleh karena itu framework pun harus berubah. Diperlukan perawatan yang rutin terhadap framework. Ada beberapa aktivitas
dalam
perawatan framework seperti
penambahan
fungsionalitas, pengurangan fungsionalitas, dan generalitas. Untuk melakukan hal tersebut, diperlukan pemahaman yang mendalam terhadap komponenkomponen framework dan hubungan antar komponen tersebut.
II-10 5. Kurangnya standar. Sampai saat ini tidak ada standar yang diterima secara luas dalam perancangan, implementasi, dan pendokumentasian framework. Pengembangan framework berbeda dengan pengembangan perangkat lunak pada umumnya. Perbedaan yang paling mendasar adalah framework harus mencakup semua permasalahan pada domain tertentu, di mana aplikasi hanya menfokuskan pada permasalahan yang ditentukan pada aktifitas pengumpulan kebutuhan (requirement gathering). Selain itu, metodologi-metodologi pengembangan perangkat lunak yang digunakan untuk mengembangkan aplikasi belum cukup untuk digunakan dalam membangun framework karena metodologi-metodologi tersebut tidak menyertakan perancangan hook framework yang menyediakan aspek fleksibilitas dan perluasan framework. Beberapa metodologi telah diusulkan untuk pembangunan framework. Akan tetapi, sampai sekarang belum ada metodologi yang diterima sebagai standar pembangunan framework. Metodologi-metodologi tersebut pada intinya dapat dikelompokkan menjadi aktivitas-aktivitas yang meliputi analisis (analysis), perancangan (design), implementasi (implementation), dan pengujian (testing) [FRO98]. Aktivitas-aktivitas tersebut seperti metodologi pengembangan perangkat lunak, tetapi tiap aktivitas disesuaikan untuk pengembangan framework. 2.4.1. Analisis Tujuan aktivitas ini adalah mendeskripsikan domain yang harus dilingkupi oleh framework. Untuk mendapatkan kebutuhan framework dan identifikasi permasalahan, pengembang framework dapat mengacu pada aplikasi yang telah dikembangkan, pada pakar-pakar di domain permasalahan tersebut, atau standar yang telah ada pada domain tersebut. Untuk menggambarkan kebutuhan fungsional framework, digunakan use case model yang berisi diagram use case, definisi tiap use case, skenario use case, dan definisi aktor. Identifikasi terhadap hot spot mulai dilakukan pada tahap ini. Eksplorasi terhadap aplikasi-aplikasi yang telah ada membantu dalam mengidentifikasi bagian-bagian mana yang berubah dari satu aplikasi ke aplikasi lainnya dan bagian mana yang tetap. Hasil dari aktivitas ini adalah model analisis domain yang berisi kebutuhan framework dan use case model.
II-11 2.4.2. Perancangan Model analisis merupakan masukan yang penting dari tahap ini. Framework yang akan dibangun dibentuk sedemikian sehingga memenuhi semua kebutuhan yang telah terdefinisi, termasuk di dalamnya kebutuhan non fungsional dan berbagai constraints lain. Proses perancangan menentukan struktur dari abstraksi, hot spot dan frozen spot framework. Hooks pada framework juga harus ditentukan dan dirancang. Hook memperlihatkan cara framework diadaptasi menjadi sebuah aplikasi dan merupakan bagian yang penting dalam framework. Hasil dari aktivitas ini adalah model perancangan yang mencakup perancangan kelas dan realisasi use case tahap perancangan. 2.4.3. Implementasi Tahap ini memfokuskan pada implementasi kode (coding) kelas-kelas abstrak dan konkret framework dari hasil perancangan yang telah dilakukan. Tujuan utama dari implementasi adalah untuk merealisasikan arsitektur dan sistem secara keseluruhan. Pembuatan dokumentasi framework juga mulai dilakukan pada tahap ini. 2.4.4. Pengujian Ada dua tipe pengujian yang dilakukan terhadap framework. Pertama, framework harus diuji secara terpisah tanpa aplikasi yang menyertainya. Hal ini bertujuan untuk mengidentifikasi error yang masih terjadi pada framework dan mencegah terjadinya error yang disebabkan oleh aplikasi. Kerusakan pada framework akan diteruskan pada aplikasi yang dibangun. Oleh karena itu, pengujian framework secara terpisah perlu dilakukan. Kedua, pengujian yang sesungguhnya yaitu ketika framework telah digunakan untuk membangun aplikasi. Pada proses ini diuji hook dari framework yang merupakan lokasi di mana interaksi antara framework dengan aplikasi yang dibangun terjadi. Penggunaan framework juga membantu mengetahui bagian mana saja dari framework yang belum lengkap dan memperlihatkan bagian-bagian pada framework yang harus lebih fleksibel atau yang seharusnya mudah digunakan.
II-12
2.5. UML-F Penggunaan notasi UML standar yang digunakan pada pembangunan aplikasi tidak memadai untuk memodelkan framework. Diagram yang ada pada UML saat ini tidak dapat menjelaskan bagian mana dari framework yang dapat berubah dan apa constraint pada saat instansiasi. Untungnya, UML menyediakan mekanisme untuk menambahkan dan mendefinisikan label atau tanda yang dibutuhkan pada elemen model UML. Penambahan-penambahan tersebut menghasilkan sebuah UML baru yang disebut UML-F [FON00]. UML-F mendukung pembangunan framework. UML menyediakan mekanisme ekstensi pada stereotype, tagged value, dan constraint. UML-F menggunakan tagged value sebagai mekanisme ekstensi pada UML. UML diagram diperluas dengan menambahkan tag {variable}, {extensible}, {app-class},
{static},
dan
{dynamic}.
OCL (Object
Constraint Language)
ditambahkan tag {for all new method} dan tag {optional} ditambahkan pada sequence diagram. Penjelasan mengenai tag tersebut dapat dilihat pada Tabel 2.2. Tabel 2.2 – Ekstensi UML-F
No.
Nama Ekstensi
Jenis Ekstensi
Bagian UML yang diterapkan
Deskripsi
1.
{app-class}
boolean
Class
Kelas yang hanya ada pada instansiasi framework. Kelas-kelas pada aplikasi baru didefinisikan selama proses instansiasi framewrok.
2.
{variable}
boolean
Method
Method harus diimplementasikan ketika proses instansiasi framework.
3.
{extensible}
boolean
Class
Antarmuka kelas bergantung pada instansiasi framework. Method baru bisa ditambahkan untuk menambah fungsionalitas kelas.
4.
{static}
boolean
Extensible interface, Variable method, dan Extensible Class
Informasi yang belum lengkap ditambahkan saat kompilasi aplikasi.
5.
{dynamic}
boolean
Extensible interface, Variable method, dan Extensible Class
Informasi yang belum lengkap ditambahkan saat aplikasi berjalan.
II-13 No.
Nama Ekstensi
Jenis Ekstensi
Bagian UML yang diterapkan dan
Deskripsi
6.
{incomplete}
boolean
Generalization Realization
Sub kelas baru harus ditambahkan pada relasi generalisasi atau realisasi.
7.
{for all new methods}
boolean
OCL Constrain
Menandakan bahwa OCL constraint ditujukan pada semua method baru.
8.
{optional}
boolean
Events
Menandakan bahwa event yang ada bersifat opsional.
2.6. Dokumentasi Framework Salah satu aktivitas yang paling penting dalam pengembangan framework yaitu pembuatan dokumentasi. Tanpa dokumentasi yang jelas, lengkap dan benar, framework tidak akan dapat digunakan oleh pengembang aplikasi yang tidak terlibat dalam perancangan framework tersebut. Dokumentasi framework memiliki tiga tujuan utama yang menjelaskan [JOH92]: 1. Tujuan pembuatan framework 2. Bagaimana menggunakan framework 3. Detail rancangan framework Ada banyak metode yang diusulkan untuk mendokumentasikan framework akan tetapi sampai sekarang belum ada standar yang digunakan dalam pembuatan dokumentasi. Beberapa metode yang diusulkan antara lain cookbook dan recipe, example, design patterns, framework overview, reference manual, dan design notebook. 2.5.1. Cookbook dan Recipe Recipe mendeskripsikan bagaimana menyelesaikan masalah-masalah yang khas dan sering muncul selama mengembangkan aplikasi. Informasi direpresentasikan dalam bahasan yang tidak formal dan mudah dimengerti serta dilengkapi dengan gambar dan kode sumber. Walaupun tidak formal, recipe biasanya memiliki struktur seperti
II-14 bagian yang menjelaskan tujuan, langkah-langkah menggunakan recipe, referensi ke recipe yang lain, dan contoh-contoh kode sumber. Cookbook merupakan kumpulan dari recipe. Panduan untuk mencari recipe yang dibutuhkan disediakan oleh cookbook baik itu berupa daftar isi maupun dengan menjadikan recipe yang pertama sebagai gambaran (overview) dari keseluruhan cookbook. Cookbook digunakan pada framework seperti MVC (Model-ViewController), MacApp, HotDraw, ET++, MET++, dan CommonPoint. Banyak pengembang aplikasi berhasil mempelajari framework dari cookbook dan kode sumber framework tersebut. 2.5.2. Examples Kode sumber dari beberapa contoh aplikasi yang dikembangkan menggunakan framework
sering
digunakan
sebagai
dokumentasi
yang
disediakan
untuk
pengembang aplikasi. Biasanya dokumentasi jenis ini dibuat selama pengembangan framework yaitu pada saat inisiasi framework. Akan tetapi dokumentasi ini terlalu sulit untuk pengembang aplikasi pemula [SPA96], pengenalan pada hot spot dari framework harus ditambahkan dari mulai bentuk guna ulang yang paling sederhana hingga bentuk yang lebih rumit. 2.5.3. Design Pattern Design pattern memberikan solusi untuk permasalahan-permasalahan yang muncul dalam perancangan. Design patterns merupakan meta knowledge tentang bagaimana menggabungkan fleksibilitas dalam sebuah framework. Deskripsi sebuah design pattern menjelaskan masalah dan hubungannya, solusi dari masalah tersebut, dan diskusi mengenai konsekuensi ketika menggunakan solusi yang disediakan. Permasalahan biasanya diilustrasikan dalam contoh yang konkret. Solusi menjelaskan objek-objek dan kelas-kelas yang berpartisipasi dalam sebuah rancangan (design) beserta tanggung jawab dan kerjasama antara kelas dan objek tersebut. Sebuah diagram kolaborasi dapat juga digunakan untuk merepresentasikan masalah yang serupa. Contoh penggunaan solusi yang digunakan pada situasi yang nyata juga biasanya disertakan dalam design pattern. Selain itu, analisis keuntungan dan kerugian ketika menggunakan pola (pattern) merupakan bagian penting yang harus ada dalam deskripsi design pattern.
II-15 2.5.4. Framework Overview Penjelasan mengenai gambaran umum dari framework merupakan langkah awal membantu pengembang aplikasi dalam mengguna ulang framework. Framework overview berisi batasan framework yang dibuat, apa saja yang dicakup oleh framework dan apa saja yang tidak, serta memberikan informasi mengenai bagian mana yang tidak dapat diubah dan bagian yang fleksibel dalam framework. Overview bisa juga menjadi recipe pertama pada sebuah cookbook. Jika framework dikembangkan secara in-house, overview framework disajikan dalam bentuk presentasi oleh pengembang framework pada pengembang aplikasi. 2.5.5. Reference Manual Reference manual untuk sebuah sistem berorientasi objek terdiri dari deskripsi tiap kelas, serta deskripsi dari peubah-peubah global, konstanta-konstanta, dan tipe-tipe. Secara umum, deskripsi sebuah kelas menjelaskan tujuan dan tanggung jawab kelas, peran (role) dari tiap data member, dan informasi tiap metode. Deskripsi metode menjelaskan fungsi, status awal dan status akhir metode tersebut. Untuk dokumentasi framework, deskripsi-deskripsi tersebut dapat ditambahkan informasi mengenai peranan kelas atau metode dalam menyediakan fleksibilitas untuk hot spot, apakah kelas tersebut dapat dibuat subkelasnya atau sebuah metode dapat dioverride. Akan tetapi reference manual bukan merupakan sumber yang baik untuk mempelajari sebuah framework. 2.5.6. Design Notebook Design notebook berisi kumpulan informasi yang berkaitan dengan rancangan perangkat keras. Informasi berisi latar belakang teori, analisis dari situasi, dan diskusi mengenai engineering trade-off.