# İşlev modeli
Sistem ve yazılım mühendisliğindeki işlev modeli modellenen sistem veya konu alanının işlevlerinin (faaliyetler, eylemler, süreçler, işlemler) yapısal temsilidir.
Etkinlik modeli veya süreç modeli ile benzer bir işlev modeli bir işletmenin belirli bir kapsamdaki işlevlerinin grafik gösterimidir. İşlev modelinin amacı, işlevleri ve süreçleri tanımlamak, bilgi ihtiyaçlarının belirlenmesine ve fırsatların tanımlanmasına yardımcı olmak, ürün ve hizmet maliyetlerini belirlemek için bir temel oluşturmaktır.


## Tarihçe.
Sistem mühendisliği ve yazılım mühendisliğindeki işlev modelinin temeli 1950 ve 1960'lara dayanmaktadır. Fakat işlevsel örgütsel faaliyetlerin temeli 19. yüzyıl sonlarına dayanır.
19. yüzyılın sonlarında firma faaliyetleri, eylemleri, süreçleri ya da operasyonlarını resimleyen ilk şemalar görülürken, 20. yüzyılın ilk yarısında iş süreci faaliyetlerini belgeleyen planlama yöntemleri ortaya çıktı. Bu metotlardan biri olan süreç akış tablosu 1921 yılında Frank Gilberth tarafından Amerikan Makine Mühendisleri Topluluğuna (American Society of Mechanical Engineers (ASME)) "Süreç Tablosu, En İyi Yöntemi Bulmanın İlk Adımı" adlı sunumla tanıtılmıştır. Gilbreth'ın araçları endüstri mühendisliği müfredatında hızla yerini aldı.
Sistem mühendisliği alanı 1940'lara Bell Telefon Laboratuvarlarına kadar uzanır. Kompleks mühendislik projelerinde parçaların özelliklerinin toplamından büyük farklılık gösterebilen bir sistemin özelliklerini tanımlama ve değiştirme ihtiyacı, disiplini uygulamak için çeşitli endüstrileri harekete geçirdi. İşlev modelini bu alanda ilk tanımlayanlardan biri olan İngiliz mühendis William Gosling. Mühendislik sistemlerinin tasarımı adlı (1962, s.25) kitabında şunları söyledi:"Nitekim işlevsel bir modelin kullanılabilir olması için iki amaca ulaşması gerekir. İşlev modeli ilk ve son çıktı durumlarının yanında araya girmesi muhtemel bazı durumları da tamamen belirleyen bir üretim mekaniği tanımlamalı, aynı zamanda bu mekaniğin koşulları içinde doğru bir şekilde tanımlanan herhangi bir giriş ile gerçek sistemdekine tam olarak uygun ve söz konusu giriş ile ilgili bir çıktı sağlamalıdır. Her işlev modeli için gerekli olmayan ancak işlev modelinin yapabilmesi gereken iki şey daha belirtilebilir. Bunlar, sistemin girdi ve çıktı haricindeki sistem verilerini tanımlayabilmek ve her bir elemanın veri başına yaptığı işlemin bir açıklamasını yapabilmektir."İlk tanımlanan işlev modellerinden biri de 1950'lerde savunma ile ilgili oluşturulmuş TRW tarafından geliştirilen İşlevsel Akış Blok Diyagramıdır. 1960'larda NASA uzay sistemlerinde ve uçuş görevlerinde olayların zaman sırasını görselleştirmek için kullandı. Klasik sistem mühendisliği alanında sistem işlevlerinin uygulama sırasının gösteriminde daha yaygın şekilde kullanılır.


