Rabu, 07 Oktober 2015

Software Engineering

1.         Latar belakang munculnya disiplin software engineering ?
Jawaban :
Memasuki tahun 1960-an ketika era komputer dimulai, Software telah menjadi salah satu bagian penting dalam teknologi informasi dan digunakan di semua disiplin ilmu teknologi informasi.
Perangkat lunak atau piranti lunak adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga dikatakan sebagai 'penterjemah' perintah-perintah yang dijalankan pengguna komputer untuk diteruskan ke atau diproses oleh perangkat keras. Perangkat lunak ini dibagi menjadi 3 tingkatan: tingkatan program aplikasi (application program misalnya Microsoft Office), tingkatan sistem operasi (operating system misalnya Microsoft Windows), dan tingkatan bahasa pemrograman (yang dibagi lagi atas bahasa pemrograman tingkat tinggi seperti Pascal dan bahasa pemrograman tingkat rendah yaitu bahasa rakitan).
Perangkat lunak adalah program komputer yang isi instruksinya dapat diubah dengan mudah. Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras (yang sering disebut sebagai device driver), melakukan proses perhitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya (seperti sistem operasi, dan bahasa pemrograman), dan lain-lain. Biasanya, istilah Sistem Operasi sering ditujukan kepada semua software yang masuk.
a.        Latar belakang Disiplin Software engineering
    Faktor-faktor yang melatarbelakangi munculnya Disiplin Software engineering :
1.      Ketidakmampuan organisasi memprediksi waktu, usaha dan biaya untuk  membangun perangkat lunak
2.      Perubahan nisbah/rasio beaya perangkat keras thd harga perangkat lunak
3.      Kemajuan pesat perangkat keras
4.      Kemajuan dalam teknik-teknik pembuatan perangkat lunak
5.      Tuntutan yang lebih tinggi thd jumlah perangkat lunak
6.      Tuntutan yang lebih tinggi thd mutu perangkat lunak
7.      Meningkatnya peran pemeliharaan
2.      Jelaskan definisi dari software engineering ?
Jawaban :
Definisi  Software Engineering
Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering ap­proach)
Beberapa definisi tentang rekayasa perangkat lunak :
•  Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada komputer (Fritz Bauer, 1968).
•  Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993).

•  Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman, 97).

3.      Apa yang disebut dengan software engineering yang berkualitas ?
Jawaban :
Berdasarkan definisi di atas terlihat bahwa sebuah software dikatakan berkualitas apabila memenuhi tiga ketentuan pokok:
1.      Memenuhi kebutuhan pemakai – yang berarti bahwa jika software tidak dapat memenuhi kebutuhan pengguna software tersebut, maka yang bersangkutan dikatakan tidak atau kurang memiliki kualitas.
2.      Memenuhi standar pengembangan software – yang berarti bahwa jika cara pengembangan software tidak mengikuti metodologi standar, maka hampir dapat dipastikan bahwa kualitas yang
baik akan sulit atau tidak tercapai; dan
3.      Memenuhi sejumlah kriteria implisit – yang berarti bahwa jika salah satu kriteria implicit
tersebut tidak dapat dipenuhi, maka software yang bersangkutan tidak dapat dikatakan memiliki kualitas yang baik
Disini saya akan memaparkan sedikit mengenai ciri-ciri software yang berkualitas menurut McCall. McCall mendefinisikan ada 11 faktor yang mempengaruhi kualitas dari sebuah software, yaitu:
1.      Portability
2.      Reusability
3.      Interoperability
4.      Correctness
5.      Reliability
6.      Efficiency
7.      Integrity
8.      Usability
9.      Testability
10.  Flexibility
11.  Maintability 
   4. Jelaskan bagaimana cara mengukur kualitas software ?
