Skip to main content

Software Engineering Life Cycle

 Hallo, pada kesempatan kali ini saya ingin membahas pembahasan yang agak berat ya, jadi pastikan di depan anda ada kopi dan anda sedang posisi santuy.




Kita mulai dari definisi Software Engineering dulu, menurut Roger Pressman dalam bukunya mendefinisikan bahwa software engineering atau rekayasa perangkat lunak adalah disiplin ilmu yang mengintegrasikan proses, metode, dan alat untuk pengembangan perangkat lunak komputer. Lalu dalam situsnya http://www.swebok.org/ menuliskan SWEBOK ( Software Engineering Body of Knowlage) menggambarkan pengetahuan secara umum tentang rekayasa perangkat lunak yang dibagi kedalam 10 area pengetahuan.

SWEBOK merupakan project yang dibuat oleh IEE, SWEBOK sendiri mempunyai panduan yang disebut Guide of SWEBOK, panduan ini dibuat untuk 5 tujuan, yaitu :

1. Untuk memperlihatkan kesamaan pandangan tentang rekayasa perangkat lunak di seluruh dunia.

2. Untuk memperjelas tempat dan menetapkan batas dari rekayasa perangkat lunak dan hubungannya dengan disiplin ilmu lain seperti ilmu komputer, manajemen proyek, teknik komputer dan matematika.

3. Untuk membuat karakter isi dari disiplin ilmu rekayasa perangkat lunak

4. Untuk memberikan pengetahuan dasar bagi pengembangan kurikulum dan sertifikasi serta perizinan.

Seperti yang telah disebutkan sebelumnya bahwa SWEBOK 2004 mempunyai 10 Knowlage Areas yaitu :

1. Software requirements

2. Software design

3. Software construction

4. Software testing

5. Software maintanance

6. Software configuration management

7. Software engineering management

8. Software engineering process

9. Software engineering tools and methods

10. Software quality




Gambar dari SWEBOK

Pada tahun 2010 mengalami perubahan dalam isinya, dan ini alasan kenapa ada perubahan :
1. Perubahan praktik, alat dan metode. Karena adanya lingkungan pekerjaan yang berubah menuntut perubahan dalam SWEBOK.
2. Menyelaraskan SWEBOK 2010 dengan CSDP (Crtified Software Developer Professional) dan Software Engineering 2004.
3. Adanya pertambahan artikel dan materi baru.

Beberapa perubahan pada SWEBOK :
1. Tambahan KA dalam Professional Practice - sama materi yang ada di CSDP
2. Tamabahan 4 KA : Engineering Economy Foundations, Computing Foundations, Mathematical Foundations, dan Engineering Foundations - sama dengan materi yang ada di SE2004.
3. Menghapus tiga disiplin ilmu yang berhubungan : Computer Science, Mathematcs, dan software ergonomics.
4. Menambahkan materi Human-Computer Interfaces dalam bagian software design and software testing.
5. Menghapus bagian software tools dari software engineering tools and methods, dan dipindahkan ke KA yang lain.
6. Merubah software engineering methods untuk fokus mempengaruhi lebih dari satu KA.
7. Mendistribusikan materi lain ke dalam KA yang lain.


Project Life Cycles

Sebuah proyek memiliki awal dan akhir dan melewati beberapa fase yang dikenal sebagai fase life cycles. Fase ini bervariasi tergantung pada industi yang terlibat tetapi semua mengikuti langkah - langkah dasar yang sama. Project Life Cycles merupakan serangkain tahapan yang dilewati oleh sebuah proyek mulai dari tahap persiapan sampai dengan closure proyek.

Project Life Cycles memiliki 4 fase, yaitu :
1. Initiation merupakan tahap pertama dalam project life cycles atau dasar dalam memulai sebuah proyek. Dengan mendefinisikan tujuan dan ruang lingkup, pembenaran untuk memulai dan solusi yang akan dilaksanakan. Fase inisiasi mencakup dalam memulai proyek, dengan mendokumentasikan kasus bisnis, studi kelayakan, kerangka acuan, menunjuk tim, dan menyiapkan office project. Selama fase ini, tim pengambilan keputusan akan mengidentifikasi apakah proyek tersebut secara realistis dapat diselesaikan.
Proyek inisiasi melibatkan 6 langkah yaitu :
Devlop a business case -> Undertake a feasibility study -> Establish the tems of reference -> Appoint a project team -> Setup a project office -> Perform phase review.

