Skip to main content

Posts

Showing posts with the label Software Engineering

Scrum: Pengertian, Beberapa Pilar & Komponennya

Apa itu Scrum Scrum adalah sebuah framework dimana sebuah tim dapat mengatasi masalah adaptif yang kompleks, sambil secara produktif dan kreatif memberikan produk dengan nilai setinggi mungkin. Tiga Pilar Scrum Scrum memiliki 3 pilar utama, yaitu :

Sekilas Tentang Scrum Sebagai Salah Satu Pendekatan Agile Software Development

Agile Software Development Metode pengembangan perangkat lunak ini memberikan kemampuan untuk beradaptasi pada perubahan yang terjadi secara frekuen dan kesederhanaan untuk mencapai hasil maksimal. Dalam Agile , user/customer dan developer berinteraksi secara teratur untuk mendapatkan hasil yang memuaskan dan user/customer dapat mengemukakan apabila terdapat perubahan. Proses dalam Scrum Scrum Salah satu pendekatan Agile Software Development yang paling sering digunakkan adalah Scrum . Scrum sendiri adalah kerangka kerja yang dapat mengatasi masalah kompleks dan tetap menjaga produktifitas dan kreatifitas setinggi mungkin. Pada scrum terdapat beberapa kegiatan, seperti berikut:

Maintenance dan Reengineering dalam Proyek Software - Tinjauan Sekilas

Apa itu maintenance dan reengineering dalam Proyek Software? Pikirkan tentang produk teknologi apa pun yang kita miliki. Kita menggunakannya secara teratur, tetapi semakin lama semakin tua. Kerusakan menjadi terlalu sering, membutuhkan waktu lebih lama untuk diperbaiki daripada yang kita inginkan, dan tidak lagi mewakili teknologi terbaru. Apa yang harus dilakukan? Untuk sementara waktu, Kita mencoba memperbaikinya, menambalnya, bahkan memperluas fungsinya. Itu disebut dengan maintenance (pemeliharaan). Namun maintenance (pemeliharaan) menjadi semakin sulit seiring berlalunya waktu. Ada saatnya kita perlu membuatnya kembali. Kita akan membuat produk dengan fungsionalitas tambahan, kinerja dan kehandalan yang lebih baik, dan peningkatan maintanability. Itulah yang kita sebut reengineering (rekayasa ulang). Siapa yang melakukan ini? Di tingkat organisasi, maintenance dilakukan oleh staf pendukung yang merupakan bagian dari organisasi software engineering Reengineering dilakukan...

Penjadwalan dalam Proyek Software - Tinjauan Sekilas

Apa yang dimaksud dengan "penjadwalan" dalam proyek software? Kita telah memilih process model yang sesuai, kita telah mengidentifikasi tugas-tugas software engineering yang harus dilakukan, kita memperkirakan jumlah pekerjaan dan jumlah orang, kita tahu tenggat waktunya, kita bahkan telah mempertimbangkan risikonya. Sekarang saatnya menghubungkan titik-titik tersebut. Artinya, kita harus membuat jaringan tugas dalam software engineering yang akan mendorong kita menyelesaikan pekerjaan tepat waktu. Setelah jaringan tersebut dibuat, kita harus menetapkan tanggung jawab untuk setiap tugas, memastikan itu dilakukan, dan menyesuaikan jaringan tersebut karena ada risiko-risiko yang terjadi. Singkatnya, ini adalah yang disebut dengan penjadwalan dan pelacakan proyek software. Siapa yang melakukannya? Di tingkat proyek, manajer proyek software menggunakan informasi yang diminta dari para software engineer. Pada tingkat individu, para software engineer itu sendiri.

Ruang Lingkup dan Kelayakan Proyek Software - Tinjauan Sekilas

Ruang lingkup proyek software menjelaskan fungsi dan fitur yang akan disampaikan kepada pengguna; data yang merupakan input dan output; "konten" yang disajikan kepada pengguna sebagai konsekuensi dari penggunaan software; dan kinerja, kendala, antarmuka, dan keandalan yang mengikat sistem. Lingkup didefinisikan menggunakan salah satu dari dua teknik berikut: Deskripsi naratif lingkup software dibuat setelah komunikasi dengan semua stakeholder. Satu set use cases dibat oleh para pengguna akhir. Fungsi yang dijelaskan dalam pernyataan ruang lingkup (atau dalam use cases) dievaluasi dan dalam beberapa kasus disempurnakan untuk memberikan rincian lebih lanjut sebelum awal "estimasi" proyek. Karena "estimasi" biaya dan jadwal berorientasi fungsional, beberapa tingkat dekomposisi seringkali bermanfaat. Pertimbangan kinerja mencakup requirements untuk pemrosesan dan waktu respons. Berbagai macam constraints akan mengidentifikasi batasan-batasan yang aka...

