Professional Documents
Culture Documents
PERANGKAT LUNAK
(SOFTWARE)
Menurut Terminologi IEEE : Software adalah koleksi dari program-program programkomputer, prosedur-prosedur, aturan-aturan serta proseduraturandata dan dokumentasi yang terhimpun didalamnya
PERANGKAT LUNAK
Prosedurprosedur
Instruksiinstruksi
Data-data terstruktur
Software engineering adalah suatu disipilin rekayasa yang berhubungan dengan seluruh aspek produksi perangkat lunak. Perekayasa perangkat lunak harus:
Menerapkan pendekatan sistematik dan terorganisasi kedalam pekerjaan mereka. Menggunakan perangkat dan teknik tertentu yang tergantung pada:
Masalah yang harus dipecahkan; Keterbatasan-keterbatasan untuk pengembangan; Keterbatasan Sumber-sumber yang tersedia. Sumber-
Berhubungan dengan:
Pengetahuan praktis untuk pengembangan Untuk menghasilkan perangkat lunak yang berguna.
SOFTWARE ENGINEERING
Software engineering berhubungan dengan teori-teori, teorimetodametoda-metoda dan alat-alat (tools) untuk alatpengembang perangkat lunak profesional. Tools dan prosedur digunakan untuk membantu mengelola ukuran, kompleksitas dan jaminan kualitas dari produk perangkat lunak yang dihasilkan.
Software engineering adalah bagaimana mengelola kompleksitas tersebut dan dapat bekerja dalam satu Tim Work.
Permasalahan Pemakai
Meningkatnya kompleksitas permasalahan dan alternatif solusi yang ditawarkan pada pemakai. Masa pakai (life time) semakin singkat karena cepatnya perkembangan teknologi informasi. Perangkat lunak aplikasi harus terwujud dalam waktu yang relatif singkat, pemakai tidak dapat menunggu terlalu lama. Pemakai tidak dapat atau sukar merumuskan spesifikasi perangkat lunak yang dibutuhkan.
DEFINISI
Menurut Fritz Bauer (1969) Software Engineering adalah pendekatan sistematik untuk pengembangan, pengoperasian, perawatan pengembangan, pengoperasian, suatu perangkat lunak yaitu dengan menerapkan menerapkan prinsip rekayasa dalam usaha memperoleh perangkat lunak yang ekonomis, dapat bekerja secara andal dan ekonomis, efisien pada mesin sebenarnya. Menurut Boehm (1986) Software Engineering adalah aplikasi dari sains dan matematika yang membuat peralatan komputer menjadi bermanfaat bagi manusia melalui program komputer, prosedur dan dokumentasi yang berhubungan dengannya. dengannya.
DEFINISI (lanjutan)
Menurut Richard Fairly (1985) Software Engineering adalah disiplin yang secara teknologi dan manajerial berhubungan dengan produksi dan perawatan suatu perangkat lunak, yang dikembangkan dan dimodifikasi menurut fungsi waktu dan dengan perkiraan biaya didalamnya.
CATATAN
Tujuan pokok dari software engineering adalah membuat pengembangan perangkat lunak lebih dekat ke sains dan jauh dari suatu karya seni seni Tujuan Dasar dari suatu software engineering adalah untuk menghasilkan suatu perangkat lunak berkualitas, berkualitas, tepat waktu dan ekonomis. Ekonomis sebab rancangan yang buruk berakibat pada peningkatan biaya pemeliharaan.
Menciptakan suatu program untuk dapat memecahkan masalah secara fungsional. Menjamin kualitas karakteristik seperti reliability dan performance. Membuat dokumentasi yang baik, mudah dimengerti dan mudah dimodifikasi.
Metodologi
Software Engineering
Prosedur
1. Metodologi Merupakan sekumpulan teknik atau metoda untuk membangun suatu perangkat lunak melalui beberapa tahap pengembangan. 2. Perangkat pembantu (Tools) Perkakas untuk dipergunakan pada proses pengembangan. Misal: CASE, data flow diagram, decision table, program design language (PDL), dll. 3. Prosedur Pengelolaan kegiatan pengembangan (manajemen). Misal: Mendefinisikan tahapan-tahapan untuk tahapanpenerapan metoda, keluaran dari tiap tahap (dokumen, laporan, formulir), kendali jaminan kualitas dan mile-stones kemajuan proyek. mile-
Test Specs
IEEE Standard 1074-1991 for Developing 1074of Software Life Cycle Processes.
Stardar IEEE untuk Pengembangan Proses Siklus Hidup Perangkat Lunak. Standar ini meliputi proses-proses pada prosespengembangan perangkat lunak dan perawatannya. Standard ini diikuti oleh ISO/IEC 12207 untuk Software Life Cycle Processes yang dipublikasikan pada 1 Agustus 1995.
System Initiation/Adoption: Pengkajian sistem apakah harus dilakukan pengembangan sistem baru atau melengkapi sistem yang sudah ada. Software requirement analysis & Specification: Identifikasi masalah yang akan diselesaikan, domain informasi dan fungsi-fungsi yang diinginkan, fungsikeandalan dan antar muka yang dibutuhkan (spesifikasi fungsi dan spesifikasi teknis). Software design: Proses bertahap yang mengubah kebutuhan perangkat lunak menjadi sejumlah tampilan (grafik, tabular, basis bahasa) yang menggambarkan arsitektur, struktur dan prosedur perangkat lunak, algoritma dan sifat-sifat antar muka. sifat-
Coding: Bentuk rancangan diubah menjadi suatu bahasa pemrograman yang dapat dimengerti oleh mesin komputer. Hasilnya merupakan kode-kode kodeyang dapat dieksekusi komputer. Software Integration & Testing: Jika perangkat lunak sudah ditanam, maka harus dilakukan proses pengujian untuk mengetahui adanya penyimpangan dari fungsi, dari logika, atau kesalahan-kesalahan kesalahanlain dimana hasilnya tidak sesuai dengan spesifikasi. Software maintenance. Dukungan terhadap maintenance. pengoperasian sistem perangkat lunak setelah diserahkan kepada pemakai yang membutuhkan perubahan atau perbaikan akibat ketidak sempurnaan (bugs), perubahan sistem operasi, penggantian peralatan. Bisa juga karena permintaan tambahan fungsi atau untuk peningkatan kinerja.
Sumber kesalahan terbesar (50%) adalah dalam mendefinisikan spesifikasi kebutuhan perangkat lunak.
Ini adalah pemahaman dari Pengembang Definisi dari Spesifikasi Kebutuhan Bagaimana masalah dipecahkan sebelumnya
MODEL WATERFALL
Diusulkan oleh Royce pada tahun 1970
Pendekatan tradisional, pertama digunakan untuk proyek angkasa luar/pertahanan. Kegiatan disusun dalam suatu urutan linier dari kemajuan sebagai fungsi waktu, dengan titik awal dan titik akhir yang eksplisit, tanpa umpan balik. Setiap tahapan harus didefinisikan dengan jelas dan lengkap sebelum melakukan pengembangan yang berikutnya.
MODEL WATERFALL
Kelayakan Sistem Validasi Perencanaan & Kebutuhan Kelayakan Validasi Laporan
Dokumen Kebutuhan dan Perencanaan Proyek Perancangan Sistem Validasi Dokumen Perancangan Rinci Validasi
Pengkodean Validasi
Pengkodea Validasi
Program
Rencana Pengujian & Laporan Pengujian Laporan Instalasi Pengoperasian dan Pemeliharaan
Instalasi
Tahap-tahap Model Waterfall: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
Feasibility studies
Feasibility study memutuskan apakah sistem yang diajukan layak atau tidak. Suatu studi yang terfokus pada pemeriksaan: Apakah sistem memberikan sumbangan pada tujuan organisasi. Apakah sistem dapat direkayasa menggunakan teknologi saat ini dan dapat dibiayai. Apakah sistem dapat diintegrasikan dengan sistem-sistem lain yang telah ada.
PROTOTYPING
Pemikiran dasar dari prototyping adalah daripada membekukan kebutuhan sebelum suatu perancangan atau pengkodean dilaksanakan, suatu prototip dapat dibuat untuk membantu memahami kebutuhan lunak) (spesifikasi perangkat lunak) Prototyping adalah suatu proses yang memungkinmemungkinkan pengembang membuat model dari suatu perangkat lunak sebelum perangkat dibangun. Dengan menggunakan prototip pelanggan dapat diberikan perasaan aktual terhadap suatu sistem, perasaan aktual yaitu dapat berinteraksi dengan prototip tersebut yang memungkinkan pelanggan lebih mengerti kebutuhan dari sistem yang dikehendaki .
Proses dilakukan secara iteratif dan berkembang (incremental). Pengembang bekerjasama dengan calon pemakai dalam mengevaluasi dan mengembangkan sistem. Prototyping dimungkinkan dengan tersedianya teknologi pengembangan perangkat lunak generasi baru. Teknik ini sangat populer terutama untuk aplikasi pengembangan basis data.
Produk rekayasa
Desain cepat menitik beratkan pada penggambaran aspekaspek-aspek yang akan tampak bagi pemakai, misalkan bentuk-bentuk masukan dan format-format bentukformatkeluaran (fungsionalitas sistem dikurangi).
PROSES ITERATIF
MODEL SPIRAL
Diusulkan oleh Boehm pada tahun 1986. Model spiral dikembangkan untuk mengabungkan kelebihan model Waterfall dan Prototyping dengan menambahkan elemen baru yaitu analisis resiko. resiko. Model Spiral membagi proses menjadi 4 kuadran: 1. Perencanaan (Planning). 2. Analisis Resiko (Risk Analysis) 3. Rekayasa (Engineering) 4. Evaluasi Pelanggan (Customer Evaluation). Beriterasi menurut suatu siklus menggunakan pendekatan prototyping.
MODEL SPIRAL
Perencanaan
Kebutuhan awal dan perencanaan proyek Evaluasi pelanggan
Analisis resiko Analisis Resiko didasarkan pada kebutuhan awal Prototip awal
Evaluasi Pelanggan
Rekayasa
Proses digambarkan dalam bentuk spiral dari pada dalam bentuk urutan kegiatan. Setiap loop menggambarkan satu fasa dalam proses
Aktivitas disusun dalam bentuk spiral yang mempunyai banyak siklus. Dimensi radial menggambarkan biaya kumulatif yang dibutuhkan untuk menyelesaikan setiap tingkat. tingkat. Dimensi sudut menggambarkan kemajuan yang dicapai dalam penyelesaian setiap siklus dari spiral
MODEL SPIRAL
Setiap siklus spiral dimulai dengan identifikasi sasaran dari siklus tersebut, kemudian pengumpulan alternatif untuk mencapai sasaran, dan menentukan kendalakendalakendala. kendala. Tingkat berikutnya adalah mengevaluasi alternatifalternatifalternatif berdasarkan sasaran dan kendala. Disini termasuk mengidentifikasi ketidak pastian dan resiko (juga benchmarking, simulasi dan prototyping). Tingkat berikutnya ditentukan berdasarkan resiko yang belum tertangani. Model spiral yang ditentukan oleh resiko memungkinkan mengakomodasi setiap penggabungan orientasi kebutuhan, prototip, simulasi dan lainnya. lainnya.
Manajemen Resiko
Manajemen resiko mengidentifikasi resiko dan membuat perencanaan untuk mengurangi akibat resiko pada proyek. Resiko terjadinya permasalahan adalah:
Resiko proyek mempengaruhi jadwal dan sumbersumber. Resiko produk mempengaruhi kualitas atau kinerja perangkat lunak. Resiko bisnis mempengaruhi organisasi pengembangan dan pembuat perangkat lunak.
Risk analysis
Mengkaji kemiripan dan akibat-akibat dari resikoresiko ini.
Risk planning
Buat perencanaan untuk mencegah atau meminimalkan pengaruh dari resiko.
Risk monitoring
Pantau resiko melalui manajemen proyek.
Risk assessment
FOURTHFOURTH-GENERATION TECHNIQUES
Istilah fourth-generation techniques (4GT) karena fourthmemotong kompas sejumlah perangkat pengembangan perangkat lunak. Paradigma 4GT untuk software engineering adalah menitik beratkan pada kemampuannya membantu pengembang menspesifikasi karakteristik perangkat lunak pada tingkat mendekati bahasa alamiah dan secara otomatis membangkitkan kode komputer (source code) dari spesifikasi tersebut. 4GT dimulai dengan tahap pengumpulan kebutuhan (requirements gathering), dimana pelanggan dapat menggambarkan kebutuhannya yang langsung diubah menjadi prototip operasional.
Untuk aplikasi kecil, setelah tahap pengumpulan kebutuhan langsung diimplementasikan menggunakan fourth-generation language (4GL). fourth Sedangkan untuk proyek besar sangat penting untuk mengembangkan suatu strateji perancangan sistem, karena penggunaan 4GT tanpa perancangan akan menimbulkan permasalahan yang sama seperti pada pengembangan dengan pendekatan konvensional (kualitas kurang baik, perawatan menjadi sulit, pelanggan menjadi tidak puas). Implementasi menggunakan 4GL memungkinkan pengembang perangkat lunak dapat merepresentasikan hasil yang diinginkan dan kemudian membangkitkan kode/program komputernya secara otomatis.
Kelebihan 4GT
Pelanggan dapat menggambarkan kebutuhannya dalam suatu rancangan sistem dan secara otomatis rancangan dapat diubah menjadi prototip operasional. Penggunaan perangkat 4GT tidak membutuhkan pengetahuan bahasa pemrograman, karena kode komputer (source code) dapat dibangkitkan oleh sistem 4GT. 4GT mengurangi waktu pengembangan perangkat lunak dan meningkatkan produktivitas manusia yang mengambangkannya.
Kekurangan 4GT
Kode komputer yang dihasilkan tidak efisien dan perawatan sistem perangkat lunak besar yang dikembangkan menggunakan 4GT masih menjadi tanda tanya. Penggunaan 4GT masih terbatas pada aplikasi sistem informasi bisnis, khususnya analisis informasi dan pelaporan yang mengacu pada database besar.
Preliminary Requirement gathering Requirements analysis Design Coding 4GT Testing Operational system Prototyping nth iteration 4GT
Prototyping
4GT
Spiral model
Paradigma Kombinasi
Maintenance
Performance Requirements
Design Constraints
External Interfaces
Performance Requirements
Ada dua jenis Kebutuhan Peningkatan Kinerja yaitu: statis dan dinamis. dinamis. Kebutuhan statis tidak menimbulkan kendala pada sifat eksekusi dari sistem disebut juga kapasitas dari sistem, misalnya: - jumlah terminal yang dapat didukung - jumlah file dan ukuran yang dapat diproses. jum Kebutuhan dinamis menentukan keterbatasan perilaku eksekusi sistem, misalnya: - response time - throughput : jumlah operasi (transaksi)/unit waktu transaksi)/unit
Functional Requirements
Kebutuhan fungsional menentukan keluaran-keluaran keluaranyang harus dihasilkan dari masukan-masukan tertentu. masukan Disini digambarkan hubungan antara masukan dan keluaran suatu sistem. Seluruh operasi yang harus dilakukan pada suatu data masukan untuk memperoleh keluaran harus dispesifikasikan. - pemeriksaan validasi - parameter dan unit pengukuran - persamaan-persamaan atau operasi logika lainnya persamaan- perilaku sistem dalam situasi normal (masukan atau keluaran yang valid).
Design Constraints
Ada banyak faktor pada lingkungan pelanggan yang menyebabkan terbatasnya pilihan dari seorang perancang, misalnya: 1. Standards compliance. Standard yang harus diikuti misalnya format laporan dan prosedur akuntabilitas. 2. Resources limitation. Keterbatasan sumber-sumber sumbermisalnya jenis dari mesin yang harus digunakan, sistem operasi yang tersedia, bahasa pemrograman yang didukung, dan keterbatasan media penyimpan. 3. Reliability and Fault Tolerance. Reliabilitas penting bagi aplikasi yang kritis. Toleransi kepada kesalahan merupakan kendala utama pada perancangan sistem, karena membuat sistem lebih kompleks dan mahal. 4. Security. Penting pada sistem pertahanan dan database.
User Interface. Manual pemakai harus dibuat dengan perintahperintah-perintah pemakai, format-format tampilan, formatketerangan bagaimana sistem akan muncul, umpan balik dan pesan-pesan kesalahan. pesanHardware interface requirement. SRS harus menentukan sifat-sifat logis untuk setiap interface sifatantara produk perangkat lunak dengan komponenkomponenkomponen perangkat kerasnya, misalnya: batas kecepatan prosesor, kapasitas memori.
2.
See..you