Senin, 01 Oktober 2012

Resensi Buku “Guide to Software Engineering Body of Knowledge 2004 Version”


Pada tahun 1900-an, seiring dengan perkembangan komputer, bermunculan kaidah-kaidah atau konsep-konsep yang mendukung dalam pembuatan suatu software atau disebut rekayasa perangkat lunak. Masing-masing pengembang perangkat lunak ataupun praktisi memiliki atau menganut standarisasi tertentu. Hal ini mendorong lembaga seperti Institute of Electrical and Electronics Engineers (IEEE) Computer Society menerbitkan standarisasi rekayasa perangkat lunak dimana dapat diterima oleh dunia internasional.

Di tahun 1998, Industrial Advisory Board yaitu terdiri dari beberapa organisasi dimana IEEE Computer Society adalah salah satu anggotanya, mengatakan bahwa proyek Software Engineering Body of Knowledge (SWEBOK) telah selesai. Dua versi buku Swebok yang telah dikeluarkan yaitu pada tahun 1999 dan 2004. Versi Guide to the SWEBOK tahun 2004 disahkan oleh IAB dan diberikan kepada Gubernur IEEE Computer Society untuk disetujui.

Tujuan dari Proyek Swebok ini adalah:
  1. Untuk memperlihatkan kesamaan pandangan mengenai rekayasa perangkat lunak di seluruh dunia
  2. Menjelaskan posisi dan menentukan batas-batas rekayasa perangkat lunak terhadap ilmu lain seperti ilmu komputer, manajemen proyek, rekayasa komputer, dan matematika
  3. Menggolongkan muatan-muatan dari ilmu rekayasa perangkat lunak
  4. Menyediakan akses pokok terhadap Pengetahuan Umum Rekayasa Perangkat Lunak
  5. Menyediakan pondasi untuk pengembangan kurikulum dan sertifikasi/perizinan

Buku SWEBOK  menggambarkan pengetahuan secara umum tentang rekayasa perangkat lunak yang dibagi ke dalam sepuluh area pengetahuan (Knowledge Areas) atau disebut KAs.”  Ke-lima pertama KAs diperoleh dari waterfall life-cycle sequence pengembangan perangkat lunak dan yang lain diperoleh dari ilmu-ilmu yang relevan dengan rekayasa perangkat lunak. Ke-sepuluh KAs tersebut adalah :
  1. Software Requirements
  2. Software Design
  3. Software Construction
  4. Software Testing
  5. Software Maintenance
  6. Software Configuration Management
  7. Software Engineering Management
  8. Software Engineering Process
  9. Software Engineering Tools and Methods
  10. Software Quality

Buku Swebok 2004 terdiri dari 12 bab dimana sepuluh bab merupakan pembahasan masing-masing KA. Setiap bab KA terdiri dari deskripsi dari KA tersebut dan mendekomposisinya menjadi beberapa subarea, topik, dan sub-topik. Subarea terdiri dari beberapa topik dan setiap topik dapat terdiri dari beberapa sub-topik. Setiap topik atau sub topik disertai dengan penjelasannya dan beberapa referensi terkait. Materi referensi terpilih di Swebok adalah karena dianggap telah merepresentasikan knowledge yang terkait dengan topik atau sub-topik tersebut. Di akhir bab KA, buku ini menyertakan suatu tabel matrik antara topik dengan referensinya. Ini sangat membantu para profesional rekayasa perangkat lunak untuk langsung merujuk ke materi referensi tersebut.

Melalui teknik referensi yang digunakan oleh buku ini, menandakan bahwa standarisasi di dunia rekayasa perangkat lunak tidaklah didefinisikan secara tepat sekali atau mutlak. Walaupun demikian, body of knowledge mengenai rekayasa perangkat lunak dalam buku ini telah terdokumentasi secara formal dan merupakan kontribusi dari banyak institusi yang berkecimpung di dunia perangkat lunak. Selain dapat digunakan oleh pengembang rekayasa perangkat lunak, buku ini dapat digunakan dalam program akademik, program pelatihan dan pengembangan, sertifikasi spesialis, maupun hal pemberian lisensi profesional di bidang rekayasa perangkat lunak.

Universal Description Discovery and Integration


UDDI adalah singkatan dari Universal Description Discovery and Integration. Ini adalah mekanisme berbasis XML untuk mendaftarkan atau mengetahui lokasi dari aplikasi web service.

