Penjelasan Umum tentang GBPP Masalah Perangkat Lunak

Slides:



Advertisements
Presentasi serupa
PENGENALAN REKAYASA PERANGKAT LUNAK (SOFTWARE ENGINEERING)
Advertisements

Rekayasa Perangkat Lunak 1
Proses-proses Perangkat Lunak
Rekayasa Perangkat Lunak dan Proses Software
Perencanaan Perangkat Lunak
1. What and Why Sofware Engineering ?
Sasaran Menjelaskan apa yang dimaksud model proses
1 & 2.  Rekayasa = Engineering - pemakaian ‘science’ untuk menyelesaikan’masalah praktis’ - Dari tidak ada menjadi ada.
PENGANTAR REKAYASA PERANGKAT LUNAK I
REKAYASA PERANGKAT LUNAK
PERENCANAAN PROSES PERANGKAT LUNAK
1 Pendahuluan Ir. Waniwatining Astuti, M.T.I Muhammad Rachmadi, S.T., M.T.I.
Perancangan Perangkat Lunak
Pengenalan Rekayasa Perangkat Lunak
Methods for Software Engineering
SE2423 REKAYASA PERANGKAT LUNAK
PENGETAHUAN PERANGKAT LUNAK & REKAYASA PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK
Diadopsi dari presentasi Ian Sommeriville, Pengantar Rekayasa Perangkat Lunak.
Managing Software Requirement 1
Rekayasa Perangkat Lunak (Lanjut)
Siklus Hidup Sistem Basis Data
REKAYASA PERANGKAT LUNAK
PEMAHAMAN REKAYASA PERANGKAT LUNAK
SOFTWARE ENGINEERING (Nelly Sofi).
Pengantar Teknologi Sistem Informasi C
Rekayasa Perangkat Lunak
PROSES-PROSES PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK
Spesifikasi Perangkat Lunak
Perangkat Lunak 1.
REKAYASA PERANGKAT LUNAK
2 The Software Product.
IF36318 Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak Model Proses PL
Pengenalan Rekayasa Perangkat Lunak
REKAYASA PERANGKAT LUNAK
Rekayasa Perangkat Lunak
Aspek Penilaian Prosentase Tugas Mandiri--20 %
PENGENALAN REKAYASA PERANGKAT LUNAK
Pendahuluan Muhammad Rachmadi, S.T., M.T.I..
Rekayasa Perangkat Lunak Pendahuluan
Pemeliharaan Perangkat Lunak
RPL.
Oleh : Dewi Sartika, M.Kom
PENGENALAN REKAYASA PERANGKAT LUNAK (SOFTWARE ENGINEERING)
Rekayasa Perangkat Lunak
RPL.
2 The Software Product.
PERTEMUAN 2 Proses Pengembangan Perangkat Lunak
REKAYASA PERANGKAT LUNAK
PENGENALAN REKAYASA PERANGKAT LUNAK (SOFTWARE ENGINEERING)
Rekayasa Perangkat Lunak
REKAYASA PERANGKAT LUNAK
SOFTWARE ENGINEERING.
Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
PENGANTAR REKAYASA PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK
Rekayasa Perangkat Lunak
REKAYASA PERANGKAT LUNAK
INTRODUCTION SOFTWARE ENGINEERING
Pertemuan #1: Software & Software Engineering
SOFTWARE ENGGINERING Software LIFE CYCLE
ANALISA & PERANCANGAN PERANGKAT LUNAK
REKAYASA PERANGKAT LUNAK PROGRAM STUDI D3
2 The Software Product.
SOFTWARE ENGINEERING (Indah Tri Handayani).
Pengantar Perangkat Lunak
REKAYASA PERANGKAT LUNAK
Transcript presentasi:

Penjelasan Umum tentang GBPP Masalah Perangkat Lunak

Pendahuluan Deskripsi Mata Kuliah Mata kuliah ini membahas teori dan praktek rekayasa perangkat lunak yang materinya meliputi proses perangkat lunak, model proses, kebutuhan dan spesifikasi, pemodelan, pengembangan aplikasi, serta pengujian perangkat lunak. Standar Kompetensi Mengembangkan perangkat lunak dengan menggunakan metodologi dan praktik yang baik

