Jumat, 27 April 2012

pengantar UML ...




UML adalah singkatan dari Unified Modeling Language, yaitu suatu notasi pemodelan aplikasi perangkat lunak. Schach[1] menegaskan bahwa UML merupakan bahasa bukan metode. Sebagai bahasa, UML digunakan untuk mendeskripsikan perangkat lunak yang dikembangkan dengan berbagai pradigma pengembangan perangkat lunak dan metodologi. Pendapat Schach[1] didukung oleh Sommerville[2] dan Pressman[3].  

Dennis, Wixom dan Tegarden[4] mendukung pendapat bahwa UML merupakan kumpulan standar pemodelan dengan menggunakan diagram, dimana UML bertujuan untuk menyediakan kosa-kata dari paradigma pengembangan sistem berorientasi obyek guna memodelkan semua tahapan dari daur hidup pengembangan perangkat lunak. Bentley dan Whitten[5], mendukung pemahaman bahwa UML merupakan kumpulan alat pemodelan yang disepakati bersama untuk menjelaskan sistem perangkat lunak. Hal serupa dikemukakan oleh Kendall dan Kendall[6].

Fowler[8] memberikan definisi yang sederhana bahwa UML merupakan kumpulan notasi grafis, yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi obyek. UML merupakan standar yang relatif terbuka yang diatur oleh Object Management Group (OMG), sebuah konsorsium terbuka. OMG berfungsi untuk membuat standar-standar yang mendukung interoperabilitas sistem yang berorientasi objek. Versi terakhir dari UML adalah UML ver 2.0[9].

Menurut Kruchten[10], UML adalah bahasa grafis untuk visualizing, specifying, constructing and documenting setiap artifak dari sistem perangkat lunak.
UML mendukung The 4+1 View Model of Architecture, yakni 
1) The Logical View, 
2) The Implementation View, 
3) The Process View dan 
4) The Deployment View ditambah dengan 
5) The Use Case View.

Lihat Gambar dibawah ini tentang pemetaan UML pada Architecture Model Perangkat Lunak:

Model merupakan representasi lengkap dari sistem perangkat lunak, sedangkan arsitektur merupakan fokus pandangan pada bagian-bagian tertentu dari sistem perangkat lunak. Atau dapat dikatakan arsitektur sistem merupakan cetak-biru aplikasi. Keterhubungan model dan arsitektur sistem perangkat lunak, digambarkan oleh UML.

Tool Yang Mendukung UML
Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa diantaranya adalah:
Rational Rose (www.rational.com)
Together (www.togethersoft.com)
Object Domain (www.objectdomain.com)
Jvision (www.object-insight.com)
Objecteering (www.objecteering.com)
MagicDraw (www.nomagic.com/magicdrawuml)
Visual Object Modeller (www.visualobject.com)
Data seluruh tool yang mendukung UML, lengkap beserta harganya (dalam US dolar) bisa anda pelajari di situs http://www.objectsbydesign.com/tools/umltools_byCompany.html .
Disamping itu, daftar tool UML berikut fungsi dan perbangingan kemampuannya juga dapat dilihat di
http://www.jeckle.de/umltools.htm.


Referensi Site UML
Sebagai referensi dalam mempelajari dan menggunakan UML, situs-situs yang merupakan pointer
penting adalah:
http://www.cetus-links.org/oo_uml.html
http://www.omg.org
http://www.omg.org/technology/uml/
http://www.rational.com/uml
http://www.uml.org/


Tulisan lainnya tentang UML dapat ditemukan disini

Sumber Acuan
[1] Schach, Object Oriented Software Engineering, 8th Ed, McGrawHill, 2008. 

[2] Sommerville, Software Engineering, 8th ed, Pearson Education Limited, 2007
[3] Pressman, Software Engineering, A Practitioner’s Approach, 6th ed, McGrawHill, Singapura, 2005.
[4] Dennis, Wixom and Tegarden, System Analysis and Design with UML, An Object-Oriented Approach, 3dh ed, John Wiley & Sons, International Student Edition, 2010.
[5] Bentley and Whitten, System Analysis and Design for the Global Enterprise, 7th ed, McGrawHill International Edition, 2007.
[6] Kendall and Kendall, System Analysis and Design, 7th ed, Pearson Prentice Hall, 2007.
[7] CMMI Product Team, CMMI® for Development, Version 1.3, Improving processes for developing better products and services, November 2010, TECHNICAL REPORT CMU/SEI-2010-TR-033 , ESC-TR-2010-033, Software Engineering Process Management Program, Unlimited distribution subject to the copyright. http://www.sei.cmu.edu.
[8] Martin Fowler, UML Distilled, A Brief Guide to the Standard Object Modelling Language, 3th ed, Pearson Education, 2004.
[9] www.uml.org., Unified Modelling Language: Superstructure Version 2.0, ptc/03-08-02.
[10] Philippe Kruchten, The Rational Unified Process An Introduction, 3rd ed, Pearson Education, 2004.



