NPM : 10419068
Tugas : Rekayasa Perangkat Lunak
1. Tradisional Model
Pendekatan sistem adalah sebuah
metodologi. Metodologi adalah suatu
cara yang direkomendasikan dalam
melakukan sesuatu. Pendekatan sistem
adalah metodologi dasar dalam
memecahkan segala jenis masalah. Siklus
hidup pengembangan sistem (System
Development Life Cycle-SDLC) adalah
aplikasi dari pendekatan sistem bagi
pengembangan suatu system informasi.
•Analisis
Tujuan dari tahap analisis adalah memahami permasalahan secara menyeluruh dan
mendefinisikan kebutuhan pemakai (apa yg harus dilakukan oleh sistem utk
memenuhi keinginan pemakai). Tahap analisis terdiri dari :
•Perancangan
Tujuan dari tahap perancangan adalah menentukan solusi yang dapat memenuhi
kebutuhan informasi pemakai yang sudah didefinisikan dan membuat suatu model
implementasi yang akan dibangun kemudian. Tahap perancangan terdiri dari :
1. Merencanakan penerapan
2. Mengumumkan penerapan
3. Mendapatkan sumber daya HW
4. Mendapatkan sumber daya SW
5. Menyiapkan basis data
6. Menyiapkan fasilitas fisik
7. Pelatihan pemakai
8. Masuk/peralihan ke sistem baru
•Penggunaan
Tujuan tahap penggunaan adalah menjaga agar sistem tetap beroperasi secara
normal, dapat mengantisipasi penyimpangan yang mungkin dialami sistem dan
melakukan evaluasi sistem.
Di dalam proyek yang menggunakan filosofi agile dikenal istilah “chaordic” atau
“chaos” dan “order”. Filosofi agile menyadari ketidakpastian ini, penanganan dengan
meningkatkan flesibilitas dan mempercayakan tim proyek untuk mengembangkan
solusi terhadap masalah yang ada. Aspek penting lainnya dalam pengembangan Agile
adalah pelanggan harus secara terus terlibat di dalam tim proyek. Mereka tidak bisa
hanya duduk dengan tim proyek dalam beberapa sesi untuk mengembangkan
spesifikasi. Mereka menjadi bagian dari tim teknis.
2. System Design
Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap
3. Implementation
Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa
pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik
secara unit.
5. Deployment of system
Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti
penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
6. Maintenance
Proses pemeliharaan sistem yang sudah dibangun
Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci
tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti
diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini
dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah
Element-Element dalam Scrum
Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan
the Scrum team.
Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke
arah pegembangan produk yang tepat.
Scrum Master dapat dianggap sebagai pemersatu bagi product owner dan scrum
team (developer, QA, technical wirter dll), membantu anggota tim menggunakan
kerangka Scrum untuk menyelesaikan suatu project berdasarkan timeline yang
ditentukan di awal.
Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang.
Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke
grup-grup kecil
Scrum tepat digunakan saat kondisi:
Keperluan berubah dengan cepat
Tim programmer sedikit, yaitu 5-9 orang
Pelanggan tidak terlalu paham dengan apa yang diinginkan
Scrum memiliki prinsip yaitu:
Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan
memberdayakan satu sama lain
Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
Proses menghasilkan beberapa software increment
Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Developer harus selalu siap dengan perubahan karena perubahan akan selalu
diterima.
5. Iterative Model
Dalam Iterative model SDLC, proses iterative
dimulai dengan implementasi sederhana dari
komponen kecil dari software sampai dengan
meningkatkan versi dari sebuah software
dengan update-updateanya sehingga
software siap digunakan ke user.
Di setiap Iterative nya, perubahan baik design
maupun fungsi ditambahkan. Ide dasar di
balik metode ini adalah untuk
mengembangkan sistem melalui siklus
berulang (iterative) dan dalam porsi kecil di
setiap updatetanya.
Iterative dan Incremental development adalah kombinasi dari kedua desain iterative
dan incremental, untuk sebuah development. Selama development lebih dari satu
iterasi dari sebuah software development life cycle.
Kunci dari keberhasilan dari Iterative model SDLC (Software development life cycle)
adalah validasi kebutuhan yang ketat dan melakukan testing yang detail di setiap
version dari sebuah software. Sebuah update version software pastinya harus
memberikan fitur-fitur baru yang membuat software tersebut menjadi semakin baik,
untuk dari itu versi software terbaru harus dilakukan testing yang berulang-ulang
agar fungsi lama nya tetap berjalan dengan baik.
1) Identification
Pada fase ini bertujuan untuk mengumpulkan kebutuhan bisnis di dasar spiral, Dalam
spiral berikutnya disebut sebagai produk deawsa. Identifikasi persyaratan sistem,
persyaratan subsistem, persyaratan unit dilakukan pada fase ini. Fase ini juga
mencakup komunikasi antar sistem analis dengan klien.
2) Design
Pada fase ini dimulai dengan desain konseptual di dasar spiral dan melibatkan
desain arsitektur, desain logis dari modul, desain produk fisik dan desain akhir
dalam spiral berikutnya.
3) Construct or Build
Pada fase ini mengacu produksi produk perangkat lunak yang sebenarnya di setiap
spiral.
7. V Model
The V-Model adalah model SDLC dimana
pelaksanaan proses yang terjadi secara
berurutan dalam bentuk-V. Dikenal juga
sebagai model Verifikasi dan Validasi.
2) System Design
Setelah Anda memiliki persyaratan produk yang jelas dan rinci, sekarang saatnya
untuk merancang
sistem yang lengkap. Desain sistem akan memiliki pemahaman dan merinci hardware
lengkap dan setup komunikasi untuk produk dalam pengembangan. Rencana
pengujian sistem dikembangkan berdasarkan desain sistem. Melakukan hal ini pada
tahap awal membuat lebih banyak waktu untuk pelaksanaan tes yang sebenarnya
nanti
3) Architectural Design
spesifikasi arsitektur dipahami dan dirancang dalam fase ini. Biasanya lebih dari satu
pendekatan teknis diusulkan dan berdasarkan kelayakan teknis dan finansial
keputusan akhir diambil. Desain sistem dipecah lebih jauh ke dalam modul
mengambil fungsi yang berbeda. Hal ini juga disebut sebagai “Desain Tingkat Tinggi”
4) Module Design
Pada fase ini, desain internal rinci untuk semua modul sistem yang ditentukan,
disebut “Desain Tingkat Rendah”. Penting bahwa desain tersebut kompatibel dengan
modul lain dalam arsitektur sistem dan sistem eksternal lainnya.
5) Coding Phase
Bahasa pemrograman yang paling cocok ditentukan berdasarkan sistem dan
persyaratan arsitektur. pengkodean dilakukan berdasarkan pedoman coding dan
standar. Kode berjalan melalui berbagai ulasan kode dan dioptimalkan untuk kinerja
terbaik sebelum final membangun diperiksa ke dalam repositori
Fase Validasi berbeda dalam V-Model dijelaskan secara rinci di bawah ini:
– Unit Testing
unit testing adalah pengujian pada tingkat kode dan membantu menghilangkan bug
pada tahap awal, meskipun semua cacat tidak dapat ditemukan oleh unit testing.
– Integration Testing
Integration testing dikaitkan dengan fase desain arsitektur. tes integrasi dilakukan
untuk menguji koeksistensi dan komunikasi dari modul internal dalam sistem.
– System Testing
System testing secara langsung berhubungan dengan tahap desain sistem. System
testing memeriksa seluruh fungsi sistem dan komunikasi sistem dalam
pengembangan dengan sistem eksternal. Sebagian besar perangkat lunak dan
perangkat keras masalah kompatibilitas dapat ditemukan selama pelaksanaan test ini
– Acceptance Testing
Acceptance testing dikaitkan dengan tahap analisis kebutuhan bisnis dan melibatkan
pengujian produk di lingkungan pengguna. Acceptance testing mengungkap masalah
kompatibilitas dengan sistem lain yang tersedia di lingkungan pengguna. Juga
menemukan masalah non-fungsional seperti beban dan kinerja cacat pada aktual
lingkungan pengguna.
Biasanya model ini di implementasi untuk proyek kecil dimana tim developernya
sangat sedikit.
Namun Big Bang model ini sangat beresiko tinggi dikarenakan dipastikan seringnya
terjadi perbuhaan mengakibatkan kesalah pahaman antar developer yang
mengerjakan project tersebut. Ini sangat ideal untuk proyek berulang atau kecil
dengan risiko minimum.
2. Elaboration
merupakan tahap untuk melakukan desain secara lengkap berdasarkan hasil analisis
pada tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
pembuatan desain arsitektur subsistem (architecture pattern), desain komponen
sistem, desain format data (protokol komunikasi), desain database, desain user
interface, pemodelan diagram UML (diagram sequence, class, component,
deployment, dll.), dan pembuatan dokumentasi
3. Construction
merupakan tahap untuk mengimplementasikan hasil desain dan melakukan
pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan
pemeriksaan ulang hasil analisis dan desain, terutama desain pada sequence
diagram, class diagram, component dan deployment. Apabila desain yang dibuat
telah sesuai dengan analisis sistem, maka implementasi dengan bahasa
pemrogramanan tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini
antara lain mencakup pengujian hasil analisis dan desain, pendataan kebutuhan
implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis),
penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi
program, pendataan berbagai kemungkinan pengembangan atau perbaikan lebih
lanjut, dan pembuatan dokumentasi.
4. Transition
merupakan tahap untuk menyerahkan sistem aplikasi kepada user (roll-out), yang
umumnya mencakup pelatihan dan beta testing aplikasi
Aliran Kerja Rational Unified Process (RUP)
RUP juga mempunyai aliran kerja yang terbagi menjadi dua bagian, yaitu: Aliran kerja
utama dan Aliran kerja pendukung, dimana keduanya merupakan suatu kesatuan
dalam proses pengembangan sistem (SDLC)
3. Analysis and Design Pada fase ini, semua requirement pada tahap kedua akan
diubah menjadi spesifikasi implementasi.
4. Implementation Pada tahap ini, semua analisa dan desain yang telah dibuat pada
fase sebelumnya akan diimplementasikan dan diterjemahkan menjadi kode program.
5. Testing Pada tahap ini, pengembang software akan menguji dan memverifikasi
semua interaksi komponen, kebutuhan yang telah diimplementasikan dan kualitas
dari software yang telah dikembangkan.
3) Review Prototype
Fase ini untuk user/client melakukan review prototype yang sudah dirancang oleh
developer untuk memberikan feedback yang bertujuan untuk penyempurnaan lebih
lanjut sistem/software yang sedang dikembangkan.
Kelebihan Prototype
• Meningkatnya keterlibatan pengguna dalam produk bahkan sebelum
diimplementasi
• Karena model sistem yang di bangun di share ke user, maka user mendapatkan
pemahaman yang lebih baik tentang sistem yang sedang dikembangkan.
• Mengurangi waktu dan biaya karena cacat dapat dideteksi jauh lebih awal.
• Feedback user yang cepat di awal dapat memberikan solusi yang lebih baik
• Fungsi yang tidak ada dapat diidentifikasi dengan mudah dan cepat
• Fungsi yang membingungkan dapat di hilangkan
Kekurangan Prototype
• Risiko analisis kebutuhan yang tidak mencukupi karena terlalu banyak
ketergantungan pada Prototipe
• Pengguna mungkin bingung dalam prototipe dan sistem sebenarnya.
• Upaya yang diinvestasikan dalam membangun prototip mungkin terlalu banyak jika
tidak dipantau tepat.
• Pengembang dapat mencoba untuk menggunakan kembali prototipe yang ada
untuk membangun sistem yang sebenarnya, Bahkan bila hal itu tidak layak secara
teknis.
2) Elaboration phase
Fase elaborasi biasanya melibatkan beberapa iterasi, dan iterasi awal biasanya
menyelesaikan identifikasi dan definisi dari semua persyaratan sistem. Karena UP
adalah pendekatan adaptif untuk pembangunan, persyaratan diharapkan
berkembang dan berubah setelah dimulainya proyek. Tahapan iterasi pada elaborasi
juga melengkapi analisis, desain, dan pelaksanaan arsitektur inti sistem. Biasanya,
aspek dari sistem yang menimbulkan resiko terbesar diidentifikasi dan dilaksanakan
terlebih dahulu sampai pengembang mengetahui persis bagaimana aspek tertinggi
resiko proyek akan bekerja. Pada akhir fase elaborasi, manajer proyek harus memiliki
perkiraan yang lebih realistis untuk biaya proyek dan jadwal, dan kasus bisnis atas
proyek dapat dikonfirmasi terlebih dahulu.
Salah satu tujuan utama dari fase elaborasi adalah untuk melakukan penelitian yang
diperlukan data atau fakta sehingga semua kebutuhan pengguna diidentifikasikan
secara jelas dan rinci.
3) Construction phase
Tahap konstruksi melibatkan beberapa iterasi yang meneruskan atau melanjutkan
desain dan implementasi sistem. Arsitektur inti dan aspek tertinggi resiko sistem
sudah selesai pada tahap ini. Fokus utama di dalam tahap ini adalah bagaimana
merinci sistem kontrol, seperti validasi data, fine-tuning antar muka pengguna
desain, menyelesaikan fungsi pemeliharaan data rutin, dan menyelesaikan bantuan
serta preferensi penggunaan fungsi.
4) Transistion phase
Selama fase transisi atau tahap akhir dari UP, satu atau lebih iterasi akhir yang
melibatkan penerimaan pengguna (end users), beta tes akhir, dan sistem dibuat siap
untuk dioperasikan. Setelah sistem ini beroperasi, maka akan perlu didukung dan
dipertahankan fungsi kegunaan dari sistem tersebut.
Unified Process Discipline (UDP)
Unified Process Discipline adalah sekumpulan kegiatan–kegiatan fungsional yang
saling terkait atau berhubungan satu sama lain, yang mengabungkan dan
memungkinkan pengembangan proses di dalam proyek UP.