2. Planning  atau perencanaan, ketika ruang lingkup proyek telah ditetapkan dan tim proyek terbentuk, maka aktivitas proyek mulai memasuki tahap perencanaan. Pada tahap ini, dokumen perencanaan akan disusun secara terperinci sebagai panduan bagi tim proyek selama kegiatan proyek berlangsung. Tahap perencanaan memiliki 10 aktivitas penting yaiyu :
Create a project plan -> Create a resource plan -> Create a financial plan -> Create a quality plan -> Create a risk plan -> Create an acceptance plan -> Create a Communications plan -> Create a procurement plan -> Contract the suppliers -> Perform phase review.

3. Execution atau pelaksanaan, dengan definisi proyek yang jelas dan terperinci, maka aktivitas proyek siap untuk memasuki tahap eksekusi atau pelaksanaan proyek. Pada tahap ini, deliverables atau tujuan proyek secara fisik akan dibangun. Seluruh aktivitas yang terdapat dalam dokumentasi project plan akan dieksekusi. Sementara setiap deliverable sedang dibangun, suite proses manajemen yang dilakukan untuk memantau dan mengontrol kiriman menjadi output dengan proyek. Pada tahap ini manajer juga memonitor dan mengontrol kegiatan.


4. Closure atau penutupan, tahap ini merupakan tahap akhir dari aktivitas proyek. Pada tahap ini, hasil akhir proyek (deliverables projects) beserta dokumentasinya diserahkan kepada pelanggan, kontak dengan supplier diakhiri, tim proyek dibubarkan dan memberikan laporan kepada semua stakholder yang menyatakan bahwa kegiatan proyek telah selesai dilaksanakan. Langkah akhir yang perlu dilakukan pada tahap ini yaitu melakukan post implementation review untuk mengetahui tingkat keberhasilan proyek dan mencatat setiap pelajaran yang diperoleh selama kegiatan proyek berlangsung sebagai pelajaran untuk proyek - proyek dimasa yang akan mendatang.
Perform project closure -> Review project completion.


Software Development Life Cycle (SDLC)


SDLC adalah siklus hidup pengembangan sebuah sistem. Dalam rekayasa sistem dan rekayasa sebuah sistem, SDLC merupakan suatu proses pengubahan dan pembuatan sistem serta model dan metologi yang digunakan untuk mengembangkan sistem - sistem tersebut.

Lalu untuk apa SDLC ini ? Ya, tentunya untuk menghasilkan output sistem berkualitas tinggi yang sesuai dengan ekspetasi para pengguna.
Secara singkat, SDLC menurut Stackify merupakan sebuah proses yang memproduksi sebuah software dengan kualitas setinggi - tingginya tetapi dengan biaya yang serendah - rendahnya. SDLC juga memiliki beberapa tahapan termasuk planning, design, testing, building, dan deployment. Model SDLC yang terkenal meliputi waterfall model, spiral model, dan juga agile model.

Lalu cara kerja SDLC bagaimana bang ? SDLC bekerja dengan menurunkan biaya pembangunan sebuah produk atau software sambil memperbaiki kualitas dan mempersingkat waktu produksi secara serentak. 
SDLC mendapatkan sebuah tujuan dengan mengikuti panduan dari sebuah rancangan yang dibuat oleh stakeholders atau klien. Rancangan ini dimulai dari evaluasi sistem yang sudah ada demi efesiensi.
Kemudian, tim akan mendefinisikan persyaratan - persyaratan dari sistem yang baru. Setelah itu, software akan dibuat dengan beberapa tahap mulai dari identifikasi, perencanaan, rancangan, membangun produk, pengujian, pemasaran, dan pemiliharaan.
Untuk menghindari penggunaan biaya yang tralu besar, maka engineer akan meminta feedback dari end-user terhadap produknya.
Proses SDLC ini dapat mengeliminasi pekerjaan yang berulang-ulang setelah perbaikan yang sudah selesai.


Langkah penerapan Software Development Life Cycle (SDLC)

1. Identifikasi masalah
    Analisis kebutuhan dan masalah merupakan syarat paling dasar dan juga utama dalam SDLC. Dalam tahapan ini, engineer atau developer menerima semua input yang masuk termasuk dari customer, salesperson, industri, dan juga programmer.
