Pengenalan Software Engineering (PPL)

 Apa itu Software Engineering/Rekayasa Perangkat Lunak?

  • Software> Program komputer dan dokumentasi yang terkait. Produk software dapat dikembangkan untuk pelanggan tertentu atau mungkin dikembangkan untuk umum.
  • Engineering> Disiplin teknik mencakup berbagai bidang teknik yang lebih terspesialisasi, masing-masing dengan penekanan yang lebih spesifik pada bidang tertentu matematika terapan, sains terapan, dan jenis aplikasi.

Apa itu Rekayasa Perangkat Lunak?

  • Pendekatan rekayasa untuk mengembangkan perangkat lunak (software)
    • Analogi konstruksi bangunan
  • Kumpulan sistematis dari pengalaman masa lalu
    • Teknik
    • Metodologi
    • Panduan/Pedoman
  • Sebuah studi pendekatan dan aplikasi secara sistematis, disiplin pengembangan operasi dan pemeliharaan Perangkat Lunak yang kesemuanya itu merupakan aplikasi rekayasa yang berkaitan dengan perangkat lunak
Rekayasa Perangkat Lunak vs Ilmu Komputer
  • Ilmu Komputer
    • Mempunyai kaitan dengan teori dan fundamental
  • Rekayasa Perangkat Lunak
    • Mempunyai kaitan dengan praktik pengembangan dan penyampaian yang berguna perangkat lunak.
Rekayasa perangkat lunak vs rekayasa sistem
  • Rekayasa system mempunyai kaitan dengan semua aspek pengembangan system berbasis computer yang mencangkup perangkat keras, perangkat lunak dan yang terkait dengan proses bisnis.
  • Rekayasa perangkat lunak berkonsentrasi pada komponen perangkat lunak system yang lebih besar.
  • Rekayasa system mencangkup spesifikasi system, desain arsitektur pengintegrasian dan penyebaran
Apa itu Perangkat Lunak
  • Ian Scommerville :
    • "Computer programs and associated documentation, Software products may be developed for a particular customer or may be developed for a general market." Program komputer dan dokumentasi yang terkait. Produk Software dapat dikembangkan untuk pelanggan tertentu atau mungkin dikembangkan untuk umum.
  • Pressman :
    • Intruksi-intruksi yang jika dieksekusi akan memberikan layanan-layanan atau Fungsi seperti yang diinginkan
    • Struktur data yang memungkinkan program untuk memanipulasi informasi secara proposional
    • Dokumen-dokumen yang menggambarkan operasi dan kegunaan program

Apa itu Perangkat Lunak?
  • IEEE
    •  Perangkat Lunak adalah program komputer, prosedur, dan pengoperasian sistem komputer.

Software/Perangkat Lunak

  • Produk yang dibuat oleh Software Engineer.
  • itu mencakup program yang dijalankan dalam komputer dengan ukuran dan arsitektur apa pun, dokumen yang mencakup bentuk hard copy dan soft copy, dan data yang menggabungkan angka dan teks serta mencakup representasi informasi bergambar, video dan audio

Kenapa tidak menggunakan Hardware?

  • Kebijakan menggunakan software karena :
    • Relatif mudah dan cepat untuk mengembangkan dan melakukan perubahan 
    • Tidak memakan tempat, tidak mempunyai berat dan sumber tenaga
  • Semakin tinggi kompleksitas perangkat lunak, semakin sulit untuk mengubahnya
    • lebih jauh lagi, semakin banyak perubahan yang di lakukan pada suatu program, semakin besar kompleksitasnya 


Software characteristics

  • Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen fisik, sehingga perangkat lunak memiliki ciri yang berbeda dari perangkat keras.
  • Perangkat lunak dikembangkan atau direkayasa, tidak diproduksi dalam pengertian klasik.
  • Perangkat lunak tidak pernah "usang"
  • Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada



Kenapa RPL Penting?

  • karena itu mempengaruhi hampir setiap aspek kehidupan kita dan telah menyebar dalam perdagangan kita, budaya kita, dan kegiatan sehari-hari kita
  • Sering kali produk perangkat lunak :
    • Gagal untuk memenuhi kebutuhan user
    • Expensive
    • Kesulitan untuk membuat penambahan, debug dan meningkatkan kebutuhan 
    • Terlambat untuk menyerahkan Perangkat lunak.
    • Penggunaan sumberdaya tidak optimal 


  • Software crisis

