İçeriğe geç
academia.sh

Ders 03 / 16

Yapılandırma Kıyaslamaları

Kıyaslama kılavuzunun 26 maddesi dört makine sınıfının taban çizgisine uygulanır: 104 kararın 11'i bu ortamda uygulanamaz, 42'si uyumsuz, uyum oranı iki ayrı paydayla iki ayrı sayı verir ve maddelerin tamamı uygulandığında 588 noktanın yazma yetkisi daralırken 48 meşru iş elle adıma düşer.

İçindekiler

Önceki iki derste hangi kalemin gerekli olduğuna ve hangi takvimin uygun olduğuna karar veren biri vardı; kararların gerekçesi hiçbir yerde yazılmadı. Yapılandırma kıyaslama kılavuzları bu boşluğu doldurmak için vardır: aynı kararları madde madde toplar ve bir taban çizgisi önerir. Kılavuzun kendisi bir dış kaynaktır, ortamı bilmez ve maddeleri bir uç noktanın hangi işi yaptığına göre yazılmamıştır.

Bu dersin ölçüsü kılavuzun kaç madde içerdiği değil, o maddelerin bu ortamda ne yaptığıdır. Üç ayrı durum tek bir orana sıkıştırıldığında karar taşıyan bilgi kaybolur.

Üç Ayrı Durum

Bir kılavuz maddesi bir makine sınıfına uygulandığında üç sonuçtan biri çıkar. Uyumlu: taban çizgi maddeyi zaten karşılıyor. Uyumsuz: taban çizgi maddeyi karşılamıyor ve karşılaması mümkün. Uygulanamaz: madde bu ortamda anlamlı değil ya da makinenin işini olanaksız kılar. Üçüncü durum ilk ikisinden farklıdır; ekran kilidi süresi ekranı olmayan bir makinede bir eksiklik değildir, kılavuzun o makine için yazılmamış olmasıdır.

Dördüncü bir eksen bunların üzerine biner: madde uygulandığında meşru bir iş duruyor mu. Bir maddenin uygulanabilir olması onun bedelsiz olduğu anlamına gelmez.

Bu dersin nokta sütunu da dikkatli okunmalıdır. Kılavuz maddeleri bir tutunma noktasını kaldırmaz — kaldırma işi ilk derste yapıldı ve kalan noktalar iş gerektirdiği için duruyor. Kılavuz maddesinin yaptığı şey, o noktanın tanımını yazabilen özne kümesini daraltmaktır. Üç dersin ölçüsü böylece sıralanır: birincisi noktanın kendisini kapattı, ikincisi noktanın bilinen bir yolla ulaşılabilir olduğu süreyi kısalttı, üçüncüsü noktaya yazabilen özne kümesini daraltıyor. Kapatılan nokta sayısı burada da sıfırdır.

  • SS13. Yirmi altı maddelik kılavuz, dört makine sınıfı ve taban çizgi modeldir. Kılavuzun adı yazılmaz; maddeler tür düzeyinde yazılır ve gerçek bir denetim koşturulmaz.
  • SS14. Bir madde bir sınıfta ya uygulanabilir ya uygulanamaz; kısmi uygulama modellenmiyor.
  • SS15. Uyumluluk durumu taban çizgiden okunmuş sayılır ve modelde sabittir.
  • SS16. Nokta sütunu, madde uygulandığında yazma yetkisi yöneticiye daralan nokta sayısıdır ve makine başınadır.
  • SS17. Bedel, madde uygulandığında elle adıma düşen meşru iş sayısıdır; sınıf başına yazıldı.
  • SS18. Makine sayıları önceki dersten gelir: 60, 24, 12 ve 6.
