Why Do We Need Software Engineering?

Untuk memahami kebutuhan akan rekayasa perangkat lunak, kita harus berhenti sejenak untuk melihat sejarah komputasi modern. Sejarah ini akan membantu kami memahami masalah yang muncul di latar belakang, dan solusi yang mengarah pada pengembangan perangkat lunak. Beberapa orang menyebut masalah ini sebagai "krisis perangkat lunak", yang menyerukan munculnya gejala-gejala masalah. Situasi ini juga dapat disebut "penghalang kompleksitas", yang disebut sebagai penyebab utama masalah. Beberapa titik ke krisis di masa lalu.

Pada hari-hari awal komputasi, perhatian utama adalah bahwa krisis belum berakhir, tetapi pengembangan banyak teknologi baru. Dengan membangun atau mendapatkan perangkat keras. Program itu harus dijaga. Konsensus adalah bahwa "perangkat keras" adalah "sulit" untuk diubah, sementara "program" adalah "lunak" atau mudah diubah. Menurut kebanyakan orang di industri pengembangan perangkat keras direncanakan dengan cermat tetapi secara signifikan kurang dapat dikelola untuk program ini. Mereka berpikir bahwa jika program itu tidak berhasil, akan mudah untuk mengubahnya menjadi berhasil.

Biaya program ini adalah sebagian kecil dari biaya perangkat keras. Namun, semua orang melihat pentingnya menghasilkan program yang efisien dan cepat. Misalkan waktu orang untuk menghemat waktu perangkat.

Pendekatan ini memuaskan pada hari-hari awal komputasi, ketika programnya sederhana. Namun, ketika komputasi matang, program menjadi lebih kompleks, dan proyek jauh lebih baik, sementara program secara rutin dikembangkan, ditulis, dijalankan, dan dipelihara oleh orang lain. 19659002] Upaya individu untuk upaya kolektif. Komunikasi dan koordinasi, yang merupakan salah satu masalah paling penting. Akibatnya, komunikasi, manajemen, perencanaan dan dokumentasi sangat penting.

Pikirkan tentang analogi ini: tukang kayu dapat mengerjakan sebuah rumah. Dia dapat melakukan berbagai hal atau membuat penyesuaian saat pekerjaan berlangsung. Ini adalah bagaimana program awal ditulis. Tetapi jika rumah lebih rumit, atau jika dibangun untuk orang lain, tukang kayu harus merencanakan lebih hati-hati. Rencana harus dieksplorasi. Jika rumah dibangun oleh banyak tukang kayu, seluruh proyek harus ditanam di satu rumah. Penjadwalan adalah elemen kunci, sehingga kontraktor semen menuangkan dinding basement sebelum tukang mulai membingkai.

Karena program menjadi lebih kompleks, rencana (bagan alur) tidak lagi memuaskan untuk mewakili kerumitan yang lebih besar ini. . Jadi, menjadi sulit bagi seseorang yang membutuhkan program untuk mentransfer ke orang lain, seorang programmer, hanya apa yang dibutuhkan, atau untuk programmer untuk mentransfer apa yang mereka lakukan. Bahkan, tanpa metode representasi yang baik, itu bahkan lebih sulit bagi seorang programmer tunggal untuk melacak apa yang dia lakukan

waktu yang dibutuhkan untuk menulis semua perkiraan. Itu tidak biasa untuk sistem. Sistem tidak berfungsi dengan baik, karena tujuannya semula. Atau program itu terlalu rumit untuk mencoba memperbaiki masalah. Ketika pelanggan akhirnya melihat apa yang mereka dapatkan, mereka sering berubah pikiran tentang apa yang mereka inginkan.

Kualitas program juga telah menjadi perhatian utama, karena setidaknya satu program militer besar telah menelan biaya beberapa ratus juta dolar. Karena komputer dan program digunakan untuk tugas-tugas yang lebih penting, seperti pemantauan peralatan pendukung kehidupan, kualitas program tersebut memiliki arti baru.

Ide yang bagus untuk mendapatkan pekerjaan yang baik, tetapi tidak masalah jika Anda memiliki banyak hal yang harus dilakukan. Seringkali membuat program keluar dari program dan memulai kembali. Ini tentu saja mahal.

Pada saat yang sama, perangkat keras semakin mahal dari sebelumnya. Tabung digantikan oleh transistor dan transistor digantikan oleh komputer kecil seharga kurang dari $ 3.000 dalam beberapa juta dolar. Sebagai indikator kecepatan perubahan, biaya komputasi dalam jumlah tertentu dibagi dua setiap dua tahun. Karena reorganisasi ini, waktu program dan biaya terlalu kecil untuk diabaikan.

dengan perangkat murah, yang upahnya tinggi. Penghematan dari peningkatan produktivitas dalam perangkat lunak serta penggunaan perakit, agregator, dan sistem manajemen basis data. Bahkan, biaya perangkat lunak saat ini tidak hanya mungkin, tetapi mereka lebih besar dari biaya perangkat keras.

Masalah lain adalah bahwa dalam beberapa perkembangan saat ini, seperti bahasa nirlaba (generasi keempat), penggunaan kecerdasan buatan. Program sebelumnya sering sebelum mereka sepenuhnya memahami apa yang perlu dilakukan oleh program. Begitu program itu ditulis, klien mulai mengungkapkan ketidakpuasan. Jika pelanggan tidak puas, pada akhirnya produk itu juga tidak senang. Seiring waktu, pengembang perangkat lunak belajar untuk meletakkan kertas dan pensil. Kemudian mereka dapat meninjau harapan klien. Lebih mudah dan lebih murah untuk membuat perubahan pada kertas dan pena versi ini.

Tidak mengherankan, hingga beberapa tahun yang lalu, metode representasi yang baik tidak dikembangkan. Satu-satunya representasi yang baik dari produk akhir itu sendiri. Pengembang tidak dapat menunjukkan kepada pelanggan apa yang mereka rencanakan. Pelanggan tidak dapat melihat program. Maka itu sangat mahal untuk mengubah

lagi, pertimbangkan analogi bangunan gedung. Seorang arsitek dapat menggambar perencana lantai. Pelanggan biasanya dapat memperoleh informasi tentang apa yang dapat ditawarkan oleh insinyur. Rencana dek dapat dengan mudah dipahami, karena kebanyakan orang akrab dengan gambar yang mewakili objek-objek teknik. Arsitek dan klien terlibat dalam rekayasa gabungan. Tetapi perancang perangkat lunak harus dapat mewakili klien ke sistem berdasarkan pemrosesan informasi dan logika.

Selain itu, penting bahwa bahasa ini sederhana sehingga dapat dipelajari dengan cepat

]



Source by Edeh Chijioke