draft Analisa dan Perancangan Sistem Informasi e-Direktori Pariwisata


RANCANGAN ANALISA SISTEM
e-Direktori Pariwisata Sulawesi Utara

Perancangan analisa sistem merupakan suatu kegiatan yang berisi proses analisis dan perancangan aplikasi. Tujuan aktivitas ini adalah untuk mengimplementasikan semua objek dan proses dalam tahap analisis menjadi karakteristik yang dikenali computer:
1. Tujuan Sistem
Tujuan utama pembuatan sistem ini adalah sebagai alat bantu bagi wisatawan, dan khususnya pengelola hotel atau kuliner, baik perorangan maupun organisasi.
2. Analisa Kebutuhan Sistem
e-Direktori Pariwisata Sulawesi Utara (SIP) diharapkan dapat memenuhi beberapa kebutuhan yang terkait dengan pemanfaatan potensi pariwisata provinsi Sulawesi Utara. Kemampuan yang dapat diberikan oleh SIP ini berupa:
1. Sebaran lokasi hotel dan kuliner.
2. Informasi atribut hotel dan kuliner
3. Informasi jalur angkot yang melewati lokasi hotel dan kuliner
4. Informasi terkait lainnya
2.1 Analisa Perangkat Lunak
Pada perancangan sistem informasi Posisi ini, perangkat lunak yang digunakan adalah Macromedia DreamWeaver, PHP dan mySQL. Pemilihan perangkat lunak dan bahasa pemrograman ini didasarkan pada kemampuan perangkat lunak tersebut yang dapat mengolah data berupa peta dan menampilkan informasi dan tampilan yang lebih bagus dibanding dengan perangkat lunak lainnya.
2.2 Analisa Perangkat Keras
Agar dapat berjalan dengan baik maka dibutuhkan harddisk yang berkapasitas minimal 5 GB, processor minimal 800MHZ (Intel maupun AMD), memory minimal 64 MB dan VGA minimal 32 MB. Implementasi SIP ini sangat membutuhkan perangkat keras yang cukup tinggi, dengan kata lain dibutuhkan spesifikasi computer yang cukup tinggi. Hal ini dikarenakan data yang diakses dan yang disimpan tidak hanya dalam bentuk data tabular melainkan adanya data Posisi yang memiliki kapasitas data yang besar untuk menampilkan informasi dan tampilan secara interaktif. Jika spesifikasi perangkat keras yang digunakan tidak memenuhi persyaratan minimal, proses masih dapat berjalan namun dengan kinerja yang cukup lambat.
2.3 Spesifikasi Masukan Sistem
Masukan sistem terdiri dari data – data:
1. Data spasial hotel.
2. Data spasial kuliner.
3. Data angkutan
4. Informasi hotel, kuliner dan angkutan
5. Pencarian.
2.4 Spesifikasi Keluaran Sistem
Hasil sistem berupa:
1. Visualisasi lokasi hotel
2. Visualisasi lokasi kuliner
3. Visualisasi angkutan.
4. Analisa Bersyarat (query).