POKOK BAHASAN Penjelasan Umum tentang GBPP Masalah Perangkat Lunak Proses Perangkat Lunak Proyek: Penjelasan Proyek Mahasiswa Analisis Kebutuhan dan Spesifikasi Perangkat Lunak Proyek: Analisis Kebutuhan Perencanaan Proyek Perangkat Lunak Proyek: Pembuatan Rencana Proyek Arsitektur Perangkat Lunak Proyek: Arsitektur Perangkat Lunak Perancangan Proyek: Pembuatan Rancangan Pengkodean dan Pengujian Unit Proyek: Pembuatan Kode Program dan Pengujian Unit Pengujian Proyek: Pembuatan Test Case Pengujian

Pengenalan Rekayasa Perangkat Lunak Perencanaan Proyek Perangkat Lunak Konsep dan prinsip Analisis Pemodelan Analisis Prinsip dan Konsep desain Metode Desain Teknik Pengujian Perangkat Lunak Strategi Pengujian Perangkat Lunak Pemeliharaan Perangkat Lunak

PUSTAKA Jalote, Pankaj, A Concise Introduction to Software Engineering, Springer, 2008. Pressman, R.S., "Software Engineering, A Practional Approach Six Edition", McGraw-Hill, 2005. Sommerville, Ian., "Software Engineering 8th Edition", Pearson Education, 2007.

Kebijakan Perkuliahan Absensi minimal 70% untuk dapat mengikuti ujian Cantumkan nama dosen jika membuat surat izin. Jika tidak akan dianggap tidak hadir (alfa). Diizinkan untuk menggunakan HP selama anda tidak didalam kelas. Diizinkan untuk datang terlambat Maksimal 10 menit.

Perangkat Lunak Penggambaran Model Microsoft Visio Visual Paradigm Star UML

Kerja Praktek - Skripsi Rekayasa Perangkat Lunak Perangkat Lunak/software

Rekayasa Perangkat Lunak ? ? ?

Definisi Rekayasa Engineering = rekayasa Pemakaian ‘science’ untuk menyelesaikan ‘masalah praktis’ Dari tidak ada menjadi ada

Definisi Perangkat Lunak Ada beberapa definisi perangkat lunak yang pernah dikemukakan antara lain : Software = Perangkat lunak Kumpulan program komputer dengan fungsi tertentu Perangkat lunak adalah Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu, Struktur data yang dapat membuat program memanipulasi informasi, dan Dokumen yang menjelaskan operasi dan penggunaan program (Pressman, 1997). Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer (IEEE, 1993).

PERANGKAT LUNAK Perangkat Lunak (Software) tidak sama dengan program komputer. Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan untuk membuat agar program beroperasi dengan benar. Sistem Perangkat Lunak terdiri dari : Sejumlah program yg terpisah File-file konfigurasi Dokumentasi sistem Dokumentasi User

Evolusi Perkembangan Software 1950 1960 1970 1980 1990 2000

Evolusi Perkembangan Software Era Pertama ( 1950 – 1960) : Batch Orientation Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah ONLIN E atau Interactive Process. Keuntungan dari Interactive adalah mendapatkan data yang selalu up to date. Limmited distribution Suatu penyebaran software yang terbatas pada perusahaan - perusahaan tertentu. Custom software Software yang dikembangkan berdaasarkan perusahaan - perusahaan tertentu. Era Kedua (1960 – 1970) : Multi user Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang sama. Real Time Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second. Database Perkembangan yang pesat dari alat penyimpan data yang O nLine menyebabkan muncul generasi pertama. DBMS (DataBase Management System). Product Software Adalah software yang dikembangkan untuk dijual kepada masyarakat luas

Evolusi Perkembangan Software Era Ketiga (1980 – 1990) : Distributed system Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer), daerah atau bidang lainnya, yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk. Lawan dari distributed system Adalah Centralized System. Embedded Intelegence Suatu product yang diberi tambahan “Intellegence ” dan biasanya ditambahkan mikroprocessor yang mutakhir. Contohnya adalah automobil, robot, peralatan diagnostic serum darah. Low Cost Hardware harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal Computer. Consummer Inpact Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang dikembangkan, software ini memberi dampak yang besar terhadap masyarakat. Era Keempat (1990 – 2000) : Expert system Suatu penerapan A.I. (Artificial Intellegence) pada bidang - bidang tertentu, misalnya bidang kedokteran, komunikasi, dll. AI Machine Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot, komputer catur. Parallel Architecture Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer.

Dua tipe produk perangkat lunak : Produk Generik  Sistem stand-alone standar yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh : pengolah kata (word processor). Produk pesanan (yang disesuaikan)  Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak. Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu lintas udara.