// kiyas/kilavuz.mjs — yapilandirma kiyaslama kilavuzunun taban cizgiye uygulanmasi MODELIDIR.
// Kilavuz adi yazilmaz; maddeler tur duzeyinde yazilir. Gercek bir denetim kosturulmaz.
export const SINIF = [
  { ad: 'saha-dizustu', makine: 60 }, { ad: 'sube-ucu', makine: 24 },
  { ad: 'toplayici', makine: 12 }, { ad: 'islem-sunucusu', makine: 6 },
];
// satir: madde | yazma yetkisi daralan nokta (makine basina) | uygulanabilirlik | uyumluluk | bedel
// uygulanabilirlik: u = uygulanabilir, x = bu ortamda uygulanamaz
// uyumluluk: v = taban cizgi zaten uyumlu, a = uyumsuz, - = uygulanamadigi icin yok
// bedel: madde uygulandiginda elle adima dusen mesru is sayisi (sinif basina rakam)
export const MADDE = `
  gereksiz-servis-kapatma            2 uuuu vvvv 0000
  otomatik-calistirma-kisitlama      1 uuuu avvv 2000
  zamanlanmis-gorev-yazma-kisiti     1 uuuu aavv 1100
  oturum-betigi-yazma-kisiti         1 uuxu av-v 2001
  surucu-imza-zorunlulugu            1 uuuu vvaa 0011
  acilis-sirasi-kilidi               1 uuuu vvaa 0000
  yerel-yonetici-uyeligi-kisiti      1 uuuu aavv 3200
  uzak-yonetim-kisitlamasi           1 uuuu vvva 0001
  yazilim-kaynagi-kisitlamasi        1 uuuu aaav 4210
  betik-calisma-zamani-kisiti        1 uuxx aa-- 3200
  eklenti-dizini-kilidi              1 uuxx av-- 1000
  yonetim-araci-erisim-kisiti        1 xuuu -vaa 0011
  varsayilan-hesap-devre-disi        0 uuuu vvvv 0000
  parola-uzunlugu                    0 uuuu vvvv 0000
  hesap-kilitleme-esigi              0 uuuu vvva 0001
  oturum-zaman-asimi                 0 uuuu avvv 1000
  ekran-kilidi-suresi                0 uuxx aa-- 2100
  konak-guvenlik-duvari-varsayilani  0 uuuu aavv 1100
  gelen-baglanti-kisitlamasi         0 uuuu vvaa 0022
  paylasim-kapatma                   0 uuuu avvv 1000
  gunluk-saklama-suresi              0 uuuu aaav 0000
  surec-olusturma-kaydi              0 uuuu aaaa 0000
  gunluk-merkezilestirme             0 uxuu a-vv 0000
  disk-sifreleme-zorunlulugu         0 uuuu avva 0000
  tasinabilir-ortam-kisitlamasi      0 uuxu aa-v 3200
  otomatik-guncelleme-zorunlulugu    0 uxuu v-aa 0011`
  .trim().split('\n').map((r) => {
    const [ad, nokta, uygul, uyum, bedel] = r.trim().split(/\s+/);
    return { ad, nokta: Number(nokta), uygul, uyum, bedel };
  });

export const uygulanir = (m, i) => m.uygul[i] === 'u';
export const uyumlu = (m, i) => m.uyum[i] === 'v';
export const uyumsuz = (m, i) => m.uyum[i] === 'a';
export const bedeli = (m, i) => Number(m.bedel[i]);
// Bir senaryo: hangi uyumsuz maddeler uygulaniyor. 'yok' | 'bedelsiz' | 'hepsi'
export const uygulanan = (m, i, sen) => uyumsuz(m, i)
  && (sen === 'hepsi' || (sen === 'bedelsiz' && bedeli(m, i) === 0));

export function tara(sen) {
  let hucre = 0, uygulanamaz = 0, zatenUyumlu = 0, daralan = 0, duran = 0, istisna = 0;
  for (const m of MADDE)
    for (const [i, s] of SINIF.entries()) {
      hucre += 1;
      if (!uygulanir(m, i)) { uygulanamaz += 1; continue; }
      if (uyumlu(m, i)) { zatenUyumlu += 1; continue; }
      if (uygulanan(m, i, sen)) { daralan += m.nokta * s.makine; duran += bedeli(m, i); }
      else istisna += 1;
    }
  const uyumluSayi = zatenUyumlu + (hucre - uygulanamaz - zatenUyumlu - istisna);
  return { hucre, uygulanamaz, zatenUyumlu, daralan, duran, istisna,
    hamYuzde: (100 * uyumluSayi) / hucre,
    uygulanabilirYuzde: (100 * uyumluSayi) / (hucre - uygulanamaz) };
}

Maddelerin Taban Çizgiye Uygulanması

// kiyas/olc.mjs — uyumsuz kalem ile uygulanamayan kalem ayrilir; uyum yuzdesi ile daralan nokta
import { SINIF, MADDE, uygulanir, uyumlu, uyumsuz, bedeli, tara } from './kilavuz.mjs';

const y = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join('').trimEnd());
const p1 = (x) => x.toFixed(1);
const noktali = MADDE.filter((m) => m.nokta > 0);

console.log(`${MADDE.length} kilavuz maddesi x ${SINIF.length} makine sinifi = ` +
  `${MADDE.length * SINIF.length} karar; ${noktali.length} madde tutunma noktasina dokunuyor`);