Sejarah Rekayasa Perangkat Lunak

  • 1945-1965
    • Istilah software engineering digunakan pertama kali pada akhir 1990-an dan awal 1960-an. Saat itu, masih terdapat debat tajam mengenal aspek engineering dari pengembangan perangkat lunak.
  • 1965-1985: krisis perangkat lunak 
    • Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak.
    • Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.
  • 1985- kini: tidak ada senjata pamungkas 
    • Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah krisis perangkat lunak.
    • Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrogaman tertekstur, pemrograman berorientasi object, perangkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu.

Faktor yang berkontribusi menimbulkan Software Crisis

  • Lerger problems
  • Poor project management
  • Lack of adequate training in software engineering
  • Increasing skill shortage
  • Low productivity improvments 

Evolusi peran perangkat lunak

  • Peran perangkat lunak saat ini :
  • Berfungsi sebagai sebuah produk 
    • mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer. Perangkat lunak sebagai transformer informasi yang memproduksi, mengatur, memperoleh, memodifikasi, menampilkan atau memancarkan informasi, sehingga pekerjaan menjadi semakin mudah
  • Berfungsi sebagai kendaran yang mengantarkan sebuah produk
    • Dasar untuk kontrol komputer (sistem operasi), komunikaasi informasi (jaringan) dan penciptaan serta kontrol dari program-program lain (piranti dan lingkungan perangkat lunak)


Masalah perangkat lunak sehubungan dengan evolusi system berbasis komputer

  • Kemajuan perangkat keras terus berlanjut melampaui kemampuan engineer dalam membangun perangkat lunak yang sesuai dengan perangkat keras yang ada
  • Kemampuan engineer untuk membangun program baru tidak dapat memenuhi kebutuhan akan program baru dan tidak dapat membangun program yang cukup cepat untuk memenuhi kebutuhan bisnis dan pasar.
  • Pemakaian komputer yang tersebar luas membuat masyarakat semakin tergantung pada operasi perangkat lunak yang reliabel. Kerusakan ekonomi yang besar dan potensi penderitaan manusia dapat muncul bila terjadi kegagalan perangkat lunak.
  • Kita masih berjuang untuk membangun perangkat lunak komputer dengan reliabilitas dan kualitas yang tinggi.
  • Kemampuan kita untuk mendukung program yang ada terhambat oleh buruknya desain serta sumber daya yang tidak memadai.

Software Applications

  • system software
  • application software
  • engineering/scientific software
  • embedded software
  • product- line software
  • web applications
  • Al software
Software new category
  • Open World Computing - distributed computing
  • Ubiquitous Computing - wireless networks
  • Netsourcing - the web as a computing engine
  • Open source
  • Also Data mining
  • Grid computing
  • Cognitive Machines
  • Software for nanotecnologies

3 kelompok terkait Pengembangan RPL

  • Dipercaya karena sering kali memiliki elemen kebenaran
  • Tetapi
  • Selalu mengarah kepada keputusan yang buruk 
  • oleh karena itu.....
  • Bersikeras pada kenyataan saat anda menavigasi jalan anda melalui rekayasa perangkat lunak

Management Myths

  • Dengan memiliki buku berisi standard dan prosedur yang banyak untuk pengembangan perangkat lunak, maka pekerjaan pasti lancar.
  • Untuk menghasilkan perangkat lunak yang berkualitas, maka kita perlu membeli komputer terbaru.
  • Bila terlambat maka tambahlah jumlah programer

Customer Myths

  • Tujuan sistem secara umum cukup untuk memulai menulis program, rincian belakang saja.
  • Perangkat lunak bersifat fleksibel, perubahan kebutuhan mudah diakomodasi oleh pengembang perangkat lunak

Practitioner Myths

  • Program selesai, pekerjaan selesai
  • Kualitas hanya bisa diketahui setelah program berjalan (running)
  • Yang diserahkan ke user adalah program

Bagaimana semuanya harus dimulai

  • Setiap proyek perangkat lunak dipicu oleh beberapa kebutuhan bisnis
    • kebutuhan untuk memperbaiki kerusakan pada aplikasi yang sudah ada 
    • kebutuhan untuk mengadaptasi sebuah 'legacy system' untuk untuk mengubah lingkungan bisnis.
    • kebutuhan untuk menambahkan fungsi dan fitur dari aplikasi yang sudah ada.
    • kebutuhan untuk membuat produk, service atau system baru.







Komentar

Postingan populer dari blog ini