## İşlevsel modelleme konuları.
### İşlevsel persperktif.
Sistem ve yazılım mühendisliğinde bir işlev modeli işlevsel modelleme perspektifiyle oluşturulur. İşlevsel perspektif, iş süreci modellenmesindeki perspektiflerden birisi olabildiği gibi, davranışsal, örgütsel veya bilgilendirici perspektifler de olabilir.
İşlevsel modelleme perspektifi dinamik süreci tanımlamaya odaklanır. Bu modelleme perspektifindeki temel fikir işlev, dönüşüm, aktivite, eylem, görev, gibi bir süreç olabilir. Bu perspektifi kullanan modelleme dilinin en iyi bilinen örneği veri akış şemalarıdır.
Bu perspektif, süreci tanımlamak için dört sembol kullanır. Bunlar:
  - Süreç: Girdinin çıktıya dönüşümünü gösterir.
  - Depo: Veri yığını veya bir çeşit malzeme.
  - Akış: Süreçteki verilerin veya malzemelerin hareketi.
  - Dış Etken: Modellenen sistemin dışındadır. Ancak onunla etkileşim içindedir.
Şimdi bir süreç sembollerden oluşan bir ağ şeklinde gösterilebilir. İşte bu ayrıştırılmış süreç veri akış şemasıdır. (Data Flow Diagram(DFD))
Dinamik Kurumsal Modelleme, Kontrol Modeli, İşlev Modeli, Süreç Modeli ve Organizasyon modeli bölümlerinden meydana gelir.


### İşlevsel ayrıştırma.
İşlevsel ayrıştırma, orijinal işlevin bu işlev bileşenleri kullanılarak yeniden oluşturulması yoluyla, işlevsel bir ilişkiyi oluşturan kapsamlı parçalara ayırma sürecini ifade eder. Genel olarak bu ayrıştırma süreci, ya küresel işlevin sıkıştırılmış bir temsilini elde etmek ya da işlevi oluşturan unsurların niteliğini anlamak amacıyla yapılır. Bu göre sadece işlevi meydana getiren süreçler belirli bir modülariteye sahipse yapılabilir.
İşlevsel ayrıştırmanın, ana hedefin süreci mümkün olduğunca modüler hale getirmek olduğu bilgisayar programlamada önemli bir yeri vardır. Örneğin bir kütüphane yönetim sistemi bir envanter modülüne, müşteri bilgi modülüne ve ücret değerlendirme modülüne ayrılabilir. Bilgisayar programcılığının ilk on yılında bazı önde gelen uygulayıcılar tarafından "alt program sanatı" olarak adlandırılmıştır.
Mühendislik sistemlerinin işlevsel ayrışımı, mühendislik sistemlerini analiz eden bir yöntemdir. Temel fikir blok şemasındaki her bloğun tanımında "ve" veya "veya" olmadan tanımlanması şeklinde sistemi bölümlendirmektir.
Bu uygulama, sistemin her bir bölümünü saf bir işleve sahip olmaya zorlar. Sistem saf işlevlerden oluştuğunda, bunlar yeniden kullanılabilir veya değiştirilebilir. Bloklar arasındaki arayüzlerin basit ve kendine özgü olması olağan bir yan etkidir. Arabirimler genellikle basitleştiğinden, saf bir işlevin ilgili, benzer bir işlevle değiştirilmesi daha kolaydır.


## İşlevsel modelleme yöntemleri.
İşlevsel yaklaşım çoklu şematik teknikler ve modelleme gösterimlerinde genişletilir. Bu bölüm, önemli teknikler hakkında kronolojik sırayla genel bir bakış sunar.


### İşlev Blok Şeması.
İşlevsel blok şema sistemin işlevlerini ve dahili ilişkilerini tanımlar. İşlevsel blok şema şunları gösterebilir:
  - Bloklar ile sistemin işlevlerini
  - Çizgiler ile giriş ve çıkış öğelerini
  - İşlevler arasındaki ilişkileri
  - Madde ve / veya sinyaller için fonksiyonel sıralar ve yollar.
Blok diyagramı, belirli özellikleri göstermek için ek şematik simgeler kullanabilir.
Özel bir işlev blok şeması olan klasik İşlevsel Akış Blok Şeması ve İşlev Blok Şeması, programlanabilir mantık kontrollerinin tasarımında kullanılır.