Perbedaan PENTING antara tipe2 perangkat lunak : Pada produk generik, organisasi yang mengembangkan perangkat lunak mengontrol spesifikasi perangkat lunak. Pada produk pesanan, spesifikasi biasanya dikembangkan dan dikontrol oleh organisasi yang membeli perangkat lunak tersebut.

Karakteristik Perangkat Lunak Perangkat lunak lebih dikenal sebagai elemen lojik daripada fisik, oleh karena itu perangkat lunak memiliki karakteristik yang berbeda dari perangkat keras : Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam pengertian klasik. Merupakan produk yang unik (tidak ada seri produksi). Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui Tidak terlihat (invisible). Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada. Fleksibel, sehingga mudah dimodifikasi. Dihubungkan (linked) dengan sistem komputer.

Rekayasa perangkat lunak (software engineering) Rekayasa perangkat lunak (software engineering) adalah suatu proses rancang bangun. Beberapa definisi tentang rekayasa perangkat lunak : Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada komputer (Fritz Bauer, 1968). Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993). Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman, 97). Merupakan aplikasi dari prinsip-prinsip sains untuk Mengurutkan transformasi masalah menjadi solusi yang dapat bekerja dengan baik Urutan pemeliharaan perangkat lunak tersebut sampai tidak dapat digunakan lagi (Alan M. Davis) Proses RPL dimulai jauh sebelum “Coding” dilakukan dan berlanjut terus setelah versi awal dari program selesai dikerjakan.

REKAYASA PERANGKAT LUNAK RPL atau Software Engineering (SE)  Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Ada 2 istilah kunci disini : “disiplin rekayasa”  Perekayasa membuat suatu alat bekerja. Menerapkan teori, metode, dan alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan. “semua aspek produksi perangkat lunak”  RPL tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga dengan kegiatan seperti Manajemen proyek PL dan pengembangan alat bantu, metode, dan teori untuk mendukung produksi PL.

Perbedaan antara RPL dengan Computer Science ? Intinya, computer science berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak, sedangkan RPL berhubungan dengan praktek dalam memproduksi perangkat lunak.

Tujuan dari RPL adalah Menghasilkan sebuah perangkat lunak yang berkualitas. Yang dimaksud dengan berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu atau organisasi yang telah mengeluarkan biaya dalam pembangunan perangkat lunak), sisi pemakai (siapapun yang menggunakan perangkat lunak tersebut), sisi maintainer / modifier (yang memelihara dan memodifikasi perangkat lunak tersebut). Tujuan kedua dari RPL adalah menghasilkan perangkat lunak dengan biaya yang efisien. Sedangkan tujuan ketiga dari RPL adalah menghasilkan perangkat lunak tepat pada waktunya.

Tiga sudut pandang Tujuan RPL Sisi Sponsor : Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan, modifikasi dan peningkatan dari sistem tersebut harus serendah mungkin. Sisi Pemakai : Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien, perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari, mudah digunakan dan mudah untuk diingat. Sisi Maintainer/modifier : Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut memiliki sangat sedikit error pada saat penginstallan pertama (catatan : sangat kecil kemungkinannya untuk menghasilkan perangkat lunak yang 100 % bebas dari bug). Selain itu perangkat lunak tersebut harus terdokumentasi dengan baik. Source code juga harus mudah dibaca, terstruktur dan dirancang dengan baik dan bersifat modular.

Tiga sudut pandang Tujuan RPL Funcionality Low Cost Ease of Learning Eficiency Increased productivity Ease Of Remembering Ease Of Use Flexibility Reliabiility Minimum Errors Sponsor Pemakai Good documentation Readable code Good design Maintainer/Modifier

Mengapa Rekayasa Perangkat Lunak ? Perangkat lunak telah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%). Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%). Perangkat lunak digunakan setelah dilakukan modifikasi (3%). Perangkat lunak digunakan sebagaimana mestinya (2%).

Mengapa Rekayasa Perangkat Lunak ? Selain itu faktor pendukung kehadiran rekayasa perangkat lunak adalah : Ketidak mampuan untuk memprediksi waktu, usaha dan biaya pada pengembangan perangkat lunak. Kualitas perangkat lunak yang kurang baik. Perubahan perbandingan (rasio) harga perangkat keras dan perangkat lunak. Kemajuan teknologi perangkat keras. Kemajuan teknik perangkat lunak. Kebutuhan yang meningkat terhadap perangkat lunak. Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.

Jenis-jenis Perangkat Lunak Dilihat dari sudut pandang fungsinya, perangkat lunak dapat dikelompokkan menjadi : Perangkat lunak sistem Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer. sistem operasi penerjemah bahasa pemrograman (compiler/interpreter) Perangkat lunak aplikasi Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu menyelesaikan masalalah-masalah yang dihadapi oleh pemakai. program paket yang sudah jadi program aplikasi buatan sendiri

