Site blog

Halaman: () 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 39 ()
Anyone in the world
Proyek merupakan suatu tugas yang perlu dirumuskan untuk mencapai sasaran yang dinyatakan secara konkrit serta harus diselesaikan dalam suatu priode tertentu denga menggunakan tenaga manusia dan ala-alat yang terbatas dan begitu kompleks sehingga dibutuhkan pengelola dan kerja sama yang berbeda dari yang biasanya digunakan.
Kumpulan kegiatan termasuk sumber day dan waktu yang diperlukan, yang diorganisasikan dan bersifat sementara untuk mencapai tujuan yang ditetapkan.

Manajemen Proyek dilaksanakan dengan tujuan untuk optimasi penggunaan sumber daya guna mencapai tujuan yang telah ditetapkan. Untuk mencapai tujuan tersebut manajemen Proyek harus dilaksanakan dengan cara:

- Adanya koordinasi horisontal antar pelaksana yang tidak terlalu birokratis, sehingga pelaksanaan kegiatan dapat secara luwes dan cepat dilakukan antipasi bila terjadi penyimpangan.

- Adanya penanggung jawab tunggal, biasanya oleh pimpinan proyek yang berfungsi sebagai pusat informasi, integrator antar komponen yang terlibat dan sekaligus pelaksanaan koordinasi dengan pihak diluar proyek.

-Proyek dapat diuraikan menjadi rincian kegiatan yang terstruktur, dimana setiap kegiatan dapat diuraikan menjadi elemen-elemen kegiatan yang mandiri dengan sifat-sifat :
a). Dapat dikelola sebagai suatu paket kerja.
b). Beban biaya dan waktu dapat diukur.
c). Prestasi, biaya dan kualitas dapat diukur.
d). Dapat diintegrasikan menjadi suatu satuan kegiatan.
e). Dapat disusun secara hirarki berjenjang.
 
Aktivitas Manajemen
Aktivitas manajemen perangkat lunak meliputi beberapa langkah yang terstruktur seperti:
 
- Proposal Writing(Pembuatan Proposal). Pimpinan proyek harus membuat rencana pekerjaan proyek yang akan dilakukan dari persiapan awal hingga selesainya proyek tersebut. Persiapannya meliputi, tujuan dan maanfaat dijalankannya proyek,apa saja bentuk kegiatan yang dikerjakan,dan tahapan-tahapan pekerjaan.

- Project Costing (Anggaran Proyek). Budged pengeluaran dan pemasukan proyek yang akan dikerjakan perlu dibuat yang serinci mungkin.

- Project Planning and Scheduling(Penjadwalan dan Perencanaan Proyek). Perencanaan pelaksanaan proyek yang baik harusnya menggunakan jadwal yang tersusun rapi, dan penjadwalan tersebut dikonversi dengan seluruh kegiatan yang akan dikerjakan dari study kelayakan, perencanaan, sampai implementasi dan maintenance proyek.

- Project Monitoring and Review (Pemonitoran Proyek). Memonitor pelaksanaan proyek perlu dilakukan disetiap tahapan, sehingga kesalahan dan keterlambatan penyelesaian proyek dapat diketahui sedini mungkin.
 
- Personal selection and evaluation (Evaluasi dan penyeleksi Personal). Sebelum dilaksanakannya sebuah proyek, maka personal yang terlibat dalam proyek, harus diseleksi sesuai dengan keterampilan dan pengalaman yang dimilikinya.
- Report Writing and Presentation (Presentasi dan Laporan). Presentasi proposal proyek perlu dilakukan dengan menunjukkan prototype yang ada, sehinnga pihak manajemen yakin akan proyek tersebut
Associated Kursus: KI142303BKI142303B
 
Anyone in the world
Proyek merupakan suatu tugas yang perlu dirumuskan untuk mencapai sasaran yang dinyatakan secara konkrit serta harus diselesaikan dalam suatu priode tertentu denga menggunakan tenaga manusia dan ala-alat yang terbatas dan begitu kompleks sehingga dibutuhkan pengelola dan kerja sama yang berbeda dari yang biasanya digunakan.
Kumpulan kegiatan termasuk sumber day dan waktu yang diperlukan, yang diorganisasikan dan bersifat sementara untuk mencapai tujuan yang ditetapkan.

