Bu yazıyı yazma ihtiyacı son derece uzun ve sıralı çalışan bir işlevler zincirinin kodunu görünce ortaya çıktı. Kod şuna benziyordu.
- Anteni yönlendir- Sistem bozulmalarını kontrol et- Automatic/Manuel mod değişiklik emirlerini işle- Frekans atla- Sinyal gönder- Sinyal al- IFF sorgulaması yap- İzleri takip et- Gürültü seviyesini düzenle- Karıştırmaları tespit et- ...
ve onlarca adım daha. Aslında adımların isminin bir önemi yok. Sadece bunların belirli bir sıraya göre çalışması gerekiyor. Bu kadar karışık işlemler zinciri nasıl tasarlanır ve nasıl kodlanır ?
Tasarım Aşamasında Functional Decomposition
Açıklaması şöyle. Sistem Tasarım veya Yazılım Tasarım aşamasında "Functional Decomposition" yöntemi kullanılabilir ve bence kullanılmalı. Çünkü tüm akışı, sıralamayı görmenin en kolay yolu bu.
Yani Functional Decomposition bir mühendislik yaklaşımı. Ancak özellikle karmaşık yazılımlarda çok önemli. Açıklaması şöyle.Practically, functional decomposition is used by engineers to describe the steps taken in the act of breaking down the function of a device, process, or system into its basic components. As a result of the analysis, a functional decomposition diagram will detail the functions–tasks and sub-tasks and how they work together. The diagram may also address any problems, as well as suggest solutions to those problems.
Functional decomposition is especially important in programming. Once a diagram has been created, coding may begin as the programmer may then work on the most basic components first and then build out an application. As such, functional decomposition helps focus and simplify the programming process. One drawback, however, is that functional decomposition can be especially labor-intensive and time-consuming.
Örnek
Şöyle bir ayrıştırma örneği verilebilir.
You can think of programming the same way. Think of the software running that ATM:Code for reading the cardPIN verificationTransfer Processing
Functional Decomposition ve Altyapının (Infrastructure) Da Ayrılması
Bazen Functional Decomposition yapılsa bile altyapı ile business logic yani işlevsel kod iç içe geçebiliyor. Bunu da ayırmakta fayda var.
Örnek
Doom oyun motorunun ve oyun içeriğinin ayrı şeyler olması örnek verilebilir.Bu sayede oyunun parasız/deneme sürümleri de verilebilmiş. Açıklaması şöyle
Works well with any application that uses a clean separation of content and engine.
Object Oriented Decomposition
Açıklaması şöyle. Functional Decomposition diyagramındaki bir kutunun içinin hangi nesnelerde gerçekleştirileceği gösterir.
Object-oriented decomposition emphasizes the entities that cause the operations.It is very useful after initial functional description. It helps to deal with change(usuallyobject don’t change often, but the functions attached to them do). Inobject-oriented decomposition, the system is decomposed into classes (objects).Each class is a major entity in the application domain. Classes can be decomposedinto smaller classes.
Hiç yorum yok:
Yorum Gönder