"Estimasi" dalam Proyek Software - Tinjauan Sekilas

Apa yang dimaksud dengan "estimasi" dalam proyek software? Kebutuhan nyata akan software sudah ditetapkan; para stakeholder sudah ada, software engineer siap untuk dimulai, dan proyek segera dimulai. Tetapi bagaimana kita melanjutkan perjalanan proyek? Perencanaan dalam proyek software meliputi lima kegiatan utama, yaitu — estimasi, penjadwalan, analisis risiko, perencanaan manajemen mutu, dan perencanaan manajemen perubahan (change management). Dalam konteks ini, kita hanya membahas "estimasi", yaitu — upaya kita untuk menentukan berapa banyak uang, effort, sumber daya, dan waktu yang diperlukan untuk membangun sistem atau produk berbasis software tertentu. Siapa yang melakukan hal ini? Manajer proyek software — dengan menggunakan informasi yang diminta dari para stakeholder proyek dan data metrik software yang dikumpulkan dari proyek sebelumnya.

Faktor-faktor Untuk Mengukur Kualitas Software

Meskipun ada banyak ukuran kualitas software, correctness, maintanability, integrity, dan usability adalah yang paling dianggap memberikan indikator yang bermanfaat untuk tim proyek. Gilb memberikan definisi dan ukuran untuk masing-masing poin tersebut. Correctness . Correctness adalah sejauh mana software melakukan fungsi yang diperlukan. Cacat (lack of correctness) adalah berbagai problem yang dilaporkan oleh pengguna program setelah program dirilis ke penggunaan umum. Untuk tujuan penilaian kualitas, cacat dihitung selama periode waktu standar, biasanya satu tahun. Ukuran yang paling umum untuk correctness adalah cacat per KLOC (Kilo Lines of Codes), di mana cacat didefinisikan sebagai kurangnya kesesuaian dengan persyaratan yang terverifikasi.

Karakteristik Atribut-Atribut Untuk Metrics Software Yang Efektif

Ratusan metrik sudah dicoba diusulkan untuk software komputer, tetapi tidak semua memberikan poin yang praktis kepada software engineer. Beberapa pengukuran terlalu kompleks, beberapa yang lain terlalu esoteris sehingga tidak banyak profesional yang mau memahaminya, dan beberapa yang lainnya menabrak gagasan intuitif dasar tentang apa sebenarnya software yang berkualitas tinggi itu.  Ejiogu mendefinisikan seperangkat atribut yang harus ada dalam metrik software yang efektif. Metrik dan pengukuran-pengukuran yang mengarah kesitu haruslah: Sederhana dan dapat dihitung . Sebuah metric seharusnya mudah dipelajari mengenai bagaimana metric tersebut diturunkan. Perhitungan metric seharusnya dapat dilakukan tanpa menyita terlalu banyak waktu dan usaha.

Manajemen Konfigurasi Software (SCM / Software Configuration Management) - Tinjauan Sekilas

Pengertian Manajemen Konfigurasi Software dalam Proses Pembuatan Software Apa itu Manajemen konfigurasi perangkat lunak (SCM / Software Configuration Management)? Ketika kita membuat perangkat lunak komputer, pasti ada perubahan. Dan karena itu pasti terjadi, kita perlu mengelolanya secara efektif. Manajemen konfigurasi perangkat lunak (SCM), sering disebut juga manajemen perubahan (change management), adalah serangkaian kegiatan yang dirancang untuk mengelola perubahan dengan mengidentifikasi produk/hasil kerja yang kemungkinan besar akan mengalami perubahan, membuat hubungan di antara mereka, menentukan mekanisme untuk mengelola berbagai versi produk kerja tersebut, mengendalikan perubahan yang terjadi, dan mengaudit dan melaporkan perubahan yang dilakukan.

Contoh Pengujian Beban pada Aplikasi Web

Maksud dari pengujian beban adalah untuk menentukan bagaimana WebApp dan lingkungan sisi servernya akan merespons berbagai kondisi pemuatan. Saat pengujian berlangsung, permutasi ke variabel berikut menentukan serangkaian kondisi pengujian: N, adalah jumlah pengguna bersamaan T, adalah jumlah transaksi online per unit waktu D, adalah data load yang diproses oleh server per transaksi Dalam setiap kasus, variabel-variabel ini didefinisikan dalam batas operasi normal sistem. Ketika setiap kondisi pengujian dijalankan, satu atau lebih tindakan berikut dikumpulkan, yaitu: rata-rata respons pengguna, rata-rata waktu untuk mengunduh unit data standar, atau rata-rata waktu untuk memproses transaksi. Kita harus memeriksa langkah-langkah ini untuk menentukan apakah penurunan kinerja yang drastis dapat ditelusuri ke kombinasi spesifik dari variabel N, T, dan D.