Manajemen Proyek dilaksanakan dengan tujuan untuk optimasi penggunaan sumber daya guna mencapai tujuan yang telah ditetapkan. Untuk mencapai tujuan tersebut manajemen Proyek harus dilaksanakan dengan cara:

- Adanya koordinasi horisontal antar pelaksana yang tidak terlalu birokratis, sehingga pelaksanaan kegiatan dapat secara luwes dan cepat dilakukan antipasi bila terjadi penyimpangan.

- Adanya penanggung jawab tunggal, biasanya oleh pimpinan proyek yang berfungsi sebagai pusat informasi, integrator antar komponen yang terlibat dan sekaligus pelaksanaan koordinasi dengan pihak diluar proyek.

-Proyek dapat diuraikan menjadi rincian kegiatan yang terstruktur, dimana setiap kegiatan dapat diuraikan menjadi elemen-elemen kegiatan yang mandiri dengan sifat-sifat :
a). Dapat dikelola sebagai suatu paket kerja.
b). Beban biaya dan waktu dapat diukur.
c). Prestasi, biaya dan kualitas dapat diukur.
d). Dapat diintegrasikan menjadi suatu satuan kegiatan.
e). Dapat disusun secara hirarki berjenjang.
 
Aktivitas Manajemen
Aktivitas manajemen perangkat lunak meliputi beberapa langkah yang terstruktur seperti:
 
- Proposal Writing(Pembuatan Proposal). Pimpinan proyek harus membuat rencana pekerjaan proyek yang akan dilakukan dari persiapan awal hingga selesainya proyek tersebut. Persiapannya meliputi, tujuan dan maanfaat dijalankannya proyek,apa saja bentuk kegiatan yang dikerjakan,dan tahapan-tahapan pekerjaan.

- Project Costing (Anggaran Proyek). Budged pengeluaran dan pemasukan proyek yang akan dikerjakan perlu dibuat yang serinci mungkin.

- Project Planning and Scheduling(Penjadwalan dan Perencanaan Proyek). Perencanaan pelaksanaan proyek yang baik harusnya menggunakan jadwal yang tersusun rapi, dan penjadwalan tersebut dikonversi dengan seluruh kegiatan yang akan dikerjakan dari study kelayakan, perencanaan, sampai implementasi dan maintenance proyek.

- Project Monitoring and Review (Pemonitoran Proyek). Memonitor pelaksanaan proyek perlu dilakukan disetiap tahapan, sehingga kesalahan dan keterlambatan penyelesaian proyek dapat diketahui sedini mungkin.
 
- Personal selection and evaluation (Evaluasi dan penyeleksi Personal). Sebelum dilaksanakannya sebuah proyek, maka personal yang terlibat dalam proyek, harus diseleksi sesuai dengan keterampilan dan pengalaman yang dimilikinya.
- Report Writing and Presentation (Presentasi dan Laporan). Presentasi proposal proyek perlu dilakukan dengan menunjukkan prototype yang ada, sehinnga pihak manajemen yakin akan proyek tersebut
Associated Kursus: KI142303BKI142303B
 
Anyone in the world

