Loading

TASARIM NEDİR?What Is Design?

psp_design_1
Tasarım bir sistem için tanımlanmış gereksinimleri karşılayacak şekilde mimariyi, bileşenleri, modülleri, arayüzleri ve verileri tanımlama sürecidir.
Aslında tasarım bir öğrenme sürecidir. Gereksinimleri karşılayacak yazılımın kodlamasını kolaylıkla yapılmasını sağlamak için çalışmalar yapılan, gereksinim çıkarma ile kodlama katmanı arasındaki bir ara katmandır. Yapılan tasarım kullanıcı gereksinimlerini karşılarken gerçekleştirimi de kolaylaştırmalıdır.

Peki, tasarım yapmaya gerçekten ihtiyaç var mıdır? Bireysel yapılan birçok projede tasarım sürecine fazla zaman ayırmadan kodlama aşamasına geçilir ve ürün gereksinimleri karşılayamayacak bir şekilde ortaya çıkar. Tasarım yapmak neden kritiktir?

psp_design_2
Yandaki grafikte de yukarıda bahsettiğimiz durumu destekleyen bir sonuç vardır. Grafiğe göre tasarım sürecine ayrılan zaman arttıkça saat başına üretilen kod miktarında azalma olmuş. Tasarımın verimliliği artırması beklenirken neden ters etki yapmış?

Tasarımın önemini ortaya çıkaran durum projede görev alan kişi sayısı ve projenin büyüklüğüdür. Bireysel ve küçük boyuta sahip projeler için tasarım yapıp yapmamak önemli değildir. Grafikteki veriler bireysel performansa göre ölçülmüştür. Fakat projede çalışan sayısı arttıkça ve proje boyutu büyüdükçe tasarım yapmak ve bu tasarımı yazılı hale getirmek projenin kalite ve güvenlik ölçütlerinden dolayı önemlidir. Çünkü:

  • Tasarım geliştirme sürecini izlemeye ve durum tespiti yapmaya imkân verir. Projedeki çalışanlar yapılmış tasarıma bakar ve yapılan, yapılacak işleri ile iş durumlarını anlarlar.
  • Geliştirme boyunca ekipten ayrılan insanlar olabileceği gibi yeni katılan insanlar da olabilir. Peki, yeni katılan birine projenin ne aşamada olduğunu ve yapılması gereken işleri net bir şekilde anlatabilecek bir babayiğit var mı? Var ise ne kadar sürede anlatabilecek? 1 saat 1gün 1 ay? Tasarım bu sorunun önüne geçer ve sonradan dâhil olan kişiler tasarıma bakar ve en kısa sürede uyum sağlarlar.
  • Yazılımda kaliteyi sağlayan ölçütlerden birisi bakım kolaylığıdır. Ürün tesliminden sonra meydana gelebilecek bir hatayı çözmek için yapacağımız değişiklerin ürüne nasıl etki edeceğini analiz etmek için tasarım kullanılır. Tasarım incelenir, gerekli düzenlemeler yapılır ve tasarım güncellenir.

Tasarım önemlidir çünkü iyi tasarım ölçeklenebilirlik açısından anahtar niteliği taşır ve ölçeklenebilirlik de cost-effective ve yüksek kaliteli ürün için anahtar niteliği taşır. Peki, yazılımda kaliteyi sağlamak için neler yapılmalıdır? Kaliteli tasarımın özellikleri nelerdir?

  • Tasarımımız sağlam bir temele sahip olmalı. Gereksinim çıkarma sürecinde olabildiğince gereksinimleri doğru ve tam bir şekilde çıkarmamız gerekmektedir. Çünkü olası gereksinim değişikliğinde tasarım değişmelidir ve sürekli değişen tasarımın kontrolü giderek zorlaşır.
  • Her işlemde olduğu gibi bu işlemde de hata yapabiliriz. Tasarım hataları yapma ihtimalinden dolayı tasarım gözden geçirme ve analiz işlemi yaparak mümkün olduğunca test sürecine girmeden hataları gidermeliyiz.
  • Tasarımın kodlanması kolay olmalıdır. Ekipteki kodcular tasarıma baktığı zaman tam olarak ne yapması gerektiğini anlamalıdır.

 

Kaynaklar:

  • W. S. Humpherey, PSP A Self-Improvement Process for Software Engineers
  • The Software Engineering Institute (SEI)

psp_design_1
Design is defining process of the architecture, modules, components, interfaces and data in such a way that it can meet defined necessities of a system.
Indeed design is a learning process. It is a layer between software requirement specification and coding. Studies are made in this layer to make it easier to code software.

Well, is there really need to design? In the individual made project, too little time is allocated for design and after this short period, coding of software starts. Because of short design period, the product doesn’t meet necessities. Why has making design critical importance?

psp_design_2
In the figure 14.1, there is a result which promotes above mentioned. According to the figure, if amount of allocation of time rises, productivity line of code per hour reduces. We expect that design increases productivity, but design reduced the productivity. What is the reason of it?

The reason reveal importance of design is that the size of project and count of worker. For Individual and small size project, making design has not critical importance. But while increasing size of project, making design and creating a written form is important for quality and security measurement. Because:

  • Design allows to monitor developing process and determine the situation. Workers examine the design and find out working situation.
  • In developing period, some workers can leave from job and new workers can go into project. Design helps new workers to make it easier to find out working situation.
  • Maintain is a measure of software quality. After delivering product, you must solve bugs come from customer. To analyze impact on system after arrangement to solve bugs, the design document will help you.

Design is important. Because a good design have a key value from the point of scalable. And scalable have a key value from the point of making cost- effective and high quality product. Well, what are the properties of quality design?

  • Design must have a robust base. In software requirement specification process, we must find out requirements as accurately as possible. Because after changing a requirement, we must change the design and changing design too much causes some difficulties in controlling.
  • We can make wrong. The possibility of making wrong, we should review and analyze design before test layer.
  • Design should help to coding. Coders understand easily when examine design.

 

Resources:

  • W. S. Humpherey, PSP A Self-Improvement Process for Software Engineers
  • The Software Engineering Institute (SEI)

Leave a Reply

Your email address will not be published. Required fields are marked *