### İşlevsel akış blok şeması.
İşlevsel akış blok şeması, sistemin işlevsel akışının çok katmanlı, zaman aralıklı, adım adım gösterimidir. Bu şema 1950’lerde geliştirilmiş ve klasik sistem mühendisliğinde geniş bir alanda kullanılmıştır. İşlevsel Akış Blok Şeması aynı zamanda İşlevsel Akış Şeması, İşlevsel Blok Şeması ve İşlevsel akış olarak da adlandırılır.
İşlevsel akış blok şemaları genellikle sistemler için ayrıntılı, adım adım operasyonel ve destek dizilerini tanımlar, ancak aynı zamanda sistemleri geliştiren ve üreten süreçleri tanımlamak için de etkili bir şekilde kullanılırlar. Yazılım geliştirme süreçleri işlevsel akış blok şemalarını yoğun şekilde kullanmaktadır. Sistem bağlamında, işlevsel akış adımları, donanım, yazılım, personel, tesisler ve / veya prosedürlerin kombinasyonlarını içerebilir.
İşlevsel akış blok şeması yönteminde, işlevler mantıksal yürütme düzeni ile düzenlenir ve gösterilir. Her işlev, diğer işlevlerin yürütülmesi ve tamamlanması ile olan mantıksal ilişkisine göre gösterilir. İşlev adı ile etiketlenmiş bir düğüm, bir işlevi tasvir eder. Soldan sağa doğru oklar işlevlerin yürütme sırasını gösterir. Mantıksal semboller fonksiyonların sıralı veya paralel yürütülmesini temsil eder.
Hiyerarşik Girdi İşlem Çıktısı(HIPO) ve Girdi İşlem Çıktısı(IPO)
Hiyerarşik girdi işlemi çıktısı(HIPO), bir sistemi hiyerarşik olarak temsil etmek ve her modülü belgelmek için kullanılan ve 1970'lerde popüler olan sistem analizi tasarım yardımı ve dokümantasyon tekniğidir.
İhtiyaçların geliştirilmesi, tasarım yapmak ve otomatik buluşmayı göstermek için uzman bir sistem uygulamasını desteklemek için kullanıldı. Tasarım ve uygulama yöntemi nedeniyle ayrıca sistematik doğrulama eklendi.
Sistemin genel tasarımı HIPO çizelgeleri veya yapı çizelgeleri kullanılarak belgelenir.  Yapı grafiği, görünüşte bir organizasyon şemasına benzemektedir. Fakat ek ayrıntı göstermek için değiştirilmiştir. Yapı çizelgeleri, çeşitli bilgi türlerini görüntülemek için kullanılabilir, ancak en çok veri yapıları veya kod yapılarını grafik olarak göstermek için kullanılır.