Proses pengembangan perangkat lunak (Software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap.

Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara lain adalah proses iteratif, extream programmingwaterfall serta agile.

Pengembangan perangkat lunak (juga disebut pengembangan aplikasi, desain perangkat lunak, merancang perangkat lunak, pengembangan aplikasi perangkat lunak,pengembangan aplikasi perusahaan, atau pengembangan platform) adalah pengembangan suatu produk perangkat lunak. Istilah “pengembangan perangkat lunak” bisa dipakai untuk menyebut aktivitas pemrograman komputer, yaitu proses menulis dan mengelola kode sumber, namun dalam artian luas istilah ini mencakup semua hal yang terlibat antara penciptaan perangkat lunak yang diinginkan melalui pewujudan akhir perangkat lunak, idealnya dalam proses yang terencana dan terstruktur. Karena itu, pengembangan perangkat lunak bisa mencakup penelitian, pengembangan baru, purwarupa, modifikasi, pemakaian kembali, rekayasa ulang, pengelolaan, atau aktivitas lain yang menghasilkan produk perangkat lunak.

Berikut penjelasan lebih detail dari model pengembangan perangkar lunak.

 

1. Linear Sequential Model

waterfall
 
Linear sequential model (atau disebut juga “classic life cycle” atau “waterfall model”) adalah metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan aktivitas :
 
1.       Rekayasa sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk seluruh elemen sistem dan kemudian memilah mana yang untuk pengembangan perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data
 
 
2.      Analisis kebutuhan perangkat lunak (Software Requirements Analysis)
Pengumpulan kebutuhan dengan fokus pada perangkat lunak, yang meliputi:
Domain informasi, fungsi yang dibutuhkan, unjuk kerja/performansi dan antarmuka. Hasilnya harus didokumentasi dan direview ke pelanggan
 
 
3.      Perancangan (Design)
Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur perangkat lunak, Prosedur detil dan Karakteristik Antarmuka. Proses desain mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan program. Desain ini harus terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat lunak.
 
 
4.      Pembuatan kode (Coding)
Penterjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman
 
 
5.      Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan. Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal dan mencari segala kemungkinan kesalahan dan memriksa apakah sesuai dengan hasil yang diinginkan.
 
 
6.      Pemeliharaan (Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan :
 
• Corrective Maintenance : Mengoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan
 
• Adaptive Maintenance : Penyesuaian dengan lingkungan baru, misalnya sistem operasi atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahanprinter driver
 
• Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
 
 
Berikut merupakan keuntungan dan kerugian penggunaan model water fall :
 
Keuntungan:
·  Terstruktur
·  Tiap tahap memiliki metode untuk menghasilkan suatu dokumen yang bisa diserahkan ke pemakai
·  Dokumen yang dihasilkan tiap tahap bisa di spesifikasikan secara jelas dan mendetail
 
Kerugian:
·  Linear, tidak ada umpan balik (feedback)
·  Sumber daya dan penjadwalan harus di perkirakan pada awal proyek
·  Tahap terisolasi, kurang terjalin transisi ke tahap berikutnya.  Akibat paling besar terasa pada tahap requirement
·  Pemakai tidak bisa melihat produk perangkat lunak sampai akhir proyek
·  Penekanan terbesar pada dokumen
 
Model waterfall ini cocok untuk produksi suatu aplikasi tunggal yang biayanya rendah dengan menggunakan:
·  Dekomposisi fungsi top-down
·  3GL konvensional untuk implementasinya
Associated Kursus: KI142303BKI142303B
 
Gambar dari ISHOM MUHAMMAD DREHEM 5116201055
by ISHOM MUHAMMAD DREHEM 5116201055 - Tuesday, 20 December 2016, 14:09
Anyone in the world
Agile Processmerupakan sekelompok aktifitas pembangunan perangkat lunak secara iteratif yang menekankan pada aktifitas konstruksi (desain dan koding). Agile Process mengeliminasi sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa mungkin mematuhi jadwal deliver sistem yang telah dijanjikan.Requirements yang dibutuhkan secara langsung di-drive oleh pelanggan itu sendiri, dan apabila terjadi perubahan terhadaprequirements tersebut, pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.

Secara mendasar, aktifitas-aktifitas umum dalam kerangka kerja agile antara lain: komunikasi dengan pelanggan, perencanaan, pemodelan, konstruksi, pengiriman (delivery), dan melakukan evaluasi. Kemudian aktifitas akan berulang, terutama untuk perencanaan deliver berikutnya. Semua aktifitas tersebut di buat seminimal mungkin, lebih memfokuskan dan konsentrasi pada konstruksi serta delivery.

Kemudian, seperti apa saja sih bentuk dari pendekatan Agile ini ? Terdapat banyak model pendekatan yang tergolong dalam Agile Process, namun tidak semua model saya bahas pada tulisan ini, saya hanya menjelaskan dua model yaitu: Extreme Programming(XP), dan Adaptive Software Development (ASD).

Extreme Programming (XP)

 
XP merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan oleh Kent Back. Menurut penjelasan dia, definisi XP adalah sebagai berikut: “Extreme Programming (XP) is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software“. Model ini cenderung menggunakan pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, danTesting. 
 
Pada saat perencanaan, dimulai dengan membuat semacam “user strories” yang ditempatkan index cardUser Story (cerita) merupakan deskripsi fitur-fitur fungsional yang akan disediakan perangkat lunak yang akan dibuat. Dari cerita-cerita yang telah dibuat, pelanggan memberikan semacam nilai (misalnya: prioritas). Kemudian tim XP mengkaji semua cerita tadi dan menentukan rincian biaya serta memperkirakan waktu yang dibutuhkan untuk membangun sistem.
 
Apabila waktu yang dibutuhkan untuk mengimplementasikan cerita tersebut lebih dari tiga minggu, maka tim XP meminta pelanggan memecah cerita tersebut menjadi cakupan yang lebih kecil. Cerita-cerita yang telah dibuat dikelompokkan, sehingga dapat diperkirakan untuk melakukan deliverable increments. Meskipun telah dikelompokkan dan proses pembangunan perangkat lunak telah dimulai, pelanggan masih bisa menambah, merubah, memecah dan menghapus cerita-cerita tersebut, namun tentunya harus sesuai dengan persetujuan bersama.Keuntungan dari model XP antara lain adalah:
 
Pertama, dapat merepresentasikan situasi nyata yang sering terjadi, sehingga sistem yang akan dibuat mendukung sebagian besar operasional pengguna.
 
Kedua, memudahkan pengguna memahami dan memberikan masukan terhadap cerita tersebut.
 
Ketiga, dapat merepresentasikan fitur-fitur fungsional secara bertahap (incremental).
 
 
xp

 

Adaptive Software Development (ASD)

 
ASD merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan oleh Jim Highsmith. ASD menekankan pada pengorganisasian tim secara mandiri, kolaborasi antar-perseorangan, dan terus belajar, baik secara individu maupun secara tim. ASD menggunakan tools yang disebut “time-boxing” – yaitu berupa aktifitas yang menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai, maka pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu keseluruhan tugas berakhir. Terdapat tiga tahapan pada model ASD, yaitu: SpeculationCollaboration, dan Learning.
 
Pada tahap Speculation, proyek dimulai dan adaptive cycle planning diselenggarakan. Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang akan dibuat, selanjutnya mendefinisikan project constraints, misalnya: waktu deliver. dan selanjutnya mendefinisikan satu set dari requirements yang akan dikerjakan dalam suatu cycle. Pada tahap Collaboration, pada tahap ini diorganisasikan tim kerja untuk membangun sistem. Direkomendasikan menggunakan model Joint Application Development (JAD). Pada tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau end-user menyediakan feedback terhadap hasil incremental delivery, tim ASD melakukan review terhadap komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak yang sedang dibuat.
 
 
asd
 
Sumber ::

 

Associated Kursus: KI142303BKI142303B
 
Anyone in the world

"Saya sudah mengerjakan class ABC dan hasilnya sudah sempurna. Kamu sudah mengerjakan method XYZ dan pasti hasilnya bagus. Si Budi bilang dia susah selesai mengerjakan method KLM walaupun saya ragu hasilnya benar. Setelah diintegrasikan ternyata hasilnya berantakan. Tapi tidak mungkin kesalahan ada di bagian saya karena saya yakin saya mengerjakannya dengan teliti. Seharusnya kita gabungkan pekerjaan kita sejak awal."

 

Seperti itu kira-kira ketika code yang dikerjakan oleh beberapa developer baru diintegrasikan setelah masing-masing pekerjaan selesai. Hal ini merupakan salah satu contoh kasus integration hell. Integration hell mengacu pada isu yang timbul saat penggabungan individual code dari setiap developer pada pengembangan software. Pada environment yang masih tradisional, proses integrasi tersebut seringkali menimbulkan banyak masalah yang mengakibatkan terjadinya delay dan membengkaknya budget. Continuous integration adalah salah satu konsep yang dipakai untuk menghindari masalah tersebut.

 

Continuous integration (CI) merupakan suatu mekanisme dalam software development dimana setiap member mengintegrasikan pekerjaan mereka secara berkala, umumnya minimal setiap hari sehingga pada suatu development akan terjadi multiple integration per hari. Masing-masing integrasi tersebut diverifikasi oleh automated build untuk mendeteksi error ataupun konflik sedini mungkin. Hal ini bertujuan untuk meningkatkan kualitas dan meminimalkan waktu rilis.

 

CI Tools yang tersedia berbagai macam, di antaranya Git, SVN, Team Foundation, MSBuild, dan JUnit. Sebuah CI server bisa dikonfigurasi untuk melakukan build pada interval tertentu ketika code di-commit ke repository. Automated test script bisa ditambahkan pada build system untuk memastikan code berjalan semestinya setelah dilakukan integrasi.    Hasil build juga bisa di-deploy ke testing server ketika semua test case berhasil dilalui. Di samping itu, beberapa CI tools menyediakan fitur untuk men-generate dokumentasi yang mendukung quality control dan release management. 

 

Sumber:

http://c2.com/xp/IntegrationHell.html

https://dzone.com/articles/continuous-integration-how-0

http://www.solutionsiq.com/agile-glossary/integration-hell/

Associated Kursus: KI142303KI142303
 
Gambar dari VIT ZURAIDA 5116201021
by VIT ZURAIDA 5116201021 - Tuesday, 20 December 2016, 12:59
Anyone in the world

Big Bang Integration Testing adalah strategi integration testing dimana semua komponen atau modul diintegrasikan sekaligus menjadi sebuah sistem yang komplit kemudian dites. Dalam strategi ini, modul-modul baru diintegrasikan hanya jika setiap modul sudah siap. Big Bang Testing umumnya dilakukan oleh developer dengan metode "run it and see".

Big%20Bang%20Testing.jpg

Kelebihan Big Bang Testing:

  1. Mudah dilakukan pada sistem yang kecil
  2. Tidak membutuhkan middle components
  3. Tidak membutuhkan intermediate builds

Kekurangan Big Bang Testing:

  1. Membutuhkan waktu yang lama
  2. Karena semua modul dites sekaligus, high risk critical modul tidak dapat diprioritaskan dalam pengujiannya
  3. Kesulitan dalam men-trace sumber dari suatu failure
  4. Kemungkinan besar terjadi critial failure pada masa production karena ada bug yang tidak ditemukan
  5. Kesalahan pada interface tidak dapat dideteksi lebih dini

 

Sumber:

http://www.testinginterviewquestion.com/2014/05/what-is-big-bang-testing-what-is.html

http://istqbexamcertification.com/what-is-big-bang-integration-testing/

https://www.tutorialspoint.com/software_testing_dictionary/big_bang_testing.htm

Associated Kursus: KI142303KI142303
 
Gambar dari FATRA NONGGALA PUTRA 5116201057
by FATRA NONGGALA PUTRA 5116201057 - Tuesday, 20 December 2016, 12:58
Anyone in the world

Pengujian perangkat lunak (software testing) merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari produk atau layanan yang sedang diuji (under test). Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat risiko pada implementasinya. Teknik-teknik pengujian mencakup, namun tidak terbatas pada, proses mengeksekusi suatu bagian program atau keseluruhan aplikasi dengan tujuan untuk menemukan bug perangkat lunak (kesalahan atau cacat lainnya).

 

Metode Pengujian Dalam Perangkat Lunak

  1. White box testing
    Adalah cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.

    Pengujian white box
    Menggunakan metode desain test case yang menggunakan struktur control desain procedural untuk memperoleh test case. Disebut juga pengujian glassbox. Dengan pengujian whitebox, perekayasa dapat melakukan :
    • Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali.
    • Menggunakan semua keputusan logis pada sisi true and false.
    • Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka.
    • Menggunakan struktur data internal untuk menjamin validitasnya.

       

    Keunggulan dan Kekurangan White Box

    Keunggulan

    • Kebenaran program dalam mendefinisikan algoritma dapat diketahui secara langsung dengan pengolahan path.
    • Menentukan kualitas pekerjaan coding dan pengaruhnya untuk standar coding.

    Kekurangan

    • Jumlah biaya untuk white box testing lebih besar daripada biaya yang dibutuhkan untuk black box, untuk ukuran software yang sama.
    • Belum mampu melakukan tes ketersediaan, kehandalan, daya tahan beban dan testing – testing lain yang berhubungan dengan kebutuhan faktor – faktor untuk operasi, revisi dan transisi.

  2. Black box testing
    Adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box).

    Pengujian black box

    Berfokus pada persyaratan fungsional perangkat lunak. Disebut juga pengujian behavioral atau pengujian partisi. Pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box berusaha menemukan :

    • Fungsi-fungsi yang tidak benar atau hilang

    • Kesalahan interface

    • Kesalahan dalam struktur data atau akses database eksternal.

    • Kesalahan kinerja

    • Inisialisasi dan kesalahan terminasi.

    • Kesalahan performansi

    • Kesalahan inisialisasi dan tujuan akhir


    Keunggulan dan Kekurangan Black Box:

    Keunggulan

    • Black box testing dapat menguji keseluruhan fungsionalitas perangkat lunak.
    • Black box testing dapat memilih subset test yang secara efektif dan efisien dapat menemukan cacat. Dengan cara ini black box testing dapat membantu memaksimalkan testing investment.

    Kekurangan

    • Ketika tester melakukan black box testing, tester tidak akan pernah yakin apakah perangkat lunak yang diuji telah benar-benar lolos pengujian.

  3. Gray box testing
    Adalah metode pengujian perangkat lunak yang adalah kombinasi dari Black box testing dan White box testing. Dalam Black box testing, struktur internal dari item yang sedang diuji tidak diketahui tester dan White box testing struktur internal di dikenal. Dalam pengujian Gray box testing, struktur internal sebagian dikenal. Ini melibatkan memiliki akses ke internal data struktur dan algoritma untuk tujuan merancang uji kasus, tetapi pengujian pada pengguna, atau tingkat Black box. Gray-box, berusaha menggabungkan kedua metode diatas, mengambil kelebihan keduanya, mengurangi kekurangan keduanya. Teknik verifikasi modern menerapkan combine-method ini.
Associated Kursus: KI142303KI142303
 
Anyone in the world

Apa yang disebut Perangkat Lunak (Software Engineering) ?

  • 1) Instruksi(program komputer) yang bila dieksekusi dapat menjalankan fungsit ertentu; 2) Struktur data yang dapat membuatprogram memanipulasiinformasi; dan 3) Dokumenyang menjelaskan operasi dan penggunaan program (Roger Pressman).
  • Program komputer, prosedur, aturan, dandokumentasiyang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer(IEEE).