UDDI membantu memperluas dan menyederhanakan interaksi business-to-business (B2B). Toko bunga di Indonesia yang ingin terpasang di setiap pasar di dunia tetapi tidak tahu bagaimana, UDDI menyediakan cara untuk melakukan hal ini. UDDI menyediakan one-stop shopping untuk informasi tentang bisnis dan layanan elektronik.

UDDI dibangun di atas network transportation layer dan SOAP (messaging layer berbasis XML). Bahasa deskripsi layanan, seperti Web Services Description Language (WSDL) digunakan dalam menerangkan layanan web dan interface-nya.

Data di suatu registry UDDI dapat dikategorikan menjadi:
Technical Models
Bussiness
Bussiness Service
Service Binding
Setiap registry UDDI memiliki pengenal unik yang disebut Unique Universal Identifier (UUID).

Enterprise Service Bus


ESB Adalah singkatan dari Enterprise Service Bus. Ini merupakan suatu model arsitektur yang digunakan untuk mendisain dan mengimplementasikan komunikasi antara program aplikasi dalam Service Oriented Architecture (SOA).  ESB juga dapat dipandang sebagai layer yang menghubungkan antara front-end application dengan back-end application.


Relasinya dengan SOA, ESB dianggap sebagai platform yang merealisasikan SOA dalam hal interoperability. Dalam arsitektur yang komplek, ESB merupakan sebuah software yang terletak di antara aplikasi atau yang lebih dikenal dengan adaptor/broker. Broker ini memungkinkan komunikasi antara aplikasi tersebut. ESB secara ideal harus mampu mengganti semua kontak langsung antara software dengan aplikasi pada bus sehingga komunikasi berlangsung melalui ESB. Untuk mencapai tujuannya, ESB harus merangkum fungsi yang ditawarkan oleh service dalam cara yang dimengerti oleh service lain. 









Ada beberapa karakteristik ESB, di antaranya adalah:
Independensi sistim operasi dan bahasa pemrograman sehingga  dimungkinkan berkomunikasi 
  antara Java dengan .Net sebagai contoh.
Menggunakan XML sebagai bahasa komunikasi
Mendukung Web Service
Mendukung sistim dengan berperan sebagai adapter
Memiliki model keamanan untuk pelaksanaan verifikasi
Mengandung transformation service sehingga dapat berhubungan dengan berbagai format data
  seperti XLST dan Xquery
Mengandung data validation services
Dapat mengeksekusi aturan-aturan bisnis
Ada sebagai layer abstrak
Memiliki non-centralized policy




Minggu, 30 September 2012

Program Singkat Java Menampilkan Cuaca Menggunakan Web Service

Berikut adalah kode program untuk mendapatkan informasi cuaca dari beberapa kota besar di dunia. Web service disediakan oleh www.webservicex.net. WSDL-nya diperoleh dari: http://www.webservicex.net/globalweather.asmx?WSDL. Kode program ditulis dalam bahasa Java.

 
public class Cuaca {   
   
    public static void main(String[] args) throws Exception {

        net.webservicex.GlobalWeather weather = new net.webservicex.GlobalWeather();     

        System.out.println (weather.getGlobalWeatherSoap().getWeather("jakarta", "indonesia"));
        System.out.println (weather.getGlobalWeatherSoap().getWeather("medan", "indonesia"));
       
    }
   
}

Pengenalan Singkat dengan XML


1.       Pengertian XML
XML adalah singkatan dari eXtensible Markup Language.
Extensible
             XML dapat diperluas atau ditambah. Kita dapat mendefinisikan elemen, urutannya, dan 
              bagaimana mereka diproses atau ditampilkan.
Markup
       XML memiliki tag atau elemen yang dapat didefinisikan sendiri elemen-elemen tersebut.
Language
       XML adalah sebuah bahasa seperti HTML.

2.       Manfaat XML
Dengan XML, informasi dapat dipisahkan dengan presentasi atau bagaimana dokumen ditampilkan. Dengan berkonsentrasi pada informasinya dan strukturnya maka informasi lebih mudah dibaca, dipahami, mengorganisasinya, dan mengecek kesalahannya. Manfaat XML yang lain adalah kemudahan dalam komunikasi data antara sistim dengan platform yang berbeda.
Misalnya berikut adalah kode XHTML dari web e-commerce:
                 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
           <head>
                <title>ABC Products</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           </head>
           <body>
                <h1>ABC Products</h1>
                <h2>Product One</h2>
                <p>Product One is an exciting new widget that will simplify your life.</p>
                <p><b>Cost: $19.95</b></p>
                <p><b>Shipping: $2.95</b></p>
                <h2>Product Two</h2>
                …..
                <h3>Product Three</h3>
                <p><i>Cost: $24.95</i></p>
                <p>This is such a terrific widget that you will most certainly want to buy
                one for your home and another one for your office!</p>
  ..…
           </body>