### N2 Çizelgesi.
N2 Grafiği, sistem öğeleri arasındaki işlevsel veya fiziksel arabirimleri temsil eden bir matris şeklinde bir şemadır. İşlevsel ve fiziksel arayüzleri sistematik olarak belirlemek, tanımlamak, tablo oluşturmak, tasarlamak ve analiz etmek için kullanılır. Sistem arayüzleri, donanım ve / veya yazılım arayüzlerine uygulanır.
N2 şeması öncelikle yazılım alanlarında, veri arayüzleri geliştirmek için yaygın bir şekilde kullanılmaktadır. Bununla birlikte, donanım arayüzleri geliştirmek için de kullanılabilir. Temel N2 şeması Şekil 2’de gösterilmiştir. Sistem fonksiyonları diyagonal üzerine yerleştirilir, N x N matristeki karelerin geri kalan kısmı arayüz giriş ve çıkışlarını temsil eder.
Yapısal Analiz ve Tasarım Tekniği
Yapısal Analiz ve Tasarım Tekniği, sistemleri hiyerarşik işlevler şeklinde tanımlayan bir yazılım uygulaması taslağı oluşturmak için şematik olarak gösteren bir yazılım tekniğidir. Faaliyetleri ve varlıkları temsil etmek için yapı bloklarını ve kutuları ilişkilendirmek için çeşitli okları içerir. Bu kutu ve oklar anlamsal gayri resmi ilişkileri içerir. Yapısal Analiz ve Tasarım Tekniği, belirli bir sürecin ardışık seviyelerini kullanarak işlevsel bir analiz aracı olarak kullanılabilir. Yapısal Analiz ve Tasarım Tekniği yöntemi, endüstriyel bilgi sistemlerinde kullanılan IT gelişmelerine yönelik kullanıcı ihtiyaçlarını tanımlamaya olanak tanır. Aynı zamanda bir faaliyetin üretim süreçlerini ve, prosedürlerini temsil ederek açıklar.
Yapısal Analiz ve Tasarım Tekniği, bir şirketteki işlevleri ve ilişkilerini açıklayarak herhangi bir işletmenin belirli bir fonksiyonel görünümünü içerir. Bu işlevler, satış, sipariş planlama, ürün tasarımı, parça imalatı ve insan kaynakları yönetimi gibi bir şirketin hedeflerini yerine getirir. Yapısal Analiz ve Tasarım Tekniği, basit işlevsel ilişkileri gösterebilir ve farklı işlevler arasındaki veri ve kontrol akış ilişkilerini yansıtabilir. IDEF0 biçimciliği 1985'te Douglas T. Ross tarafından geliştirilen Yapısal Analiz ve Tasarım Tekniğine dayanır.
IDEF0
IDEF0, analiz, geliştirme, yeniden yapılandırma ve bilgi sistemlerinin entegrasyonu, iş süreçleri veya yazılım mühendisliği analizi için fonksiyonel bir modelleme dili sunan, imalat işlevlerini tanımlamak için kullanılan bir işlev modelleme yöntem bilimidir. Yazılım mühendisliği alanında modelleme dillerinin oluşturduğu IDEF ailesinin bir parçasıdır ve Yapısal Analiz ve Tasarım Tekniği fonksiyonel modelleme dili yapısında yer almaktadır.
IDEF0 İşlevsel Modelleme yöntemi, bir organizasyonun veya sistemin kararlarını, eylemlerini ve faaliyetlerini modellemek üzere tasarlanmıştır. Douglas T. Ross ve SofTech, Inc. tarafından geliştirilen ve kurulu grafik modelleme dillerinden Yapısal Analiz ve Tasarım Tekniğinden türetilmiştir. Orijinal formunda, IDEF0 grafiksel bir modelleme dili (sözdizimi ve anlambilim) hem tanımını hem de Model geliştirme için kapsamlı bir yöntem biliminin tanımını içerir. ABD Hava Kuvvetleri, Yapısal Analiz ve Tasarım Tekniği geliştiricilerine, bir sistemin işlevsel perspektifini analiz etmek ve iletmek için bir işlev modeli yöntemi geliştirmeleri için yetkilendirdi. IDEF0, sistem analizinin organizasyonunda yardımcı olmalı ve basitleştirilmiş grafik yöntemler vasıtasıyla analist ve müşteri arasında etkin iletişim sağlamalıdır.


### Aksiyomatik tasarım.
Aksiyomatik tasarım, ürünlerin, bilgi sistemlerinin, iş süreçlerinin veya yazılım mühendisliği çözümlerinin analizi, geliştirilmesi, yeniden yapılandırılması ve entegrasyonu için bir çözüm sentez yapısı olarak kullanılan en üst düzeydeki hiyerarşik fonksiyon ayrıştırma sürecidir. Yapısı, olası fonksiyonel çözüm modellerinin mimari sağlamlığını optimize etmek ve işlevler arasındaki bağlanmayı analiz etmek için matematiksel olarak uygundur.