Jenis-Jenis Perangkat Lunak

Perangkat lunak sistem (system software)

  • Perangkat lunak waktu nyata(real-time software)
  • Perangkat lunak bisnis (business software)
  • Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific software)
  • Embedded Software
  • Perangkat lunak pribadi(personal software)
  • Perangkat lunak intelegensia buatan(artificial inteligent software)
  • Perangkat lunak lainnya

 

Dokumen Perangkat Lunak

  • Software Project Management Plan (SPMP)
  • Software Requirement Specification (SRS)
  • Software Design Description (SDD)
  • Software Test Plan (STP)
  • Software Test Description (STD)
  • Software Test Result (STR)
  • Software Version
  • User Guide / User Manual

 

Apa Yang disebut Rekayasa Perangkat Lunak?

Proses membuat perangkat lunak dengan menggunakan kaidah-kaidah atau prinsip-prinsip rekayasa sehingga dihasilkan perangkat lunak yang berkualitas.

Definisi Menurut para Ahli:

  • Roger Pressman:
    Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efisien pada komputer.
    Suatu disiplin,kaidah yang mengintegrasikan proses, metode, dan alat bantu (tools) untuk pembangunan perangkat lunak komputer.
  • IEEE Computer Society
    1) The application of a systematic, disciplined,quantifiable approachto the development, operation, and maintenance of software; that is, the application of engineering to software.

    2) The study of approaches as in (1).

 

