rafsyapenyelesaian suatu masalah dapat kita modelkan dalam suatu pemikiran sistematis. Seperti pada diagram blok di bwh, kita dapat memodelkannya kedalam input, system, dan output.Input di sini adalah masalah sedangkan output -nya adalah penyelesaian masalah. Di dalam system kita memproses informasi dari input untuk kemudian disesuaikan agar diperoleh output yang diinginkan. Artinya sebelum memulai penyelesaian masalah harus didefinisikan terlebih dahulu input dan output-nya. Dengan demikian kita mempunyai gambaran jelas tentang permasalahannya dan bisa membayangkan hasil akhirnya. Barulah kemudian mendesain sebuah sistem untuk mencapai hasil akhir yang diinginkan. Di dalam blok sistem sendiri, kita bisa membaginya kembali ke dalam beberapa blok yang saling terhubung satu sama lain membentuk sebuah proses yang saling terikat (seperti gambar di atas). Masing-masing blok itu pun terdiri dari input, output, dan blok system. Dengan kata lain ada sistem di dalam sistem, yang apabila blok di dalam sistem tersebut masih memiliki proses yang kompleks, dapat dipecah lagi menjadi beberapa blok sampai diperoleh urutan proses input –> system –> output yang lebih sederhana. Proses pemecahan ini terjadi secara rekursif dan tergantung kepada kompleksitas sistem yang dibuat.Pemodelan sistem ini dalam dunia rekayasa bisa disetarakan dengan standar formal dari abstraction language dimana dewasa ini telah dikenal adanya UML (Unified Modelling Language) atau SDL (Specification Description Language). Abstraction Language tersebut adalah layer teratas ketika kita mengembangkan suatu sistem sebelum implementasi dengan bahasa pemrograman di layer yang lebih rendah. Selain itu pemahaman dan pendekatan sistem juga jauh lebih mudah dengan model definisi formal seperti itu.