## İlgili model türleri.
Sistemler ve yazılım mühendisliği alanında sayısız spesifik fonksiyon ve fonksiyonel modeller ve yakın ilişkili modeller tanımlanmıştır. Burada sadece birkaç genel tip açıklanacaktır.
İşletme işlev modeli
İşletme İşlev Modeli, bir organizasyonun misyonunu yerine getirmek için düzenli olarak uygulanan işlemlerin genel bir tanım veya kategorisidir. Genel işletme fonksiyonlarının tanımlanması için kavramsal bir yapı sağlar. İş alanı işlevleri bağlamında kritik iş süreçlerini gösterebilir. İşletme işlev modelindeki süreçler, değer zinciri modellerindeki süreçlerle tutarlı olmalıdır. Süreçler, bir nihai ürün üretmek veya bir hizmet sunmak için gerçekleştirilen bir dizi ilgili işletme faaliyetidir. Sürekli olarak gerçekleştirilen iş işlevlerinin aksine, işlemler, belirli bir başlangıç ve bitiş noktasına sahip oldukları ve istenen çıktıların teslim edilmesi ile karakterize oldukları gerçeğiyle karakterize edilir. Sağdaki şekil iş süreçleri, işletme fonksiyonları ve işletme alanının işletme referans modeli arasındaki ilişkiyi göstermektedir.
İş Süreci Modeli ve Şeması
İş Süreci Modeli ve Şeması, bir iş akışında iş süreçlerini belirten grafiksel bir sunumdur. İş Süreci Modeli ve Şeması, İş Süreçleri Yönetimi Girişimi tarafından geliştirildi ve şu anda iki organizasyonun 2005 yılında birleşmesinden dolayı Nesne Yönetim Grubu tarafından sürdürülüyor. İş Süreci Modeli ve Şeması'nın güncel sürümü 2.0'dır.
İş Süreci Modeli ve Şemasının özellikleri İş süreç Şemasındaki iş süreçlerini tanımlamak için grafiksel bir gösterim sağlar. İş Süreci Modeli ve Şemasının amacı, hem teknik kullanıcılar hem de ticari kullanıcılar için iş süreci yönetimini, işletme kullanıcılarına sezgisel olan, ancak karmaşık süreç semantiklerini temsil edebilen bir gösterim sağlayarak desteklemektir. İş Süreci Modeli ve Şemasının özellikleri ayrıca, gösterim grafikleri ile temel yürütme dillerinin yapıları olan BPEL4WS arasında bir eşleme sağlar.


### İş referans modeli.
İş referans modeli, bir kuruluşun, hizmet kuruluşunun veya devlet kurumunun temel işinin işlevsel ve örgütsel yönlerine odaklanan bir referans modelidir. Kurumsal mühendislikte bir iş referans modeli, bir kuruluş mimarisi çerçevesi veya mimarlık çerçevesinin bir parçasıdır ve kuruluş mimarisi ile ilişkili yapıların ve görünümlerin nasıl düzenleneceğini tanımlar.
Genel olarak referans modeli, bir şeyin temel hedefi veya fikrini somutlaştıran ve sonra çeşitli amaçlar için bir referans olarak görülebilecek bir modelidir. Bir işletme referans modeli, onları gerçekleştiren organizasyon yapısından bağımsız olarak bir kuruluşun işletme faaliyetlerini tanımlamak için bir araçtır. Diğer tip işletme referans modeli türleri, iş süreçleri, işletme fonksiyonları ve işletme alanının işletme referans modeli arasındaki ilişkiyi de tasvir edebilir. Bu referans modeli katmanlar halinde oluşturulabilir ve servis bileşenleri, teknoloji, veri ve performans analizleri için bir temel oluşturabilir.


### Kullanıcı İşlev Modeli.
Kullanıcı İşlev Modeli, insan faktörleri mühendisleri tarafından kullanılan geleneksel görev analiz tekniklerine bir alternatif olarak önerilmiştir. Bir operatör işlevi modeli, bir operatörün karmaşık bir sistemi daha basit parçalara ayırıp, kontrol eylemlerini ve sistem konfigürasyonlarını koordine ederek kabul edilebilir toplam sistem performansına ulaşmasını matematiksel biçimde göstermeye çalışır. Model, karmaşık sistemlerde bilgi temsili, bilgi akışı ve karar verme ile ilgili temel meseleleri temsil eder. Miller (1985), şebeke yapısının, bir operatörün sistemin iç modelinin olası bir temsilinin yanı sıra, operatör kontrol fonksiyonlarını içeren karar problemlerini çözmek için modelin nasıl kullanıldığını belirten bir kontrol yapısı olarak düşünülebileceğini önermektedir.