Manfaat Rekayasa Perangkat Lunak

  • Perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang diinginkan.
  • Perangkat lunak dapat digunakan dan beroperasi dengan benardi lingkungan sebenarnya.
  • Perangkat lunak memberikan manfaat bagi pemakai yang menggunakannya.
  • Biayayang dikeluarkan untuk membuatnya rendah (efisien), efektif dan sesuai dengan anggaranyang telah ditetapkan.
  • Tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya.
  • Setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan dapat dipertanggungjawabkan kebenarannya(ada proses verifikasi dan validasi)

 

SWEBOK Knowledge Areas:

  • Software requirements
  • Software design
  • Software construction
  • Software testing
  • Software maintenance
  • Software configuration management
  • Software engineering management
  • Software engineering process
  • Software engineering tools and methods
  • Software qualitySWEBOK Knowledge Areas:
  • Software requirements
  • Software design
  • Software construction
  • Software testing
  • Software maintenance
  • Software configuration management
  • Software engineering management
  • Software engineering process
  • Software engineering tools and methods
  • Software quality

 

Associated Kursus: KI142303KI142303
 
Anyone in the world

Definisi

Menurut  (Runeson  dkk, 2006)  defect  perangkat lunak terdiri dari  defect  kebutuhan (requirement defect), defect desain (design defect), dan defect kode (code defect). Defect  perangkat lunak (software defect) didefinisikan sebagai  defect  pada perangkat lunak yang mungkin terjadi defect pada kode program, defect pada dokumentasi, pada desain, dan hal-hal lain yang menyebabkan kegagalan perangkat lunak. Defect perangkat lunak dapat muncul pada berbagai tahap proses pengembangan perangkat lunak (Pressman, 2001). Defect perangkat lunak merupakan faktor penting yang mempengaruhi kualitas perangkat lunak. Kualitas perangkat lunak dapat ditingkatkan dengan mencegah munculnya  defect  perangkat lunak melalui perbaikan yang mungkin menghasilkan  defect  perangkat lunak pada proses pengembangan perangkat lunak (Boehm dan Basili, 2001).