Hal-hal yang Perlu Dipertimbangkan Untuk Pengujian Aplikasi Web

Dimensi-dimensi yang perlu dipertimbangkan untuk pengujian aplikasi web Pada pengujian aplikasi web, terdapat beberapa dimensi kualitas yang harus diperhatikan, antara lain: a. Content (kontent web) , dievaluasi pada kedua level semantic dan syntactic. b. Function (fungsionalitas) , diuji kebenaran, stabilitasnya, dan kesesuaian general hingga standar implementasi yang layak. c. Structure (struktur) , dinilai untuk memastikan bahwa fungsi dan konten dari aplikasi web disampaikan dengan benar, dapat diperluas, dapat didukung sebagai konten baru atau penambahan fungsionalitas. d. Usability (kemanfaatan) , diuji untuk memastikan bahwa setiap kategori dari user didukung oleh interface, serta dapat mempelajari dan mengaplikasikan semua navigasi yang dibutuhkan. e. Navigability (ke-navigasi-an) , diuji untuk memastikan semua semantic dan sintaks navigasi dilaksanakan utnuk menemukan error navigasi.

Pengujian White-box vs Black-box dalam Software Engineering

Pengujian white-box Pengujian white-box, kadang-kadang disebut pengujian glass-box, adalah filosofi desain pengujian yang menggunakan struktur kontrol yang dideskripsikan sebagai bagian dari desain di component-level untuk menurunkan pengujian. Dengan menggunakan metode pengujian white-box, kita dapat memperoleh kasus pengujian yang (1) menjamin bahwa semua jalur independen dalam modul telah dilakukan setidaknya satu kali, (2) menggunakan semua keputusan logis pada sisi yang benar dan salah, (3) menjalankan semua loop pada rentang batasannya dan dalam batasan operasionalnya, dan (4) menggunakan struktur data internal untuk memastikan validitasnya.

8 Dimensi Untuk Mengukur Kualitas Menurut Garvin

David Garvin menyatakan bahwa kualitas haruslah dipertimbangkan dengan mengambil sudut pandang multidimensi yang dimulai dengan penilaian tentang kesesuaian/kecocokan dan berakhir dengan pandangan transendental (estetika). Meskipun delapan dimensi kualitas dari Garvin tidak dikembangkan secara khusus untuk software, delapan dimensi tersebut dapat diterapkan ketika menelaah kualitas software: Performance quality (kualitas kinerja). Apakah software memberikan semua isi, fungsi, dan fitur yang ditentukan sebagai bagian dari model requirements dengan cara yang memberikan nilai kepada pengguna akhir?

Dilemma dalam Kualitas Software

Apakah bisa dimaklumi apabila kita menghasilkan software dengan predikat "good enough (cukup/lumayan baik)"? Jawaban atas pertanyaan ini adalah (harus): "ya," karena perusahaan-perusahaan software besar melakukannya (hal ini) setiap hari. Mereka membuat software dengan bug yang sudah diketahui dan me-rilis-nya ke para pengguna akhir secara masif. Mereka menyadari bahwa beberapa fungsi dan fitur yang ada dalam versi 1.0 mungkin bukanlah kualitas yang tertinggi dan merencanakan untuk perbaikan dalam versi 2.0. Mereka melakukan ini dan tahu bahwa beberapa pelanggan akan mengeluh, tetapi mereka juga menyadari bahwa time-to-market dapat mengalahkan kualitas yang lebih baik asalkan produk yang dirilis adalah berpredikat “cukup baik.” Apa sebenarnya yang dimaksud dengan "cukup baik"? Software yang cukup baik memberikan fungsi dan fitur berkualitas tinggi yang diinginkan pengguna, tetapi pada saat yang sama juga memberikan fungsi dan fitur khusus lainnya yan...

Definisi Kualitas Software

Semua developer software pasti setuju bahwa software yang berkualitas tinggi adalah tujuan yang penting. Tetapi bagaimana kita mendefinisikan kualitas software? Dalam arti yang paling umum, kualitas software dapat didefinisikan sebagai: Proses software yang efektif yang diterapkan dengan cara menciptakan produk yang bermanfaat yang memberikan nilai yang bisa diukur bagi si pembuat dan si pengguna . Definisi ini menekankan tiga poin penting:

