Wednesday, March 18, 2009
Software Architecture Document : ????
Proses pembuatan SRS dilakukan di level business analyst dan juga sistem analyst di bawah project manager.
SRS selesai, maka akan dibawa ke bagian Architecture yang akan menyusun solusi sesuai dengan requirement yang telah dijelaskan di SRS.
Lanjutan pembuatan SRS ini berupa SAD (Software Architecture Document) yang dibuat oleh Arsitek dengan detail teknikal untuk supplementari bagi FDD.
Di dalam SAD, use case yang dicantumkan yang memiliki prioritas utama.
Berdasarkan referensi http://restama.com/wordpress/wordpress/wp-content/uploads/2009/01/software-documentation.rtf, menyebutkan bahwa SAD berisi tentang :
- Deskripsi tentang arsitektur sistem (decompotition modul)
- Deskripsi tentang arsitektur setiap program di dalam sistem (logical model)
- Deskripsi tentang pemilihan teknologi
RUP (Rational Unified Process) -> breakdown ke logical view (business), logical view (use case), dan physical view (ke arah coding).
RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML).
Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak.
Metode RUP merupakan metode pengembangan kegiatan yang berorientasi pada proses. Dalam metode ini, terdapat empat tahap pengembangan perangkat lunak yaitu:
- Inception
Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak(perancangan arsitektural dan use case).
- Elaboration
Pada tahap ini dilakukan perancangan perangkat lunak mulai dari menspesifikasikan fitur perangkat lunak hingga perilisan prototipe dari perangkat lunak.
- Construction
Pengimplementasian rancangan perangkat lunak yang telah dibuat dilakukan pada tahap ini. Pada akhir tahap ini, perangkat lunak versi akhir yang sudah disetujui administrator dirilis beserta dokumentasi perangkat lunak.
- Transition
Instalasi , deployment dan sosialisasi perangkat lunak dilakukan pada tahap ini.
http://sms.unikom.ac.id/taryana/download/metode_rup.doc
RUP ini menggunakan Rational Rose, yaitu sebuah tool untuk software design.
Dalam Wikipedia disebutkan bahwa cara kerja RUP itu didasarkan pada 6 kunci prinsip
bagi perkembangan bisnis yang terkendali yaitu :
1. Mengadaptasi proses
2. Menyeimbangkan prioritas dari para stakeholders
3. Melakukan kolaborasi antar tim
4. Mendemonstrasikan hasil-hasil yang ada secara berulang-ulang
5. Menaikkan level abtraksi dari sebuah software
6. Memfokuskan pada kualitas secara terus-menerus
Keuntungan penggunaan RUP adalah :
1. Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
2. Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
3. Mendukung proses pengulangan dalam pengembangan software.
4. Memungkinkan adanya penambahan-penambahan pada proses.
5. Memungkinkan untuk secara sistematis mengontrol perubahan-perubahan yang terjadi pada software selama proses pengembangannya.
6. Memungkinkan untuk menjalankan test case dengan menggunakan Rational Test Manager Tool
http://ang-dee.blog.friendster.com/2007/11/rup-rational-unified-process/
Rational Rose adalah tools yang memudahkan kita merancang dan menganalisis sistem dengan pendekatan yang berorientasi objek(object-oriented design and programming). Dimulai dari analisis domain masalah, business requirements, data model, function model, generate database & application code, sampai dengan menuliskan dokumentasi sistem; semuanya dilakukan secara otomatis oleh tools ini.
Setelah pembuatan sequence diagram, maka dibuat class diagram.
Wednesday, March 4, 2009
Model Incremental : Hmmmm.....
Beliau bercerita tentang process model yang dipakai selama pembuatan CIS tersebut, dengan menggunakan model incremental.
Selasa, 3 Maret 2009
Process model yang digunakan adalah model incremental.
analysis --> design --> code --> test (Delivery of 1st incremental)
analysis --> design --> code --> test (Delivery of 2nd incremental)
analysis --> design --> code --> test (Delivery of 3rd incremental)
Sebelum dipecah - pecah kedalam delivery tersebut, lebih baik ada gambaran besar dulu apa yang diinginkan atau yang dibutuhkan di dalam aplikasi tesebut secara general.
Biasanya untuk 1 kali incremental, harus menunggu sampai test dulu baru lanjut ke incremental selanjutnya.
Tetapi karena masalah SDM dan waktu, bisa saja setelah analysis dan design, langsung lanjut ke analysis level 2.
Di dalam incremental, kita memilah - milah cakupannya menjadi modul - modul yang lebih kecil. Misalnya bagian home --> modul sendiri, bagian update & delete --> modul sendiri, dst. Intinya harus sama, jangan sampai berubah dalam hal struktur data. Kalau sampai mengubah, maka mulai dari awal lagi. Dan itu harus dipertanyakan ketika analysis dan design. Oleh karena itu, biasanya analysis dan design membutuhkan waktu lebih lama. Untuk menambah atau mengurangi, tidak apa-apa.
Dalam requirement gathering, yang merupakan poin penting adalah prosesnya seperti apa. Dan sesuai dengan disiplin ilmu kita yaitu IT, sedikit banyak kita mengetahui prosesnya.
Dan di dalam dokumen SRS berisi tentang apa yang customer butuhkan dan functionality apa yang bisa kita provide.
=================================================================================================
Untuk membuat incremental, harus dibuat dulu framework nya. Contoh: database nya menggunakan apa, JSP nya bagaimana.
Tiap incremental harus ada core product atau base productnya.
Proses yang ada di incremental itu berupa analysis --> test.
Jika di generic process framework, dari communication --> deployment.
Contoh: di delivery of 1st incremental, membuat login page dari analysis sampai test. Setelah berhasil di TAG dulu yang kemudian menjadi base product dan statusnya menjadi login page v1.0. Apabila ada perubahan, maka statusnya menjadi login page v1.1, dst.
Incremental termasuk di dalam RAD (Rapid Application Development) yang semua prosesnya berdasarkan waktu.
Berdasarkan buku yang saya baca yang berjudul Software Process (oleh Umi Proboyekti, S.Komp, MLIS), RAD menekankan pada siklus pembangunan yang pendek/singkat. RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat dicapai dengan menerapkan component based construction. Waktu yang singkat adalah batasan yang penting untuk model ini.
Dan berdasarkan http://ega.staff.gunadarma.ac.id/Downloads/files/3254/PERANCANGAN_BAB+6.doc (oleh Ida Ayu Yulie Primashanti), Model incremental (Incremental waterfall model) merupakan perbaikan dari model waterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun software secara meningkat (increment) berdasarkan kemampuan fungsional. Model incremental ini diaplikasikan pada sistem pakar dengan penambahan rules yang mengakibatkan bertambahnya kemampuan fungsional sistem. Keuntungan dari model ini adalah bahwa penambahan kemampuan fungsional akan lebih mudah diuji, diverifikasi, dan divalidasi dan dapat menurunkan biaya yang dikeluarkan untuk memperbaiki sistem. Model incremental merupakan model continous rapid prototype dengan durasi yang diperpanjang hingga akhir proses pengembangan. Pada model prototipe biasa, prototipe hanya dibuat pada tahap awal untuk mendapatkan kebutuhan user.
CR management --> untuk menentukan berapa main desk.
Contoh: coding selama 4 bulan --> 4 x 20 hari kerja = 80 hari kerja.
80 hari kerja ini dilakukan oleh 2 orang, maka ada 80 x 2 = 160 main desk.
Jadi, dibutuhkan 160 orang per hari untuk menyelesaikan coding tersebut.
Bagaimana designer's product dapat dibaca oleh programmer?
Menggunakan RUP (Rational Unified Process) yang biasanya berupa UML. Hasilnya bisa berupa use case sampai sequence diagram.
Berdasarkan www.whatis.com, RUP membentuk empat tahap pembangunan, masing-masing yang diatur dalam sejumlah terpisah Iterasi yang harus memenuhi kriteria yang ditetapkan sebelum tahap berikutnya dilakukan: dalam tahap permulaan, developer menetapkan lingkup dari proyek dan bisnis kasus; di tahap elaborasi, developer proyek menganalisa kebutuhan secara lebih detail dan menetapkan nya arsitektur dasar; dalam tahap konstruksi, developer membuat aplikasi desain dan source code, dan dalam tahap transisi, developer deliver system ke penggunanya.
Dokumen SRS :
- data dictionary bisa dimasukkan, seperti database design.
Data dictionary menurut wikipedia, merupakan sekumpulan informasi tentang data seperti relationship dengan data lainnya, penggunaannya, original, dan formatnya. Dan istilah ini menyangkut dengan database dan sistem manajemen database (DBMS). Merupakan dokumen yang menjelaskan database, komponen dari DBMS yang diperlukan untuk menentukan struktur.
- content : semua yang berhubungan dengan requirement dan spesification
- template: free format tetapi mencakup semua content nya.
- tujuan : mengkonsolidasi requirement user ke vendor.
- bisa dimasukkan untuk capacity planning, merupakan proses penentuan kapasitas produksi yang dibutuhkan oleh sebuah organisasi untuk memenuhi permintaan untuk produknya. Tujuan adanya capacity planning adalah meminimalkan ketidakcocokan antara kapasitas developer dan kebutuhan user. Proses penentuan kapasitas in bervariasi bergantung pada perubahan yang ada dalam hasil produksi, apakah mengalami peningkatan atau penurunan dalam jumlah produksi atau membuat produk baru.
Friday, February 27, 2009
Requirement Engineering : What is that ?
Jika pernah, selamat!!
Jujur saja... saya belum pernah mendengar tentang Requirement Engineering. Saya pun juga tidak akan tahu jika saya tidak mengikuti mata kuliah Software Engineering semester ini. Dan dari mata kuliah tersebut, saya bisa mengetahui apa itu Requirement Engineering dan apa saja manfaatnya.
Selasa, 24 Februari 2009
Saya membaca dari referensi - referensi dari internet yang berkaitan dengan Requirement Engineering (RE). Salah satunya saya mendapatkannya di http://romisatriawahono.net/2006/04/29/menyegarkan-kembali-pemahaman-tentang-requirement-engineering/
Di sana disebutkan apa itu RE.
Requirements engineering adalah fase terdepan dari proses rekayasa perangkat lunak (software engineering), dimana software requirements (kebutuhan) dari user (pengguna) dan customer (pelanggan) dikumpulkan, dipahami dan ditetapkan.
Para pakar software engineering sepakat bahwa requirements engineering adalah suatu pekerjaan yang sangat penting.
Fakta membuktikan bahwa kebanyakan kegagalan pengembangan software disebabkan karena adaya ketidakkonsistenan (inconsistent), ketidaklengkapan (incomplete), maupun ketidakbenaran (incorrect) dari requirements specification (spesifikasi kebutuhan).
Jadi RE itu bermula dari customer yang memiliki sejumlah masalah di mana kita harus menganalisa apa yang customer inginkan. Menganalisa masalah tersebut dilakukan dengan sejumlah task yang dilakukan oleh project stakeholder.
Stakeholder adalah setiap orang yang mempunyai direct interest terhadap pembangunan sistem tersebut, dan stakeholder ini bisa dari pihak vendor atau client.
Di dalam proses menganalisa requirement ini pasti ada gap antara client dan project manager. Untuk mengatasi gap ini dibutuhkan IEENSVM (Inception, Elicitation, Elaboration, Negotiation, Specification, Validation, dan Management).
Setelah proses ini, maka akan dihasilkan sebuah work product yang terdiri dari user scenario, function atau feature list, dan analysis model specification.
Berdasarkan generic process framework, requirement engineering termasuk di bagian communication dan planning. Generic process framework ini sudah pernah saya jelaskan di Software Engineering : Why do We Need It ?
IEENSVM itu terdiri dari :
1. Inception
- Merupakan proses inisialisasi.
- Mendapatkan informasi seobjektif mungkin tentang tujuan dan pengaruh aplikasi
- Mengidentifikasi masalah stakeholder
- Viewpoints, Mengetahui perspektif terhadap aplikasi dari stakeholder
- Cllaborate, Crosscheck terhadap hasil analisa perspektif stakeholder
- 1st question, Merupakan pertanyaan basic kepada stakeholder.
Misalnya siapa yang membutuhkan aplikasi ini?
2. Elicitation
- Menarik informasi dari client supaya kita bisa membuat system requirement lebih lengkap baik dari segi bisnis dan teknis.
- Membagi - bagi requirement ke dalam functional dan non functional yang masing - masing dibagi - bagi ke dalam 3 kategori, yaitu conscious (bersifat pasti), unconscious (common sense), dan undreamed (relevan atau tidak).
- Dari requirement tersebut dibuat menjadi Requirement Matrix yang menggolongkan requirement ke dalam beberapa aspek yang terlibat, seperti security, core business, dll.
3. Elaboration
- Prinsipnya adalah menguraikan.
- Tahap ini akan menghasilkan data model, use case diagram, activity diagram, swimlane diagram, data flow diagram, state diagram, dan sequence diagram.
- Data model diagram adalah sesuatu yang memiliki deretan di atribut composite yang nantinya bisa dibuat relationship nya.
- Use Case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem.
- Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir.
- Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
- Perbedaan antar activity diagram dan swimlane diagram adalah swimlane merupakan activity diagram yang dibagi - bagi berdasarkan objek yang terlibat.
- State diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.
- Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.
- Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.
http://afif.web.id/kuliah/uml.ppt
4. Negotiation
- Menghasilkan win-win solution
- Bukan kompetisi, membuat orang percaya kalau mereka mendapatkan bagian yang paling besar.
- Strategy, ada banyak strategi yang harus dipersiapkan dan diperlukan apabila alternatif pertama tidak disetujui.
- Listen, kita perlu mendengar dari orang lain apa yang diinginkan.
- Other's interest, peka untuk melihat kepentingan yang melatarbelakangi.
- Bukan personal, semua saran dan kritik jangan dihadapi secara personal.
- Creative, kreatif dalam memberikan solusi.
- Commit, komitmen dengan hasil negosiasi yang sudah ditetapkan.
5. Spesification
- Menghasilkan Software Requirements Specification
- Menjelaskan WHAT bukannya HOW.
- Harus hati - hati terhadap assumption dan scope. Kita harus menuliskan semua asumsi yang ada dan memberikan batasan yang jelas terhadap pekerjaan kita.
- Clien yang bertanggung jawab terhadap project ini harus menandatangani SRS ini.
6. Validation
- Consistent role-role nya
- Abstraction, penyaringan informasi harus benar
- Necessary, memasukkan data yang benar-benar dibutuhkan saja
- Unambigous, tidak perlu memasukkan kata-kata yang mendua arti yang membingungkan
- Partitioned, dikelompokkan
- Conflict, apakah kelompok-kelompok yang dihasilkan di partition mengalami konflik
- Mapping, apakah ada fungsi (terutama yang fuctioned) bisa diterjemahkan ke dalam fungsi aplikasi
- Testable, apakah bisa ditest
- Achievable, mungkin atau tidak dikerjakan
- Attribution, siapa saja yang minta requirement
7. Management
- Menghasilkan traceability table
- Membantu untuk dependency, features, subsystem, source, dan interface
- Table nya hampir sama dengan Requirement Matrix, yang sama - sama terdiri dari requirement yang dikelompokkan ke dalam aspect-aspect.
Selain itu, saya juga belajar tentang Business Letter. Business letter itu digunakan untuk menjelaskan suatu tujuan (purpose) dan sebagai record, bukti jika sewaktu - waktu dibutuhkan.
Di dalam business letter terdapat subject (apa yang ditulis), audience (untuk siapa), purpose (kenapa ditulis), dan style / organization (bagaimana menulis).
Bagian - bagiannya adalah : state the point (tujuan secara general), explain (menjelaskan lebih detail tujuan menulis), dan conclude,request acion, atau thanks for response.
7 Gaya menulis business letter ini :
- Conversational
- Clear
- Concise
- Complete
- Concrete
- Constructive
- Correct
Jadi, untuk menulis sebuah business letter itu tidak boleh sembarangan. Ada aturan - aturannya bagaimana menyusun sebuah business letter yang baik sehingga pembaca dapat mengerti maksud dan tujuan kita menulis business letter tersebut.
Resources :
http://afif.web.id/kuliah/uml.ppt
http://romisatriawahono.net/2006/04/29/menyegarkan-kembali-pemahaman-tentang-requirement-engineering/
Wednesday, February 18, 2009
Software Engineering : Why do we need it ?
Kuliah Software Engineering pada pertemuan ini mengajarkan banyak hal yang belum pernah saya ketahui sebelumnya. Kuliah kali ini banyak mengajarkan apa itu Software Engineering dan process model apa saja yang bisa digunakan selama kita mengerjakan sebuah project.
Hal pertama yang dipelajari adalah Software evolution. Software evolution adalah istilah yang digunakan oleh Software Engineering dalam mengembangkan sebuah software sebagai proses awal dalam mengembangkan produk. Software evolution itu terdiri dari :
- system
- application
- engineering/scientific
- embedded
- product-line
- web
- AI
Ada sebuah pernyantaan, "Software is engineered". Apa maksud pernyataan tersebut?
Software harus direkayasa karena software biasanya akan dicustom untuk memenuhi kebutuhan dan permintaan konsumen.
Kemudian ada pertanyaan, "Why do IT solution company exist?"
Perusahaan IT tetap exist karena pasar IT ada sehingga tetap dibutuhkan oleh konsumen.
Selanjutnya ada pernyataan "Consistent but flexible software", apa maksud dari pernyataan itu?
Konsisten supaya hasilnya senantiasa tetap sampai kapanpun. Jika tampilannya bagus tapi tidak konsisten, maka konsumen akan bingung. Flexible untuk memenuhi kebutuhan custom tadi sehingga dapat memenuhi kebutuhan konsumen dalam modifikasi.
Ada juga pernyataan "Software Engineering is project", lalu apa maksudnya? Mengapa disebut sebagai project?
Supaya sistematis karena project memiliki planning, tujuan, role, determination of ending jelas. Ending harus ada agar terlihat tujuan akhir dari project itu.
Lalu siapakah yang termasuk dalam software engineering?
Bisa project manager dan stakeholders.
Dalam project membuat software pasti akan ada event - event yang bisa terjadi saat mengerjakan project tersebut di antaranya :
- Account manager is having dinner with the client
- Kick-off-meeting
- Project's duration is estimated on 140 man/day
- Billing statement will be sent to customer's email in PDF file, max size 512KB each, secured by customer's birthdate (ddMMyyyy) as user level password
- The system must be able to handles 200 online user concurrently, the respond time not more than 4 seconds each.
- SRS document approved by client
- Business users review the UAT scenario document
- Solution architect decides to use Java platform
- Technical architect meets third parties to consolidate the interface spesification
- Every transaction record will be submitted to EAI asynchronously. Call-back mechanism will be provided for the party to inform the process result status.
- In order to support the estimated business growth at 100 new customers/month and 250 transactions/day, HDD 120 GB
- FDD is getting reviewed
- An application framework has been chosen. Function implementation are now being made
- Passing value "29-02-2008" into due date field
- A front-liner reported that she was unable to see the invoice record she just entered
- Deploy the new application to production environment
- Run the regression test scripts
- A clinet's customer called, she received monthly usage repot that was not hers
- MIS manager contacts PM to have an enhancement on user administration module
- Project manager meets the client to sign hand-over document
Di Software Engineering ada istilah SDLC. Apakah SDLC itu? SDLC bisa berupa :
- Software Development Life Cycle
- System Development Life Cycle
- System Design Life Cycle
Dalam mengerjakan sebuah project pembuatan software dibutuhkan Process Model. Apakah itu process model dan mengapa kita membutuuhkan Process Model itu?
Process Model itu dibutuhkan karena yang akan dibuat unique sehingga membutuhkan langkah - langkah kerja dalam project yang didesain sesuai pengguna.
Selain itu ada Generic process framework:
- communication
- planning
- modeling
- construction
- deployment
Beberapa jenis Process Model adalah :
1. waterfall : model klasik yang bersifat sistematis, berurutan dalam membuat software. Jadi fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Jika tidak, maka bisa mengalami kesulitan dalam mengakomodasi perubahan setelah proses dijalani.
2. incremental RAD (Rapid Application Development) : menekankan pada siklus pembangunan yang pendek atau singkat yang mengadopsi model waterfall dan pembangunan dalam waktu singkat dapat dicapai. Waktu yang singkat adalah batasan yang penting untuk model ini.
3. evolutionary prototyping : Kadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil input, proses atau detil output. Di lain waktu mungkin dimana tim pembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi model prototyping sangat membantu proses pembangunan software.
4. evolutionary spiral : Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya.
5. evolutionary concurrent development : proses pembuatan software dilakukan secara bersama - sama berbarengan dengan semua departemen yang bekerja pada proyek sama dan dalam waktu yang sama sehingga proyek dapat selesai dengan cepat
6. unified (inception-inisialisasi, elaboration, construction, transition, product) : metode yang digunakan untuk menentukan, memvisualisasikan, membuat sebuah dokument bagan software dengan object oriented.
7. agile XP : model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Suatu model yang menekankan pada keterlibatan user secara langsung dan pengujian.
8. agile ASD (adaptive software development) : proses membuat software yang menggantikan waterfall dengan menambahkan proses spekulasi, kolaborasi antar semua pihak, dan team cycle. Karakteristik dari ASD ini adalah fokus pada misi yang ingin dicapai, feature based, iteartive, risk driven.
9. agile scrum : sekelompok orang kerja keras untuk menyelesaikan projek
10. agile FDD (Feature Driver Development) : feature based yang digunakan untuk mengukur kemajuan yang telah dicapai pada setiap fitur yang telah ditetapkan. Sehingga ini juga membutuhkan kerja keras yang tinggi.
Kemudian ada juga AGILE PROCESS. Apakah itu AGILE PROCESS?
Agile Process berasal dari kata Agility yang berarti dapat merespon keinginan pasar dengan cepat.
Bagaimanakah perubahan yang terjadi dari cara Konvensional ke Agile?
- processes & tools --> individuals & interactions
- comprehensive documentation --> working software
- contract negotiation --> customer collaboration
- following a plan --> responding to change
Dari pertemuan kuliah Software Engineering kali ini, saya menarik kesimpulan. Bahwa membuat sebuah project, sebelumnya kita harus menetapkan bagaimanakah proses yang akan dijalani sehingga kita dapat menjalankan pekerjaan dengan baik dan dapat meminimalisasi hambatan - hambatan.
Resources : lecturer.ukdw.ac.id/othie/softwareprocess.pdf
Thursday, December 18, 2008
Regional Kick Off IAP with Cisco and Senada
Hari berlangsungnya Regional Kick Off IAP yang dilaksanakan pertama kali di Universitas Ciputra Surabaya pada tanggal 18 Desember 2008.
Acara ini dihadiri oleh 25 mahasiswa dari ITS, UK Petra, dan Universitas Ciputra Surabaya yang sebelumnya sudah mengikuti acara IAP Boot Camp di Bogor pada tanggal 24-28 November 2008 yang lalu.
Program IAP yang disponsori oleh Cisco, Senada, dan USAID bertujuan untuk membantu UKM dalam mengintegrasikan perusahaan dengan informatika yang dapat membantu dalam meningkatkan efektifitas perusahaan. Setelah itu, peserta IAP Boot Camp ini akan ditempatkan di beberapa SMB (Small Medium Business) yang tersebar di Jakarta, Yogyakarta, dan Surabaya.
Surabaya menjadi tempat pertama diadakannya acara ini, tepatnya di Universitas Ciputra. Setelah menunggu-nunggu, akhirnya mahasiswa peserta IAP ini mengetahui apa dan bagaimana perusahaan yang akan mereka tangani (termasuk saya,hehehehehe...)
Saya merasa bangga bisa ikut berpartisipasi dalam program ini dimana saya pastinya mendapatkan pengetahuan lebih banyak dan pengalaman kerja dengan terjun ke lapangan langsung. Wow... Saya akan berusaha untuk memberikan yang terbaik sesuai dengan kemampuan saya dan saya akan belajar lebih banyak lagi untuk memberikan hasil yang terbaik juga.
Selamat berjuang juga untuk teman-teman IAP yang lain!!!
Semangat!!!!
Thursday, December 11, 2008
Oracle 10g
Fitur yang ada di Oracle 10g memberikan keuntungan dalam gridnya yaitu Real Application Clusters (tidak semuanya baru tetapi lebih berkembang dibandingkan Oracle 9i), Automatic Storage Management (ASM) lebih baru, Oracle Streams dan Oracle Resource Manager (yang lebih berkembang dibandingkan dengan Oracle 9i).
Oracle Database 10g merupakan database yang pertama kali didesain untuk aktivitas Enterprise Grid Computing. Oracle Database 10g mampu untuk memotong biaya operasional sembari memberikan service yang berkualitas tinggi. Dia mampu untuk secara cepat merespon terhadap kebutuhan bisnis dengan risiko yang rendah. Selain itu produk ini juga sangat mudah untuk dideploy dan juga dipelihara.
Fitur Oracle 10g secara garis besar dapat dibagi menjadi 5 kategori, yaitu:
1. Manageability / automation – lebih menghemat waktu ketika melakukan beberapa pekerjaan rutin sehingga waktunya lebih banyak dihabiskan untuk strategic task. Terdiri dari:
- Infrastruktur dalam kemampuan mengatur hal-hal yang umum.
- Tempat penyimpanan yang lebih besar.
- Space Management.
- Membetulkan human error (termasuk flashback database).
2. Availability, yang terdiri dari:
- Recovery melalui resetlogs
- Backup dan recovery
- Data guard
- Redefinition secara online
- LogMiner
3. Performance, yang terdiri dari:
- Resource manager
- Wait interface
- Testing aplikasi end to end
- SQL tuning advisor
4. Business Intelligence / Data Warehousing, yang terdiri dari:
- Dapat merefresh material dan rewrite query.
- Capture perubahan data asynchronous
5. Application Development yang terdiri dari:
- SQL, PL/SQL dan SQL *Plus
- PL/SQL package
Oracle Enterprise Manager (OEM) juga dikembangkan dalam Oracle 10g. OEM ini berbasis web yang dapat mengeliminasi kebutuhan untuk menginstal aplikasi terpisah untuk mengakses OEM console dan ini berarti consolenya dapat diakses dari web via EM2GO dari PDA. OEM juga menyediakan fungsi administrasi secara keseluruhan dan memonitor setelah pembuatan database.
Beberapa fitur yang dikembangkan adalah data type, SQL, SQL *Plus, iSQL *Plus, PL/SQL, Java dan XML.
Sejak pertama kali diluncurkan, Oracle LOB (Large Object) dibatasi sampai 4GB. Oracle 10g memperbolehkan LOB data yang dibatasi oleh ukuran dari tablespace. Limit ukurannya 8 – 12 terabytes dan environment yang mendukungnya adalah PL/SQL menggunakan DBMS_LOB, Java menggunakan JDBC, C/C++ menggunakan OCI.
Oracle 10g menambahkan SQL statements seperti: ALTER DISKGROUP, CREATE DISKGROUP, DROP DATABASE, DROP DISKGROUP, FLASHBACK DATABASE, FLASHBACK TABLE, PURGE. Oracle 10g menghilangkan SQL statement yaitu CREATE TEMPORARY TABLESPACE dan memodifikasi 119 statement.
Oracle 10g menambahkan 2 perubahan terhadap statement ALTER SYSTEM. Ketika melakukan testing dan tuning statement, nilainya akan dikembalikan oleh tuning tool yang berakibat pada aksi dari Oracle shared SQL dan buffer cache nya. Oleh karena itu dibutuhkan ALTER SYSTEM FLUSH BUFFER_CACHE dan ALTER SYSTEM FLUSH SHARED_POOL yang seharusnya digunakan hanya test system.
Oracle 10g Release 1 meningkatkan bantuan untuk XML data dan XMLtype datatype meliputi: ekspor atau impor bantuan, SQL *Loader membantu untuk data XML yang terstruktur dan tidak terstruktur, bantuan DBMS_AQ dan globalisasi, C dan C++ API membolehkan modifikasi XML, DBMS_XMLGEN membolehkan mematikan “pretty print”, query hierarki (CONNECT) via DBMS_XMLGEN.newContextFromHierarchy, dan evolusi schema via DBMS_XMLSCHEMA.
Oracle 10g Release 2 meningkatkan kemampuan XML dengan XMLtype didukung penuh Java, C, dan C++, mendukung XSLT 2.0 dengan fungsi dan operator XPath, builtin XML meliputi JAXB compiler dan XQuery, XMLQUERY dan XMLTABLE mendukung XQuery, proses XPATH meningkatkan kecepatan, fungsi UpdateXML() digabungkan dengan InsertXML(), AppendChildXML(), InsertXMLBefore(), dan DeleteXML(). XMLQUERY membuat XML, query XML dan menghubungkan data dengan XQuery, XMLTABLE membentuk tabel relational dan kolom dari hasil XQuery.
XML Publisher adalah tool yang sangat powerful yang membolehkan dalam pembuatan laporan yang standardisasi yang terdiri dari data Oracle (dan lainnya) lebih cepat dan mudah. XML Publisher ini mendukung: pembuatan laporan dan menstandardisasi laporan, laporan, data, dan template translation, cocok untuk file regular, XML files, dan database data, online report editor, query builder, dan analyzer, dan sebagainya.
Insert, update, delete, dan merge ditambahkan dengan ERROR logging berguna untuk mengetahui DML error dan me-lognya.