Setelah input masuk, engineer akan mencoba mempelajari kekurangan dan kelebihan dari sistem yang sudah ada.

2. Perencanaan
    Dalam tahap ini, tim engineer akan merencanakan berbagai persyaratan dalam pembuatan software baru atau software yang sudah ada. Hal ini juga termasuk dari aspek biaya dan juga bahan-bahan yang dibutuhkan.

3. Rancangan
    Fase SDLC ini dimulai dari mengubah spesifikasi sebuah sftware ke dalam design plan yang disebut dengan desain dokumen spesifikasi (DDS).
Semua tim yang bersangkutan termasuk dengan klien akan membantu meriview dari rancangan ini dan menawarkan feedback.
Sangat penting untuk mengumpulkan semua feedback yang diberikan dalam dokumen ini. Jika ada kegagalan dalam tahap ini, akan berakibat biaya yang melonjak dan menjadi over.
Bahkan, kemungkinan terburuknya adalah dapat membuat proyek jadi gagal dan bangkrut.

4. Mengembangkan produk
    Dalam tahap ini, engineer dan tim akan membangun sebuah produk dari barisan atau bahasa pemrograman. Jika tahap sebelumnya sudah dikerjakan dengan sangat detail, mungkin sebenarnya tahap ini dapat dikatakan tahap paling sulit dan membingungkan.

5. Pengujian
    Dalam tahap pengujian, pertanyaan-pertanyaan seperti "Sudahkah kita mendapat apa yang kita mau?" akan terus berulang. Dalam pengujian, engineer dan tim harus memastikan bahwa produk yang dibuat tidak memiliki cacat dan sesuai dengan permintaan klien.

7. Memasarkan produk
    Jika pengujian sudah selesai, pemasaran produk mulai bisa dilakukan. Hal ini bukan berarti tahap SDLC sudah selesai. Berbagai feedback yang disampaikan oleh user juga harus didengarkan lagi. Bila perlu, akan ada penyesuain lagi terhadap produk.

7. Maintanance
    Dengan keadaan dan kondisi teknologi yang terus berubah, tahapan terakhir dari SDLC ini mengharuskan engineer dan tim tetap memelihara produk yang sudah selesai. Hal ini perlu dilakukan untuk meminimalisir error pada produk.


Model - Model Software Devlopment Life Cycle (SDLC)

1. Waterfall model
    Model SDLC ini dapat dikatakan merupakan model tertua dan tersingkat dalam penerapannya. Dalam model ini, setelah satu fase selesai langsung dimulai dengan fase selanjutnya. 
Setiap fase memiliki rencana kecil dan menurun ke fase berikutnya. Maka dari itu fase ini dikatakan waterfall atau air terjun karena setiap fase memiliki turunan kecil lainnya.
Namun, salah satu kekurangan dari model ini adalah jika ada satu detail kecil yang tertinggal, dapat mempengaruhi keseluruhan rencana dan berakhir berantakan.

2.  Agile model
    Model SDLC ini dapat memisahkan produk dengan proses dan waktu pengerjaannya secara cepat. Meteologi ini diyakini sangat efektif untuk keberhasilan penciptaan sebuah produk. Dalam metode ini, tim akan mencoba tiap produk yang sudah selesai untuk meminimalisir kesalahan.
Namun, salah satu kelemahan dari metode ini dapat memicu proyek ke arah yang salah dan tidak sesuai dengan kemauan dan ekspektasi dari customer.

3. Interative model
    Model SDLC ini merupakan metode yang memiliki repetisi tinggi. Developer akan menciptakan produk dengan versi cepat dan pastinya murah. 
Setelah itu, mereka akan mencoba produk dan merevisi jika ada kesalahan. Salah satu kekurangan dari metode ini adalah dapat mengkomsumsi bahan baku jika ada satu detail yang tertinggal untuk dikerjakan.

4. V-Shaped model
    Merupakan lanjutan dari waterfall model. Metode SDLC ini akan mencoba tiap fase dalam proses pengembangan suatu produk.

5. Big bang model
    Model ini merupakan model yang diklaim memiliki resiko tinggi saat dijalankan. Mengapa demikian ? Hal ini dikarenakan dalam pengerjaannya, tim akan menginvestasikan semua bahan baku ke dalam projek tersebut.