Kualitas perangkat lunak memiliki keterkaitan yang kuat dengan tidak adanya  defect yang muncul, semakin banyak  defect  yang muncul maka akan semakin rendah kualitas dari perangkat lunak. Hal ini menjadi sangat penting untuk diperhatikan oleh pengembang maupun manajer proyek dalam menjamin terdapat defect  sesedikit mungkin. Prediksi defect perangkat lunak membantu pendeteksian, penelusuran, dan memperbaiki ketidaknormalan yang disebabkan oleh kesalahan yang dilakukan saat pengembangan. Prediksi defect perangkat lunak dapat membantu apabila terjadi perubahan maka akan dengan mudah mengambil keputusan saat itu juga tanpa harus menunggu kesalahan tersebut berdampak pada masalah yang lain. Hal ini mengindikasikan bahwa dengan menerapkan pendeteksian  defect  perangkat lunak akan
menekan biaya pengembangan serta menaikkan kepuasan klien.

Prediksi Defect

Prediksi  defect  pada perangkat lunak  (Okumoto, 2011)  diasumsikan sebagai jumlah defect  pada perangkat lunak yang dapat ditemukan pada kondisi tertentu. Sehingga apabila ditemukan  defect  maka akan diketahui untuk ditemukan solusi agar tidak menyebabkan kegagalan sistem yang lebih besar. Pada tingkat yang lebih tinggi apabila defect perangkat lunak tidak ditangani, maka akan muncul permasalahan yang lebih besar yaitu  system failure  yang menyebabkan berhentinya sistem keseluruhan. Terdapat beberapa macam defect pada perangkat lunak yang pada masing-masing  defect  tersebut memiliki fokus masing-masing dalam penelitian. Pada  (Czibula  dkk, 2014)  disebutkan bahwa prediksi  defect  perangkat lunak digunakan adalah proses yang mengidentifikasi  defect  yang terdapat pada modul atau bagian yang terdapat pembaharuan dari sistem perangkat lunak yang memungkinkan terjadi kesalahan. Prediksi defect perangkat lunak merupakan proses yang terjadi secara otomatis dalam perangkat lunak.

 