Oracle 10g juga menyediakan package PL/SQL untuk membuat table logging yang dibutuhkan untuk table yang akan dilogged.
execute DBMS_ERRLOG.CREATE_ERROR_LOG(‘myemp’, ‘myemplog’);
- myemp: table DML yang akan digunakan
- myemplog: logging table
Oracle 10g juga mengoptimasi Dual table dan mengimplementasi sebuah operasi yang disebut dengan fast dual dengan akses yang lebih cepat.
select sysdate from dual;
File login.sql dan glogin.sql secara otomatis dieksekusi ketika masuk ke SQL *Plus. Selain itu, juga dapat dieksekusi melalui perintah CONNECT.
SQL *Plus juga menyediakan sebuah fasilitas bagi object yang sudah dihapus yang sama dengan recycle bin.
show RECYCLEBIN;
kemudian, salah satu statement SQL akan dieksekusi:
PURGE table xx|index yy|recyclebin|tablespace zz;
FLASHBACK TABLE xxx TO BEFORE DROP;
Oracle juga telah merilis SQL Developer yang dapat digunakan dengan bebas dan ini juga mempunya banyak fitur dan mendukung Oracle 10g juga. SQL Developer adalah sebuah aplikasi yang berbasiskan Java GUI dan dapat digunakan di Windows, Unix, dan Linux. Sama dengan SQL *Plus yang powerful tanpa install Oracle client, software yang in tuitif, menyediakan fitur yang biasanya ditemukan di software thid-party yang cukup mahal yaitu: GUI yang dapat melihat-lihat database object, debug komplit dengan breakpoint, eksekusi query, laporan database, dan banyak koneksi.
Oracle 11g
Setelah merilis Oracle 10g beberapa waktu lalu, kini Oracle kembali meluncurkan produk terbarunya yakni Oracle Database 11g Entreprise Edition. Oracle Database 11g Entreprise Edition ini memberikan performance, memiliki skala tertentu (scalability), security, dan kehandalan (reliability) dalam pemilihan cluster atau single server yang dapat berjalan di sistem operasi Windows, Linux, dan Unix. Oracle Database 11g Entreprise Edition juga menyediakan fitur luas untuk mengatur proses transaksi yang sering diminta, business intelligence, dan aplikasi manajemen content.
Oracle Database 11g Entreprise Edition datang dengan range pilihan untuk memperluas database No. 1 di dunia untuk membantu meningkatkan pertumbuhan bisnis user dan performance user, security, dan tingkat layanan yang diharapkan.
Keuntungan menggunakan Oracle Database 11g Enterprise Edition:
- Melindungi server yang error atau gagal, situs yang gagal, human error, dan mengurangi downtime.
- Mengamankan data dan pemenuhan row-level keamanan yang unik, auditing yang baik, enkripsi data transparan dan total recall data.
- Data warehousing performance tinggi, proses analitik online, dan data mining.
- Pengaturan yang mudah untuk semua informasi lifecycle database yang terbesar.
- Perlindungan investasi dalam pengembangan skill dengan integrasi antara Oracle Database dan Microsoft Visual Studio .NET.
- Pengamanan yang kuat dengan fitur Oracle yang mendukung Windows native security dan Active Directory.
- Mendukung prduktivitas end-user dengan memanfaatkan aplikasi Microsoft Office dan aplikasi Oracle.
- Mendorong performance kelas Enterprise, kehandalan, dan scalability dengan Oracle 11g dan Real Application Cluster.
Oracle Database 11g membuat penggunaan Oracle di Windows dan .NET lebih mudah, cepat, dan lebih efektif biaya. Oracle Database 11g menyediakan nilai yang besar dengan harga yang rendah pada platform Windows. Oracle Database 11g lebih mudah dan lebih hemat biaya dibandingkan dengan Microsoft SQL Server. Produk Oracle Database 11g merupakan standard terbuka dan support di sebuah range platform, tool pengembangan, dan bahasa.
Dalam Oracle Database 11g ini terdapat perbaikan kinerja yang signifikan terhadap XML DB. Melalui fitur ini, kita kemungkinan bisa menyimpan dan memanipulasi data XML dalam bentuk aslinya. Dukungan untuk binary XML telah ditambah dan memberi kita pilihan penyimpanan XML yang sesuai dengan aplikasi dan syarat kinerja yang diinginkan. XML DB juga dapat memanipulasi data XML menggunakan antarmuka standard industri dengan dukungan untuk XQuery, Java Specification Requests (JSR)-170, dan standard SQL/XML.
Selain itu di Oracle Database 11g terdapat fitur change management yang dibantu oleh Real Application Testing. Ini sangat membantu untuk mengurangi resiko dari perubahan-perubahan dengan memperbolehkan produksi workload dicapture dan diulang lagi pada sebuah test system untuk menentukan akibat terbesar terhadap perubahan software atau hardware. Dan fitur ini disebut juga replay workload.
ASM (Automatic Storage Management) telah ditingkatkan untuk membuat software mirroring lebih cepat dan ADDM (Automatic Database Diagnotic Monitor) telah dibuat cluster yang memperhatikan dan mendeteksi jika ada masalah interkoneksi dan global input output.
Beberapa hal yang dikembangkan di Oracle 11g adalah environment berubah, XML, SQL statement yang baru, fitur baru di PL/SQL, Java, JDBC, dan SQLJ, dan perkembangan Pro* dan OCI. Fitur dari Oracle 11g yang berbeda dengan Oracle 11g adalah:
- Sudah tidak ada iSqlPlus dan SQLPLUS (tetapi SQL *Plus dan SQL Developer masih ada).
- Virtual Columns
- XML DB Binary XMLTYPE
- SQL Pivot/Unpivot
- REGEXP_COUNT
- PL/SQL compiler
- Sequence number di PL/SQL
- PL/SQL CONTINUE
- Trigger yang dikembangkan
- JDBC driver yang support Java 5(1.5) & 6
Pada Oracle 11g sudah tidak disertakan iSQL *Plus dan tidak ada lagi versi windows dari SQL *Plus (sqlplusw.exe). Tetapi, Oracle 11g masih ada SQL *Plus (command line) dan support Oracle SQL Developer yang merupakan mekanisme yang disarankan untuk pembuatan PL/SQL. SQL *Plus sudah dikembangkan untuk berhubungan dengan data BLOB, CLOB, dan BFILE secara lebih efektif.
Oracle terkenal dengan XML nya dan ini masih diteruskan sampai Oracle 11g dan perubahan terbesar adalah penambahan binary XML yang baru. Binary XML ini metode ketiga untuk menyimpan data XML ke dalam database. Type XML yang terstruktur dan tidak terstruktur juga masih didukung. Processor XML milik Oracle 11g terdiri dari encoder dan decoder binary XML dan token manager. Text XML 1.0 kemungkinan diuraikan oleh SAX dengan atau tanpa korespondensi schema ke form binary XML. Binary XML ini mengoptimasi beberapa aplikasi XML dengan mengurangi memory dan CPU expense.
Oracle 11g menyediakan mekanisme yang baru dan lebih aman dan juga lebih cepat untuk menyimpan Large Objects (LOB) misalnya data XML. Spesifikasi LOB dapat CREATE TABLE atau ALTER TABLE termasuk STORE AS SECUREFILE. SECUREFILE menyediakan enkripsi dan kompresi untuk LOB ini. Oracle 11g akan mendeteksi duplikasi LOB dan mengatur supaya space yang digunakan lebih hemat dengan menyimpan satu copy (“de-duplication” jika SECUREFILEnya dispesifikasi). PL/SQL dan OCI telah ditambahkan untuk mengambil keuntungan dari SECUREFILE LOB ini dan SECUREFILE LOB juga menyediakan performance tinggi melalui mengurangi ukuran dan pemakaian resource yang terlalu banyak.
Oracle 11g juga merilis virtual column yang memperoleh nilainya dengan mengevaluasi sebuah ekpresi yang kemungkinan menggunakan column dari table yang sama, konstanta, dan function call (fungsi yang telah didefinisikan oleh user atau fungsi SQL). Virtual column ini juga bisa digunakan untuk mengeliminasi beberapa view, mengontrol partisi table (perlengkapan DBA), dan mengatur binary XML yang baru dan virtual column ini juga di indexkan.

