Akış Diyagramı ve Algoritma Çıkarmayı Ne Kadar Kullanıyoruz ?

Başlatan MrDarK, 06 Temmuz 2014, 05:06:16

MrDarK

Merhaba arkadaşlar ;

Bugün yazılımcıların büyük bir çoğunluğunun yapmadığı algoritma ve akış diyagramlarının çizimleri , nelere dikkat edilmesi gerektiğini ve önereceğim programları paylaşacağım.

Öncelikle soru cevap şeklinde gidecek olursak neden akış diyagramı çizmiyoruz sorusuna gelelim.

1- Proje basit herşey için algoritma mı yazacağım.

2- Zaten bu bir demo , demo başarılı olursa ilgilenirim.

3- Biraz ilerleyeyim yaparım birşeyler.

4- Akış diyagramı da neymiş hepsi benim aklımda, attım hafızaya ne gerek var diyagrama. Beyin Bedava !

Daha uzatabilirdim ama gerek duymuyorum =) Bunları yazıyorum ama daha birkaç aya kadar bende akış diyagramı kullanmıyordum hatta bu örnekler benim kendi örneklerimdi. Kullanmaya başladıkça önemini ve değerini anlamaya başladım. Öncelikle bu mesleği profesyonel olarak yapan kişiler , yaptığı işin kusursuz olmasını isteyen herkes hazırladığı proje için bir akış diyagramı hazırlamalıdır. Kendisinden sonra gelecek kişiye veya X bir yıl sonra proje hakkında bir güncelleme gerektiğinde ne yapmıştık burada deyip didinmek veya " abi bu yazdığım koddan hiç birşey anlamıyorum. " gibi cümlelerle çoğu kez karşılaştım. Bu sebeptendir ki gerçekten yaptığınız işe önem veriyorsanız her anlamda tüm dosyalarını hazırlamasınız.

Akış diyagramı bir projenin olmazsa olmasıdır. Fakat bazı çerçevelerde bunu şu şekilde anlayan kişilerde mevcut , projenin tüm yaptığı işi yeteneklerinin anlatıldığı bir belge niteliğinde görenlerde var. Ama değil, akış diyagramı bir projenin fonksiyonlarının işlevlerinin hangi yoldan nerelere gidip sonucunda nereye varacağını gösteren şemalar bütünüdür bana göre.

Akış diyagramı çizimine bir satır dahi kod yazmadan başlayınız ! Yapacağınız yazılım demo veya V1 bile olsa daha kodu yazmadan şemayı çizmelisiniz. Akış diyagramı yapmadan koda başlamak şematik çizmeden yapılan PCB'ler , veya breadboard örnekleri gibidir. Çok çok büyük oranda daha siz işin sonuna geldiğinizde eksikleri yeni görüp belkide geri dönülemeyecek kadar projeyi ilerletmiş olabilirsiniz.

Diyelim ki diyagramı çizdiniz bunu mutlaka ortak çalıştığınız proje arkadaşlarınızla veya tanımadığınız ama elektronikten veya yazılımdan az çok anlayan bir dostunuza anlatmaya çalışın. Neden mi ? Çünkü sizin kafanızda dönen şeyi gerçek anlamda çizmiş olsanız bile mantık hataları olabilir. Yazılımı da bu şemaya göre fonksiyon fonksiyon yaparsanız aynı mantık hataları yazılımlarınızda da olacaktır. Arkadaşınıza anlatırken ondan gelebilecek X , Y ve Z gibi soruları cevaplayıp karşınızdaki kişide bir algı bırakabiliyorsanız o diyagram olmuş demektir.

Gelelim Örnek projelere , Aşağıdaki resimler internetten örnek olarak alınmıştır. Ben daha çok state machine diyagramlarını seviyorum :)







* Öncelikle bu iş için sizin kullandığınız programlar nelerdir ?

Önerilen Programlar

- yEd
- TikZ
- MS Visio
- Graphviz

Herkese iyi çalışmalar diler okuduğunuz için teşekkür ederim.

Saygılarımla
MrDarK ~ 2014
Picproje Eğitim Gönüllüleri ~ MrDarK

Tagli

Genelde akış diyagramı, nesne diyagramı veya state machine çizimlerimi kağıt kalemle yapıyorum. Ancak bunları düzenli bir şekilde bilgisayara geçirmeyi hep ihmal ediyorum. Kafamda bir şeyler netleştikten sonra yine kağıt üzerinde kod parçaları veya yalancı (pseudo) kod yazıyorum. Daha sonra bilgisayara geçirmeye başlıyorum. Ancak bilgisayara geçirmeye başladıktan sonra, karalamalarımı güncellemeyi ihmal ediyorum maalesef.