const A = [-18, 7, 13, 8, 10, 12, 17, 8];
console.log('\n1. sinif basina madde durumu');
y(A, 'sinif', 'madde', 'uygulanamaz', 'uyumlu', 'uyumsuz', 'ham uyum %', 'uygulanabilir %', 'bedel');
for (const [i, s] of SINIF.entries()) {
  const ux = MADDE.filter((m) => !uygulanir(m, i)).length;
  const uv = MADDE.filter((m) => uyumlu(m, i)).length;
  const ua = MADDE.filter((m) => uyumsuz(m, i)).length;
  y(A, s.ad, MADDE.length, ux, uv, ua, p1((100 * uv) / MADDE.length),
    p1((100 * uv) / (MADDE.length - ux)),
    MADDE.filter((m) => uyumsuz(m, i)).reduce((a, m) => a + bedeli(m, i), 0));
}

const B = [-34, 7, 13, 10, 15, 8];
console.log('\n2. tutunma noktasina dokunan maddeler');
y(B, 'madde', 'nokta', 'uygulanamaz', 'uyumsuz', 'daralan nokta', 'bedel');
for (const m of noktali)
  y(B, m.ad, m.nokta, SINIF.filter((_, i) => !uygulanir(m, i)).length,
    SINIF.filter((_, i) => uyumsuz(m, i)).length,
    SINIF.reduce((a, s, i) => a + (uyumsuz(m, i) ? m.nokta * s.makine : 0), 0),
    SINIF.reduce((a, _, i) => a + (uyumsuz(m, i) ? bedeli(m, i) : 0), 0));

const C = [-24, 12, 18, 15, 11, 10];
console.log('\n3. uc senaryo');
y(C, 'senaryo', 'ham uyum %', 'uygulanabilir %', 'daralan nokta', 'duran is', 'istisna');
for (const [ad, sen] of [['hicbiri uygulanmadi', 'yok'], ['bedelsizler uygulandi', 'bedelsiz'],
  ['hepsi uygulandi', 'hepsi']]) {
  const t = tara(sen);
  y(C, ad, p1(t.hamYuzde), p1(t.uygulanabilirYuzde), t.daralan, t.duran, t.istisna);
}
const t0 = tara('yok'), t1 = tara('bedelsiz'), t2 = tara('hepsi');
console.log(`\nuygulanamayan karar            ${t0.uygulanamaz} / ${t0.hucre}`);
console.log(`nokta kapatmayan madde         ${MADDE.length - noktali.length} / ${MADDE.length}`);
console.log(`uyum %${p1(t0.hamYuzde)} -> %${p1(t2.hamYuzde)} kazanci  ` +
  `${t2.daralan} nokta, ${t2.duran} elle adim`);
console.log(`bedelsiz adimin payi           ${t1.daralan}/${t2.daralan} nokta, ` +
  `${t1.duran}/${t2.duran} elle adim`);
26 kilavuz maddesi x 4 makine sinifi = 104 karar; 12 madde tutunma noktasina dokunuyor

1. sinif basina madde durumu
sinif               madde  uygulanamaz  uyumlu   uyumsuz  ham uyum %  uygulanabilir %   bedel
saha-dizustu           26            1       9        16        34.6             36.0      24
sube-ucu               26            2      15         9        57.7             62.5      11
toplayici              26            5      13         8        50.0             61.9       6
islem-sunucusu         26            3      14         9        53.8             60.9       7

2. tutunma noktasina dokunan maddeler
madde                               nokta  uygulanamaz   uyumsuz  daralan nokta   bedel
gereksiz-servis-kapatma                 2            0         0              0       0
otomatik-calistirma-kisitlama           1            0         1             60       2
zamanlanmis-gorev-yazma-kisiti          1            0         2             84       2
oturum-betigi-yazma-kisiti              1            1         1             60       2
surucu-imza-zorunlulugu                 1            0         2             18       2
acilis-sirasi-kilidi                    1            0         2             18       0
yerel-yonetici-uyeligi-kisiti           1            0         2             84       5
uzak-yonetim-kisitlamasi                1            0         1              6       1
yazilim-kaynagi-kisitlamasi             1            0         3             96       7
betik-calisma-zamani-kisiti             1            2         2             84       5
eklenti-dizini-kilidi                   1            2         1             60       1
yonetim-araci-erisim-kisiti             1            1         2             18       2

3. uc senaryo
senaryo                   ham uyum %   uygulanabilir %  daralan nokta   duran is   istisna
hicbiri uygulanmadi             49.0              54.8              0          0        42
bedelsizler uygulandi           60.6              67.7             18          0        30
hepsi uygulandi                 89.4             100.0            588         48         0