</html>
Jika ingin mengubah presentasi produk-produk di atas akan relatif sulit dikarenakan datanya telah termasuk di dokumen tersebut. Akan sulit untuk mentransformasikan ke presentasi lain. Selain itu terdapat ketidakkonsistenan dalam dokumen xhtml tersebut dimana untuk “Product Three” presentasinya di format dengan <h3>. Hal seperti ini susah untuk ditelusuri atau disadari. Dengan XML maka kemungkinan seperti itu dapat dikurangi dengan penggunaan CSS atau XSLT untuk menampilkan data di XML. Dokumen XML untuk produk-produk e-commerce tersebut dapat berupa:
 
       <?xml version="1.0"?>
       <productListing title="ABC Products">
           <product>
              <name>Product One</name>
              <description>Product One is an exciting new widget that will
                           simplify your life.</description>
              <cost>$19.95</cost>
              <shipping>$2.95</shipping>
           </product>
           <product>
              <name>Product Two</name>
              ……
           </product>
           <product>
              <name>Product Three</name>
              <description>This is such a terrific widget that you will
                           most certainly want to buy one for your home and another one
                           for your office!</description>
              <cost>$24.95</cost>
              <shipping>$0.00</shipping>
           </product>
           ……
          </productListing>

3.       Struktur XML
Layout dokumen XML terdiri dari pembuka (opsional) dan document body.
     Pembuka
            Menyediakan informasi mengenai dokumen XML. Terdiri dari deklarasi XML, komentar, 
            dan Document Type Definition (DTD) atau XML Schema.
Contoh:
<?xml version="1.0"?>
<!--The previous line contains the XML declaration -->
<!--The following document type declaration contains no subsets -->
<!DOCTYPE foo [
]>
<!--This is the end of the prolog -->
Document Body
Terdiri dari elemen dan isinya. Atribut dimungkinkan dalam suatu elemen.
Contoh:
                   <root>
              <element1>Some Content</element1>
              <element2 attr1="attribute value">More Content</element2>
           </root>
Dokumen XML dikatakan well-formed jika telah memenuhi aturan sintaks XML. Untuk mengetahui apakah dokumen XML well-formed dapat melalui aplikasi secara online maupun desktop. 
Seperti alamat:  “http://www.stg.brown.edu/service/xmlvalid” untuk validasi dokumen XML secara online. Untuk validasi lokal ada MSXML dari Microsoft, XML4J dari IBM, aplikasi Dreamweaver, dan sebagainya.

4.       XML Namespaces
XML Namespaces bertujuan untuk menghindari bentrokan antar dokumen akibat menggunakan nama elemen yang sama tetapi untuk data berbeda. Jadi elemen <title> untuk menyimpan judul buku dapat dibedakan dengan <title> untuk menyimpan gelar/titel nama seseorang.
Contoh:
            <inv:title>Build Your Own XML-Powered Web Site</inv:title>
<title>Title Deed to the house on 123 Main St., YourTown</title>
Namespaces membuat <inv:title> berbeda dengan <title>.

5.       XLST (Extensible Stylesheet Language Transformation)
Untuk merepresentasikan XML dapat menggunakan CSS. Berbagai pemformatan dapat dilakukan dengan CSS, seperti: membuat tulisan tebal, garis tepi, pewarnaan, dan pemilihan jenis font. Tetapi CSS tidak dapat melakukan transformasi teks seperti menambah label “Nama : ” sebelum elemen <name>. Oleh karena itu, dapat digunakan XLST. Ini berfungsi untuk mentranformasikan XML ke HTML, teks, atau ke XML yang lain.
Misalkan ada dokumen XML “mahasiswa.xml” dengan isi:
<?xml version="1.0"?>
<mahasiswa>
     <nama>Robby Hasan Pangaribuan</nama>
     <jk>Laki-laki</jk>
     <prodi>Informatika</prodi>
        </mahasiswa>
