Sunday, September 28, 2014

Software Requirement Specifications

Software Requirement Specifications

Secara sederhana, Software Requirement Specifications (SRS) adalah dokumen yang menjelaskan tentang berbagai kebutuhan yang harus dipenuhi oleh suatu software. Dokumen ini dibuat oleh developer (pembuat software) setelah menggali informasi dari calon pemakai software. Pembuatannya pun seharusnya mengikuti standar yang ada dan paling diakui oleh para praktisi rekayasa software di dunia. Oleh karena itu, standar yang akan dibahas di sini adalah standar dari IEEE.

IEEE membuat standar SRS agar dokumen penting itu tidak ambigu dan tentu saja komplit. Lengkap. Dengan standar itu, si penggguna dapat mencurahkan semua keinginannya terkait software tersebut dengan jelas dan akurat sehingga sang developer pun dapat memahami apa yang diinginkan pengguna dengan tepat. Bahkan, bagi perorangan, standar ini dapat membantunya dalam mengembangkan outline SRS yang baku khusus untuk perusahaannya, membantunya membuat dokumen SRS dengan format dan isi yang standar (minimal), serta membantunya mengembangkan rincian-rincian pendukung lainnya.

Ada beberapa istilah yang digunakan dan harus diketahui untuk memahami standar SRS yang dibuat IEEE ini. Istilah-istilah tersebut adalah:
  • Kontrak: dokumen yang mengikat secara hukum dan disepakati oleh customer dan supplier, termasuk syarat-syarat teknologi dan organisasi, biaya, serta jadwal pengerjaan. Kontrak bisa mengandung sesuatu yang kurang formal tetapi bermanfaat, seperti komitmen atau harapan dari pihak yang terlibat.
  • Customer (pelanggan) : Pihak yang membayar untuk produk dan biasanya yang menentukan persyaratan (requirements).
  • Supplier (pemasok): Pihak yang membuat produk software untuk customer.
  • Pengguna: Pihak yang mengoperasikan atau berinteraksi langsung dengan software. Pengguna dan customer biasanya bukan orang yang sama.
Sifat dari SKPL / SRS :
Penulis SKPL harus memperhatikan hal-hal berikut:
1. Fungsionalita.
2. Antar muka eksternal (External Interface).
3. PerformansiSejauh apa kecepatan, ketersediaan (availability), waktu tanggap (response time),waktu recovery dari berbagai fungsi perangkat lunak yang dibuat.
4. Atribut
5. Batasan perancangan 
Penulis SKPL tidak sepatutnya menuliskan spesifikasi rancangan atau kebutuhanproyek secara keseluruhan dalam SKPL. Untuk itulah penulis SKPL sepatutnya dapatmembedakan hasil pekerjaan mana yang termasuk hasil analisis dan mana yangtermasuk hasil perancangan.

Lingkungan SKPL / SRS :
Karena SKPL akan memainkan peranan penting dalam proses pengembangan perangkat lunak, penulis SKPL harus secara berhati-hati dalam memainkanperanannya (yang menuangkan hasil kerja pada suatu dokumen yang dijadikan dasar –baseline). Mengingat SKPL pada akhirnya akan menjadi dasar bagi kontrak antarapengembang dan pelanggan, maka suatu dokumen SKPL harus memenui syarat-syarat berikut:

1. Mendefinisikan kebutuhan perangkat lunak dengan benar. Kebutuhan perangkatlunak muncul karena ada pekerjaan yang harus diselesaikan atau karena adakarakteristik khusus dari proyek.

2. Tidak menjelaskan rancangan atau implementasi dengan rinci. Penjelasan tersebuttidak diperlukan karena bagi pengguna hal tersebut lebih teknis dan tidak perlu.

3. Tidak memaksakan penambahan suatu batasan dari perangkat lunak

Karakterisitk SKPL / SRS :
Karakterisitk SKPL yang baik adalah sebagai berikut:
1. Benar
2. Tidak ambigu
3. Lengkap
4. Konsisten
5. Terurut berdasarkan kepentingannya atau kestabilannya
6. Dapat diverifikasi
7. Dapat dimodifikasi
8. Dapat ditelusuri (traceable)

Refrensi / sumber :
1. http://cisini.wordpress.com/2012/10/16/srs/
2. http://mr-freeman-blog.blogspot.com/2010/03/spesifikasi-kebutuhan-perangkat-lunak.html 

