Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
18 yazı bulundu
UML Nedir? Kısa Tarih, UML 2.5.1'in 14 Diyagramı ve Gerçekte Hangilerini Kullanırsın
Yazılım Tasarımı SERİ 01

UML Nedir? Kısa Tarih, UML 2.5.1'in 14 Diyagramı ve Gerçekte Hangilerini Kullanırsın

UML, kodun içine dağılmış modeli herkesin aynı okuduğu bir notasyonla ortaya koyan, OMG'nin standart modelleme dilidir; güncel sürümü 2017 tarihli UML 2.5.1'dir ve 7 structure, 7 behavior olmak üzere 14 diyagram tanımlar. Method savaşlarından bugüne kısa tarih, sahada gerçekten kullanılan diyagramlar, model ile diyagram farkı ve Fowler'ın sketch, blueprint, programming language modları.

7 Kas 2026 12 dk 5
Requirement'tan Diyagrama: Hangi Soru Hangi Diyagramla Cevaplanır?
Yazılım Tasarımı SERİ 02

Requirement'tan Diyagrama: Hangi Soru Hangi Diyagramla Cevaplanır?

Her diyagram bir soruyu cevaplar: kim ne yapar sorusunu use case, hangi kavramlar sorusunu class, kim kimi çağırır sorusunu sequence, object hangi durumlardan geçer sorusunu state machine diagram'ı cevaplar. İK Portalı İzin Talebi modülünün requirement metni, isim, fiil ve koşullardan aday class, use case ve guard çıkarmak, hedef kitleye göre detay seviyesi ve serinin haritası.

7 Kas 2026 12 dk 4
Use Case Diagram ve Use Case Spesifikasyonu: Actor, include, extend ve Cockburn Şablonu
Yazılım Tasarımı SERİ 03

Use Case Diagram ve Use Case Spesifikasyonu: Actor, include, extend ve Cockburn Şablonu

Use case diagram sistemi dışarıdan gösterir: actor'lar rol, use case'ler hedeftir; include ok ile ana use case'ten zorunlu adıma, extend ok ile koşullu eklentiden ana use case'e gider. İK Portalı izin modülünün use case diagram'ı, Cockburn'ün fully dressed şablonuyla İzin Talep Et spesifikasyonu, use case'ten user story ve API endpoint'ine eşleme ve Mermaid ile aynı diyagram.

7 Kas 2026 14 dk 4
Class Diagram 1: Class, Attribute, Operation, Visibility, Multiplicity ve Stereotype'lar
Yazılım Tasarımı SERİ 04

Class Diagram 1: Class, Attribute, Operation, Visibility, Multiplicity ve Stereotype'lar

Class diagram'daki her işaret kodda bir karardır: [0..1] nullable tip, [0..*] collection, eğik çizgi hesaplanan property, altı çizili satır static üye, {readOnly} hiç değişmeyen property demektir. Class kutusunun üç bölmesi, attribute ve operation söz dizimi, C# ile örtüşmeyen visibility köşeleri, interface, enumeration, data type ve stereotype'lar ile aynı diyagramın Mermaid hâli.

7 Kas 2026 13 dk 5
Class Diagram 2: Association, Aggregation, Composition, Generalization ve Dependency — C# Karşılıklarıyla
Yazılım Tasarımı SERİ 05

Class Diagram 2: Association, Aggregation, Composition, Generalization ve Dependency — C# Karşılıklarıyla

Association kalıcı bir bağdır ve C#'ta navigation property olur; composition'da parça tek sahibe aittir ve onunla silinir, EF Core'da owned/complex type ya da cascade delete'tir; aggregation'ın UML 2.5.1'de kesin bir anlamı yoktur. Altı ilişkinin notasyonu ve C# karşılığı, EF Core'un zorunlu ilişkilerdeki cascade varsayılanı, qualified association ve Approval'ın association class'tan ayrı bir class'a yükselmesi.

7 Kas 2026 15 dk 4
Class Diagram'dan Koda ve Koddan Diyagrama: Domain Model, Design Model ve puml-gen
Yazılım Tasarımı SERİ 06

Class Diagram'dan Koda ve Koddan Diyagrama: Domain Model, Design Model ve puml-gen

Domain model iş dünyasının kavramlarını tipsiz ve operation'sız gösterir, design class diagram ise aynı vakanın C#'a yakın tasarım kararlarını; ilki elle çizilir, ikincisinin dilimleri koda dökülür ve puml-gen gibi araçlarla koddan üretilen diyagramlar yalnız gözlem ve drift kontrolü için kullanılır. Yazıda İK Portalı'nın izin modülü diyagramdan EF Core configuration'ına ve DDL'e, oradan da puml-gen ile tekrar PlantUML'e taşınıyor.