Sehingga metode ini akan berhasil jika mengerjakan proyek besar.

6. Spiral model
    Metode ini merupakan metode yang paling fleksibel dan mirip dengan iterative model. Metode ini fokus pada repetisi dalam pengerjaannya.


Minum kopi dulu gan.. 
Oke yang terakhir adalah Requirement. Apa itu requirement ?



Requirement
Jika merujuk pada makna kata, requiretment merupakan sesuatu yang dibutuhkan; sesuatu yang wajib ada; kondisi yang dibutuhkan. Tapi yang akan kita bahas adalah suatu kondisi yang harus diselesaikan untuk memastikan keberhasilan sebuah proyek (Software). Requirement ini harus menggambarkan secara jelas apa yang dibutuhkan dalam proyek.
Requirement project merupakan hal penting yang harus dilakukan sebelum proyek mulai dikerjakan (Coding). Kita ambil contoh, ada seseorang yang meminta kita untuk membuat sebuah rumah, sebagai seorang developer rumah yang sudah berpengalaman kita berasumsi bahwa rumah itu akan ditempati oleh manusia, tapi dalam kenyataannya rumah yang di inginkan adalah rumah burung (sangkar). Begitupun dalam bisnis pengembangan aplikasi, hal ini dapat terjadi ketika ada client yang tidak bisa mendefinisikan dengan jelas apa yang mereka butuhkan. Kerugian yang akan kita dapatkan apabila project sudah terlanjur dikerjakan tetapi requirement masih belum jelas yaitu waktu, tenaga yang sudah kita gunakan untuk development, uang yang sudah terpakai dan segala yang sudah kita lakukan untuk membangun proyek tersebut.


Requirement Gathering
Ada beberapa metode yang dapat kita lakukan untuk memperjelas requirement seperti apa yang dibutuhkan oleh client, antara lain :

1. Research 
    Kita bisa melakukan research berdasarkan dokumen yang sudah ada sebelumnya atau bisa juga mengacu pada proyek yang sudah ada, bisa jadi acuan untuk kita menerjemahkan apa yang client inginkan.

2. Interview
    Setelah mengumpulkan bahan untuk divalidasi ke client, kita bisa melakukan interview. Di bagian interview ini kita bisa pakai rumus ask, listen, listen, listen. Disini ditekankan untuk banyak mendengar daripada bertanya.

3. Workshop
    Workshop dapat berupa brainstorming, focus group discossion, delphi method, design sprint.

4. Survey
    Survey bisa dilakukan kepada siapapun yang punya pengetahuan tentang proyek yang akan dikerjakan. Survey tidak harus dilakukan kepada client tapi bisa kepada siapapun yang ada disekitar kita asalkan memenuhi syarat.

5. Buat dokumentasi
    Dari beberapa hal yang sudah dilakukan tadi jangan lupa untuk mendokumentasikannya, dokumentasi ini bisa dalam bentuk mindmap, flowchart, ataupun overview.

6. Validasi
     Jangan lupa untuk memvalidasi catatan yang dibuat tadi ke client atau product owner, untuk memastikan apa yang kita catat sudah sesuai.

7. Mengukur ketetapan requirement
    Salah satu yang bisa dijadikan ukuran dalam menentukan ketetapan requirement adalah metode S.M.A.R.T yang sudah di susun oleh George T. Doran yang di dalam nya terdapat :

        a. Specific
            Menekankan pentingnya menetapkan target yang spesifik; benar - benar spesifik. Hindari target yang terlalu umum atau kurang mendetail.
        b. Mesurable
            Kriteria yang digunakan untuk mengukur besarnya kemajuan yang dibuat dalam mencapai target.
        c. Assignable
            Harus jelas siapa yang akan mengerjakan.
        d. Realistic
             Target harus realistis dan dapat dicapai. Target tidak boleh dibuat terlalu mudah, tapi juga tidak boleh terlalu sulit sehingga terasa mustahil untuk dicapai.
         e. Time Based 
              Pentingnya menepatkan target dengan kerangka waktu, yaitu memberikan deadline pencapain target. Komitmen kepada deadline akan membantu tim untuk tetap fokus menjalankan pekerjaan untuk memenuhi target tepat wakyu, atau bahkan lebih cepat.