3. Analisa Pengolahan Data
Proses analisis pengolahan data terdiri dari: visualisasi, pengolahan data (input, edit, update dan delete), cari informasi dan tampilkan informasi.
3.1 Analisa Data Spasial
Analisis menggunakan data spasial yang tediri dari peta jalan, peta hotel, peta kuliner. Skala peta yang digunakan adalah 1:20.000, dengan kedalaman inforamsi pada indentifikasi jalan, luas area kecamatan dan jumlah hotel dan kuliner. Data spasial digunakan sebagai alat bantu pengambilan keputusan melalui hasil visualisasi.
3.2 Analisa Data Non Spasial
Data non spasial disebut juga sebagai atribut dari data spasial. Fungsinya adalah membangun database untuk analisa atau pengolahan data, sehingga dapat memberikan informasi yang dibutuhkan. Data non spasial yang dibutuhkan untuk analisa adalah masing – masing atribut pada data spasial, misalnya atribut jalan, atribut hotel dan atribut kuliner.
3.3 Proses Manage Data
Merupakan proses manage data – data teknis dari gambaran tentang perhotelan dan kuliner provinsi Sulawesi Utara yanga da. Manage data dilakukan untuk menjaga keakuratan data, terutama untuk data yng terus berubah. Proses manage data hanya bisa dilakukan oleh administrator (user tidak diberikan fasilitas ini) atau dengan membuat table dan field baru apabila ada jenis informasi yang diinginkan.
3.4 Penentuan Sebaran Hotel dan Kuliner
Penentuan sebaran hotel dan kuliner dengan cara memilih hotel atau kuliner tertentu yang berbeda dalam suatu theme untuk ditampilkan informasinya secara sendiri.
3.5 Pencarian Hotel dan Kuliner
Proses pencarian hotel dan kuliner dengan cara memilih layer tertentu dan mengaktifkan theme lain yang kemudian dikoneksikan dengan area berdasarkan atribut yang dipilih.
3.6 Analisa Bersyarat
Analisa bersyarat merupakan proses pencarian informasi berdasarkan field – field atribut pada suatu theme. Proses ini dilakukan dengan memilih informasi yang ditampilkan berdasarkan field yang diinginkan.
3.7 Visualisasi
Proses visualisasi ini merupakan ciri khas yang membedakan sistem informasi Posisi dengan sistem informasi lainnya. Dalam visualisasi ini, tampilan yang disajikan dapat dipilih layer mana saja yang diinginkan untuk divisualisasikan, yaitu dengan fasilitas layer control.
3.8 Cari Informasi
Proses ini dilakukan melalui fasilitas query yang terdiri dari find. Didalamnya diinputkan informasi apa yang akan dicari. Tabel beserta fieldnya. Khususnya untuk find, hasilnya dapat langsung ditunjukan di map-nya dalam bentuk symbol. 
3.9 Tampilkan Informasi
Proses menampilkan informasi ini dilakukan dalam bentuk tampilan legend, info tool dan grafik.

4. Kekuatan dan Kelemahan Sistem
4.1 Kekuatan Sistem
Kekuatan sistem yang dihasilkan dapat dilihat dari berbagai aspek, yaitu implementasi, user interface, tampilan, aplikasi, program dan buku petunjuk pengguna.
1) Implementasi
a. Perangkat lunak yang digunakan dapat bertukar data dengan basis data yang dimiliki sehingga memudahkan dalam implementasi sistem.
b. Memiliki banyak fasilitas yang dapat digunakan.
c. Memudahkan dalam analisa untuk perancangan.
2) User Interface
a. Tersedia informasi langsung dalam tiap proses, sehingga mudah dalam memahami proses
b. Tersedianya button, tools dan menu yang lengkap dan praktis untuk pengolahan data membuat aplikasi lebih mudah.
3) Tampilan
a. Penampilan symbol dan warna pada setiap layer peta membuat tampilan lebih menarik dan interaktif.
b. Tool dan button yang disediakan dengan tampilan yang unik, sederhana sehingga mudah dipahami.
c. Dilengkapi dengan design yang menarik.
d. Terlihat info tool, legenda yang terpisah membuat tampilan penyajian data lebih mudah untuk dilihat dan tidak membingungkan.
4.2 Kelemahan Sistem
Menu – menu yang ada sangatlah terbatas karena memang dirancang agar menunya praktis dan mudah dipahami oleh user/pengguna.

5. Analisa Orientasi Pemakai
Pemakai sistem dibagi ke dalam dua kelompok, yaitu:
1. Pemakai umum (atau user)
Pemakai umum dapat mengakses fungsi – fungsi analisa Posisi (aplikasi).
2. Administrator (admin) aplikasi
Administrator SIP berhak mengakses semua fungsi di dalam sistem, termasuk pengelolaan data dan penggunaan password.

Untuk diagram Perancangan bisa diunduh disini


Model Proses Daur Hidup SOftware


Model proses daur hidup perangkat lunak, dikemukakan oleh Schach[1], merupakan tahapan pengembangan perangkat lunak ideal. Model ini menganggap perangkat lunak sebagai produk yang dihasilkan dalam urutan tahapan tertentu secara ideal. Tahapan berurutan tersebut adalah: 
1) Memulai dari scratch (yakni memulai dari tidak ada); 
2) Tahap pendefinisian requirements (atau kebutuhan); 
3) Tahap Analysis; 
4) Tahap Perancangan; 
5) Tahap Implementasi.

Ian Sommerville[2] mengemukan empat tahapan fundamental dalam model proses perangkat lunak, yakni; 
1) Software specification (proses pendefinisian kebutuhan perangkat lunak); 
2) Software design and implementation (mengembangkan perangkat lunak yang sesuai dengan persyaratan user); 
3) Software validation (perangkat lunak yang dihasilkan harus disesuaikan kembali menurut keinginan user);
4) Software evolution (perangkat lunak dikembangkan terus untuk memenuhi kebutuhan user yang bertambah).

Roger Pressman[3] mengusulkan suatu generic process framework perangkat lunak, dengan tahapan sebagai berikut: 
1) Komunikasi; 
2) Perencanaan; 
3) Pemodelan; 
4) Konstruksi; 
5) Implementasi.

Dennis, Wixom dan Tegarden[4] mengemukakan model proses yang disebut System Development Life Cycle (disingkat SDLC) dengan tahapan berikut: 
1) Perencanaan, 
2) Analisis, 
3) Perancangan, 
4) Impelementasi.
Tahapan ini serupa dengan yang dikemukakan oleh Bentley dan Whitten[5], yakni: 
1) System Initiation; 
2) System Analysis; 
3) System Design dan 
4) System Implementation.

Sedangkan Kendall dan Kendall mengusulkan 7 (tujuh) tahapan dalam SDLC, yakni: 
1) Identifikasi permasalahan, kesempatan dan tujuan; 
2) Penentuan persyaratan informasi pengguna; 
3) Analisa kebutuhan sistem; 
4) Perancangan sistem yang telah direkomendasi; 
5) Pengembangan dan dokumentasi perangkat lunak; 
6) Menguji sistem; 
7) Implementasi dan Evaluasi sistem.

Terkait dengan model proses perangkat lunak, maka Software Engineering Institute – Carnegie Mellon (SEI)[7] mengeluarkan framework Standar Ukuran Kematangan yang disebut CMMI for Development (CMMI – DEV). Model CMMI® (Capability Maturity Model® Integration) merupakan kumpulan best practices yang membantu setiap organisasi untuk mengembangkan proses pengembangan perangkat lunak. Model ini dikembangkan dari kalangan industry, pemerintahan dan akademisi pada SEI. Model proses yang disebut CMMI-DEV, menyediakan kumpulan panduan lengkap terkait pengembangan layanan dan produk perangkat lunak.

Menurut Schach[1], model daur hidup perangkat lunak, secara ideal berbeda dengan praktek dikarenakan dua hal:
1) praktisi perangkat lunak adalah manusia, sehingga cenderung untuk membuat kesalahan; 
2) kebutuhan pengguna cenderung mengalami perubahan saat perangkat lunak sementara dikembangkan.

Dari pemaparan tersebut diatas, kita dapat memgetahui bahwa proses pengembangan perangkat lunak ataupun sistem informasi itu mengikuti suatu alur yang berurutan (memiliki nilai logis tertentu). Alur berurutan ini merupakan "best practices"dari berbagai pengalaman para pengembang dalam membangun aplikasi dan sistem informasi. Tujuan utama model proses adalah untuk managing software dengan lebih baik. Managing software dengan lebih baik dipahami sebagai meminimalkan resiko pengembangan software itu sendiri.



Sumber Acuan
[1] Schach, Object Oriented Software Engineering, 8th Ed, McGrawHill, 2008. 
[2] Sommerville, Software Engineering, 8th ed, Pearson Education Limited, 2007
[3] Pressman, Software Engineering, A Practitioner’s Approach, 6th ed, McGrawHill, Singapura, 2005.
[4] Dennis, Wixom and Tegarden, System Analysis and Design with UML, An Object-Oriented Approach, 3dh ed, John Wiley & Sons, International Student Edition, 2010.
[5] Bentley and Whitten, System Analysis and Design for the Global Enterprise, 7th ed, McGrawHill International Edition, 2007.
[6] Kendall and Kendall, System Analysis and Design, 7th ed, Pearson Prentice Hall, 2007.
[7] CMMI Product Team, CMMI® for Development, Version 1.3, Improving processes for developing better products and services, November 2010, TECHNICAL REPORT CMU/SEI-2010-TR-033 , ESC-TR-2010-033, Software Engineering Process Management Program, Unlimited distribution subject to the copyright. http://www.sei.cmu.edu.