Jawaban :
Teknik pengukuran besar software dengan cara menghitung baris kode program yang ada Relatif terhadap bahasa/tool pemrograman dan gaya pengkodean programer Tidak bisa ditentukan sebelum proyek pengembangan menyelesaikan tahapan implementasi.
LANGKAH 1: MENGHITUNG CRUDE FUNCTION POINTS (CFP) Perhitungan CFP melibatkan 5 tipe komponen sistem software berikut : 1.Jumlah macam aplikasi input 2.Jumlah macam aplikasi output 3.Jumlah macam aplikasi query online (aplikasi ini berhubungan dengan query terhadap data yang tersimpan).
LANGKAH 2 : MENGHITUNG FAKTOR PENGUBAH KOMPLEKSITAS RELATIF/RELATIVE COMPLEXITY ADJUSTMENT FACTOR (RCAF). RCAF berfungsi untuk menghitung kesimpulan kompleksitas dari sistem software dari beberapa subyek karakteristik.
LANGKAH 3 : MENGHITUNG FUNCTION POINT (FP) Nilai function point untuk sistem software tersebut kemudian dihitung berdasarkan hasil dari tahap 1 dan 2 yang dimasukkan ke dalam formula: FP = CFP x (0.65 + 0.01 x RCAF) KELEBIHAN METODE FUNCTION PONIT Perkiraan dapat disiapkan pada tahap pra-proyek dan oleh karena itu maka manajemen dapat didukung dalam usaha persiapan proyek.
1.      Jelaskan dengan bahasa sendiri apa yang di maksud dengan software ?
Jawaban :
Software adalah sebuah aplikasi perangkat lunak yang berfungsi sebagai sarana interaksi  antara pengguna dan perangkat keras yang sangat dibutuhkan fungsinya untuk mengefektifikan kinerja computer.
2.      Jelaskan jenis-jenis software ?
Jawaban :
Menurut jenisnya, software dapat dibedakan menjadi beberapa bagian diantaranya adalah sebagai berikut :

A. Freeware
Freeware (perangkat lunak gratis) adalah perangkat lunak komputer yang memiliki hak cipta yang gratis dan dapat digunakan tanpa batasan waktu, berbeda dengan shareware yang mewajibkan pemakainya membayar (misalnya setelah jangka waktu percobaan tertentu atau untuk memperoleh fitur tambahan). Para pengembang freeware biasanya membuat perangkat gratis "untuk disumbangkan kepada komunitas", namun juga tetap ingin mempertahankan hak mereka sebagai pengembang dan memiliki kontrol terhadap pengembangan aplikasi selanjutnya. terkadang jika para pengembang aplikasi memutuskan untuk berhenti mengembangkan sebuah produk freeware, mereka akan memberikan source code (kode sumbernya) kepada pengembang lain atau mengedarkan kode sumber tersebut kepada umum sebagai perangkat lunak bebas yang bisa dikembangkan secara bersama-sama.
B. Shareware
Shareware adalah perangkat lunak yang disediakan untuk pengguna tanpa membayar secara uji coba dan sering di batasi oleh kombinasi dari fungsi, ketersedian, atau kenyamanan. Jadi maklum saja kalo anda menggunakan aplikasi ini tidak bisa memanfaatkannya secara maksimal, karena aplikasi yang shareware sebenarnya adalah aplikasi ujicoba.

Shareware sering ditawarkan sebagai aplikasi unduhan dari sebuah situs web yang disertai dengan sebuah bacaan seperti koran atau majalah. Alasan di balik perangkat lunak Shareware adalah memeberikan pembeli kesempatan untuk mencoba menggunakan program sebelum membeli lisensi untuk versi lengkap dari perangkat lunak kongsi tersebut. Ini juga dipakai sebagai strategi marketing pengembang aplikasi shareware. Makanya shareware juga biasa disebut dengan Trialware.
C. Firmware
Firmware adalah aplikasi yang mengacu kepada perangkat lunak yang disimpan di dalam Memori Read Only (hanya baca). Tidak seperti memori akses acak, Firmware tidak akan dapat berubah meski tidak dialiri listrik. Rutin-rutin yang mampu menyalakan komputer (startup) serta instruksi input/output dasar (semacam BIOS atau sistem operasi embedded) disimpan di dalam Firmware. Modifikasi memang masih bisa dilakukan, akan tetapi hal tersebut tergantung dari jenis ROM (Read Only Memory) yang digunakan. Firmware yang disimpan dalam ROM tidak dapat diubah, tetapi Firmware yang disimpan dalam ROM yang dapat diubah semacam EEPROM atau Flash ROM, masih dapat diubah sesuai dengan kebutuhan.
D. Commercial Software
Commercial Software (software berbayar) adalah perangkat lunak yang disalurkan atau dibuat untuk tujuan komersil, setiap pengguna yang ingin menggunakan atau mendapatkan software tersebut dengan cara membeli atau membayar pada pihak yang mendistribusikannya, bisa langsung kepada developers (pengembang) software, atau kepada rekanan dari pengembang software tersebut. pengguna yang menggunakan software berbayar biasanya tidak dilegalkan untuk menyebarluaskan atau membagikan ulang software yang sudah dibeli lisensinya secara bebas tanpa ijin dari penerbitnya. Contoh software berbayar ini misalnya adalah Microsoft Visual Basic NET, Adobe Photoshop, Corel Draw dan masih banyak lagi yang lainnya. Commercial Software juga dilindungi oleh undang-undang hak cipta, dan untuk mendapatkannya kita harus membeli. Software ini dilarang keras untuk diperbanyak (secara ilegal pastinya).
E. Free Software
Free Software (perangkat lunak bebas) adalah istilah yang diciptakan oleh Richard Stallman dan Free Software Foundation (organisasi nirlaba dan merupakan sponsor utama dari proyek GNU) yang mengacu kepada perangkat lunak yang bebas untuk digunakan, dipelajari dan diubah serta dapat disalin dengan atau tanpa modifikasi, atau dengan beberapa keharusan untuk memastikan bahwa kebebasan yang sama tetap dapat dinikmati oleh pengguna-pengguna berikutnya. Bebas di sini juga berarti dalam menggunakan, mempelajari, mengubah, menyalin atau menjual sebuah perangkat lunak, seseorang tidak perlu meminta izin dari siapa pun. Dengan kata lain Anda bisa mengutak atik sesuka hati.