8. Peranan quality Assurance
    Lalu apa kaitannya apa yang sudah kita dipaparkan di atas dengan Quality Asurance? Salah satu peran seorang QA adalah melakukan validasi apakah aplikasi yang dikerjakan oleh engineer sudah sesuai dengan yang diinginkan oleh client atau belum. Tentunya hal ini akan dilakukan setelah development telah selesai. Namun perlu diingat bahwa QA tidak sekedar melakukan pengujian aplikasi secara bebas terus menerus tapi harus mengacu pada apa yang di inginkan client. Untuk mendukung hal itu seorang QA haruslah membuat Acceptance kiriteria dan harus mampu memikirkan seperti apa output yang akan dihasilkan nantinya.

Duh panjang juga ya saya nulis, dahlah sampe sini dulu. See you.

Sumber : satudua, tiga, empat

Comments

Popular posts from this blog

Cara melihat CCTV SPC di PC atau Laptop menggunakan SCMS

Pertama kita instal dulu software SCMS nya, biasa nya sudah ada CD yang berisikan software di dalam dus UVR/DVR, instal seperti biasa, jika sudah selesai buka software SCMS. Gambar di atas adalah tampilan awal SCMS.  Untuk password tidak usah di isi dan langsung klik login. Setelah anda klik login selanjut nya akan muncul seperti gambar di atas, disini kita klik Device Manager untuk menambahkan device baru. Gambar di atas adalah tampilan dari menu  Device Manager, untuk menambahkan device baru  kita pilih Manual Add, letak nya ada di pojok kiri bawah. Setelah kita klik Manual Add akan muncul tampilan gambar seperti di bawah ini  Isi Device name bebas terserah anda, Connect Mode ubah menjadi Cloud ID, isi Cloud ID menggunakan serial number yang ada di DVR/UVR, biasa nya berada di bagian bawah DVR, atau jika masih ada kardus nya ada di bagian atas kardus UVR, dan apabila tidak ada dua2 nya, bisa di lihat di menu network UVR/DVR tepat nya di bagian P2

Pengertian POAC, SMART dan SWOT

Assalamualaiku, pada kesempatan kali ini saya akan sedikit berbagi tentang " POAC, SMART dan SWOT ". Biasanya semua itu ada di pelajaran manajemen. Langsung aja kita bahas satu persatu. 1. Apasih manajemen itu ? Manajemen  adalah seni menyelesaikan pekerjaan melalui orang lain. Definisi Mary Parker Follet ini berarti bahwa seorang manajer bertugas mengatur dan mengarahkan orang lain untuk mencapai tujuan organisasi. Ricky W. Griffin mendefinisikan manajemen sebagai sebuah proses perencanaan, pengorganisasian, pengkoordinasian, dan pengontrolan sumber daya untuk mencapai sasaran secara efektif dan efesien. Efektif berarti bahwa tujuan dapat dicapai sesuai dengan perencanaan, sementara efisien berarti bahwa tugas yang ada dilaksanakan secara benar, terorganisir, dan sesuai dengan jadwal.Manajemen belum memiliki definisi yang luas dan diterima secara universal.  ( sumber ) 2. Apasih POAC itu ? POAC.  Adalah kepanjangan dari Planning , Organiting , Actuating dan Con

Bikin Form Login di Java (Netbeans)

Assalamu'alaikum wr wb. Pada kesempatan kali ini saya akan sedikit berbagi tutorial membuat form login di java (Netbeans). Gambar di atas adalah tampilan menu design dari form login. cukup sederhana bukan hhe Oke langsung aja masuk ke tahap pertama pembuata form login. 1. Buatlah 3 buah Label, Label ini berfungsi untuk pemberian nama seperti judul, username, dan password, cara mengubah nama di Label bisa dengan cara double klik dan ubah nama nya. Label sendiri terletak di bagian Swing Controls dan bernama Label. 2. Langkah keduan adalah dengan membuat 1 buah Text Field, disini Text Field berfungsi untuk menampung inputan user dalam memasukan username. Sama hal nya dengan Label, Text Field juga bisa di edit dengan cara double klik dan hapus semua huruf nya. Agar Text Field mudah di panggil ubah nama variable nya dengan cara klik kanan di Text Field nya lalu pilih change variable name, setelah itu edit namanya sesuai yg anda inginkan. Disini saya merubah namanya menjadi