SWE311_Ch07 (071) Software & Software Engineering Slide 1 Chapter 7 Requirements Engineering.
Software engineering 1
-
Upload
ferlianus-gulo -
Category
Documents
-
view
356 -
download
3
description
Transcript of Software engineering 1
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 1
SOFTWARE ENGINEERING 1
Disusun Oleh :
Nama : Ferlianus Gulo
NPM : 1011257
Grup : TI-M1014
Mata Kuliah : Rekayasa Perangkat Lunak
Dosen : Muhammad Syarizal, S.Kom, M.Kom
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK BUDIDARMA
MEDAN
2013
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 2
APAKAH PERANGKAT LUNAK?
1. Program komputer dan dokumentasi terkait.
2. Software produk dapat dikembangkan untuk pelanggan tertentu atau dapat dikembangkan
untuk pasar umum.
3. Produk perangkat lunak mungkin :
a. Generic - dikembangkan untuk dijual ke berbagai pelanggan yang berbeda.
b. Bespoke (custom) - dikembangkan untuk pelanggan secara individual sesuai dengan
spesifikasi mereka.
APA REKAYASA PERANGKAT LUNAK?
1. Rekayasa perangkat lunak adalah disiplin teknik yang berkaitan dengan semua aspek
produksi perangkat lunak.
2. Software insinyur harus mengadopsi pendekatan yang sistematis dan terorganisir untuk
pekerjaan mereka dan menggunakan alat yang tepat dan teknik tergantung pada masalah
yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia.
APA YANG DIMAKSUD DENGAN PROSES PERANGKAT LUNAK?
1. Satu set kegiatan yang tujuannya adalah pengembangan atau evolusi dari perangkat
lunak.
2. Kegiatan Generik dalam semua proses perangkat lunak adalah:
a. Spesifikasi - sistem apa yang harus dilakukan dan kendala pengembangannya.
b. Pengembangan - produksi dari sistem perangkat lunak.
c. Validasi - memeriksa bahwa perangkat lunak adalah apa yang diinginkan oleh
pelanggan.
d. Evolusi - perubahan perangkat lunak dalam menanggapi tuntutan perubahan
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 3
APA YANG DIMAKSUD DENGAN PROSES PERANGKAT LUNAK MODEL?
1. Sebuah representasi yang disederhanakan dari proses perangkat lunak, disajikan dari
perspektif tertentu.
2. Contoh perspektif proses yang
- Workflow perspektif - urutan kegiatan.
- Perspektif data-flow - arus informasi.
- Peran / perspektif aksi - siapa melakukan apa.
3. model proses Generik
- Air terjun.
- Pengembangan Evolusioner.
- Transformasi Formal.
- Integrasi dari komponen reusable.
APA SOFTWARE METODE REKAYASA?
1. Pendekatan terstruktur untuk pengembangan perangkat lunak yang meliputi model
sistem, notasi, aturan, saran desain dan proses bimbingan.
2. Deskripsi Model
- Deskripsi model grafis yang harus diproduksi
3. Aturan
- Kendala diterapkan pada model sistem
4. Rekomendasi
- Saran pada praktek desain yang baik
5. Panduan Proses
- Apa kegiatan untuk mengikuti
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 4
APA ATRIBUT YANG BAIK PERANGKAT LUNAK?
1. Perangkat lunak ini harus memberikan fungsi yang diperlukan dan kinerja untuk
pengguna dan harus dipertahankan, dapat diandalkan dan bermanfaat.
2. Maintainability
- Software harus berkembang untuk memenuhi perubahan kebutuhan
3. Ketergantungan
- Software harus dapat dipercaya
4. Efisiensi
- Software tidak harus membuat pemborosan sumber daya sistem
5. Usability
- Software harus dapat digunakan oleh pengguna untuk yang dirancang
APA SAJA TANTANGAN UTAMA YANG DIHADAPI REKAYASA PERANGKAT
LUNAK?
1. Mengatasi dengan sistem warisan, mengatasi meningkatnya keragaman dan menghadapi
tuntutan untuk mengurangi waktu pengiriman.
2. Sistem Legacy
- Lama, sistem yang berharga harus dipertahankan dan diperbarui
3. Heterogenitas
- Sistem didistribusikan dan termasuk campuran hardware dan software
4. Pengiriman
- Ada peningkatan tekanan untuk pengiriman lebih cepat dari perangkat lunak
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 5
PROSES PERANGKAT LUNAK
1. Satu set terstruktur kegiatan yang dibutuhkan untuk mengembangkan
perangkat lunak sistem.
- Spesifikasi.
- Desain.
- Validasi.
- Evolusi
2. Sebuah model proses perangkat lunak merupakan representasi abstrak dari sebuah proses.
Hal ini menyajikan gambaran proses dari beberapa perspektif tertentu.
PROSES PERANGKAT LUNAK GENERIK MODEL
1. Model waterfall
- Fase terpisah dan berbeda dari spesifikasi dan pengembangan
2. Pengembangan Evolusioner
- Spesifikasi dan pengembangan disisipkan
3. pengembangan sistem Formal
- Sebuah model sistem matematika secara resmi berubah menjadi sebuah implementasi
4. Pengembangan Reuse-based
- Sistem ini dirakit dari komponen yang ada
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 6
MODEL AIR TERJUN
Persyaratan
definisi
Sistem dan
desain
perangkat
lunak
Implementasi
dan pengujian
unit
Integr asi
dan
pengujian
sistem
Operasi dan
pemeliharaan
FASE MODEL AIR TERJUN
1. Persyaratan analisis dan definisi.
2. Sistem dan desain perangkat lunak.
3. Implementasi dan pengujian unit.
4. Integrasi dan pengujian sistem.
5. Operasi dan pemeliharaan.
6. Kelemahan dari model air terjun adalah sulitnya mengakomodasi perubahan setelah
proses sedang berlangsung.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 7
MASALAH MODEL AIR TERJUN
1. Tidak fleksibel pemisahan proyek menjadi tahap yang berbeda.
2. Hal ini membuat sulit untuk merespon kebutuhan pelanggan berubah.
3. Oleh karena itu, model ini hanya sesuai ketika persyaratan dipahami
PERKEMBANGAN EVOLUSI
1. pengembangan eksplorasi
- Tujuan adalah untuk bekerja dengan pelanggan dan mengembangkan sebuah sistem akhir
dari spesifikasi garis awal. Harus mulai dengan persyaratan yang dipahami.
2. prototyping Throw-away
- Tujuan adalah untuk memahami persyaratan sistem. Harus dimulai dengan persyaratan
kurang dipahami.
PERKEMBANGAN EVOLUSI
Yang Berbarengan
Kegiatan
Spesifikasi versi awal
Menguraikan
deskripsi
Pengembangan versi
Menengah
versi Menengah
Validasi Versi Final
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 8
MASALAH
1. Kurangnya visibilitas proses
2. Sistem sering kurang terstruktur
3. Keterampilan khusus (misalnya dalam bahasa untuk prototipe cepat) mungkin diperlukan
PENERAPAN
1. Untuk sistem interaktif kecil atau menengah
2. Untuk bagian sistem yang besar (misalnya user interface)
3. Untuk sistem pendek seumur hidup
PENGEMBANGAN SISTEM FORMAL
1. Berdasarkan transformasi spesifikasi matematika melalui representasi yang berbeda
untuk program executable
2. Transformasi adalah 'kebenaran-melestarikan' sehingga mudah untuk menunjukkan
bahwa program ini sesuai dengan spesifikasinya
3. Diwujudkan dalam 'Cleanroom' pendekatan untuk pengembangan perangkat lunak
PENGGUNAAN METODE FORMAL
1. Metode formal telah membatasi penerapan praktis
2. Manfaat utama mereka adalah untuk mengurangi jumlah kesalahan dalam sistem
sehingga daerah utama mereka adalah penerapan sistem kritis
3. Di daerah ini, penggunaan metode formal kemungkinan besar untuk biaya-efektif
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 9
PENGEMBANGAN SISTEM FORMAL
Persyaratan
definisi
Spesifikasi
formal
Transformasi
Formal
Integrasi dan
pengujian
sistem
PENGGUNAAN SPESIFIKASI FORMAL
1. Spesifikasi formal melibatkan investasi lebih banyak usaha dalam fase awal dari
pengembangan perangkat lunak.
2. Ini akan mengurangi kebutuhan kesalahan karena memaksa analisis rinci dari
persyaratan.
3. Ketidaklengkapan dan inkonsistensi dapat ditemukan dan diselesaikan.
4. Oleh karena itu, tabungan dibuat sebagai jumlah pengerjaan ulang karena masalah
persyaratan berkurang.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 10
DAFTAR SPESIFIKASI
DAFTAR (Elem)
Daftar semacam
impor INTEGER
Mendefinisikan daftar di mana elemen ditambahkan di akhir dan dihapus dari depan. Operasi
yang Membuat, yang membawa daftar kosong menjadi ada, kontra, yang menciptakan lagi daftar
dengan anggota menambahkan, Panjang, mana ia Analisis Perhitungan ukuran daftar, Kepala,
mana ia Analisis Perhitungan elemen daftar tersebut yang depan, dan Tail, yang menciptakan
daftar dengan menghapus kepala dari daftar input. Terdefinisi mewakili nilai terdefinisi tipe
Elem.
Buat – Daftar
Cons (Daftar, elem) - Daftar Kepala (Daftar)
Elem Panjang (Daftar) - Integer
Tail (Daftar) - Daftar
Kepala (Buat) = pengecualian Undefined (daftar kosong)
Kepala (Kontra (L, v)) = jika L = Buat maka v Kepala lain (L) Panjang (Buat) = 0
Panjang (Kontra (L, v)) = Panjang (L) + 1
Tail (Buat) = Buat
Tail (Kontra (L, v)) = jika L = Buat kemudian Buat Kontra lain (Tail (L), v)
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 11
TRANSFORMASI FORMAL
R2Formalspecification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
PENGEMBANGAN SISTEM FORMAL
1. Masalah
- Butuh keterampilan khusus dan pelatihan untuk menerapkan teknik
- Sulit untuk secara resmi menentukan beberapa aspek dari sistem seperti user interface
2. Penerapan
- Sistem kritis terutama dimana keselamatan atau keamanan kasus harus dilakukan
sebelum sistem ini dimasukkan ke dalam operasi
BERORIENTASI PEMBANGUNAN KEMBALI
1. Berdasarkan pada penggunaan kembali sistematis di mana sistem yang terintegrasi dari
komponen atau dipan yang ada (Commercial-off-the-shelf) sistem.
2. tahap Proses
- Analisis Komponen
- Modifikasi Persyaratan
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 12
- Desain sistem dengan reuse
- Pengembangan dan integrasi
3. Pendekatan ini menjadi lebih penting tapi pengalaman masih terbatas dengan itu
BERORIENTASI PEMBANGUNAN KEMBALI
Spesifikasi
kebutuhan
Analisis
komponen
Persyaratan
modifikasi
Sistem desain
dengan
penggunaan
ulang
Pengembangan
dan integrasi
Validasi sistem
PROSES ITERASI
1. Persyaratan sistem SELALU berkembang dalam perjalanan proyek sehingga proses
iterasi di mana tahap-tahap awal yang dikerjakan ulang selalu menjadi bagian dari proses
untuk sistem yang besar.
2. Iterasi dapat diterapkan pada salah satu model proses generik.
3. Dua (terkait) pendekatan.
- Pengembangan Incremental.
- Pengembangan Spiral
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 13
PENGEMBANGAN INCREMENTAL
1. Daripada memberikan sistem sebagai pengiriman tunggal, pengembangan dan
pengiriman dipecah menjadi bertahap dengan kenaikan masing-masing memberikan
bagian dari fungsi yang diperlukan.
2. Kebutuhan user diprioritaskan dan kebutuhan prioritas tertinggi dimasukkan dalam awal
increment.
3. Setelah pengembangan kenaikan dimulai, persyaratan dibekukan meskipun persyaratan
untuk kenaikan nantinya bisa terus berkembang
PENGEMBANGAN INCREMENTAL
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outlinerequirements
Assign requirementsto increments
System incomplete
Finalsystem
KEUNTUNGAN PEMBANGUNAN INKREMENTAL
1. nilai pelanggan dapat disampaikan dengan kenaikan masing-masing sehingga fungsi
sistem tersedia sebelumnya.
2. kenaikan Awal bertindak sebagai prototipe untuk membantu mendatangkan persyaratan
untuk kenaikan selanjutnya.
3. Menurunkan resiko kegagalan proyek secara keseluruhan.
4. Layanan sistem prioritas tertinggi cenderung menerima pengujian yang paling
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 14
EKSTRIM PEMROGRAMAN
1. Pendekatan baru terhadap pembangunan berbasis
pada pengembangan dan pengiriman bertahap sangat kecil fungsionalitas.
2. Mengandalkan perbaikan kode konstan, keterlibatan pengguna dalam tim pengembangan
dan pemrograman berpasangan
PENGEMBANGAN SPIRAL
1. Proses direpresentasikan sebagai spiral bukan sebagai urutan kegiatan dengan
kemunduran.
2. Setiap loop dalam spiral merepresentasikan fase dalam proses.
3. Tidak ada fase tetap seperti spesifikasi atau desain - loop dalam spiral yang dipilih
tergantung pada apa yang dibutuhkan.
4. Risiko secara eksplisit dinilai dan diselesaikan selama proses berlangsung.
MODEL SPIRAL DARI PROSES PERANGKAT LUNAK
Riskanalys is
Riskanalys is
Riskanalys is
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept o fOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit tes t
Integr ationtestAccep tance
testServ ice Develop, verifynext-level p roduct
Evaluate alternativesiden tify, resolve risks
Determine ob jectivesalternatives and
cons traints
Plan next phase
Integrationand test p lan
Developmentplan
Requirements planLife-cycle plan
REVIEW
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 15
SEKTOR MODEL SPIRAL
1. Pengaturan Tujuan
- Tujuan khusus untuk fase diidentifikasi
2. Penilaian risiko dan pengurangan
- Risiko dinilai dan kegiatan diberlakukan untuk mengurangi risiko-risiko utama
3. Pengembangan dan validasi
- Sebuah model pengembangan untuk sistem dipilih yang dapat salah satu model generik
4. Perencanaan
- Proyek ini terakhir dan tahap berikutnya dari spiral direncanakan
SPESIFIKASI SOFTWARE
1. Proses pembentukan layanan apa saja yang dibutuhkan dan kendala pada operasi sistem
dan pengembangan.
2. proses rekayasa Persyaratan
- Studi kelayakan
- Persyaratan elisitasi dan analisis
- Persyaratan spesifikasi
- Persyaratan validasi
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 16
PROSES REKAYASA PERSYARATAN
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
KEGIATAN PROSES DESAIN
1. Desain Arsitektur
2. spesifikasi Abstrak
3. Interface desain
4. desain Komponen
5. desain struktur data
6. desain Algoritma
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 17
PROSES DESAIN SOFTWARE
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
METODE DESAIN
1. pendekatan sistematis untuk mengembangkan desain software
2. Desain ini biasanya didokumentasikan sebagai satu set model grafis
3. Model Kemungkinan
- Model data-flow
- Model Entity-hubungan-atribut
- Model Struktural
- Model Obyek
PEMROGRAMAN DAN DEBUGGING
1. Menerjemahkan desain ke dalam program dan menghapus kesalahan dari program yang.
2. Pemrograman adalah aktivitas pribadi - tidak ada proses pemrograman generik.
3. Pemrogram melakukan beberapa program testing untuk menemukan kesalahan dalam
program dan menghapus kesalahan ini dalam proses debugging.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 18
PROSES DEBUGGING
Locateerror
Designerror repair
Repairerror
Re-testprogram
VALIDASI PERANGKAT LUNAK
1. Verifikasi dan validasi dimaksudkan untuk menunjukkan bahwa sistem sesuai dengan
spesifikasinya
dan memenuhi persyaratan dari pelanggan sistem.
2. Melibatkan pengecekan dan review proses dan pengujian sistem.
3. Pengujian sistem melibatkan melaksanakan sistem dengan uji kasus yang berasal dari
spesifikasi data riil untuk diproses oleh sistem
PROSES PENGUJIAN
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptancetesting
Componenttesting
Integration testing Usertesting
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 19
TAHAP PENGUJIAN
1. Unit pengujian
- Masing-masing komponen diuji
2. pengujian Modul
- Koleksi Terkait komponen tergantung diuji
3. pengujian Sub-sistem
- Modul diintegrasikan ke dalam sub-sistem dan diuji. Fokus di sini harus pada pengujian
antarmuka
4. pengujian Sistem
- Pengujian sistem secara keseluruhan. Pengujian sifat muncul
5. Penerimaan pengujian
TAHAP PENGUJIAN
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegration test
Sub-systemintegration test
SOFTWARE EVOLUSI
1. Software secara inheren fleksibel dan bisa berubah.
2. Sebagai persyaratan perubahan melalui perubahan keadaan bisnis, software yang
mendukung bisnis juga harus berkembang dan berubah.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 20
3. Meskipun telah ada demarkasi antara pembangunan dan evolusi (maintenance) ini
semakin relevan karena semakin sedikit sistem yang benar-benar baru
EVOLUSI SISTEM
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
DUKUNGAN PROSES OTOMATIS (CASE)
1. rekayasa perangkat lunak berbantuan komputer (CASE) adalah perangkat lunak untuk
mendukung pengembangan perangkat lunak dan proses evolusi
2. otomatisasi Kegiatan
- Editor grafis untuk pengembangan model sistem.
- Kamus data untuk mengelola entitas desain
- Grafis pembangun UI dalam pembangunan antarmuka pengguna
- Debugger untuk mendukung program mencari kesalahan
- Penerjemah otomatis untuk menghasilkan versi baru dari program
TEKNOLOGI KASUS
1. Teknologi Kasus telah membawa perbaikan yang signifikan dalam proses perangkat
lunak meskipun tidak urutan besarnya perbaikan yang pernah meramalkan.
2. Software engineering membutuhkan pemikiran kreatif - hal ini tidak mudah automatable.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 21
3. Software engineering adalah kegiatan tim dan, untuk proyek-proyek besar, banyak waktu
yang dihabiskan dalam interaksi tim. Teknologi CASE tidak benar-benar mendukung
KLASIFIKASI CASE
1. Klasifikasi membantu kita memahami berbagai jenis alat CASE dan dukungan mereka
untuk kegiatan proses
2. Perspektif Fungsional
- Alat diklasifikasikan sesuai dengan fungsi khusus mereka
3. Perspektif Proses
- Alat diklasifikasikan menurut proses kegiatan yang didukung
4. perspektif Integrasi
- Alat diklasifikasikan menurut mereka organisation menjadi unit-unit yang terintegrasi
KLASIFIKASI ALAT FUNGSIONAL
Jenis Alat Contoh
alat perencanaan Alat PERT, alat estimasi, spreadsheet
alat editing Editor teks, editor diagram, pengolah kata
Perubahan alat manajemen Persyaratan alat traceability, sistem kontrol
perubahan
Alat manajemen konfigurasi Sistem manajemen versi, alat bangunan sistem
prototyping Peralatan Bahasa tingkat, generator antarmuka pengguna
- Sangat Tinggi
Metode - alat pendukung Editor desain, kamus data, kode generator
Bahasa - alat pengolahan Compiler, interpreter
Alat analisis Program Referensi generator Cross, analisis statis,
analisis dinamik
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 22
alat pengujian Generator data uji, pembanding berkas
alat debugging Sistem interaktif debugging
alat dokumentasi Program tata letak halaman, editor gambar
Re - alat-alat teknik Sistem referensi silang, sistem program
restrukturisasi
KLASIFIKASI BERDASARKAN AKTIVITAS
Re alat-alat teknik •
alat pengujian • •
alat debugging • •
Alat analisis Program • •
Bahasa - alat pengolahan • •
Alat pendukung metode • •
Prototyping • •
Alat manajemen konfigurasi • •
Perubahan alat manajemen • • • •
alat dokumentasi • • • •
alat editing • • • •
alat perencanaan • • • •
spesifikasi disain implementasi Verifikasi
dan Validasi
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 23
INTEGRASI KASUS
1. Peralatan
- Mendukung tugas proses individu seperti desain konsistensi memeriksa, mengedit teks,
dll
2. Workbenches
- Mendukung fase proses seperti spesifikasi atau desain, Biasanya mencakup sejumlah alat
terintegrasi
3. Lingkungan
- Mendukung semua atau sebagian besar dari proses seluruh perangkat lunak. Biasanya
meliputi beberapa meja kerja terpadu
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 24
TOOLS, WORKBENCHES, LINGKUNGAN
Single-methodworkbenches
General-purposeworkbenches
Multi-methodworkbenches
Language-specificworkbenches
Programming TestingAnalysis anddesign
Integratedenvironments
Process-centredenvironments
FilecomparatorsCompilersEditors
EnvironmentsWorkbenchesTools
CASEtechnology