Sedangkan dilihat dari aplikasinya, perangkat lunak dibedakan menjadi : Perangkat Lunak Sistem (Sistem Software), Sekumpulan program yang ditulis untuk kepentingan program lain, contoh editor, driver dan lain-lain Perangkat Lunak Waktu Nyata (Real Time Software), Perangkat lunak yang digunakan untuk mengukur/menganalisis atau mengontrol proses pemasukan data dari lingkungan luar sampai menghasilkan laporan yang diinginkan Perangkat Lunak Bisnis (Business Software) , Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau fasilitas pengambilan keputusan manajemen, contoh sistem akuntansi, inventory, payroll dan lain-lain Perangat Lunak Rekayasa dan Sains (Engineering and Scientific Software) , Perangkat lunak yang digunakan di dalam bidang aplikasi teknik dan kerekayasaan Perangkat lunak jenis ini biasanya berhubungan dengan komputasi data numerik, CAD (Computer Aided Design), simulasi sistem, dan lain-lain. Embedded Software , Perangkat lunak yang digunakan untuk mengontrol suatu produk dan sistem dimana perangkat lunak tersebut disimpan. Biasanya ditempatkan di ROM, contoh Tombol di Microwave Oven Perangkat Lunak Komputer Pribadi (Personal Computer Software) , Banyak digunakan pada aplikasi yang bersifat perorangan, contohnya : pengolah kata, spreadsheet, game, DBMS dan lain-lain. Perangkat Lunak Intelegensia Buatan (Artificial Intelligent Software) , Dibuat dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi kecerdasan buatan, contohnya : game, expert sistem, neural network, Turbo Prolog, dan lain-lain

Mitos Perangkat Lunak Berkaitan dengan Manajemen : Biasanya muncul pada manajer yang bertanggung jawab terhadap perangkat lunak. Mereka biasanya ditekan untuk menjaga budget, jadwal harus selalu terpenuhi dan harus meningkatkan kualitas. Mitos tersebut antara lain : Mitos : Kita sudah punya buku yang berisi standard dan prosedur yang banyak untuk pengembangan perangkat lunak. Bukankah hal ini sudah cukup untuk mencari semua yang ingin diketahui ? Kenyataan : Buku-buku itu memang lengkap, tapi apakah digunakan? Apakah praktisi perangkat lunak sadar dengan keberadaannya? Apakah cocok dengan pengembangan yang modern? Apakah benar-benar lengkap ? Pada banyak kasus jawabannya adalah tidak. Mitos : Staff Kami mempunyai alat Bantu pengembangan yang canggih, bahkan dibelikan komputer generasi terbaru. Kenyataan : Masalah pengembangan perangkat lunak yang berkualitas lebih penting dari sekedar komputer yang terbaru. CASE (Computer Aided Software Engineering) tools lebih penting daripada perangkat keras untuk mendapatkan kualitas dan produktifitas yang baik, tapi banyak pengembang perangkat lunak yang tidak menyadarinya. Mitos : Jika Kita dikejar jadwal, tambah programmer untuk mengejarnya Kenyataan : Membuat perangkat lunak bukan proses mekanis seperti industri manufaktur. Jika kita menambah orang pada proyek yang terlambat itu justru akan lebih terlambat

Berkaitan dengan Klien Konsumen sering mempercayai mitos karena pembuat perangkat lunak kurang berusaha untuk membetulkan misinformasi ini. Mitos : Sebuah kalimat umum yang menyatakan objektif sudah cukup untuk memulai menulis program. Kita bias perinci lagi nanti. Kenyataan : Definisi yang tidak jelas, justru akan menggagalkan usaha pengembangan perangkat lunak. Justru diperlukan deskripsi formal dan detil dari domain informasi, fungsi, performansi, antarmuka, batasan desain, dan kriteria validasi. Karakteristik ini hanya bias didapat melalui komunikasi total antara pelanggan dan pengembang. Mitos : Kebutuhan proyek akan terus berubah, tapi perubahan ini akan dapat ditanggapi dengan mudah karena perangkat lunak itu bersifat fleksibel Kenyataan : memang betul kebutuhan perangkat lunak akan berubah, namun dampaknya tergantung pada waktu pemunculannya. Jika muncul pada tahap definisi, pengaruhnya tidak banyak, lebih kebelakang dampaknya akan lebih besar.