Untuk dapat menjadikan free software sebagai perangkat lunak bebas, perangkat lunak tersebut biasanya harus memiliki sebuah lisensi, atau berada dalam domain publik dan menyediakan akses ke kode sumbernya bagi setiap orang. Gerakan perangkat lunak bebas (free software movement) pertama kali dikembangkan pada tahun 1983, yang bertujuan untuk memberikan pada setiap pengguna komputer.

Dengan konsep kebebasan ini, setiap orang bebas untuk menjual perangkat lunak bebas, menggunakannya secara komersial dan mengambil untung dari distribusi dan modifikasi kode sumbernya. Walaupun demikian setiap orang yang memiliki salinan dari sebuah free software dapat pula menyebarluaskan perangkat lunak bebas tersebut secara

Perangkat lunak bebas (free software) jangan disalahartikan dengan perangkat lunak gratis (freeware) yaitu perangkat lunak yang digunakan secara gratis. Perangkat lunak gratis dapat berupa perangkat lunak bebas atau perangkat lunak tak bebas. Sejak akhir tahun 1990-an, beberapa alternatif istilah untuk perangkat lunak bebas mulai muncul seperti "perangkat lunak sumber terbuka" (open-source software), "software libre", "FLOSS", dan "FOSS".

Saat ini, umumnya perangkat lunak bebas tersedia secara gratis dan dibangun atau dikembangkan oleh suatu komunitas terbuka. Para anggota komunitas tersebut biasanya bersifat sukarela tetapi dapat juga merupakan karyawan suatu perusahaan yang memang dibayar untuk membantu mengembangkan perangkat lunak tersebut.

Untuk memudahkan pemahaman mengenai perbedaan antara freeware (perangkat lunak gratis) dengan free software (perangkat lunak bebas), Richard Stallman selaku pendiri gerakan perangkat lunak bebas memberikan penjelasan sebagai berikut.
Perangkat lunak bebas adalah perihal kebebasan, bukan harga. Untuk mengerti konsepnya, Anda harus memikirkan kata 'bebas' seperti dalam "kebebasan berpendapat", bukan 'bebas' dalam arti "bir gratis".

F. Open Source Software
Open Source Software (perangkat lunak sumber terbuka) adalah jenis perangkat lunak yang kode sumbernya terbuka untuk dipelajari, dikembangkan, diubah, ditingkatkan dan disebarluaskan. Karena sifat ini, umumnya pengembangannya dilakukan oleh satu komunitas terbuka yang bertujuan mengembangkan perangkat lunak bersangkutan. Anggota-anggota paguyuban itu seringkali sukarela tapi bisa juga pegawai suatu perusahaan yang dibayar untuk membantu pengembangan perangkat lunak itu. Produk perangkat lunak yang dihasilkan ini biasanya bersifat bebas dengan tetap menganut kaidah dan etika tertentu.
G. Malware
Malware (perangkat perusak) berasal dari gabungan kata malicious dan software adalah perangkat lunak yang diciptakan untuk menyusup atau merusak sistem komputer, peladen atau jejaring komputer tanpa izin termaklum (informed consent) dari pemilik. Istilah ini adalah istilah umum yang dipakai oleh pakar komputer untuk mengartikan berbagai macam perangkat lunak atau kode perangkat lunak yang mengganggu atau mengusik. Istilah virus computer kadang-kadang dipakai sebagai frasa pemikat (catch phrase) untuk mencakup semua jenis perangkat perusak, termasuk virus murni (true virus).