Metode Prediksi

Telah banyak metode untuk memprediksi  defect  kode  (Runeson  dkk, 2006)  antar metode tersebut terkait efisiensi dalam melakukan pemrediksian yang masih belum optimal. Hal ini mengindikasikan bahwa prediksi defect pada kode perangkat lunak membutuhkan perhatian dan metode yang lebih efisien dalam memprediksi. Apabila dilihat dari sudut pandang metode pencarian defect pada perangkat lunak, maka menurut (Shepperd dkk, 2013) terdapat tiga jenis sudut pandang pencarian tersebut. Pertama,  defect  perangkat lunak dapat ditemukan dengan metode pendekatan tata bahasa yaitu menggunakan BNF dan mudah ditemukan oleh compiler. Kedua, defect perangkat lunak dapat ditemukan dengan mengetahui pola kode perangkat lunak yang berpotensi menimbulkan  defect  dengan  data diperoleh dari hasil eksperimen. Ketiga, defect perangkat lunak ditemukan dengan memanfaatkan data-data yang didapatkan saat proses penentuan kebutuhan perangkat lunak yang nantinya digunakan sebagai panduan dalam proses software testing. Pada makalah ini akan berfokus pada sudut pandang kedua yaitu dengan memanfaatkan pola-pola kode perangkat lunak yang berpotensi menimbulkan  defect.

 

