İçeriğe atla

Yazılım ölçümleri

Yazılım ölçümü, bir yazılımın herhangi bir niteliğinin ya da o yazılımın teknik özelliklerinin (specification) bir ölçümüdür.

Nicel (quantitative) yöntemlerin diğer bilim dallarındaki başarılı uygulamaları nedeniyle bilgisayar bilimleri pratisyenleri ve teorisyenleri aynı yaklaşımların yazılım geliştirme için de uygulanması konusunda uzun uğraşlar vermişlerdir. Bir Yazılım Mühendisliği profesyoneli olan Tom DeMarco, "Ölçülemeyen şeyler denetlenemezler" demiştir.[1]

Yaygın Olarak Kullanılan Yazılım Ölçümleri

Yaygın olarak kullanılan yazılım ölçümlerinden bazıları şunlardır:

  • Kod satır sayısı
  • Siklomatik karmaşıklık (Cyclomatic complexity)
  • Fonksiyon Noktası Analizi (Function Point Analysis)
  • Kod satırına düşen hata sayısı
  • Kod kapsama
  • Müşteri gereksinimlerinde bulunan satır sayısı
  • Sınıfların ve arayüzlerin sayısı
  • Robert Cecil Martin’in yazılım paketi ölçümleri
  • Uyum (Cohesion)
  • Bağlaşım (Coupling)
  • Halsteads software science metrics

Sınırlayıcı Etkenler

Eleştiriler

Ölçümlerde Hile Yapılması

Ölçümlerin Dengelenmesi

  • Proje takvimi
  • Boyut/Karmaşıklık
  • Maliyet
  • Kalite

Ayrıca bakınız

  • Yazılım mühendisliği
  • Bilgisayar bilimleri
  • Yazılım kalitesi
  • Yazılım paketi ölçümleri
  • ohloh Yüzlerce açık kaynak yazılım projesinin nicel incelemesi

Kaynakça

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Bilgisayar mühendisliği</span> bilgisayar donanımı ve yazılımı geliştirmek için bilgisayar bilimi ve elektrik mühendisliğini entegre eden disiplin

Bilgisayar mühendisliği temel olarak yazılım, programlama ve algoritma ile ilgilenir. Bilgisayar ağları, veri tabanı yöneticiliği ve gömülü sistemler de diğer çalışma alanlarıdır.

Yazılım mühendisliği, yazılım geliştirme ile ilgilenen mühendislik dalıdır. Yazılım mühendisliği tanımı ilk olarak 1968 yılında Friedrich L. Bauer tarafından Almanya'da gerçekleştirilen NATO toplantısında gündeme gelmiştir. Ayrıca, matematikçi ve bilgisayar bilimcisi Margaret Hamilton "yazılım mühendisliği" terimini ortaya atan kişilerden biri olarak kabul edilmektedir. Yazılım mühendisliği tanım olarak "karmaşık yazılım sistemlerinin belirli bir hedefe ve sisteme dayalı olarak ve iş bölümü yapılarak, belirli prensipler, yöntemler ve araçlar kullanılarak geliştirilmesidir."

<span class="mw-page-title-main">Bilgisayar bilimi</span> belirli evren kurallarına dayalı, sistematik çalışan ve elementlerin ya da ağların birbirleriyle olan ilişkisi

Bilgisayar bilimi, bilgisayarların tasarımı ve kullanımı için temel oluşturan teori, deney ve mühendislik çalışmasıdır. Hesaplamaya ve uygulamalarına bilimsel ve pratik bir yaklaşımdır. Bilgisayar bilimi; edinim, temsil, işleme, depolama, iletişim ve erişimin altında yatan yönteme dayalı prosedürlerin veya algoritmaların fizibilitesi, yapısı, ifadesi ve mekanizasyonunun sistematik çalışmasıdır. Bilgisayar biliminin alternatif, daha özlü tanımı "büyük, orta veya küçük ölçekli algoritmik işlemleri otomatikleştirme çalışması" olarak nitelendirilebilir. Bir bilgisayar bilimcisi, hesaplama teorisi ve hesaplama sistemlerinin tasarımı konusunda uzmanlaşmıştır.