Perangkat lunak dianggap sebagai malware berdasarkan maksud yang terlihat dari pencipta dan bukan berdasarkan ciri-ciri tertentu. Perangkat perusak mencakup virus komputer, cacing komputer, kuda Troya (Trojan horse), rootkit, perangkat pengintai (spyware), perangkat iklan (adware), perangkat jahat (crimeware) dan perangkat lunak lainnya yang berniat jahat dan tidak diinginkan. Menurut undang-undang, perangkat perusak kadang-kadang dikenali sebagai ‘pencemar komputer’, hal ini tertera dalam kode undang-undang di beberapa negara bagian Amerika Serikat, termasuk California dan West Virginia.

Perangkat perusak tidak sama dengan perangkat lunak cacat (defective software), yaitu, perangkat lunak yang mempunyai tujuan sah tetapi berisi kutu (bug) yang berbahaya.

3.      Jelaskan karakteristik dari software yang membuat berbeda dengan produk hardware ?
Jawaban :
Karakteristik Software Secara Umum

·         Software merupakan elemen sistem logika dan bukan elemen sistem fisik seperti hardware
·         Elemen itu tidak aus, tetapi bisa rusak.
·         Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware.
      3. PT ABC meminta jasa anda untuk membangun sebuah situs portal untuk perusahaan PT ABC tersebut
      Anda menggunakan CMS opensource bernama Wordpress untuk engine dari situs portal yang dibuat
      Kemudian anda mengembangkan beberapa plugin yang sesuai dengan business process yang diinginkan oleh perusahaan tersebut. Sehingga akhirnya berhasil dibangun sebuah situs portal perusahaan yang lengkap dan sesuai dengan keinginan perusahan tersebut
      Anda mengirimkan invoice tagihan untuk perusahaan PT ABC sebesar Rp. 100 juta untuk biaya pembangunan situs portal tersebut
      Apakah yang saya lakukan ini sah dan diperbolehkan?
Jawaban :
Menurut saya Sah dan diperbolehkan, Mengapa demikian, karna disini kita membantu suatu perusahaan untuk membuat situs portal yang di inginkan sama seperti kita menjual jasa kita yang dipakai untuk membangun sebuah situs portal untuk perusahaan PT ABC  membuat sebuah situs portal dengan menggunakan CMS open source, Nah apa itu CMS ?  CMS merupakan Singkatan dari Content Management System adalah sebuah aplikasi web atau software web yang tujuannya untuk memudahkan dalam pengelolaan (upload, edit, menambahkan, dll) web. Dalam membuat situs portal menggunakan CMS open source bernama wordpress dengan menggunakan bahasa pemograman php dan data base. Dengan cukup mudah digunakan, sedehana dan gratis tanpa  biaya. Tetapi dalam membuat situs portal tidak segampang yang kita bayangkan, dalam membuat suatu aplikasi yang sangat penting dan membutuhkan waktu dan tenaga untuk menyelesaikan sebuah situs portal dalam suatu perusahaan terutama PT ABC. Karena sebuah perusahaan atau individu, biasanya memiliki berbagai macam informasi yang ingin ditampilkan dalam sebuah tempat yang terintegrasi. Di dalam membuat situs portal selain menggunakan CMS open source dan wordpress ada juga tambahan dengan mengembangkan Plugin yang sesuai dengan business process yang diinginkan oleh perusahaan. Disini plugin adalah aplikasi yang berukuran kecil yang ditanam ke aplikasi lain yang lebih besar, dan diintegrasikan dengan wordpress untuk memberikan fungsi-fungsi lain yang belum tersedia pada instalasi standar dengan mengembangkan plugin dapat mengurangi ukuran aplikasi wordpress dan mendukung fitur yang belum terlihat oleh para pengguna wordpress dalam membuat situs portal untuk PT ABC.

2 komentar: