Software engineering 1
-
Upload
ferlianus-gulo -
Category
Documents
-
view
664 -
download
1
description
Transcript of Software engineering 1
SOFTWARE ENGINEERING 1
Disusun Oleh :
Nama
NPM
Grup
Mata Kuliah
Dosen
: Ferlianus Gulo
: 1011257
: TI-M1014
: Rekayasa Perangkat Lunak
: 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 1
APAKAH PERANGKAT LUNAK?
1.
2.
Program komputer dan dokumentasi terkait.
Software produk dapat dikembangkan untuk pelanggan tertentu atau dapat dikembangkan
untuk pasar umum.
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.
3.
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.
b.
c.
Spesifikasi - sistem apa yang harus dilakukan dan kendala pengembangannya.
Pengembangan - produksi dari sistem perangkat lunak.
Validasi - memeriksa bahwa perangkat lunak adalah apa yang diinginkan oleh
pelanggan.
Evolusi - perubahan perangkat lunak dalam menanggapi tuntutan perubahand.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 2
APA YANG DIMAKSUD DENGAN PROSES PERANGKAT LUNAK MODEL?
1. Sebuah representasi yang disederhanakan dari proses perangkat lunak, disajikan dari
perspektif tertentu.
Contoh perspektif proses yang
Workflow perspektif - urutan kegiatan.
Perspektif data-flow - arus informasi.
Peran / perspektif aksi - siapa melakukan apa.
model proses Generik
Air terjun.
Pengembangan Evolusioner.
Transformasi Formal.
Integrasi dari komponen reusable.
2.
-
-
-
3.
-
-
-
-
APA SOFTWARE METODE REKAYASA?
1. Pendekatan terstruktur untuk pengembangan perangkat lunak yang meliputi model
sistem, notasi, aturan, saran desain dan proses bimbingan.
Deskripsi Model
Deskripsi model grafis yang harus diproduksi
Aturan
Kendala diterapkan pada model sistem
Rekomendasi
Saran pada praktek desain yang baik
Panduan Proses
Apa kegiatan untuk mengikuti
2.
-
3.
-
4.
-
5.
-
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 3
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.
Maintainability
Software harus berkembang untuk memenuhi perubahan kebutuhan
Ketergantungan
Software harus dapat dipercaya
Efisiensi
Software tidak harus membuat pemborosan sumber daya sistem
Usability
Software harus dapat digunakan oleh pengguna untuk yang dirancang
2.
-
3.
-
4.
-
5.
-
APA SAJA TANTANGAN UTAMA YANG DIHADAPI REKAYASA PERANGKAT
LUNAK?
1. Mengatasi dengan sistem warisan, mengatasi meningkatnya keragaman dan menghadapi
tuntutan untuk mengurangi waktu pengiriman.
Sistem Legacy
Lama, sistem yang berharga harus dipertahankan dan diperbarui
Heterogenitas
Sistem didistribusikan dan termasuk campuran hardware dan software
Pengiriman
Ada peningkatan tekanan untuk pengiriman lebih cepat dari perangkat lunak
2.
-
3.
-
4.
-
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 4
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.
-
2.
-
3.
-
4.
-
Model waterfall
Fase terpisah dan berbeda dari spesifikasi dan pengembangan
Pengembangan Evolusioner
Spesifikasi dan pengembangan disisipkan
pengembangan sistem Formal
Sebuah model sistem matematika secara resmi berubah menjadi sebuah implementasi
Pengembangan Reuse-based
Sistem ini dirakit dari komponen yang ada
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 5
MODEL AIR TERJUN
FASE MODEL AIR TERJUN
1.
2.
3.
4.
5.
6.
Persyaratan analisis dan definisi.
Sistem dan desain perangkat lunak.
Implementasi dan pengujian unit.
Integrasi dan pengujian sistem.
Operasi dan pemeliharaan.
Kelemahan dari model air terjun adalah sulitnya mengakomodasi perubahan setelah
proses sedang berlangsung.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 6
Operasi dan
pemeliharaan
Integr asi
dan
pengujian
sistem
Implementasi
dan pengujian
unit
Sistem dan
desain
perangkat
lunak
Persyaratan
definisi
MASALAH MODEL AIR TERJUN
1.
2.
3.
Tidak fleksibel pemisahan proyek menjadi tahap yang berbeda.
Hal ini membuat sulit untuk merespon kebutuhan pelanggan berubah.
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.
prototyping Throw-away
Tujuan adalah untuk memahami persyaratan sistem. Harus dimulai dengan persyaratan
kurang dipahami.
2.
-
PERKEMBANGAN EVOLUSI
Yang Berbarengan
Kegiatan
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 7
Versi Final
versi MenengahMenguraikan
deskripsi
versi awalSpesifikasi
Pengembangan versi
Menengah
Validasi
MASALAH
1.
2.
3.
Kurangnya visibilitas proses
Sistem sering kurang terstruktur
Keterampilan khusus (misalnya dalam bahasa untuk prototipe cepat) mungkin diperlukan
PENERAPAN
1.
2.
3.
Untuk sistem interaktif kecil atau menengah
Untuk bagian sistem yang besar (misalnya user interface)
Untuk sistem pendek seumur hidup
PENGEMBANGAN SISTEM FORMAL
1. Berdasarkan transformasi spesifikasi matematika melalui representasi yang berbeda
untuk program executable
Transformasi adalah 'kebenaran-melestarikan' sehingga mudah untuk menunjukkan
bahwa program ini sesuai dengan spesifikasinya
Diwujudkan dalam 'Cleanroom' pendekatan untuk pengembangan perangkat lunak
2.
3.
PENGGUNAAN METODE FORMAL
1.
2.
Metode formal telah membatasi penerapan praktis
Manfaat utama mereka adalah untuk mengurangi jumlah kesalahan dalam sistem
sehingga daerah utama mereka adalah penerapan sistem kritis
Di daerah ini, penggunaan metode formal kemungkinan besar untuk biaya-efektif
3.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 8
PENGEMBANGAN SISTEM FORMAL
PENGGUNAAN SPESIFIKASI FORMAL
1. Spesifikasi formal melibatkan investasi lebih banyak usaha dalam fase awal dari
pengembangan perangkat lunak.
Ini akan mengurangi kebutuhan kesalahan karena memaksa analisis rinci dari
persyaratan.
Ketidaklengkapan dan inkonsistensi dapat ditemukan dan diselesaikan.
Oleh karena itu, tabungan dibuat sebagai jumlah pengerjaan ulang karena masalah
persyaratan berkurang.
2.
3.
4.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 9
Integrasi dan
pengujian
sistem
Transformasi
Formal
Spesifikasi
formal
Persyaratan
definisi
DAFTAR SPESIFIKASI
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 10
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)
TRANSFORMASI FORMAL
Formal transformations
T1 T2 T3 T4
program
P1 P2 P3 P4
Proofs of transformation correctness
PENGEMBANGAN SISTEM FORMAL
1.
-
-
2.
-
Masalah
Butuh keterampilan khusus dan pelatihan untuk menerapkan teknik
Sulit untuk secara resmi menentukan beberapa aspek dari sistem seperti user interface
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 11
ecutableR3
Ex
pR2R1
sFormal
pecification
- Desain sistem dengan reuse
- Pengembangan dan integrasi
3. Pendekatan ini menjadi lebih penting tapi pengalaman masih terbatas dengan itu
BERORIENTASI PEMBANGUNAN KEMBALI
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.
Iterasi dapat diterapkan pada salah satu model proses generik.
Dua (terkait) pendekatan.
Pengembangan Incremental.
Pengembangan Spiral
2.
3.
-
-
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 12
Validasi sistemPengembangan
dan integrasi
Sistem desain
dengan
penggunaan
ulang
Persyaratan
modifikasi
Analisis
komponen
Spesifikasi
kebutuhan
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.
Kebutuhan user diprioritaskan dan kebutuhan prioritas tertinggi dimasukkan dalam awal
increment.
Setelah pengembangan kenaikan dimulai, persyaratan dibekukan meskipun persyaratan
untuk kenaikan nantinya bisa terus berkembang
2.
3.
PENGEMBANGAN INCREMENTAL
Design system architecture
Define outline requirements
Assign requirements to increments
Integrate increment
Valida tesystem
Develop system increment
Valida teincrement
Final system
System incomplete
KEUNTUNGAN PEMBANGUNAN INKREMENTAL
1. nilai pelanggan dapat disampaikan dengan kenaikan masing-masing sehingga fungsi
sistem tersedia sebelumnya.
kenaikan Awal bertindak sebagai prototipe untuk membantu mendatangkan persyaratan
untuk kenaikan selanjutnya.
Menurunkan resiko kegagalan proyek secara keseluruhan.
Layanan sistem prioritas tertinggi cenderung menerima pengujian yang paling
2.
3.
4.
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 13
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.
Setiap loop dalam spiral merepresentasikan fase dalam proses.
Tidak ada fase tetap seperti spesifikasi atau desain - loop dalam spiral yang dipilih
tergantung pada apa yang dibutuhkan.
Risiko secara eksplisit dinilai dan diselesaikan selama proses berlangsung.
2.
3.
4.
MODEL SPIRAL DARI PROSES PERANGKAT LUNAK
id en tify, resol ve risk s
Opera-analys isP rot otyp e 3
ty pe 1
C oncept o f
P rod uct
requi rement s
Requi rement desi gn
V& V Integr ati on
test Develop, v erifyS erv ice
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 14
Determ ine ob jectiv es alternatives and
cons traint s
R EVIEW
Ev aluate alt ern atives
R isk analys is
R isk analys is
R isk
ti onal
Risk analysis
P rot otyp e 2 prot oyp e
P rot o-
Requi rement s pl anLi fe-cycle pl an
Develop ment pl an
Integrati on and t est p
lanP lan next p has e
S im ul ati ons, m odels, b en ch marks
Operati on S /W
desi gn Detail ed
valid ati on C ode
Desi gn Uni t t es t
Accep tance test
next -l evel p rod uct
SEKTOR MODEL SPIRAL
1.
-
2.
-
3.
-
4.
-
Pengaturan Tujuan
Tujuan khusus untuk fase diidentifikasi
Penilaian risiko dan pengurangan
Risiko dinilai dan kegiatan diberlakukan untuk mengurangi risiko-risiko utama
Pengembangan dan validasi
Sebuah model pengembangan untuk sistem dipilih yang dapat salah satu model generik
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.
proses rekayasa Persyaratan
Studi kelayakan
Persyaratan elisitasi dan analisis
Persyaratan spesifikasi
Persyaratan validasi
2.
-
-
-
-
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 15
PROSES REKAYASA PERSYARATAN
Requirementselicitation and
Feasibility
study analysisRequir ementsspecification
Feasibility
Requirementsvalidation
System
User and system
Requirements
KEGIATAN PROSES DESAIN
1.
2.
3.
4.
5.
6.
Desain Arsitektur
spesifikasi Abstrak
Interface desain
desain Komponen
desain struktur data
desain Algoritma
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 16
document
models
requirements
report
PROSES DESAIN SOFTWARE
Requirements specification
Design actvi ities
Data structuer
Architectuar l design
Interface design
Component design
Algorithm design
Abstract specification
design
SoftwareSystem Interface Component Algorithm
Design porducts
METODE DESAIN
1.
2.
3.
-
-
-
-
pendekatan sistematis untuk mengembangkan desain software
Desain ini biasanya didokumentasikan sebagai satu set model grafis
Model Kemungkinan
Model data-flow
Model Entity-hubungan-atribut
Model Struktural
Model Obyek
PEMROGRAMAN DAN DEBUGGING
1.
2.
3.
Menerjemahkan desain ke dalam program dan menghapus kesalahan dari program yang.
Pemrograman adalah aktivitas pribadi - tidak ada proses pemrograman generik.
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 17
specificationspecificationspecificationspecificationarchitectuer
Data
structuer specificatio
n
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.
Melibatkan pengecekan dan review proses dan pengujian sistem.
Pengujian sistem melibatkan melaksanakan sistem dengan uji kasus yang berasal dari
spesifikasi data riil untuk diproses oleh sistem
2.
3.
PROSES PENGUJIAN
testing
Sub-system
Acceptance
Component testing
Integration testing
User testing
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 18
testing
testing
testing
System
testing
ub-syste
Module
Unit
TAHAP PENGUJIAN
1.
-
2.
-
3.
-
Unit pengujian
Masing-masing komponen diuji
pengujian Modul
Koleksi Terkait komponen tergantung diuji
pengujian Sub-sistem
Modul diintegrasikan ke dalam sub-sistem dan diuji. Fokus di sini harus pada pengujian
antarmuka
pengujian Sistem
Pengujian sistem secara keseluruhan. Pengujian sifat muncul
Penerimaan pengujian
4.
-
5.
TAHAP PENGUJIAN
Requir ements specification
System specification
System design
Detailed design
System Sub-system Module and unit code and tess
Acceptance test
System integration test
Sub-system integration test
Service
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 19
integration test plan
integration test plan
Acceptance test plan
3. Meskipun telah ada demarkasi antara pembangunan dan evolusi (maintenance) ini
semakin relevan karena semakin sedikit sistem yang benar-benar baru
EVOLUSI SISTEM
Modifysystems
Define systemrequirements
Assess existingsystems
Propose systemchanges
New
DUKUNGAN PROSES OTOMATIS (CASE)
1. rekayasa perangkat lunak berbantuan komputer (CASE) adalah perangkat lunak untuk
mendukung pengembangan perangkat lunak dan proses evolusi
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
2.
-
-
-
-
-
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 20
system
Existing
systems
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
Perspektif Fungsional
Alat diklasifikasikan sesuai dengan fungsi khusus mereka
Perspektif Proses
Alat diklasifikasikan menurut proses kegiatan yang didukung
perspektif Integrasi
Alat diklasifikasikan menurut mereka organisation menjadi unit-unit yang terintegrasi
2.
-
3.
-
4.
-
KLASIFIKASI ALAT FUNGSIONAL
Jenis Alat
alat perencanaan
alat editing
Perubahan alat manajemen
Contoh
Alat PERT, alat estimasi, spreadsheet
Editor teks, editor diagram, pengolah kata
Persyaratan alat traceability, sistem kontrol
perubahan
Alat manajemen konfigurasi
prototyping Peralatan
Sistem manajemen versi, alat bangunan sistem
Bahasa tingkat, generator antarmuka pengguna
- Sangat Tinggi
Metode - alat pendukung
Bahasa - alat pengolahan
Alat analisis Program
Editor desain, kamus data, kode generator
Compiler, interpreter
Referensi generator Cross, analisis statis,
analisis dinamik
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 21
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
•
•
•
•
•
•
•
•
•
••
• •
•
•
•
•
•
disain
•
•
•
•
•
implementasi
•
•
•
•
spesifikasi
•
•
•
•
Verifikasi
dan Validasi
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 22
INTEGRASI KASUS
1.
-
Peralatan
Mendukung tugas proses individu seperti desain konsistensi memeriksa, mengedit teks,
dll
Workbenches
Mendukung fase proses seperti spesifikasi atau desain, Biasanya mencakup sejumlah alat
terintegrasi
Lingkungan
Mendukung semua atau sebagian besar dari proses seluruh perangkat lunak. Biasanya
meliputi beberapa meja kerja terpadu
2.
-
3.
-
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 23
TOOLS, WORKBENCHES, LINGKUNGAN
CASE
Multi-method Single-method General-purpose Language-specific
Translated by Ferlianus Gulo NPM: 1011257 Software Engineering-1 Page 24
technology
Tools Workbenches Environments
Editors CompilersFile
comparatorsIntegrated
environments
Process-centred
environments
Analysis and
designProgramming Testing
workbenches workbenches workbenches workbenches