Fizik mühendisliğinin konusu, doğadaki maddelerin yapısını ve aralarındaki etkileşimi inceleyen fizik bilimi bulgularının uygulama alanına dönüştürülmesi ile ilgilidir.

Eğitimsel ölçme, genel anlamda ölçme, bir olguya anlamlı sayı ya da semboller atama işlemidir. Eğitsel ölçme ise bu olguların öğrenme ürün ya da sürecine göre kazanımları kapsar. Eğitimsel ölçmelerin amacı ölçülmesi amaçlanan öğrenme yapılarının görgül kestirimlerini sağlamaktır. Bu amaca yönelik olarak değişik ölçme modelleri geliştirilmiştir.

<span class="mw-page-title-main">Açık kaynak yazılım</span> açık kaynak lisansıyla yayınlanmış programlama kodu

Açık kaynak yazılım ya da açık kaynak kodlu yazılım, telif hakkı sahibinin kullanıcılara yazılımı ve kaynak kodunu herhangi bir amaç için kullanma, inceleme, değiştirme ve dağıtma haklarını verdiği bir lisans kapsamında yayınlanan bilgisayar yazılımıdır. Kullandıkları lisans gereğince isteyen kişi ve grupların yazılımı kendi kişisel ihtiyaçlarına uyarlamalarına ve sonunda değişikliği benzer tercihlere sahip kullanıcılar için bir çatal olarak yayınlamalarına olanak tanır.

Yama, bilgisayar programlarında oluşan bir hatayı ya da programın içeriğindeki hatalı bir fonksiyonu düzelten bir programcıktır. Genelde bilgisayarlardaki en büyük güvenlik sorunlarından olan yazılım açıklarına müdahale amacıyla kullanılır.

<span class="mw-page-title-main">Tersine mühendislik</span>

Tersine mühendislik, bir aygıtın, objenin veya sistemin; yapısının, işlevinin veya çalışmasının, çıkarımcı bir akıl yürütme analiziyle keşfedilmesi işlemidir. Makine veya mekanik alet, elektronik komponent, yazılım programı gibi parçalarına ayrılması ve çalışma prensiplerinin detaylı şekilde analizini içerir.

<span class="mw-page-title-main">Eric Schmidt</span>

Eric Schmidt ya da tam adıyla Eric Emerson Schmidt, Amerikalı yazılım mühendisi, iş insanı ve Alphabet Inc. Yönetim Kurulu Başkanıdır. 2021 yılında Forbes'e göre Schmidt tahmini 23,1 milyar USD (2021) serveti ile dünyanın en zengin 100 insanı arasında gösterilmektedir.

Bilgisayar bilimci, bilgisayar bilimi, bilgi ve hesaplamanın teorik temellerinin incelenmesi ve bunların uygulamaları hakkında uzmanlaşmış bir kişidir.

Yazılım mimarisi, bir bilgisayar sistemini meydana getiren yazılım bileşenleri, görünür dış özellikleri ve bunlar arasındaki ilişkilerdir. Bilgisayar mühendisliği ve yazılım mühendisliğinde karmaşıklık önemli bir konudur. Mühendisler, önceleri bu sorunu düzgün veri yapılarını kullanarak aşmaya çalıştı. Ancak 1980'lerden beri yazılım mimarisi, karmaşıklaşan sistemlerde yazılım mühendisi öncüleri tarafından kullanılmaktadır. 1990'lardan itibaren tasarım şablonları, formal diller vs. geliştirildi.

<span class="mw-page-title-main">Algoritma analizi</span>

Algoritma analizi veya diğer adıyla algoritma çözümlemesi, bilgisayar biliminde bir algoritmayı çalıştırabilmek için gereken kaynakların miktarının tespitidir. Algoritmaların çoğunluğu, rastgele seçilmiş uzunluktaki girdiler ile çalışmak için tasarlanmıştır. Genellikle, bir algoritmanın verimlilik veya çalışma zamanı, adımların sayısı veya depolama yerleri 'nin girdi uzunluğuyla ilişkili olan işlev olarak ifade edilir.