- VIRTUAL tidak diharuskan untuk dituliskan tetapi untuk menambah kejelasan.
Oracle 11g juga membolehkan spesifikasi Virtual Column dengan ALTER TABLE.
Salah satu fitur terbaru dari Oracle 11g ini adalah PIVOT clause yang ditambahkan di statement SELECT. Menambahkan PIVOT ke SELECT statement ini untuk memperbolehkan rotasi rows ke column ketika menampilkan agregasi untuk membuat query cross tabulasi. Ketentuan PIVOT adalah computer aggregation yang mengikutsertakan GROUP BY semua columns dalam PIVOT dan output dari semua grouping column seharusnya diikuti oleh new column yang degenerated oleh PIVOT.
UNPIVOT juga menampilkan akitivitas yang sama tetapi mengubah column menjadi ROWS bukan meng-undo apa yang telah dilakukan oleh PIVOT. Sebelumnya hanya developers yang handal yang bisa menggunakan PL/SQL dan atau CASE untuk menerima hasil PIVOT sebelumnya, tetapi sekarang ini merupakan bagian dari SQL standard milik ORACLE.
Contoh PIVOT:

Oracle 11g juga merilis function yang baru, yaitu: CUBE_TABLE yang mengektrak 2 tabel dimensi dari sebuah cube atau dimensi, XMLCAST untuk meng-casting XML ke type data SQL, XMLEXISTS menjelaskan jika XQuery mereturn value, XMLDIFF yang digunakan untuk membandingkan 2 type dokumen XML, dan XMLPATCH yang digunakan untuk patch sebuah dokumen XML.
Perubahan PL/SQL dalam Oracle 11g sangat menarik perhatian banyak developer. PL/SQL telah dikembangkan dengan memasukkan semua type XML, BLOB, Regular Expression, dan function yang lainnya ditambahkan di SQL. Dan peningkatan performa ini dilakukan oleh complier dan membuat type data PL/SQL menjadi lebih baru. Penggunaan sequence number menjadi lebih mudah. “continue” ditambahkan untuk mengontrol loop dan syntax CALL telah ditingkatkan. Di rilis sebelumnya, compiler dari PL/SQL menggunakan sebuah standalone C compiler. Tetapi, sekarang Oracle 11g menyediakan sebuah compiler yang disediakan langsung untuk mengeliminasi kebutuhan compiler yang berbeda-beda.
Oracle 11g menambahkan 3 tipe data PL/SQL baru, yaitu Simple_integer, Simple_float, dan Simple_double. Tiga tipe data baru ini memberikan keuntungan berupa kompilasi asli yang menyediakan fungsi arithmetic dengan lebih cepat melalui implementasi hardware secara langsung. SIMPLE_INTEGER menyediakan binary integer mulai dari -2147483648 sampai 2147483647 dan selalu NOT NULL. Sama dengan SIMPLE_INTEGER, SIMPLE_FLOAT dan SIMPLE_DOUBLE juga menyediakan floating point tanpa null atau overflow.
Contoh SIMPLE_INTEGER:

Jika variabel “mytestvar” diganti menjadi PLS_INTEGER, maka sebuah eksepsi ORA-1426 NUMERIC OVERFLOW akan keluar.

Sequence dengan NEXTVAL dan CURRVAL digunakan juga di dalam statement PL/SQL .
myvar := myseq.nextval;

Fitur lainnya adalah REGEXP_COUNT yang menhitung jumlah berapa kali pattern yang ada muncul dalam sebuah string.

REGEXP_COUNT merupakan string expression dan atau column untuk menyamakan pattern dan merupakan pola Regular Expression dan posisi mula dalam source string dengan default = 1. Parameternya berupa i = case insensitive, c = case sensitive, m= multiple line yang dibatasi dengan ‘^’ atau ‘$’, n= matches ‘.’ newline character dengan default = no, dan x = mengabaikan whitespace character.
PL/SQL memperbolehkan parameter function dan procedure dispesifikasikan menjadi 2 jalur berdasarkan position dan namanya. Dengan Oracle 11g, tipe parameter dapat disatukan.

Dan call statement sekarang dapat digunakan.