Çizim için Dia'yı öneririm. Çok böyle özelliği olan bir program değil ama özgür yazılım. GNU/Linux ve Windows'ta çalışıyor (Mac'i bilmiyorum).
Gökçe Tağlıoğlu

Icarus

Aslında olay abartığınız gibi değil. State Machine dizaynı yapmıyorsanız -ki modern çağda pek yok- akış diagramı baya kötü
UML Diagramlarına bir bakın derim

run

Akış diyagramı çizmeyi sevmeyenlerdenim.
Yazılımlarımı kendime özgü bir düzenle hazırladığım için 5-6 yıl önce yazmış olduğum bir programa ve şemasına bir göz gezdirdiğimde neler yaptığımı anlayabildiğim için gerek görmüyorum belki de.
özgürlük için teknoloji

z

@Run

En az 3 haneli sayilari kafadan carpaliyormusun merak ettim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Seckin ALAN

single takılıyor iseniz problem yok. Grup çalışması yapıyor iseniz o kadar çok problem çıkıyor ki.
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

mufitsozen

Alıntı yapılan: Icarus - 06 Temmuz 2014, 09:43:27
Aslında olay abartığınız gibi değil. State Machine dizaynı yapmıyorsanız -ki modern çağda pek yok- akış diagramı baya kötü
UML Diagramlarına bir bakın derim

Hocam UML diagramlarina bir baktim, Statechart ve Message sequence chart diagramlari var.

State machine designlarda kullanilir diyor.

Acaba benim baktigim 1970lerden kalan bir UML kitabi olmasin?

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.


AsHeS

Şu ana kadar çizipte en anlamlı olduğuna inandığım diyagram Mesaj Akış diyagramıdır. SDL ve normal flow chart ın mesaj akışı yanında zayıf kaldığını düşünüyorum(tasarıma bağlı olarak.).

X-Fi

MS Visio Flowchart öneririm hem görsel hemde hızlı algoritma çıkartmanızı sağlıyor.

Sürekli kullanırım.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

run

Alıntı yapılan: z - 06 Temmuz 2014, 11:53:38
@Run

En az 3 haneli sayilari kafadan carpaliyormusun merak ettim.

Genelde hesap makinesi kullanıyorum :)

Alıntı yapılan: Seckin ALAN - 06 Temmuz 2014, 19:47:01
single takılıyor iseniz problem yok. Grup çalışması yapıyor iseniz o kadar çok problem çıkıyor ki.
Benim olayım bu galiba single takılmak :)
özgürlük için teknoloji

erpay

Genelde tahtada yapıp en sonunda resmini çekiyorum ama bu şekilde arşivlenmesi ya da üzerinde oynanması zor oluyo.

mufitsozen

Alıntı yapılan: AsHeS - 07 Temmuz 2014, 02:28:23
Şu ana kadar çizipte en anlamlı olduğuna inandığım diyagram Mesaj Akış diyagramıdır. SDL ve normal flow chart ın mesaj akışı yanında zayıf kaldığını düşünüyorum(tasarıma bağlı olarak.).

SDL icin kullandiginiz bir tool varmi? ne onerirsiniz?
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

MrDarK

Alıntı yapılan: erpay - 07 Temmuz 2014, 09:50:04
Genelde tahtada yapıp en sonunda resmini çekiyorum ama bu şekilde arşivlenmesi ya da üzerinde oynanması zor oluyo.

Buda güzel bir yöntem hocam ; sonuçta 2'side dijital ortamda kalmış oluyor. Lakin biliyoruz ki kurumsal şirketlerde bu taktikte yemez :)

Tek başına çalışan arkadaşlardan biraz şikayet gelmiş gibi geldi bana fakat şöyle bir olay var, kurumsal çalışan şirketlerde bu tarz işleri böyle yapmak zorundayız kendi şirketinizi yönetiyorsanız zaten patron sizsiniz fakat burda tartışmamız gereken projenin ilerki safhalarında ortaya çıkabilecek şeyler. Fikrimce bir proje için akış diyagramını çok önemli buluyorum.

O zaman şematik de çizmeyelim ne gerek var ? Yazılım diyip geçmemek lazım derim.
Picproje Eğitim Gönüllüleri ~ MrDarK

mufitsozen

Alıntı yapılan: MrDarK - 07 Temmuz 2014, 10:06:22
Buda güzel bir yöntem hocam ; sonuçta 2'side dijital ortamda kalmış oluyor. Lakin biliyoruz ki kurumsal şirketlerde bu taktikte yemez :)

Tek başına çalışan arkadaşlardan biraz şikayet gelmiş gibi geldi bana fakat şöyle bir olay var, kurumsal çalışan şirketlerde bu tarz işleri böyle yapmak zorundayız kendi şirketinizi yönetiyorsanız zaten patron sizsiniz fakat burda tartışmamız gereken projenin ilerki safhalarında ortaya çıkabilecek şeyler. Fikrimce bir proje için akış diyagramını çok önemli buluyorum.

Hocam pratikte kullandiginiz akis diyagramlarindan cok basit olmayan  bir ornek koyabilirmisiniz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.