Saturday, September 20, 2014

Program sederhana di java dengan implementasi karakteristik oop.

1. Enkapsulasi
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
 
Program sederhana Enkapsulasi :
Outputnya :


2. Inheritance
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.


Contoh sederhana Inheritance :


Outputnya :



3. Polimorfisme.

Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut.

Contoh sederhana Polimorfisme :
a. Buat class hewan :


b. Buat class kuda :


c. Buat class kucing :


d. Buat class ayam :


e. Buat class suarahewan untuk mengetes class - class yg sudah di buat :
 Outputnya :

TERIMA KASIH :)

Thursday, September 11, 2014

Tugas OOP

1.       Object Oriented Programming atau yang lebih dikenal dengan OOP adalah pemrograman yang menitikberatkan kepada objek-objek untuk menyelesaikan tugas atau proses dari program tersebut. Sedangkan penitikberatkan ini dimaksudkan adanya interaksi pengiriman nilai, pesan atau pernyataan antar objek. Kemudian objek yang merespon hasil dari interaksi tersebut akan membentuk suatu  tindakan atau aksi (methode).

-          Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :
·         Encapsulation (pembungkusan)
-          Variabel dan method dalam suatu obyek dibungkus agar terlindungi
-          Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface

·         Inheritance (pewarisan)
-          Sebuah class bisa mewariskan atribut dan method-nya ke class yang lain
-          Class yang mewarisi disebut superclass
-          Class yang diberi warisan disebut subclass
-          Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi class yang lain => disebut multilevel inheritance.

·         Polymorphism (polimorfisme – perbedaan bentuk)
·         Polimorfisme artinya penyamaran dimana suatu bentuk dapat memiliki lebih dari satu bentuk.

2.        Class
Calss merupakan gambaran atau abstraksi karakter dan sifat dari suatu objek. Class juga dapat mendefinisikan ciri dan perilaku objek tersebut.
·         Class memiliki anggota yang disebut Anggota Class (class member).
Anggota Class terdiri dari :
1.       atribut
2.       method.

3.       Object
Object (objek) adalah suatu data atau entitas yang berwujud maupun tidak berwujud, memiliki sifat (karakteristik) tertentu sesuai dengan kondisi atau status dari penggunaannya. Data atau entitas di dalam pemrograman dapat disebut dengan blok fungsi.
·         Ciri-ciri object :
-          Obyek memiliki status (state) dan tingkah laku (behavior).
-          Status (state) disebut juga dengan atribut.
-          Contoh obyek : obyek mobil
§  Atribut : merek, warna, bahan bakar.
§  Method : pindah persnelling, kecepatan bertambah, dll.
-          Pada OOP : status disimpan dalam variabel, dan tingkah laku disimpan dalam method.

4.       Keuntungan Penggunaan OOP

        Natural
OOP dapat melakukan pendekatan terhadap objek yang menggambarkan segala sesuatu yang nyata, seperti sifat suatu benda maupun kegunaan dari benda tersebut.

        Modular
Objek yang sudah dibentuk dapat dikelompokkan kembali dengan objek-objek yang lain, seperti kelompok alat tulis yang dapat dikelompokkan kembali dengan kelompok pensil, kelompok buku dan lain-lain.

        Mudah diperbaharui
Dikarenakan sifat jangkauan dari objek memiliki bagian private dan public, maka jika bagian private ingin digunakan pada objek-objek lain dapat diperbaharui dengan menempatkan objek lain tersebut di bagian public.

        Dapat didaur ulang
Suatu objek yang telah didefinisikan baik jenis, bentuk, ciri maupun perilaku dapat didefinisikan kembali dengan objek yang lain. Misalkan objek rumah yang memiliki ciri umum ada pintunya, jendelanya, atapnya, temboknya dan lian-lain, dapat didefinisikan kembali ciri-ciri tersebut dengan menyebutkan cirinya masing-masing seperti temboknya yang memiliki ciri jenisnya, ketebalannya, warna catnya dan lain-lain.

5.       Kelemahan penggunaan OOP

        Tidak memperbolehkan implementasi yang kuat pada reuse
        Properti software tidak terikat dalam satu unit fungsional, sehingga harus crosscut di antara komponennya.
        Crosscut tersebut mengakibatkan sulitnya pengembangan dan pemeliharaan.

Referensi            :