Associated Kursus: KI142303KI142303
 
Gambar dari FATRA NONGGALA PUTRA 5116201057
by FATRA NONGGALA PUTRA 5116201057 - Tuesday, 20 December 2016, 12:56
Anyone in the world

1. Pengertian

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang. (wikipedia)

 

2. Prinsip Agile Software Development
Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:

  1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.
  2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
  3. Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan.
  4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.
  5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
  6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
  7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
  8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
  9. Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
  10. Kesederhanaan penting
  11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
  12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:

  1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
  2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
  3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.


3. Kelebihan dari Agile Method

  1. Meningkatkan kepuasan kepada klien
  2. Pembangunan system dibuat lebih cepat
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil

 

4. Metode Kerja Agile
Dalam proses pengembangan agile, jika suatu proyek pengembangan software dikerjakan dengan menggunakan metode Agile, maka selama waktu  pengerjaannya akan selalu dijumpai proses pengembangan yang dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai kegiatan yang wajib dilakukan dalam proyek pengembangan software itu sendiri yaitu :

  1. Perencanaan
  2. Requirements Analysis : Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistemanalis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirment  atau bisa dikatakan sebagaidata yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen ini yang akan menjadi acuan sistem analis untuk menterjemahkan ke dalam bahasa pemprogram.
  3. Desain : Proses desain akan menerjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail(algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen yang akan digunakan proggrammer untuk melakukan aktivitas pembuatan sistemnya.
  4. Coding : Coding merupakan penerjemahan design dalam bahasa yangbisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan ini yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini.
  5. Testing :adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki
  6. Dokumentasi
5-9436b7c132.jpg
Gambar 1. Tahapan kerja Metode Agile
 
asdm.png
Gambar 2. Model Agile Software Development
 
delivery_agile.gif
Gambar 3. Model Lain dari Model Agile Software Development
 

Bagian dari metode agile software development adalah: Extreme Programming
Keuntungan menggunakan teknik extreme programming.
(a) Menjalin Komunikasi yang Baik dengan Klien.
(b) Meningkatkan Komunikasi dan Sifat Saling Menghargai antar Developer.

Kelemahan menggunakan teknik extreme programming:
(a) Developer harus selalu siap dengan perubahan karena perubahan selalu diterima.
(b) Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga)

Associated Kursus: KI142303KI142303
 
Halaman: () 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 39 ()