7 Kas 2026 14 dk 5
Object Diagram ve Package Diagram: Anlık Görüntü ve .NET Solution'ının Bağımlılık Haritası
Yazılım Tasarımı SERİ 07

Object Diagram ve Package Diagram: Anlık Görüntü ve .NET Solution'ının Bağımlılık Haritası

Object diagram belli bir andaki somut instance'ları ve link'leri çizerek class diagram'daki multiplicity hatalarını yakalar, package diagram ise project'ler arasındaki bağımlılıkları göstererek katman ihlallerini görünür kılar. Yazıda #42 talebinin snapshot'ı yanlış bir 0..1'i ortaya çıkarıyor, solution'ın package diagram'ı da csproj dosyalarından üretilip Domain'e sızan EF Core bağımlılığı CI'da yakalanıyor.

7 Kas 2026 12 dk 3
Sequence Diagram 1: Lifeline, Mesaj Türleri, Activation ve Bir API İsteğinin Yolculuğu
Yazılım Tasarımı SERİ 08

Sequence Diagram 1: Lifeline, Mesaj Türleri, Activation ve Bir API İsteğinin Yolculuğu

Sequence diagram, bir senaryoda participant'lar arasındaki mesajları zaman sırasıyla gösterir: lifeline'lar yan yana, zaman yukarıdan aşağı, synchronous call dolu ok ucuyla, reply kesikli çizgiyle çizilir. Yazıda İK Portalı'nın POST /leave-requests isteği Angular'dan SQL Server'a kadar gerçek koddan ve EF Core log'undan çizilip Mermaid ile kod olarak da veriliyor.

7 Kas 2026 9 dk 4
Sequence Diagram 2: alt, opt, loop, par, break ve ref ile Hata Yolları ve Asenkron Akışlar
Yazılım Tasarımı SERİ 09

Sequence Diagram 2: alt, opt, loop, par, break ve ref ile Hata Yolları ve Asenkron Akışlar

Combined fragment'ler sequence diagram'a koşul (alt, opt), erken çıkış (break), tekrar (loop), paralellik (par) ve bölünmezlik (critical) ekler, ref ise başka bir diyagramı çağırır; asenkron mesaj açık ok ucuyla çizilir ve await edilse bile gönderen sonucu beklemiyorsa asenkrondur. Yazıda İK Portalı'nın onay akışı, yetersiz bakiye hatası ve queue üzerinden giden e-posta ile takvim kaydı gerçek koddan çiziliyor.

7 Kas 2026 12 dk 5
Activity Diagram: Action, Decision, Fork/Join, Swimlane ve Onay İş Akışını Modellemek
Yazılım Tasarımı SERİ 10

Activity Diagram: Action, Decision, Fork/Join, Swimlane ve Onay İş Akışını Modellemek

Activity diagram bir iş akışını adımlar, guard'lı decision'lar, fork/join ile paralellik ve kimin yaptığını gösteren swimlane'lerle çizer; semantiği token akışıdır, bu yüzden decision'dan çıkan yollar bir merge'de birleşmezse akış implicit join'de takılır. Yazıda İK Portalı'nın izin onay süreci swimlane'lerle çiziliyor, token kuralları küçük bir C# simülatörüyle gösteriliyor ve akış handler'lara bölünüyor.

7 Kas 2026 11 dk 4
State Machine Diagram: State, Transition, Guard, Entry/Exit ve İzin Talebinin Yaşam Döngüsünü Koda Dökmek
Yazılım Tasarımı SERİ 11

State Machine Diagram: State, Transition, Guard, Entry/Exit ve İzin Talebinin Yaşam Döngüsünü Koda Dökmek

State machine diagram, bir object'in hangi durumlarda bulunabileceğini ve hangi event'in, hangi guard'la onu nereye taşıdığını gösterir; her ok bir switch kolu, bir Stateless PermitIf'i ve bir unit test olur. Bu yazıda İzin Talebi'nin yaşam döngüsünü composite state, choice ve entry/effect ayrımıyla çizip C#'a ve testlere dönüştürüyoruz.

7 Kas 2026 16 dk 3
Component Diagram: Provided/Required Interface, Port ve .NET Modüllerini Çizmek
Yazılım Tasarımı SERİ 12

Component Diagram: Provided/Required Interface, Port ve .NET Modüllerini Çizmek

Component diagram, sistemi değiştirilebilir modüllere ayırıp her modülün hangi interface'i sağladığını (lollipop) ve hangisini istediğini (socket) gösterir; .NET'te bu, public sözleşme project'i, internal implementasyon ve composition root'taki DI kayıtları demektir. Bu yazıda İzin, Bordro ve Bildirim modüllerini port ve delegation connector'larıyla çizip DI registration'ından geri okuyoruz.

7 Kas 2026 11 dk 6
Blog Haritası