Diharapkan dokumen mahasiswa.xml ditampilkan sebagai berikut:
                   Nama : Robby Hasan Pangaribuan
                   Jenis Kelamin : Laki-laki
                   Program Studi : Informatika
Untuk presentasi tersebut dapat digunakan XLST. Dalam hal ini, presentasi menggunakan HTML.
Buat file “mahasiswa-html.xsl” dengan isi:
              <xsl:stylesheet version="2.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="html"/>
            <xsl:template match="/mahasiswa">
                <html>
                    <head><title>Mahasiswa</title></head>
                    <body><xsl:apply-templates/></body>
                </html>
            </xsl:template>
            <xsl:template match="nama">
                <b>Nama : </b><xsl:apply-templates/><br/>
            </xsl:template>
            <xsl:template match="jk">

                <b>Jenis Kelamin : </b><xsl:apply-templates/><br/>
            </xsl:template>
            <xsl:template match="prodi">
                <b>Program Studi : </b><xsl:apply-templates/><br/>
            </xsl:template>
    </xsl:stylesheet>
Tambahkan di dokumen mahasiswa.xml setelah deklarasi versi XML dengan baris sebagai berikut:
                <?xml-stylesheet type="text/xsl" href=" mahasiswa-html.xsl" version="1.0"?>
Bila dokumen XML mahasiswa.xml ditampilkan dibrowser hasilnya seperti berikut:





Dalam implementasi XSLT sering digunakan bersama-sama dengan XPath. Ini sering dilakukan jika presentasi yang ingin ditampilkan lebih kompleks seperti memerlukan selecting, matching, extracting, dan discernin. Pada dasarnya Xpath adalah teknologi  dengan tujuan sebagai bahasa untuk melakukan query terhadap dokumen XML.  

6.       DTD dan XML Schema
Dibutuhkan aturan khusus sehingga dokumen XML dapat digunakan pada berbagai aplikasi dan sistem bisnis. Ketika dokumen XML diminta oleh perusahaan, mereka telah memiliki suatu aturan khusus mengenai dokumen tersebut. Hal ini disebut konsistensi dan dapat menggunakan tool DTD atau XML Schema. XML yang well-formed belum tentu konsisten.
DTD (Document Type Definition)
DTD dapat diletak di dalam atau terpisah dari dokumen XML. Jika DTD ada maka XML Parser membandingkan isi dokumen dengan aturan yang dibuat oleh DTD.
Contoh:
                   <!DOCTYPE mahasiswa [
            <!ELEMENT mahasiswa (nama,jk,prodi)>
            <!ATTLIST nim
nim ID #REQUIRED
            >
            <!ELEMENT nama (#PCDATA)>   
            <!ELEMENT jk (#PCDATA)>
            <!ELEMENT prodi (#PCDATA)>
        ]>

 Ini artinya bahwa:
-          Baris pertama menunjukkan bahwa ini merupakan jenis dokumen mahasiswa
-          Baris ke-2  menunjukkan bahwa elemen dasar yaitu mahasiswa dan terdiri dari tiga elemen lain secara berurutan yaitu: nama, jk, dan prodi.
-          Baris ke-3 menunjukkan bahwa elemen mahasiswa harus memiliki atribut nim.
-          Baris ke-6 s.d ke-8 menyatakan bahwa isi ketiga elemen hanya berupa teks.
XML Schema
Diharapkan sebagai pengganti DTD yang telah lama dan disarankan oleh W3C. Tidak seperti DTD, bahwa dapat diletakkan dalam dokumen XML tersebut, XML Schema harus terpisah dengan dokumen XML-nya. Schema memiliki kelebihan dari DTD dalam hal penanganan tipe data yang lebih detail.
Contoh:
        <xsd:element name=”mahasiswa”>
            <xsd:complexType>
                <xsd:sequence maxOccurs=”unbounded”>
                    <xsd:element ref=”nama”/>
                    <xsd:element ref=”jk”/>
                    <xsd:element ref=”prodi”/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
        <xsd:element name=”nama” type=”xsd:string”/>
        <xsd:element name=”jk” type=”xsd:string”/>
        <xsd:element name=”prodi” type=”xsd:string”/>

7.       Teknologi Terkait
Ada beberapa teknologi terkait yang didasarkan pada XML seperti: XHTML, RSS dan Atom, dan WDDX. XML diprediksi akan semakin berkembang dikarenakan adanya kebutuhan untuk komunikasi data antar platform terutama semakin meningkatnya perangkat mobile dari berbagai platform.