Berkaitan dengan Pengembang Mitos : Setelah program selesai ditulis dan dapat dijalankan, maka tugas sudah selesai. Kenyataan : Ada yang mengatakan bahwa “Lebih cepat program dibuat, maka lebih lama selesainya”. Dari data industri 50-70% dari usaha pada pembuatan program akan bertambah lagi setelah program dilihat untuk pertama kalinya oleh pelanggan. Mitos : Selama program belum berjalan, sulit untuk mengetahui kualitasnya Kenyataan : Software review adalah cara efektif untuk mencari Software defect daripada tahap pengujian Mitos : Faktor penentu suksesnya proyek adalah program yang dapat berjalan Kenyataan : Program hanyalah salah satu komponen dari perangkat lunak. Dokumentasi penting sebagai dasar pengembangan yang sukses serta sebagai penunjuk untuk pemeliharaan perangkat lunak

Proses Perangkat Lunak Serangkaian kegiatan dan hasil-hasil relevannya yang menghasilkan perangkat lunak  sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan/aktivitas pada proses PL : Spesifikikasi Perangkat Lunak  Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan. Pengembangan Perangkat Lunak  Perangkat lunak yang memenuhi spesifikasi harus di produksi Validasi Perangkat Lunak  Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan. Evolusi Perangkat Lunak  Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.

Model Proses Perangkat Lunak Merupakan deskripsi yang disederhanakan dari proses perangkat lunak di presentasikan dengan sudut pandang tertentu. Bisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak (Perekayasa PL).

Contoh Jenis Model Proses PL Model aliran kerja (workflow)  menunjukkan kegiatan pada proses bersama dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan manusia. Model aliran data (data flow)  merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain. Model peran/aksi  merepresentasikan peran orang yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka.

Model atau paradigma umum pada proses PL Model air terjun (waterfall)  Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya. Pengembangan evolusioner  Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan kebutuhan pelanggan.

Pengembangan Sistem Formal  Pendekatan ini menghasilkan suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini, dengan menggunakan metode matematik menjadi sebuah program. Pengembangan berdasarkan pemakaian ulang (Reusable)  Teknik ini menganggap bahwa bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal.

Biaya Rekayasa Perangkat Lunak Umumnya sekitar 60% untuk biaya pengembangan (development) dan 40% biaya pengujian (testing). Distribusi biaya yang tepat selama proses perangkat lunak bergantung pada proses yang digunakan dan jenis perangkat lunak yang dikembangkan.

Metode-metode RPL Pendekatan-pendekatan terstruktur terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran pengembangan sistem (rekomendasi), dan panduan proses. Deskripsi model sistem  Deskripsi model yang harus dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini. Ex : model aliran data. Aturan  Batasan yang berlaku bagi model sistem. Ex : Setiap entitas pada model sistem harus memiliki nama yang unik. Rekomendasi  Saran dalam membentuk perancangan yang baik. Ex : Tidak ada objek yang memiliki lebih dari tujuh sub-objek yang berhubungan dengannya. Panduan Proses  Aktifitas yang bisa diikuti untuk mengembangkan model sistem. Ex : Atribut objek harus didokumentasi sebelum mendefinisikan operasi yang berhubungan dengan objek.

CASE (Computer-Aided Software Engineering) Mencakup berbagai macam program yang digunakan untuk mendukung kegiatan PL seperti analisis persyaratan, pemodelan sistem, debugging, dan pengujian.

Atribut-atribut PL yang baik Perangkat Lunak seharusnya memberikan user kebutuhan fungsionalitas dan kinerja yang : Dapat dipelihara (Maintanability)  PL harus dapat memenuhi perubahan kebutuhan user. Dapat diandalkan (Dependability)  PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi jika terjadi kegagalan sistem. Efisien  PL harus efisien dalam penggunaan sumber daya sistem. Kemampuan pemakaian (Usability)  PL harus dapat dipakai sesuai dengan yang direncanakan.

Tantangan Kunci yang dihadapi RPL ? Tantangan Warisan (Legacy)  Tantangan memelihara dan meng-update PL sedemikian sehingga biaya yg berlebihan dapat dihindari dan layanan bisnis yg penting tetap dilakukan. Tantangan Heterogenitas  Tantangan teknik pengembangan untuk membangun perangkat lunak yang dapat diandalkan dan cukup flexibel untuk menghadapi heterogenitas yang ada. Tantangan Pengiriman  Tantangan mempersingkat waktu kirim sistem besar dan kompleks, tanpa mengurangi kualitas sistem.