Software development process logical dan temporal sequence terus relationship dan aktivitas-
aktivitas yang ada di dalam software development process ini juga nanti setiap fasenya.
Roles dan responsibility dari setiap orang yang ada di dalam proses software development
Requirement dari customer
Software development model itu terus software development life cycle itu apa saja seperti V
model, agile, waterfall dan berbagai model yang bisa digunakan terus fase-fase yang ada di
software development
Bagaimana cara memilih drive models, bagaimana menentukan models yang hendak akan
kita gunakan untuk menentukan software development kita terus faktor-faktor apa saja yang
mempengaruhi pemilihan dari software development itu
Requirement gathering itu ada analisis, ada planning, ada desain
Dari implementasi nanti kita bisa lepas masuk ke testing sampai nanti ke arah deployment
dan maintenance.
Mengidentifikasi solusi, menciptakan solusi dari masalahmasalah yang dimiliki oleh klien
kita itu juga akan kita bahas bagaimana kita menganalisa requirement yang ada, bagaimana
kita menentukan agreement dan sign off contract dengan klien-klien yang ada gitu itu di fase
pertama.
Unified modeling language atau UML tentang introduction nya, tipe-tipe diagramnya, class
diagram yang ada, relationship yang ada, package nya, structure dan beberapa usecase-
usecase modeling di UML.
Apa yang dimaksud dengan software arsitektur dan apa yang dimaksud IX405 dengan
software desain?
Dari basic nya mulai dari low level design sampai high level design
Database arsitektur, apa itu database, relational database bagaimana, bagaimana kita
menentukan melakukan define terhadap sebuah database, primary key apa, foreign key apa,
case study tentang database structure.
Technical requirement ini sangat menentukan karena ini adalah translate dari bisnis
recruitment.
Menggunakan git atau github juga untuk manajemen versi bagaimana kita me manage
repository, manage brand dan software versioning.
Implementation dan risk assessment.
Jadi bagaimana software is identification, analisis, planning serta monitoring nya.
Testing dan quality assurance karena tadi setelah fase implementasi itu setiap unit yang kita
buat dari software yang kita kembangkan itu akan diintegrasi menjadi satu baru disiapkan
testing nya. Nanti akan dilakukan uji coba setelah diintegrasi baru dilakukanlah quality
assurance jadi untuk menentukan software itu masuk standar sesuai kebutuhan klien apa
tidak.
Setelah testing sudah oke ini fase yang ditunggu-tunggu itu fase go live. Jadi kita akan push
ke production untuk bisa diakses oleh klien. Nah dari fase dari fase ke-5 ini yang fase go live
ini Kita akan masuk ke fase yang terakhir yaitu fase maintenance.
Karir page seorang developer. Bagaimana kita bisa menentukan karir kita sebagai developer
mulai dari seorang associate developer sampai menjadi seorang VIP of Engineering atau bisa
jadi seorang shift technology officer.
Di software development itu prosesnya biasanya beragam, tergantung dari perusahaan
tersebut memilih software development models yang akan mereka gunakan untuk kebutuhan
development aplikasi mereka biasanya ada berapa banyak faktor yang menentukan untuk
pemilihan models ini seperti halnya tentang resource nya, kompleksifitas dari project nya,
bug cost nya ataupun kebutuhan-kebutuhan lainnya yang bergantung pada pengembangan
software.
Di software development ini ada masuk yang namanya desain terus masuk juga produk
manajemen terus ada juga project manajemen.
Software development life cycle ini itu ada beberapa tahap lagi seperti yang sudah saya bahas
sebelumnya. Tahap pertama yaitu tahap masuk ke requirement gathering terus masuk ke
tahap ke-2 yaitu desain, lalu tahap berikutnya adalah implementasi, testing hingga Kita
deployment ke production atau yang biasa kita sebut dengan go live. Baru nanti di terakhir
kita masuk ke maintenance dari project yang sudah kita kembangkan.
Di dalam software development ini ada beberapa metodologis, metodologis yang akan saya
sebutkan ini itu akan kita bahas lebih lebih rinci di week ke-2 nanti diantaranya itu adalah
model agial, waterfall, spiral development, prototyping, V model, iterative dan incremental
development juga nanti kita akan bahas tentang RAD atau rapid application development.
Skenario dari sebuah project biasanya dalam skenario ini ada 2 kubu. Yang pertama adalah
klien, yang ke-2 adalah dari kubu developer atau teknikal konsultan tapi di tengah-tengahnya
nanti akan ada seorang solution arsitek yang akan menjadi penengah untuk pengembangan
ini.
Role-role yang ada di dalam software development ini antara lain adalah ada customer baru
dari customer nanti mereka akan menghubungi seorang account manager terus ada project
manager baru langsung ke solution arsitek nah dari solution arsitek nanti mereka akan lanjut
ke team development nya atau project team nah di project team ini biasanya ada seorang
content manager, ada development team, ada IT admin dan desain timnya. Itu udah mereka
udah kumpulkan semua gathering requirement nya dari kliennya yang ingin membuat e-
learning platform nah solution arsitek ini dia akan membantu membuatkan rencana dan akan
membantu melakukan implementasi terhadap software yang dikembangkan hingga software
tersebut bisa go live ke production sampai ke tahap berikutnya yaitu tahap maintenance
Role dan responsibility dari orang-orang yang ada di dalam software development proses ini.
Yang saya bilang tadi yang pertama orang yang akan bertanggung jawab terhadap semua
requirement itu adalah seorang solution arsitek dan dia akan bertugas berkomunikasi dengan
customer dan project tim
dalam proses development ini masih banyak orang-orang yang ikut berkontribusi terhadap
pengembangan software tersebut. Misalnya yang pertama adalah seorang account manager,
yang ke-2 ada seorang project manager, ada quality manager, ada seorang requirement
manager, ada juga support manager, konten koordinator, dan project tim di dalamnya. Nah
tugas seorang account manager yang pertama adalah Dia menjadi point of contact dengan
customer nya jadi dia itu menjadi frontline dari pengembangan project tersebut. Jadi
tanggung jawab dia itu menghubungi klien, bisnis requirement yang dibutuhkan yang
diinginkan oleh klien itu apa saja account manager ini akan bertanggung jawab. Nah yang ke-
2 adalah seorang project manager tanggung jawab dari seorang project manager ini dia adalah
menentukan timeline dari pengembangan software yang dikembangkan. Dia bertanggung
jawab atas keseluruhan proyek tersebut. Yang ke-3 adalah quality manager, IX405 quality
manager ini bertugas untuk melakukan quality assurance terhadap project dan produk yang
dikembangkan. Jadi dia mengatur kualitas dari sebuah software yang kita kembangkan terus
untuk accepted user baik itu internal ataupun eksternal dia juga yang bertugas untuk
mengatur segalanya. Me-manage semua yang ada tentang kualitas dari software yang
dikembangkan. Berikutnya adalah requirement manager nah requirement manager ini dia
bertugas untuk membuat technical requirement dari yang tadinya account manager dapatkan
dari seorang klien terkait dengan bisnis requirement seorang requirement manager ini dialah
yang bertugas untuk melakukan translate.
dari bisnis requirement ke teknikal specification itu ada tugas dia misal seperti ini Seorang
klien Saya ingin membuat website yang aman tugas dia bagaimana mengkonversi bahasa
klien tersebut ke bahasa teknikal oke berarti translate nya kalau ingin membuat website yang
aman berarti dipasang SSL atau HTTPS secure socket layer nya terus ada login terus
dipasang beberapa proteksi-proteksi keamanan. Itu akan dimasukkan ke teknikal specification
oleh seorang requirement manager ini.
support manager ini dia bertugas untuk melakukan manajemen isu-isu yang ada. Jadi ketika
development terjadi baik itu sudah masih dalam tahap pengembangan atau software yang
sudah jadi dia yang bertugas untuk melakukan melakukan pengecekan terhadap bugs yang
ada, isu-isu apa yang ada yang muncul di dalam software nya dia yang menganalisa dan
menginformasikannya ke tim developer terus ada konten koordinator. Konten koordinator ini
dia bertugas untuk manajemen konten manajemen sistem untuk project yang dikembangkan.
Jadi dia yang akan fokus semuanya untuk mengurus konten-konten nya. Nah yang terakhir
adalah project tim di dalam project tim itu itu banyak sekali jadi ada konten koordinat, ada
konten manajer terus ada development tim, ada IT admin, ada desain tim. Nah the hole
people di dalam ini tuh mereka biasanya disebut sebagai project tim bisa juga biasanya di
dalam itu ada QA engineer atau software-software engineer. Terus orang yang terakhir di
dalam software development itu biasanya adalah solution arsitek. Dia ini yang paling penting
di dalam pengembangan software karena dia harus mengerti konsep software nya, dia harus
benar-benar mengerti tentang requirement nya, definisi-definisi apa aja kebutuhan klien Dia
harus mengerti melakukan bisnis analisis, melakukan project management dan dia juga yang
akan ngebantu tim untuk quality assurance. Nah itu adalah role dan responsibility dari tim-
tim yang ada di software development.
Problem ini bagaimana kita mencoba mengerti customer requirement karena seringkali di
software development itu kalau requirement dari klien itu enggak jelas nanti hasil dari
software yang akan kita kembangkan itu akan berantakan itu pasti
ketika customer tadi berinteraksi dengan seorang account manager, account manager itu
harus benar-benar paham komunikasinya dengan seorang customer itu harus benar-benar
bagus. Karena jika tidak ada komunikasi yang bagus jadi requirement nya yang ada enggak
jelas nanti seorang solution arsiteknya juga akan bingung gimana memberikan detail-detail
teknikal ke project timnya. Karna biasanya seorang customer ini akan memberikan bisnis
requiment gitu jadi bisnis detail aja seperti yang saya bilang tadi saya hanya ingin membuat
website yang aman terus teknikal specifitacion nya itu di buat halaman login.
Contoh-contoh lain dari masalah-masalah yang ada di software development ini terkait
dengan customer requirement contohnya nih jadi Saya ingin manage video di dalam website
yang terproteksi jadi enggak sembarang orang bisa mengakses video tersebut kalau dia tidak
punya akses gitu. Teknikal specification akan menjadi di engineering timnya nanti dia akan
bikin yang pertama new website with authentication, yang ke-2 ada login page nya, yang ke-3
ada database of video dimana database video itu baru bisa diakses kalau sudah login. Terus
ada video atau file apa fungsionallity di dalamnya terus ada juga user profile page. Nah itu
adalah cara mengkonversi customer requirement ke teknikal specification.
Contoh lainnya ada klien ingin Saya ingin punya platform yang bisa mengirimkan broadcast
email seperti mailchimp atau seperti toolstools lainnya. Seorang customer seorang solution
arsitek tadi dia akan menganalisa nih masalah-masalahnya barulah dibuatkan dibantu
dibuatkan teknikal specification nya.
Ingin bikin broadcast platform berarti kita harus develop yang pertama itu new email
marketing tool terus kita harus bikin newsletter generator nya. Kita akan buat generator agar
bisa mengirim newsletter sesuai dengan keinginan user atau secara berkala. Terus kita juga
bisa buatkan database user atau customer terus di butuhkan juga test environment.
case study yang akan saya gunakan di sini adalah bagaimana kita membuat e-learning
platform? Jadi Saya di sini akan berakting sebagai seorang solution arsitek. Jadi kebutuhan
apa saja yang ada untuk pengembangan e-learning platform ini akan saya coba jelaskan. Nah
yang pertama, yang pertama itu pasti login atau registration ini pasti dibutuhkan untuk
webiste e-learning ini di dalamnya nanti itu akan ada manajemen registrasi, manajemen user
baik itu create, read, update ataupun diklat informasi user. Terus ada profile page, profile
page ini adalah informasi tentang user misal user nya udah berapa mengambil sertifikat, user
nya sudah berapa mengambil kursus, dia sosial medianya apa dan ini bisa dimasukkan ke
profil page ini. Yang berikutnya adalah modul course. Modul kursus ini itu berisi tentang the
hole sistem yang mengatur kursus-kursus yang ada di dalam e-learning platform kita. Baik itu
upload kursus, manajemen kursus itu ada semua di modul kursus. Terus di dalam modul-
modul kursus ini biasanya ada lecturer terus lecturer ini itu tugasnya adalah konten-konten
yang ada di dalam kursus tersebut atau biasanya kalau di IndonesiaX itu konten-kontennya
disebut sebagai week 1 section nya apa, IX405 week 2 section nya apa, week 3 section nya
apa seperti itu. Nah di dalam itu kita bisa masukkan per section nya itu satu video ataupun
satu konten. Itu tergantung user nya yang manage kursus tersebut. Nah di akhir week itu
biasanya ada exam, exercise atau biar bisa kita bilang tes aja lah gitu. Jadi biasanya di mooc
atau e-learning itu ada exam atau tes ini. Nah ini bisa kita masukin modul untuk cek level
under level of understanding dari setiap user. Terus itu dari sisi frontend nya kalau dari back
layer nya itu tentu ada instruktur studio nah atau ya kita sebut aja teacher admin biar lebih
enak teacher admin karna ini e-learning terus ada lagi app admin. Nah di teacher admin ini
adalah konten manajemen yang digunakan untuk mengelola kursus-kursus yang ada,
mengelola konten-konten baik itu dari konten kursus per section ataupun konten-konten exam
nya, tes dan lain sebagainya. Mengatur grading dan beberapa unsur-unsur yang ada di dalam
sebuah kursus. Untuk app admin, app admin ini digunakan untuk mengatur keseluruhan
system dimulai dari sistem itu ingin memiliki kategori apa saja ingin memiliki banner di
halaman depannya apa saja itu di manage itu di app admin bisa juga untuk manajemen-
manajemen user. Nah biasanya di yang pertama yang di login dan registrasi. Login dan
registrasi itu kebutuhannya enggak jauh beda detail-detail informasiinformasi umum dari user
nya. Terus untuk di halaman informasi kursus itu biasanya itemitem yang ada itu biasanya
kalau di e-learning itu ada video. Video introduction, ada image tentang instrukturnya nanti
ada paragraph seorang solution arsitektur tuh harus benar-benar mengerti apa elemen-elemen
apa saja yang ada di dalam sistem yang dikembangkan. Nah selain itu ketika semuanya udah
dibikin nanti seorang solution arsitek tersebut bisa mengatur the hole desainnya baik itu high
level design atau low level design nya. Nanti akan bebas mengaturnya, menganalisa sesuai
kebutuhan-kebutuhan user baru nanti development nya akan berjalan dengan lancar nah
untuk praktis coding nya nanti kita akan menggunakan phyton.
Minggu 2 : Software Development Process
Mengapa SDLC?
SDLC software development life cycle jadi ini sebenarnya adalah set of proses yang
digunakan untuk mengembangkan sebuah software.
tujuan utamanya sebenarnya untuk menghasilkan software yang benar-benar bagus.
SDLC ini untuk management control. Jadi untuk manage dari tim nya kita agar organisasi
kita lebih baik dalam pengembangan software. Terus bisa juga untuk dokumen yang lebih
efektif dan memastikan arsitektur dan desain yang lebih aman. Yang terakhir adalah kenapa
SDLC ini benar-benar diperlukan? Agar software yang kita buat itu sesuai dengan ekspektasi
dari klien.
Stage yang biasa yang terjadi di software development life cycle ini yang pertama adalah
project kick off atau inisiasi nah inisiasi dilakukan ketemu antara dua belah pihak yang ingin
mengembangkan software tersebut terus mereka melakukan requirement gahering setelah
requirement gathering mereka melakukan analisa setelah analisa masuk ke tahap desain baik
dari sisi arsitektur dan sistem desainnya. Baru masuk ke tahap development pengembangan
utama dari software tersebut. Setelah tadi yang saya bilang development itu dilanjutkan
dilanjutkan dengan integrasi dan testing. Baru setelah testing tersebut dilakukan deployment
atau go live nah setelah go live semuanya nanti di software development life cycle itu
dilakukan operation dan maintenance. Jadi setelah operation dan maintenance tersebut kalau
ada update-update lagi nanti akan terjadi kick off atau inisiasi lagi nah life cycle nya begitu
terus berputar terus seperti itu sampai software yang dibuat itu benar-benar bagus dan sesuai
dengan requirement bisnis dari user.
Waterfall Model
model-model yang ada di software development. Yang pertama yang ingin saya bahas adalah
waterfall model. Untuk waterfall model biasanya itu yang pertama yang stage yang dilakukan
itu adalah requirement analysis,system design, implementation, testing, deployment hingga
maintenance. Yang pertama itu requirement itu dikumpulkan dalam satu dokumen
specification. Jadi semua dikumpulkan dulu di awal untuk waterfall diawal dikumpulkan
semuanya apa aja spesifikasi tentang kebutuhan user untuk software yang mau dibuat itu
semua ditulis di situ. Terus masuk ke tahap berikutnya nah untuk pindah ke stage berikutnya
ini itu harus benar-benarselesai untuk waterfall model ini jadi ketika requirement itu udah
benar-benar selesai baru pindah ke sistem desain nah di sistem desain itu, itu berisi
spesifikasi requirement untuk sistem, untuk hardware atau semua yang dibutuhkan untuk
membangun proyek yang sedang dikembangkan. Setelah semua di sistem desain itu selesai
udah dapet nih semuanya itu spesifikasinya, requirment nya udah jelas semua baru masuk
tahap implementasi nah fase ini di stage ini adalah pengembangan untuk aplikasi Jadi seperti
biasa untuk pengembangan dipisah per unit atau modul baru nanti masuk ke testing di testing
itu dilakukan integrasi untuk unit-unit yang sudah dibuat baru dilakukan testing kalau sudah
selesai di testing baru bisa pindah ke deployment. Nah di deployment ini aplikasi akan
diimplementasikan ke production dan bisa diakses oleh enduser terus setelah deployment itu
udah benar-benar selesai itu baru bisa pindah ke maintenance nah kalau kita lihat di grafik
untuk waterfall ini untuk bisa masuk ke stage berikutnya itu ingat ya harus benar-benar
selesai di state sebelumnya. Kalau tidak bisa selesai kita tidak bisa pindah ke stage
berikutnya. Itu kunci utama dari model waterfall ini. Nah kelebihan dari waterfall ini apa?
Kelebihannya adalah yang pertama itu simpel dan mudah digunakan juga ini sangat mudah
banget dimengerti baik itu dari mahasiswa yang baru lulus atau dari SMK juga untuk
mengerti waterfall ini atau orang awam juga itu gampang banget ngerti tentang waterfall ini.
Karena suatu proses harus benarbenar selesai baru bisa pindah ke proses berikutnya. Terus
mudah untuk dilakukan manajemen, kenapa? Karena setiap fasenya memiliki proses review.
Nah inget lagi enggak boleh pindah ke fase berikutnya kalau belum benar-benar selesai.
Terus setiap fasenya ini kelebihannya itu diselesaikan dalam satu waktu jadi enggak ada
berantakan harus ngerjain fase yang lainnya dulu gitu. Nah terus stage-stage yang adanya itu
itu pasti di waterfall ini requirement nya juga yang juga lebih mudah dipahami dan
dimengerti tapi ada kekurangannya untuk waterfall ini. Waterfall ini kekurangan yang
pertama adalah dia tidak bagus untuk long project. Jadi kalau project yang ingin kita buat itu
1 tahun dan sebenarnya software itu bisa di selesaikan dalam waktu 1, 6 bulan ataupun 3
bulan dengan model yang lain itu enggak bagus. Jadi enggak bagus untuk long time project
waterfall ini terus untuk proyek yang kompleks juga yang kompleksitasnya rumit banget ini
enggak bagus untuk menggunakan waterfall ini. Terus tidak bagus juga untuk project yang
memiliki requirement yang berubah-rubah karena biasanya klien itu ketika di tengah jalan
maunya berubah-rubah saya harusnya fitur ini fitur a harusnya punya fitur b, fitur c, fitur d ini
enggak bisa kalau di waterfall itu kan merusak proses development yang ada. Nah berikutnya
adalah saat proyek berada di fase testing itu sangat sulit untuk merubah apa yang sudah
dibuat. Nah jadi ketika udah testing tuh udah udah enggak bisa ngapa-ngapain itu mau
dirubah gimanapun Kita udah sampai sejauh ini mau gimana nih di rubah pasti bakal hancur
pasti bakal gagal software yang kita kembangkan dan yang terakhir adalah tidak bagus untuk
object oriented programming itu kekurangan untuk waterfall ini. Terus oke udah tahu nih
kelebihan sama kekurangan waterfall terus kapan kita menggunakan waterfall ini? Oke kita
menggunakan waterfall apabila yang pertama requirement nya sudah fix udah enggak akan
berubah-rubah lagi project yang singkat, itu bisa menggunakan waterfall product definition
yang stable terus teknologi yang digunakan untuk proyek tersebut dimengerti dengan baik.
Karena kalau kita enggak mengerti stek dari project yang akan kita kembangkan itu ya
percuma kan apa menggunakan waktu yang lebih lama untuk mengembangkan project
dengan waterfall model ini. Terus enggak boleh ada requirement yang ambigu sama sekali di
waterfall enggak boleh itu karena akan merusak proses development di tengah jalan nantinya.
Nah itu tentang software development models dengan waterfall.
V Model
Model berikutnya adalah V model, V model ini merupakan extension dari waterfall model
yang sudah saya bahas di section sebelumnya. Tapi ada hal yang paling penting di V model
ini yaitu adanya verifikasi dan validasi Tetep stage yang ada di dalam V model ini yang
pertama itu requirement analysis, yang kedua itu system design terus arsitektur desain, modul
desain, dan coding. Nah tetapi nanti akan ada 2 seperti yang bisa lihat di grafik ini. Jadi di
grafik gitu kalau kita lihat di bagian kiri itu ada verifikasi, yang di sebelah kanan itu ada
validasi seperti acception testing, system testing, integration testing dan unit testing.
Konsepnya sama seperti waterfall cuman ada verifikasi dan validasi. Kelebihan dari V model
ini dibandingkan dengan model-model yang lainnya adalah yang pertama V model ini sangat
fleksibel terus yang kedua aktivitas seperti planning, test, test design itu dilakukan sebelum
coding sehingga itu lebih menghemat waktu dan itu lebih better dari model yang sebelumnya
saya bahasa itu model waterfall. Terus V model ini juga sangat mudah dimengerti untuk
orang yang baru terjun di software development. Terus kelebihan yang terakhir adalah V
model ini sangat bagus untuk proyek-proyek Kecil. Nah kekurangannya apa kekurangannya
ini hampir sama juga dengan waterfall model jika terjadi perubahan di tengah development,
tes dokumen dan require dokumennya itu harus di update. Jadi mau enggak mau nih ketika
terjadi perubahan itu ya benar-benar harus di update semuanya tapi bedanya kalau di
waterfall seperti yang kita tahu kalau udah mentok di testing mau berubah mau kembali ke
fase stage berikutnya itu kan susah enggak akan bisa melanjutkan project nya. Terus
kekurangan lainnya dari V model ini software yang dibuat pada saat fase coding atau
implementasi. Itu jadinya itu enggak ada early prototype karena biasanya ada klien yang
membutuhkan prototype ya mungkin mereka buat ditunjukkan kepada CEO nya mereka CTO
nya mereka ataupun orang-orang yang berkepentingan terhadap project tersebut. Itu
minusnya enggak ada early prototype jadi enggak ada hasil yang sudah ada di muka lah gitu.
Nah kapan kita harus menggunakan V model ini? Sebenarnya simple aja kalau ingin
menggunakan V model ini itu saat requirement dari project yang small to medium lah itu
benar-benar sudah fix itu baru kita bisa menggunakan V model ini kalau semua requirement
udah oke kita pakai aja V model gapapa dan project nya enggak terlalu besar juga gitu. Terus
cost kita harus biasa benar-benar memastikan high confidence lah ke customer nya bahwa
tidak ada prototype yang dihasilkan selama proses development. Jadi kalau klien nya oke ga
ada prototype, ga ada contoh-contoh software yang akan kita gunakan apa nanti ketika tahap
development mereka oke ya udah gapapa kita pakai aja V model ini toh ini mudah dimengerti
lebih cepat juga dan bagus buat aplikasi yang kecil sampai medium.
Incremental Model
incremental model. Jadi model ini biasanya itu digunakan di saat requirement yang udah ada
itu itu wall understood jadi udah benar-benar dimengerti baik itu dari sisi solution arsiteknya
baik itu dari sisi kliennya baik itu dari sisi kita sebagai developer gitu. Terus ada kebutuhan
untuk ngedeliver modul ya multiple modul jadi misal ada beberapa fitur yang ingin
dikembangkan tetapi secara bersamaan. Kalau kita lihat di model-model berikutnya itu kita
hanya fokus aja kesatu modul baru bisa lanjutkan modul lainnya. Incremental model ini itu
bagus jadi kita bisa set multiple dari delivery jadi mau berapa mau modul bisa kita set.
Biasanya stage yang dilakukan itu stage yang pertama itu communication. Setelah
communication itu masuk ke stage planning dari planing nanti akan terjadi modeling, terus
terjadi stage contraction baru masuk ke deployment. Nah ketika di fase planning tadi kalau
kita ingat setelah fase communication ada namanya fase planning baru itu bisa dikembangkan
modul yang lainnya jadi secara bersamaan secara paralel itu bisa dibuat bisa dimulai
komunikasi komunikasi tentang modul berikutnya apa nih oke komunikasi dimulai planning
dilakukan modeling juga dilakukan construction dilakukan deployment juga dilakukan terus
ketika masuk ke tahap planning dari modul yang kedua tadi itu komunikasi juga sudah mulai
bisa dilakukan jadi secara berkelanjutan atau nested gitu. Jadi setelah communication,
planning, modeling, construction sampai deployment nah itu bisa sambil berjalan
modulmodul yang lainnya itu dikembangkan. Ini sangat bagus sekali untuk kita achieve
banyak modul dalam satu project kelebihan-kelebihannya dari incremental model ini yang
pertama menghasilkan prototype dari software lebih cepat karna prototype sudah dibuat lebih
awal. Kalau V model sama waterfall model yang saya jelaskan sebelumnya itu belum ada
prototype di awal. Baru bisa dicoba di akhir terus incremental model ini modul itu fleksibel
bisa dikembangkan kapan aja gitu. Tergantung kita kebutuhannya gimana terus biasanya ini
yang disenangi sama orang-orang lebih murah untuk biaya delivery softwarenya. Biasanya
untuk model ini murah banget lah gitu terus management risk dari incremental model ini
lebih gampang juga karna kita tadi pengerjaannya secara paralel untuk manajemen risknya
untuk organize semuanya itu lebih gampang jadinya tapi ada kekurangannya kekurangan
yang untuk incremental model ini itu harus ada planning dan desain yang baik, karena kalau
enggak ada planning dan desain yang baik kita mengembangkan banyak modul tadi.
Modulnya banyak nih banyak banget dah 4 5 6 modul kalau itu enggak di planning dengan
baik itu bisa hancur. Berikutnya adalah membutuhkan clear and complete definition untuk
seluruh project sebelum dibuat. Terus cost nya untuk yang incremental model ini dia lebih
mahal dibandingkan dengan waterfall. Karna ya tadi ada beberapa modul yang dikembangkan
secara bersamaan gitu. Kapan kita bisa menggunakan incremental model ini? Kita bisa
menggunakan model ini saat requirement dari sistem sudah clear dan dimengerti dengan baik
terus mayor requirement-requirement nya requirement yang paling besar yang paling
dibutuhkan harus sudah pasti walaupun beberapa details dari sistem yang dikembangkan
dapat berubah sewaktu-waktu. Its oke di incremental model ini terus kita bisa menggunakan
new teknologi juga enggak papa pakai aja teknologi baru dari hasil riset kita, hasil eksplorasi
kita di model ini. Its oke. Terus resource dengan skill set yang dibutuhkan itu enggak tersedia
misalnya wah ini belum ada nih yang bisa pakai golang atau yang bisa pakai python enggak
papalah gitu kita pakai incremental model dulu gitu untuk menutupi ini bisa pakai bahasa
pemrograman lain dulu gitu terus high risk feature dan high risk terhadap golnya nah itu saat
kita menggunakan incremental model ini.
Iterative Model
Iterative model ini biasanya itu enggak harus dimulai dengan full specification recruitment.
Terus development untuk iterative ini menggunakan model itu, itu dapat dimulai dari bagian
kecil dari software yang kita kembangkan. Karna proses pengembangan ini dapat terjadi
berulang kali jadi ada banyak versi nanti di iterative ini. Berulang kali untuk menghasilkan
versi baru dari software yang kita kembangkan tersebut, contoh untuk iterative pakai contoh
apa ya? Mobil gimana bisa jadi sebuah mobil? Coba bayangkan gimana bisa jadi mobil. Pasti
kita harus mikirin dulu gimana cara untuk berkendara dulu agar bisa mobil itu berlari dulu
engga harus langsung bikin mobil bisa kita mulai bangun sekuter. Sekuter misalnya dari
sekuter ya udah kita melakukan requirement dulu cari requirement apa aja kita planning, kita
desain kita bikin sekuternya setelah sekuternya jadi kita bisa masuk ke tahap berikutnya. Kita
bisa bikin sepeda karena kita udah tahu cara sekuter itu berjalan sepeda. Sepeda ini kita bikin
lagi nih mulai dari requirementnya, analisanya dan lain sebagainya. Kita bikin desainnya juga
kita bikin ngedevelop sepedanya udah, udah jadi sepeda. Baru setelah jadi sepeda gimana
biar lebih bagus lagi kita bikinlah motor. Nah dari motor ini tetap dilakukan yang namanya
requirement analisis tetap dengan lakukan yang namanya planning, development sampai go
live tadi. Setelah motornya jadi baru kita bisa pikirkan nih pengembangan yang lebih bagus
untuk berikutnya. Kita bisa bikin mobil nah itu untuk iterative jadi mulai dari hal yang kecil
dulu itu bisa dilakukan secara bertahap untuk memproduksi software yang lebih besar atau
lebih baik. Kalau kalian lihat diagramnya berikut di diagram tersebut kalian bisa lihat simple
nya adalah di diagram yang O itu ada desain nol terus ada implement nol terus analisis nol itu
yang pertama. Diagram selanjutnya itu ada desain 1, implements 1, analisis 1 begitu
seterusnya sampai design n, implement n atau analisis n. Itu tetap terjadi berulang-ulang
iterative. Itulah namanya iterative model sampai kita mendapatkan software yang lebih baik.
Kelebihan utama dari iterative model ini kita bisa membuat high level design dari sebuah
aplikasi yang kita buat sebelum benar-benar kita membangun product dan menentukan design
solution dari software yang kita buat. Terus kita bisa menemukan kecacatan dari sebuah
software yang kita kembangkan lebih awal. Kita bisa meminimalisir cacat yang ada di mobil
karena kita udah bisa menemukan cacatnya di motor. Sistem kerjanya pasti sama nanti
kedepannya mobil itu merupakan improvement dari motor tersebut. Nah banyak waktu dan
desain juga untuk desain dan sedikit waktu untuk dokumentasi ini jeleknya iterative. Karna
kita fokusnya desain, kita bikin bikin bikin bikin bikin terus aja bikin. Kita bisa menggunakan
resuable user feedback ketika bikin sekuter kita bisa dapat feedback dari user ketika kita bikin
sepeda tadi kita tetap dapat feedback nya, ketika kita bikin motor kita dapat feedbacknya lagi
nah itu bisa resuable terus sampai benar-benar softwarenya bagus. Tapi ada kekurangannya,
kekurangannya untuk mengembangkan iterative model ini untuk jangka panjang itu mahal
banget jadi costly banget gitu. Enggak bagus untuk ya company yang memiliki cost yang
minim gitu. Terus banyak resource yang dibutuhkan jadi resource untuk iterative model ini
harus benar-benar banyak dan ini enggak bagus untuk semua project karena ini jangka
panjang dan untuk proyek yang lebih besar. Terus untuk manajemennya itu benar-benar
dibutuhkan manajemen attention karena kalau rusak dari awal cacat dari awal aplikasinya di
skuter tadi mobil yang kita bikin juga di masa depan itu akan cacat juga. Kapan
menggunakan iterative model ini? Ya digunakan kalau projectnya high scale benar-benar
proyek yang besar terus ketika requirement of complete sistem itu clearly defined dan Kita
benar-benar udah mengerti tentang kompleksitas dari Project itu seperti apa. Terus mayor
requirement harus ditentukan dari awal walaupun di depan nanti itu bisa berubah-rubah fokus
kepada mayor requirement nya dulu. Nah itu tentang iterative model semoga kalian enggak
pusing ni kayaknya makin ke sini makin berat ni pembahasan kayaknya gitu yaudah itu
iterative model.
RAD Model
RAD model ini adalah salah satu model yang biasa digunakan untuk project yang singkat.
Fokus utama dari RAD model ini adalah komunikasi mainten di model ini ini benar-benar
harus komunikasi antara kedua belah pihak. Developer dan customer itu harus benar-benar
komitmen karena akan ada Rapid Fire Activity aktivitasnya akan banyak banget rapid
application development ini. Terus bagusnya lagi untuk RAD ini dapat memberikan preview
ke end user dan bisa memberikan feedback secara langsung terus komponen atau function
yang dikembangkan itu bisa secara paralel ini hampir mirip juga dengan incremental model
gitu. Tetapi stage yang ada untuk di RAD model ini biasanya itu yang berjalan secara paralel
itu dari bisnis modelingnya, data modeling, proses modeling, application generation yang
terakhir adalah testing dan turn over. Itu bisa dilakukan secara paralel itu bagusnya untuk
rapid application development ini jadi cocok banget untuk short project, kelebihan utamanya
dari RAD model ini development time itu itu bisa diminimalisir jadi bisa di reduce enggak
harus membutuhkan waktu yang lebih banyak. Terus meningkatkan reusability untuk sebuah
komponen atau modul yang ada di dalam aplikasi yang kita kembangkan. Terus ini
mendorong customer untuk memberikan feedback terus-menerus kepada software atau
kepada developer yang sedang mengembangkan software yang ada gitu. Jadi customer harus
benar-benar kasih feedback yang bagus itu untuk kelancaran project ini. Terus integrasi yang
dilakukan itu sejak awal dari setiap modul-modul unit-unit yang dikembangkan integrasi
dilakukan dari awal. Tapi kekurangannya adalah untuk RAD model ini dia sangat bergantung
pada tim dan individual performance untuk melakukan identifikasi pada bisnis requirement
jadi kalau salah satu orang yang bertanggung jawab untuk melakukan identifikasi kepada
bisnis requirement itu enggak bekerja dengan baik itu kemungkinan bisa membuat project
tersebut gagal. Terus hanya sistem yang bisa modular yang dapat menggunakan model ini
kalau enggak bisa modular kalau cuman satu aja ya udah kita enggak bisa menggunakan
RAD model ini. Terus ini sih kelemahan paling enggak enaknya dari RAD model itu benar-
benar harus membutuhkan developer yang jago. Jadi kalau developer nya enggak pernah
belajar gua nggak benar-benar mengerti tentang proyek yang akan dikembangkan jangan
harap untuk proyek yang dikerjakan itu berjalan dengan lancar. Itu kelemahannya. Kapan
menggunakan RAD model ini? Kalau saya bilang sih kita bisa menggunakan RAD model ini
bagus untuk software yang ingin dikembangkan dalam waktu yang singkat baik itu 1 2 atau 3
bulan itu bisa menggunakan RAD model ini. Terus resource dengan high bisnis knowledge
tersedia dan ada kebutuhan software dapat dikembangkan dalam waktu yang lebih singkat
seperti yang saya bilang di poin pertama tadi ingat ya kalau mau pakai RAD model harus cari
developer yang bener-bener jago terhadap proyek tersebut yang punya pengalaman.
Spiral Model
Model spiral ini itu selalu dimulai dengan desain goal dan selalu diakhiri dengan client
review. Ada 4 hal yang paling penting di spiral model ini. Yang pertama adalah
identification, yang ke-2 adalah desain, yang ke-3 adalah development atau build atau kita
juga bisa nyebutnya construction nah gitu. Terus yang terakhir adalah evaluation dan risk
analysis. Software yang dikembangkan dalam spiral model ini nanti bentuknya itu
inkremental rilis. Jadi ada series of release, ingat spiral yang pertama ketika identification
misal nih kita udah dapat bisnis requirement entar ke identification lanjut ke yang ke-2 di fase
desain baru dibuat di sana desain itu arsitektur desain. Terus di development itu kita bisa
membuat dulu proof of concept dari sebuah aplikasi nanti masuk ke stage berikutnya masuk
ke management risk. Nah setelah masuk ke fase ke-4 tersebut ke terakhir di fase evaluation
dan risk analysis nanti muter lagi tuh masuk ke fase identifikasi lagi lanjut ke fase desain
lanjut ke fase development mutar lagi ke fase evaluation dan risk analysis begitu seterusnya
mutar makanya dinamakan spiral. Kelebihan utama dari spiral model ini jadi untuk update
dan penambahan fungsi itu bisa dilakukan di akhir setiap stage. Setelah kita berada di akhir
stage nanti kan berputar lagi itu mulai lagi di identification di hal-hal baru jadi untuk ada
penambahan fungsi pun its oke kita tetap bisa menambahkan fungsi tersebut ke aplikasi yang
kita kembangkan. Terus estimasi costnya itu lebih mudah dan cepatini untuk seorang manajer
enak nih bisa lebih cepat dan lebih mudah untuk manajemennya. Terus development untuk
spiral model ini itu memakan waktu yang lebih cepat juga. Terus ya dari space untuk
customer feedback ketika user nya butuh feedback dia bisa melakukannya kapan aja di spiral
model ini. Nah kekurangannya adalah besar kemungkinan biasanya perusahaan yang
menggunakan spiral model ini itu tidak sesuai dengan schedule dan budget development.
Kadang minim kadang bengkak selalu terjadi di spiral model ini. Terus ini nggak cocok
untuk proyek yang kecil. Kalau kecil ya udahlah ya kita pilih yang model-model yang
sebelumnya aja. Terus untuk biaya itu pasti akan bengkak untuk yang proyek-proyek yang
kecil ini. Makanya nggak bagus. Terus kekurangannya kesuksesan dari proyek ini itu
bergantung pada stage yang terakhir. Jadi kalau stage yang ke-4 tadi yang di evaluation dan
risk analysis di stage tersebut nggak bagus karna akan berlanjut ke stage identifikasi
lagi.Kalau di situ nggak bagus itu bisa m enghancurkan proses developmentnya. Kelebihan
dan kekurangan dari spiral model sudah kita bahas tadi sekarang kapan sih kita bisa
menggunakan spiral model ini? Saran saya waktu untuk menggunakan spiral model ini yang
pertama ketika cost dan risk evaluation itu benar-benar sangat penting untuk development
nya. Kita tahu nih cost ini penting banget nih kalau sampai jelek untuk risk evaluationnya,
cost planningnya itu enggak bagus itu enggak bagus untuk spiral model ini. Terus ini juga
bagus untuk medium to high risk project dan kompleks requirements nya itu lebih kompleks.
Spiral model ini juga bagus untuk pengembangan new produk jadi ketika kalian punya
perusahaan atau sedang bekerja dengan perusahaan ingin mengembangkan new produk lain
itu bagus menggunakan spiral model ini. Terus yang terakhir adalah kapan kita menggunakan
spiral model itu ketika ada significances. Jadi kalau ada perubahan yang banyak gitu yang
terjadi dalam pengembangan software kita dan kita harus melakukan riset dan eksplorasi Kita
bisa menggunakan spiral model ini.
Agile Model
Ada software development moduls yang disebut agile. Mungkin istilah-istilah yang tadi itu
yang mungkin dari perkantoran dari kantor kalian itu dapatnya dari sini agile agile agile gitu.
Agile model ini sebenarnya untuk fase yang ada di dalam itu simpel aja sebenarnya. Misal
ada planning, requirement analysis, ada desain, ada building dan testing tapi di agile ini ada
hal yang lebih membuat saya tertarik ada yang namanya iterasi di agile ini. Tapi sebelum
masuk ke hal-hal tersebut biasanya untuk software yang dikembangkan secara agile ini
modelnya itu hampir mirip juga dengan incremental dan cycle nya itu terjadi bisa terus-
menerus jadi akan ada interaksi terus menerus. Biasanya untuk agile ini bagus untuk
individual interaction terus bagus juga untuk customer collaboration terus untuk perubahan-
perubahan yang ada itu itu bagus perubahan-perubahan yang cepat itu bagus menggunakan
agile ini. Fasenya tadi yang saya udah bilang dari planning sampai testing jadi ketika kita
ingin membuat beberapa modul. Beberapa modul jadi kita mau bikin aplikasi e-learning tadi
saya mau bikin modul registrasi, saya mau bikin modul login, saya mau bikin modul kursus
tetapi secara bersamaan dan itu bisa dilakukan dengan model agile ini. Bagusnya adalah
ketika kita melakukan planning di setiap modul tersebut melakukan requirement analysis
sampai ke tahap desain terus kita buat sampai testing kalau itu enggak bagus dan enggak
benar-benar fit sesuai dengan perencanaan yang kita lakukan kita lakukan iterasi. Biasanya
ada sprint di dalam sini di dalam agile ini ada sprint kita kelarkan project ini selama 3 minggu
gitu Oke kelar udah diputar lagi kalau belum selesai selalu ada iterasi itu namanya agile. Jadi
kalau belum kelar masih ada iterasi ada customer feedback, ada user feedback itu terus
menerus terjadi. Kelebihan dari agile model ini itu sangat fleksibel buat developer dan mudah
digunakan Terus fungsi-fungsi yang ada itu dapat dikembangkan secara rapid terus bagus
juga untuk team work. Jadi untuk kolaborasi agile ini sebenarnya sangat powerfull makanya
agile ini banyak digunakan di startup-startup atau perusahaan-perusahaan yang berkembang
saat ini. Terus banyak yang bilang agile ini the realistic approach to software development
katanya si seperti itu. Kalau ada perubahan-perubahan yang agak telat ya its oke di agile
karena perubahan itu kita open masuk nanti kita masukkan ke fase-fase pengembangannya
kalau enggak sesuai tetap akan terjadi interasi terus kekurangan, kekurangan dari agile ini itu
bergantung banget pada customer iteration. Jadi kalau iterasinya enggak bagus dari customer
feedback nya enggak enggak sesuai, enggak benar, pokonya enggak bagus aja itu akan
mengakibatkan software nya nggak bagus juga nanti. Jadi kalau software nya salah tim yang
mengembangkan software tersebut kemungkinan juga akan salah kita itu di agile. Terus ini
membutuhkan high individual depedency karena tidak banyak dokumentasi yang dihasilkan.
Untuk model ini terus transfer knowledgenya juga kadang susah karena biasanya di agile ini
kebanyakan iterasi iterasi iterasi kadang dokumentasi sering di lupakan di agile. Kapan
menggunakan model ini? Model ini bisa kita gunakan ketika software yang dikembangkan
membutuhkan perubahan baru update dapat diimplementasikan dengan cost yang lebih
murah. Terus untuk implementasi fitur baru developer hanya akan kehilangan pekerjaannya
ya beberapa hari lah atau mungkin beberapa jam untuk melakukan role back dan
implementasi terhadap perubahan-perubahan yang ada.Jadi enggak butuh waktu banyak juga
terus kalau kalian punya limited planning kalian juga bisa menggunakan agile model ini.
Karena pasti akan ada perubahan nah kalian tertarik enggak pakai agile model ni
dibandingkan model-model yang lain saya sih kalau untuk untuk startup atau yang ingin
belajar tentang agile model ini penerapannya di software indusrty ini bagus.
Prototype Model
prototype model ini basic idea dari prototype ini sebenarnya itu mengutamakan prototype
untuk lebih mengerti tentang requirement dari software yang dikembangkan itu. Jadi biar user
biar developer dan biar seluruh stakeholder yang ada di dalam software development ini lebih
tau tentang project yang dikembangkan harus dibuat prototype terlebih dahulu karna
prototype itu ya sampel lah gitu contoh. Terus prototype biasa dikembangkan sesuai dengan
requirement-requirement simpel yang ada dengan adanya prototype seperti yang saya bilang
tadi klien dapat lebih merasakan bagaimana software yang dibuat itu bekerja dan
menghasilkan software yang lebih baik karna nanti pasti ada feedback-feedback lagi udah liat
nih dari awal oh gini contohnya. Saya mau seperti ini perubahannya seperti ini ditambahkan a
ditambahkan b gitu. Tujuannya inti dari prototype ini adalah menghasilkan fungsional sistem
sesuai dengan kebutuhan user fungsi-fungsi yang ada yang biasa dibutuhkan itu akan
dihasilkan lewat model ini. Biasanya stage yang ada itu kita mulai dari biasa requirement
gathering ingat ya requirement gathering kita akan fokus dibahas di minggu ke-3 nanti. Terus
setelah requirement gathering masuk ke quick design, setelah desain kita bangun nih
prototype nya baru setelah prototype dibangun masuk ke customer evaluation setelah
customer evaluation kita bisa refining prototype kalau prototype yang enggak sesuai atau
nggak oke desain ulang desain ulang dong ganti-ganti kita balik lagi ke quick design tadi baru
putar ke building prototype balik lagi ke customer evaluation sampai itu benar-benar oke baru
kita masuk ke engineering the product kita bikin yg product yang benar-benar jadi. Setelah
prototype nya sudah oke terus kelebihan utama dari prototype model ini adalah yang pertama
itu user aktif berkontribusi terhadap pengembangan softwarenya karna dengan metodologi ini
itu dapat menghasilkan prototype user dapat lebih mengerti sistem yang sedang
dikembangkan itu seperti apa terus error dapat ditemukan lebih awal. Yang berikutnya adalah
user feedback yang lebih cepat dapat menghasilkan solusi yang lebih baik. Yang terakhir
kelebihannya adalah missing functionality dari software yang kita kembangkan itu dapat
ditemukan lebih mudah dan lebih wall. Tapi pasti ada kelebihan dan kekurangan kan seperti
model-model yang lainnya. Biasanya kekurangan dari model ini metodologi ini dapat
menghasilkan software yang lebih kompleks karena scope of project nya memungkinkan
untuk di ekspan dan jauh dari ekspektasi kita di awal. Lalu user biasanya bisa bingung ni
yang mana aplikasi yang mana prototype. Ini prototype mana aplikasi yang jadi mana gitu
jadi kadang bingung biasanya ada user yang seperti itu. Terus effort yang dilakukan untuk
membuat prototype bisa jadi terlalu berlebihan jika tidak di monitor dengan baik. Karena tadi
terlalu fokus bangun prototype produk yang aslinya sampai terbengkalai. Kapan kita bisa
menggunakan prototype model ini? Yang pertama itu saat software yang dibuat itu
membutuhkan banyak sekali interaksi dengan user. Terus biasanya online software atau web
itu membutuhkan banyak interaksi dengan user. Jadi untuk menggunakan prototype model ini
untuk pengembangan online software dan web itu sangat cocok gitu untuk prototype terus
yang terakhir kapan kita harus menggunakan model ini adalah ketika end user akan selalu
menguji softwarenya dan memberikan feedback pada prototype yang dibuat untuk
menghasilkan usable system. Intinya harus kolaborasi di prototype model ini. Udah kita
bahas semua tuh beberapa model-modelnya saya sudah ada di penghujung model yang
prototype ini ini udah habis saya simpan dulu di dapur sampai ketemu di section berikutnya.
4. Security
software security ini sebenarnya ini non functional requirement dari sebuah server sistem.
Biasanya tuh jarang sekali orang-orang yang memikirkan tentang software security ini,
Kenapa? Karena banyak klien atau banyak orang-orang yang ingin aplikasinya serba jadi
saja gitu jadi eh developer saya mau aplikasi saya dibikin dalam 2 minggu semua kelar
gitu. Nah seorang bisnis dia enggak mikirin gitu kalau software tersebut harus dibangun
security nya seperti apa. Kalau kaya gitu dibangun 2 minggu saja sudah kelar tanpa kita
memperhatikan security ke depannya pasti akan banyak kasus-kasus seperti data leak jadi
privacy-privacy user nya ke publish semua di internet itu karena software security nya
yang kurang bagus ketika proses pengembangannya. Nah di software security ini
sebenarnya minus nya kenapa orang-orang itu tidak suka karena ini meningkatkan
maintenance cost nya. karna security itu ada hal yang wajib sebenarnya di dalam software
di dalam kehidupan kita juga keamanan itu kita perlukan. Kalau di software itu per detik
per jam ya per hari ya kapan pun itu kita pasti butuh yang namanya software security ini
karena seperti kita tahu banyak sekali hacker-hacker yang berada di luar sana begitu
blackhead, greyhead mereka iseng-iseng buat ngutak-ngatik software kita gitu. Karena
kita nggak mikirin tersebut, hal tersebut keamanan sistem kita terganggu ya banyak sekali
data leak gitu. Terus biasanya juga ada yang namanya sistem down time terus loss of
productivity ini sering sekali terjadi. Kalau kita tidak mengimplementasikan software
security kepada aplikasi yang kita kembangkan itu. Terus faktor-faktor yang ada ketika
ingin mengembangkan information system security ini biasa seperti distributed system
terus penggunaan internet sebagai solusi dari aplikasi yang kita gunakan terus the use of
third party web service ini adalah hal-hal yang perlu diperhatikan juga gitu. Contoh ketika
kita menggunakan third party kita ingin integrasi aplikasi kita dengan Facebook misalnya,
dengan Google. Ketika kita melakukan integrasi tersebut itu kita perlu memikirkan juga
keamanan dari sistem kita data user kita bagaimana apakah integrasi tersebut ada
perlindungan datanya ataukah ada bug-bug yang ada di dalam proses integrasi software
tersebut. Nah biasanya kalau di security itu itu ada namanya integrated arsitektur
framework. Nah di integrated arsitektur framework ini nanti saya akan berikan dokumen
lengkapnya berupa pdf yang bisa kalian download di menu handout itu bisa kalian
dapatkan grafik yang sangat kompleks bisa IX405 kalian baca dari situ. Terus contoh
utamanya contoh ni untuk kita mengembangkan sebuah komponen yang tadi
komponennya tentang komponen user di dalam user itu ada namanya user access
management. Kan kita taunya ya udah bikin aja gitu komponen user yang penting bisa log
in yang penting bisa registrasi gitu. Biasanya kalau untuk software security itu kita perlu
yang namanya bikin kaya privileges managementnya user password management yang
seperti apa misal menggunakan hash, menggunakan enkripsi apa kepada password kita
jadi nggak sembarang untuk bikin user register sama user log in saja. Terus perlu yang
namanya user access right management. Ini biasanya kalau untuk aplikasi yang lebih
besar lagi, misal saya pernah mengembangkan aplikasi untuk financial disitu tuh ada
beberapa user right access nya. Jadi ada mulai dari user biasa terus ada mulai dari maker
nya terus ada taker nya terus ada lagi adminnya. Itu perlu di define juga fungsi-fungsinya
security nya bagaimana agar ketika user mengakses aplikasi yang kita kembangkan tidak
sembarangan menggunakan aplikasinya dan tidak sembarangan mengakses datanya. Jadi
ketika kita mengimplementasikan software security aplikasi kita akan lebih aman.
6. Case Study
case study e-learning platform.
In this phase the teams need to know and implement the following processes with the
repective tools
1. version management, the various releases have different versions and the team
members have to know how to generate software rekeases (where all parts and
components are integrated and tested)
2. Incident Management, during the development bags, errors and missing
functionilites may be some of the main issues encountered. The team members
need to know how to retrieve or register the information related to these issues and
issue tools e.g. JIRA to manage the issues and communicate the release of fixes.
3. Risk management is a task that must be conducted constantly to prevent costs and
delays during the project execution.
4. Documentation Management this is crucial process during the development phase.
In this way their deliverables can be easily and quickly understood by those that
need to implement their result s for their next work.
5. Change management, every team member has to be involved in the change
management process. This is usually implemented at the end of the development
phase at the end of the project in the maintenance phase, but you can have also
change requests during the development process if this is allowed or recommended.
B. PROSES DEPLOYMENT
Cara mem-publish aplikasi.
C. VERSION MANAGEMENT
When you have defined your release plan, version management is your tool to track the
various releases.
Dilakukan ketika terjadi penambahan penambahan fitur tertentu pada software. Untuk
melakukan tracking terhadap perubahan perubahan tersebut, maka harus dibuat version
management. Bisa digunakan tools, seperti github.
Kendala yang terjadi pada saat Go Live : gagal login, tidak bisa enroll, tidak bisa
download video, tidak bisa akses kursus, dsb.
Maintenance
Software Maintenance Process terdiri dari :
1. Preparation
2. Request
3. Analysis
Proses Maintenance