Pengertian Desain User Interface dalam Software Engineering - Tinjauan Sekilas

Apa itu desain user interface? Desain UI (antarmuka pengguna) menciptakan media komunikasi yang efektif antara manusia dan komputer. Mengikuti serangkaian prinsip-prinsip desain antarmuka, desain mengidentifikasi objek dan action antarmuka dan kemudian membuat layout layar yang membentuk dasar untuk prototipe antarmuka pengguna. Siapa yang melakukan pekerjaan ini? Seorang software engineer merancang antarmuka pengguna dengan menerapkan proses iteratif yang mengacu pada prinsip-prinsip desain yang telah ditentukan.

Pengertian Desain Komponen dalam Software Engineering - Tinjauan Sekilas

Component-level design (desain di tingkat komponen) terjadi setelah iterasi pertama dari desain arsitektur selesai. Pada tahap ini, keseluruhan data dan struktur program software telah ditetapkan. Tujuannya adalah untuk menerjemahkan model desain ke dalam software operasional. Jadi, apa itu component-level design (desain di tingkat komponen)? Satu set lengkap komponen-komponen software didefinisikan selama desain arsitektur. Tetapi struktur data internal dan detail-detail pemrosesan masing-masing komponen tidak disajikan pada tingkat abstraksi yang dekat dengan kode. Desain tingkat komponen mendefinisikan struktur data, algoritma, karakteristik antarmuka, dan mekanisme komunikasi yang dialokasikan untuk masing-masing komponen software.

Pengertian Desain Arsitektur dalam Software Engineering - Tinjauan Sekilas

Apa itu desain arsitektur dalam software engineering? Desain arsitektur menyajikan struktur data dan komponen-komponen program yang diperlukan untuk membangun sistem berbasis komputer. Desain arsitektur mempertimbangkan gaya arsitektur tentang sistem yang akan diambil, struktur dan sifat-sifat komponen yang membentuk sistem, dan keterkaitan yang terjadi antara semua komponen dari suatu sistem. Siapa yang melakukannya pekerjaan ini? Meskipun seorang software engineer dapat mendesain data dan arsitektur, pekerjaan ini sering dialokasikan untuk orang yang spesialis apabila sistem yang besar dan kompleks yang akan dibangun. Perancang database atau data warehouse membuat arsitektur data untuk suatu sistem. "Arsitek sistem" akan memilih gaya arsitektur yang sesuai dengan requirements yang diperoleh selama analisis software requirements.

Pengertian Requirements Modeling dalam Software Engineering - Tinjauan Sekilas

Apa itu Requirements Modeling? Requirements model — sebenarnya seperangkat model — adalah penyajian teknis awal/pertama dari suatu sistem. Rangkaian kalimat atau kata-kata yang dituliskan adalah cara yang baik untuk berkomunikasi, tetapi tidak selalu merupakan cara terbaik untuk menyajikan requirements untuk software komputer. Requirements Modeling menggunakan kombinasi berbentuk teks dan diagram untuk menyajikan requirements dengan cara yang relatif mudah dipahami, dan yang lebih penting, langsung digunakan untuk me-review kebenaran, kelengkapan, dan konsistensi dari requirements. Siapa yang melakukan ini? Software engineer (kadang-kadang disebut "analyst") membuat model dari requirements yang diperoleh dari customer/pengguna.

Memahami Scrum - Proses Pengembangan Software

Scrum (nama ini berasal dari suatu activitas yang terjadi selama pertandingan rugby) adalah metode pengembangan software yang "agile" yang dicetuskan oleh Jeff Sutherland dan tim development-nya di awal 1990-an. Dalam beberapa tahun terakhir, pengembangan lebih lanjut tentang metode Scrum telah dilakukan oleh Schwaber dan Beedle. Prinsip scrum konsisten dengan manifesto "agile" dan digunakan untuk memandu kegiatan pengembangan dalam suatu proses yang menggabungkan framework activities berikut: requirements, analysis, design, evolution, and delivery. Dalam setiap framework activity, tugas kerja terjadi dalam pola proses (dibahas dalam paragraf berikut) yang disebut sprint. Pekerjaan yang dilakukan dalam sprint (jumlah sprint yang diperlukan untuk setiap framework activity akan bervariasi tergantung pada kompleksitas dan ukuran produk) disesuaikan dengan masalah yang dihadapi dan yang didefinisikan dan seringkali dimodifikasi secara real time oleh tim Scrum. Al...