<span class="mw-page-title-main">Yazılım motoru</span> bilgisayar programının merkezi kısmı

Yazılım motoru, bilgisayar biliminde bir yazılımın altyapısı, temeli anlamına gelir. Yazılım motorları programı çalıştırabilmek için de kullanılmaktadır. Bu yazılımlar diğer programlardan farklıdır. Bir programın içerisinde çalışırlar veya bir bütün oluştururlar. Yazılım motorları bir tarayıcının içerisinde JavaScript motoru veya bir oyun motoru gibi çeşitli türlere sahiptirler. Web tarayıcısı içerisinde de JavaScript, AJAX gibi dillerde yazılmış eklentilerin çalışmasını sağlarlar.

Özel mülk yazılım ya da sahipli yazılım, yazılımın yaratıcısının, yayıncısının veya diğer hak sahibi ortaklarının fikrî mülkiyet hakkını ve telif hakkını kendi elinde tuttuğu bilgisayar yazılımıdır. Yazılımın alıcılarına, yazılımı özgürce paylaşma veya değiştirme hakkı vermez. Özel mülk yazılımlar, mülk sahipleri tarafından ücretli ya da ücretsiz olarak yayınlanabilir.

<span class="mw-page-title-main">Hesaplamalı karmaşıklık teorisi</span> hesaplama problemlerini kendi zorluklarına göre sınıflandırmaya ve bu sınıfları birbirleriyle ilişkilendirmeye odaklanan teorik bilgisayar bilimlerinde hesaplama teorisinin bir dalı

Hesaplamalı karmaşıklık teorisi, hesaplama problemlerini kendi zorluklarına göre sınıflandırmaya ve bu sınıfları birbirleriyle ilişkilendirmeye odaklanan teorik bilgisayar bilimlerinde hesaplama teorisinin bir dalıdır. Bir hesaplama probleminde prensip, algoritmada belirtilen matematiksel adımların mekaniğe uygulanması yoluyla probleme yaklaşmaktır. Ve bununla beraber hesaplama karmaşıklık teorisindeki problemler, eşdeğer bir bilgisayar tarafından çözülebilen ortamlarda kullanılır.

Intel Güvenilir Yürütme Teknolojisi, bilgisayar donanım teknolojisidir ve başlıca hedefleri şunlardır:

<span class="mw-page-title-main">Winston W. Royce</span>

Winston Walker Royce, Austin, Teksas'taki Lockheed Yazılım Teknoloji Merkezi'nde yöneticilik yapmış olan Amerikalı bir bilgisayar bilimcisiydi.

Victor R. Basili, Maryland Üniversitesi Bilgisayar, Matematik ve Doğa Bilimleri Koleji'nin bir parçası olan Bilgisayar Bilimleri Bölümü'nde emekli profesördür ve İleri Bilgisayar Araştırmaları Enstitüsü. Doktora derecesine sahiptir. Austin'deki Texas Üniversitesi'nden doktora derecesi ve iki farklı fahri unvana sahiptir. Bilgisayar Makinaları Birliği (ACM) ve Elektrik ve Elektronik Mühendisleri Enstitüsü (IEEE) üyesidir.

<span class="mw-page-title-main">Barry Boehm</span> Amerikalı yazılımcı (1935 – 2022)

Barry W. Boehm, Amerikalı bir yazılım mühendisi, bilgisayar bilimi, endüstri ve sistem mühendisliği alanında seçkin profesör, TRW Yazılım Mühendisliği Profesörü; Güney Kaliforniya Üniversitesi Sistem ve Yazılım Mühendisliği Merkezi'nin kurucu direktörüdür. Yazılım mühendisliği alanına yaptığı birçok katkı ile tanınmaktadır.

Tom DeMarco Amerikalı bir yazılım mühendisi, yazar ve yazılım mühendisliği konularında danışmandır. 1970'lerde yapılandırılmış analizin ilk geliştiricisidir.