Kamis, 26 April 2012

Teknik Menyaring Informasi Relevan


Information Overload adalah terminology yang semakin sering disuarakan para pakar Teknologi Informasi.Tren information overload makin menjadi jadi. Sedemikian banyaknya kuantitas informasi yang terdapat di internet menyebabkan terjadinya fenomena “information overloaded” (banjir informasi yang tak terkendali).Tengoklah bagaimana seseorang yang ingin mencari informasi dengan kata kunci “toyota” akan terlihat bingung karena hasil pencarian menunjukkan adanya jutaan situs yang berkaitan dengan kata tersebut. 
Berawal dari Aflin Toffler (www.en.wikipedia.org/wiki/Alvin_Toffler) di tahun 1970 dalam bukunya Future Shock (www.en.wikipedia.org/wiki/Future_Shock), yang menuliskan:
The dizzying disorientation brought on by the premature arrival of the future. It may well be the most important disease of tomorrow.

Toffler selanjutnya menjelaskan ... 
I think there’s a tremendous undercurrent of dissatisfaction in America; people saying I want out, it’s moving too fast, it’s moving away from me; a sense of panic; a sense that things are slipping out of control and I don’t think that there’s much we can do in our personal lives to counteract that ...
(kutipandariwww.bbc.com/future/story/20120306-information-overload-fears)

Keilmuan Teknologi Informasi sendiri biasanya membedakan apa yang dimaksud dengan “browsing”, “searching”dan“surfing”. Surfing diartikan sebagai tindakan berselancar di dunia maya, yakni berpindah (atau melompat) dari satu halaman web kehalaman web lain. Searching diartikan sebagai tindakan mencari di dunia maya, yakni mencari data/informasi dengan menggunakan mesin pencari seperti Google.Sedangkan browsing diartikan sebagai tindakan menelusuri dunia maya, yakni melakukan penelusuran data atau informasi berdasarkan “kategori” tertentu, seperti misalnya dengan menggunakan mesin pencari blekko. Klasifikasi ini sebenarnya ditujukan untuk MEMBEDAKAN setiap aktivitas dunia maya yang kita lakukan.

Tentu saja harus ada teknik yang dipergunakan untuk dapat mencari informasi yang relevan dengan yang dimaksud. Ada dua teknik dasar yang biasa dipergunakan, yaitu dengan menggunakan simbol-simbol matematika dan menggunakan symbol Boolean (yang akan diterangkan di bagian lain)

Berikut adalah beberapa teknik menyaring informasi dengan menggunakan symbol matematika.
1. Filterisasi dengan Simbol Matematika PLUS
Simbol pertama yang sangat berguna untuk dipakai adalah tanda plus (+).Tanda plus dipergunakan jika seorang user ingin mencari berbagai dokumen dengan kata kunci lebih dari satu. Contohnya adalah seorang guru yang ingin mencari informasi mengenai profil penduduk di kota Manado, maka yang bersangkutan dapat mencarinya dengan menggunakan kata kunci:
+profil +penduduk +manado

Yang dilakukan oleh mesin pencari jika menemukan format semacam ini adalah mencari berbagai sumber dokumen maupun artikel yang ada di seluruh internet dimana di dalamnya terdapat kata “profil”, “penduduk”, dan “manado”. Dari hasil pencarian melalui search engine Google terlihat bagaimana hasil pencarian terlihat lebih fokus menuju apa yang diinginkan. Cara mencari seperti ini tentu saja jauh lebih efektif dibandingkan dengan hanya menggunakan kata “manado” atau “profil” saja yang dapat menampilkan jutaan situs sebagai hasilnya. Simbol “+” ini dapat dipergunakan sebanyak-banyaknya, karena prinsip yang kerap dipergunakan dalam melakukan searching adalah bahwa semakin spesifik yang dicari (semakin banyak menggunakan tanda “+”) akan semakin baik, karena search engine akan lebih fokus melakukan pencarian.

2. Filterisasi dengan Simbol Matematika MINUS
Simbol lainnya yang sering dipergunakan mendampingi “+” adalah simbol minus (-). Untuk mudahnya, simbol tersebut dapat dibaca sebagai “kecuali”. Contoh penggunaannya adalah sebagai berikut. Misalnya seorang pelajar ingin mencari beasiswa untuk melanjutkan studi master di luar negeri, namun yang bersangkutan tidak mau pergi ke Singapur maupun Inggris; maka yang bersangkutan dapat melakukan pencarian dengan cara sebagai berikut:
+master +degree +scholarship +abroad –singapore–inggris
Dengan format di atas maka mesin pencari yang bersangkutan akan mencari di internet seluruh dokumen yang mengandung teks “master”, “degree”, “scholarship”, dan “abroad” namun tidak terdapat kata “Singapore” maupun “Inggris” di dalamnya.

3. Filterisasi dengan Simbol TANDA KUTIP
Satu simbol lagi yang kerap dipakai mendampingi plus dan minus adalah simbol multiplikasi yang direpresentasikan dengan tanda kutip (“). Simbol ini dapat membantu user untuk semakin memperkecil atau memfokuskan pencarian ke hal yang benar-benar diinginkan.Yang dilakukan oleh tanda kutip adalah memerintahkan mesin pencari untuk mencari dokumen atau informasi yang mengandung teks persis seperti yang ada di dalam tanda kutip terkait. Perhatikanlah contoh searching key sebagai berikut:

“sulawesi utara”
Berdasarkan perintah tersebut, mesin pencari akan mencari seluruh dokumen di internet yang mengandung frase “sulawesi utara”. Jika sebuah dokumen hanya mengandung kata “sulawesi” atau “utara” saja, maka dokumen tersebut tidak akan ditampilkan. Walaupun terlihat sederhana, tanda kutip ini sebenarnya sangat ampuh jika dipergunakan dengan benar. Contohnya adalah seorang instruktur yang ingin mengetahui definisi dari internet. Daripada menggunakan searching key:
+definisi +jaringan +komputer
yang akan menghasilkan cukup banyak temuan, maka yang bersangkutan lebih baik menggunakan simbol tanda kutip sebagai berikut:
“definisi jaringan komputer”

Tanda kutip ini sering kali membuat orang terkesima karena tanpa disangka biasanya hal-hal yang nampaknya teramat sangat spesifik ternyata dapat ditemukan di internet.
Kesimpulan:
Ketiga simbol matematika tersebut jika digabungkan akan menjadi sebuah alat pencari yang ampuh.


Pengukuran Software: Metrik berorientasi Ukuran dan berorientasi Fungsi

Pengukuran merupakan bagian dari dunia keteknikan. Kegiatan mengukur, dasarnya adalah membandingkan sesuatu dengan sesuatu yang lain yang dianggap sebagai patokan atau standard. Jadi kegiatan mengukur sebenarnya adalah untuk mendapat perbandingan, sehingga acuan perbandingan tersebut dapat dikelola. Paradigma ini sesuai dengan apa yang Lord Kelvin katakan:
what we cannot measure, we cannot manage.
 
Dalam keilmuan software engineering, kegiatan mengukur menjadi lebih sulit dari biasanya. Permasalahan yang ditemui adalah kesulitan dalam menetapkan nilai dari obyek yang diukur dan sulitnya menetapkan parameter-parameter yang bisa diukur. Karena secara praktis, mengukur perangkat lunak, adalah mengukur sesuatu yang sepertinya “tidak kelihatan”.
 
Pengukuran perangkat lunak dapat dipisahkan dalam dua kategori, yaitu pengukuran langsung dan pengukuran tidak langsung. Pengukuran langsung dalam proses rekayasa perangkat lunak berhubungan dengan biaya dan sumber daya yang diperlukan, misalnya: pengukuran jumlah baris kode, kecepatan eksekusi, ukuran memori, dan kesalahan yang ditemui dalam suatu periode waktu. Pengukuran tidak langsung dari suatu produk berhubungan dengan fungsionalitas, kualitas, kompleksitas, efisiensi, reliabilitas,  dan lain sebagainya. Pengukuran secara langsung lebih mudah dilakukan, karena hasil dapat diperoleh secara langsung, sedangkan pengukuran tidak langsung lebih sulit dilakukan, karena harus melalui proses yang lebih kompleks.
 