uygulanamayan karar            11 / 104
nokta kapatmayan madde         14 / 26
uyum %49.0 -> %89.4 kazanci  588 nokta, 48 elle adim
bedelsiz adimin payi           18/588 nokta, 0/48 elle adim

İki Uyum Yüzdesi

Birinci tablonun son iki yüzde sütunu aynı taban çizgiden iki farklı sayı üretiyor. Ham uyum, uyumlu maddeyi kılavuzun madde sayısına böler. Uygulanabilir uyum, aynı payı uygulanamayan maddeler düşüldükten sonraki paydaya böler. İkinci sayı her zaman birinciden büyüktür ve raporlarda yazılan genellikle odur.

Toplayıcı makine satırı farkın kaynağını gösteriyor. Ham uyum yüzde 50,0; uygulanabilir uyum yüzde 61,9. Aradaki 11,9 puanın tamamı beş maddenin paydadan düşmesinden geliyor — ekranı olmayan bir makinede ekran kilidi süresi, işini betikle yapan bir makinede betik çalışma zamanı kısıtı, sayaç verisi taşınabilir ortamla alındığı için taşınabilir ortam kısıtlaması. Bu beş maddenin uygulanamaz sayılması doğrudur. Yanlış olan, doğru bir kararın bir iyileşme gibi görünmesidir: hiçbir nokta daralmadı, hiçbir yapılandırma değişmedi, yüzde 11,9 puan arttı.

Üçüncü tablo bunun sınırını veriyor. Uyumsuz maddelerin hepsi uygulandığında uygulanabilir uyum yüzde 100’e çıkıyor, ham uyum yüzde 89,4’te kalıyor. On bir karar hiçbir zaman uyumlu olamaz, çünkü madde o ortamda anlamlı değil. “Yüzde yüz uyum” hedefi bu yüzden ölçülemez bir hedeftir; ölçülebilir hedef, uygulanamayan maddelerin adıyla yazılmasıdır.

Saha dizüstü bilgisayarı iki sayının da en düşük olduğu sınıftır (34,6 ve 36,0) ve bedeli en yüksek olan sınıftır (24 elle adım). İki sayı birlikte okunduğunda neden düşük olduğu görünür: on altı uyumsuz maddenin çoğu, kullanıcının kendi kurduğu kalemleri kısıtlıyor ve uygulanmaları meşru işi durduruyor. Uyumsuzluk burada bir ihmal değil, ödenmemiş bir bedeldir.

Nokta Kapatmayan Maddeler

Yirmi altı maddenin 14’ü hiçbir tutunma noktasına dokunmuyor. Parola uzunluğu, oturum zaman aşımı, günlük saklama süresi, süreç oluşturma kaydı ve gelen bağlantı kısıtlaması gerçek denetimlerdir ve başka şeyler için değerlidir; bu kursun ölçüsüne bir sayı eklemezler. Yine de uyum oranının paydasında öteki maddelerle aynı ağırlığı taşırlar.

Sonuç şudur: uyum oranı ile daralan nokta sayısı arasında sabit bir ilişki yoktur. Yüzde 49,0’dan 89,4’e çıkmak 588 noktanın yazma yetkisini daraltıyor, ama aynı 40 puanın büyük bir bölümü nokta sütununa hiç dokunmayan maddelerden geliyor. Tersi de mümkündür: yalnız nokta kapatmayan maddeleri uygulayan bir ekip oranı yükseltir ve nokta sütununda sıfır ilerleme kaydeder.

İkinci tablodaki gereksiz-servis-kapatma satırı aynı ilişkinin öbür ucudur. Makine başına 2 nokta daraltan en güçlü maddedir ve dört sınıfta da zaten uyumludur — çünkü ilk derste yapılan iş tam olarak buydu. Kılavuz bu maddede hiçbir şey eklemiyor; onaylıyor. Kılavuzun katkısı yalnız uyumsuz sütununda ölçülebilir.

İstisna Listesi ve Bakım

Son iki satır kararı verecek kişinin önündeki takası veriyor. Bedeli sıfır olan uyumsuz maddeler uygulandığında uyum yüzde 60,6’ya çıkıyor, hiçbir meşru iş durmuyor — ve daralan nokta 588’in yalnız 18’i, yüzde 3’ü. Daraltmanın neredeyse tamamı bedelli maddelerdedir. Yazılım kaynağı kısıtlaması tek başına 96 nokta daraltıyor ve 7 elle adım getiriyor; yerel yönetici üyeliği kısıtı 84 nokta ve 5 adım. Ucuz olan hiçbir şey yapmıyor, iş yapan hiçbir şey ucuz değil.