Berikut adalah beberapa contoh metric perangkat lunak
1) Metrik Berorientasi Ukuran
Metrik beorientasi ukuran diperoleh dengan cara melakukan normalisasi ukuran kualitas dan produktivitas dengan menghitung ukuran dari perangkat lunak yang dibuat. Ukuran yang biasanya dijadikan sebagai acuan normalisasi adalah LOC (lines of code). Dari pengukuran jumlah LOC pada suatu perangkat lunak, dapat diperoleh:
1.  Kesalahan per KLOC (ribuan LOC)
2.  Kekurangan atau cacat pada spesifikasi per KLOC
3.  Harga per LOC
4.  Jumlah halaman dokumentasi per LOC
Selain itu, beberapa metrik yang bisa dihitung adalah:
1.  Kesalahan per orang-bulan
2.  LOC per orang-bulan
3.  Harga per halaman dokumentasi
Menurut Jones [1986], metrik berorientasi ukuran tidak dapat diterima secara universal sebagai cara terbaik untuk mengukur proses rekayasa perangkat lunak. Alasan yang dikemukakan adalah kadang-kadang fungsionalitas program dapat dicapai dengan baris program yang lebih sedikit. Selain itu, untuk melakukan estimasi LOC harus digunakan analisis desain tingkat tinggi.
 
2) Metrik Berorientasi Fungsi
Metrik berorientasi fungsi menggunakan ukuran fungsionalitas yang dihasilkan oleh aplikasi sebagai nilai normalisasi. Fungsionalitas tidak dapat diukur secara langsung, sehingga untuk memperolehnya digunakan pengukuran langsung terlebih dahulu, lalu hasil pengukuran langsung tersebut digunakan sebagai masukan. Metrik berorientasi fungsi pertama kali diusulkan oleh Albrecth [1979], yang menyarankan pengukuran yang disebut  function point (FP). FP diperoleh dengan menggunakan hubungan empiris berdasarkan pengukuran langsung dan estimasi terhadap kompleksitas perangkat lunak.
Terdapat lima karakteristik yang digunakan sebagai acuan, yaitu:
1.  Jumlah masukan (user inputs)
2.  Jumlah keluaran (user outputs)
3.  Jumlah permintaan (inquiry)
4.  Jumlah berkas
5.  Jumlah antarmuka eksternal
 
Jumlah-jumlah tersebut dikalikan dengan faktor pemberat, sesuai dengan kompleksitas (sederhana, sedang, kompleks) dari tiap karakteristik acuan. Untuk mengukurnya, digunakan persamaan:
FP = jumlah total x [0.65 + 0.01 x Σ (Fi)]   
Fi (i = 1 sampai dengan 14) merupakan nilai peubah kompleksitas
 
Berdasarkan pertanyaan-pertanyaan yang  diusulkan oleh Arthur [1985], dengan
skala 0 (tidak penting) sampai dengan 5 (sangat penting):
1.  Apakah sistem memerlukan backup dan recovery?
2.  Apakah komunikasi data diperlukan?
3.  Apakah terdapat fungsi pemrosesan terdistribusi?
4.  Apakah performa sangat penting?
5.  Apakah sistem akan berjalan pada lingkungan operasional yang berat?   14
6.  Apakah sistem memerlukan data entri secara online?
7.  Apakah data entri online memerlukan transaksi masukan untuk membuat
operasi dengan ‘banyak layar’?
8.  Apakah berkas aplikasi (master) diambil secara online?
9.  Apakah masukan, keluaran, berkas, atau permintaan bersifat kompleks?
10. Apakah pemrosesan internal bersifat kompleks?
11. Apakah kode yang dibuat dapat dipakai ulang?
12. Apakah konversi dan instalasi termasuk di dalam desain?
13. Apakah sistem didesain untuk instalasi lebih dari satu dalam organisasi
yang berbeda?
14. Apakah aplikasi didesain untuk memfasilitasi perubahan dan mudah
digunakan oleh pengguna?
 
Setelah FP dihitung, dapat digunakan metode yang serupa dengan LOC untuk melakukan normalisasi ukuran pada produktivitas, kualitas, dan atribut-atribut lainnya.