Uygulanmayan her uyumsuz karar bir istisna kalemidir ve istisna bir kerelik bir iş değildir. Bedelsiz senaryoda 30, hiçbir şey uygulanmadığında 42 istisna kalemi kalıyor. Her kalem bir gerekçe, bir sahip ve bir yeniden değerlendirme tarihi ister; kılavuzun her yeni sürümünde maddeler yeniden eşlenir ve uygulanamaz işaretleri yeniden sınanır. Uygulanamayan 11 karar da aynı listede durur, çünkü bir makinenin işi değiştiğinde uygulanamaz olan uygulanabilir hâle gelir.

Bakımın ölçüsü budur: 104 kararın 53’ü — 42 uyumsuz artı 11 uygulanamaz — sürekli bakılan bir liste oluşturur. Bu, kılavuzu uygulamanın kılavuzu okumaktan çok daha pahalı olduğunu gösteren sayıdır.

İki işaret arasındaki sınır bu yüzden korunmalıdır. “Uygulanamaz” bir ortam gerçeğini anlatır ve paydayı küçültür; “uygulanmadı” bir kararı anlatır ve paydada kalır. İkisi arasındaki tek fark bir harftir ve harfi yazan kişi aynı zamanda oranı raporlayan kişidir. Bedeli yüksek bir maddenin uygulanamaz işaretlenmesi hem işi bitirir hem oranı yükseltir; sonuç, uyumsuz sütunu boş, ham uyum oranı yüksek ve daralan nokta sayısı sıfır olan bir tablodur. Bu tabloyu yanlıştan ayıran tek şey, her uygulanamaz işaretinin yanında hangi ortam koşulunun o maddeyi anlamsız kıldığının yazılmasıdır. Ekranı olmayan bir makine sınanabilir bir gerekçedir; “kısıtlama işimizi zorlaştırıyor” bir bedel bildirimidir ve uyumsuz sütununa yazılır.

Özet

  • Bir kılavuz maddesi bir sınıfa uygulandığında üç sonuç çıkar: uyumlu, uyumsuz, uygulanamaz. 104 kararın 51’i uyumlu, 42’si uyumsuz, 11’i bu ortamda uygulanamaz.
  • İki uyum oranı aynı taban çizgiden iki ayrı sayı verir: toplayıcı makinede ham 50,0, uygulanabilir 61,9. Aradaki 11,9 puan tek bir yapılandırma değişmeden, yalnız payda küçülerek kazanılır.
  • Maddelerin tamamı uygulansa bile ham uyum yüzde 89,4’te kalır; 11 karar hiçbir zaman uyumlu olamaz. Ölçülebilir hedef yüzde yüz uyum değil, uygulanamayan maddelerin adıyla yazılmasıdır.
  • Kılavuz maddesi tutunma noktasını kapatmaz, tanımını yazabilen özne kümesini daraltır: kapatılan nokta sıfır, daralan nokta 588. Üç dersin ölçüsü sırayla noktanın kendisi, açık kalma süresi ve yazabilen özne kümesidir.
  • Yirmi altı maddenin 14’ü hiçbir noktaya dokunmaz ama uyum oranında ötekilerle aynı ağırlığı taşır; en güçlü madde ise dört sınıfta da zaten uyumludur, çünkü o iş ilk derste yapılmıştı.
  • Bedelsiz uyumsuz maddeler 588 noktanın yalnız 18’ini daraltır; daraltmanın yüzde 97’si 48 elle adım karşılığında gelir. Uygulanmayan her karar bir istisna kalemidir ve 53 kalem sürekli bakım ister.

Sonraki Adım

Bu dersin en pahalı maddesi yazılım kaynağı kısıtlamasıydı: 96 nokta daraltıyor, 7 meşru işi elle adıma düşürüyor ve bir sınıfta zaten uyumlu. Maddenin arkasında tek satırla anılan bir karar var — uçta hangi yazılımın çalışabileceğine önceden karar verilmesi. Sonraki dersin konusu budur. Uygulama izin listesi bir yapılandırma maddesi değil, her çalıştırma denemesinde verilen bir karardır ve doğruluğu ancak gerçek bir çalıştırma kümesi üzerinde ölçülebilir: listenin kaç meşru kalemi engellediği, kaç kalemi elle onaya düşürdüğü ve imza tabanlı kuralla yol tabanlı kuralın birbirinden farklı olarak neyi kaçırdığı.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat