1 / 33

Yazılım Tasarım ve Mimarisi

Yazılım Tasarım ve Mimarisi. Hafta 1. Yazılım Tasarımı Nedir?. Yazılım tasarımı , bir sorunun  yazılım  çözümü için, sorun giderme ve planlama aşamasıdır . Yazılımın  özellikleri kararlaştırıldıktan sonra yazılım geliştiricileri sorun için bir çözüm geliştirir.

elam
Download Presentation

Yazılım Tasarım ve Mimarisi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Yazılım Tasarım ve Mimarisi Hafta 1

  2. Yazılım Tasarımı Nedir? • Yazılım tasarımı, bir sorunun yazılım çözümü için, sorun giderme ve planlama aşamasıdır. • Yazılımın özellikleri kararlaştırıldıktan sonra yazılım geliştiricileri sorun için bir çözüm geliştirir.

  3. Yazılım Tasarımı Niçin Gereklidir? • Bir yazılım tasarımının ilk hedefi gereksinimleri karşılamak için yeterli olmalıdır. • Genellikle yazılım tasarımlarında gereksinimleri ve değişiklikleri önceden tahmin etmek gerekir • Yazılım tasarımının bir diğer hedefi sağlamlık: Ürünün geniş bir çeşitliliği olan girişi tahmin etmek.

  4. Yazılım Tasarımı Niçin Gereklidir? • Tasarım bir iletişim şeklidir. • En basit haliyle tasarımcıların bir düşüncenin sonucu bu belgeler o ne tasarlamış bilmesi gerektiğinde ve bundan sonra kendine tekrar iletişim kurmak için kullanılır. • Bu tasarımcı iyi ise ihtiyaç duyulan tek kişi olabilir. • Ama bir proje genellikle ömür boyunca birkaç kişi gerektirir.

  5. İyi bir yazılım mimarı ve tasarımcısı uygulama genel bir düzeyde nasıl çalışacağını gösteren net bir zihinsel model oluşturur, daha sonra bu zihinsel modelle uygun bir ayrışma geliştirir.

  6. UML Nedir? • Yazılım mühendisliği tasarımı açıklayan bir temel araç olarak UnifiedModeling Language(UML) kullanır. • UML endüstriyel olarak geliştirilmiş ve standartlaşmış bir evrensel modelleme biçimi ve dilidir. • Fakat UML asla bir programlama dili değildir!

  7. UML ye Neden Gerek Vardır? • Günümüzde büyük ölçekli yazılımlar deneme yanılma yöntemiyle yazılacak boyutu çoktan aşmış durumda • Yazılım üretiminde başarı %16 seviyelerinde… • İhtiyaçların , kaynakların , proje planının paylaşılması lazım

  8. UML ye Neden Gerek Vardır? • Görsel ve metinselnotasyonlar kullanarak sistemi tüm boyutlarıyla modelleyebileceğimiz ve tasarımını gerçekleştirebileceğimiz bir araç gerekli... • Modellenmiş ve dokümante edilmiş bir yazılımı her yerde ve ortamda tanıtabilir ve kolayca anlatabiliriz.

  9. UML nin Faydaları Nelerdir? • Tasarım ve analizi yapılmış olduğu için daha kolay kodlama yapılır. • Hatalar minimuma indirilir • Tekrar kullanılabilir kod sayısı epey artabilir • Bellek kullanımı daha verimli olur • Programın kararlılığı artar(Senaryoların yardımıyla) • Takım çalışması için harika bir yardımcıdır

  10. UML Tasarlanan sistemin 3 önemli yönünü modeller • Fonksiyonel (işlevsel) model * Kullanıcının bakışı ile sistem (kullanım şekilleri) UML Use Case Diagrams • Nesne modeli * Sistemin yapısı: nesneler, özellikleri, işlemler, yapısal ilişkiler UML Class Diagrams • Dinamik model * Sistemin iç işleyişi UML Sequence, Activity, State-Chart Diagrams

  11. Use Case Diyagramları • Sınıfların ve sistemin zamanla değişimini gösteren diyagramlara ‘USE CASE’ diyagramları denmektedir. • Bu diyagramlar Actors ve Use Case 'lerarasındakiilişkilerdenoluşmaktadır.

  12. Use Case modelinioluşturandiğerönemlibiryapıisesenaryolardır. • Senaryolarkullanıcıtarafındanbaşlatılançeşitliolaylardizisidir.

  13. Aktör yani kullanıcı Use Case modelinde bir Use Case 'i başlatır ve sonuç olarak bir değeri başka bir kullanıcıya verir. • Use Case 'ler elips şeklinde gösterilir. • Kullanıcıların altında kullanıcıların adı bulunur. • Kullanıcı ve Use Case arasındaki ilişkiyi belirtmek için ise düz bir çizgi çizilir.

  14. Örnek • Bir web sayfasına gelen bir kullanıcının neler yapabileceğini usecase diyagramlarıyla göstermeye çalışalım. • Siteye gelen bir kullanıcı kayıtsız şartsız makale başlıklarını görebilmektedir. • Online olan kullanıcı Siteyi tavsiye edebilir, siteye üye olabilir , kitapları inceleyebilir. • Ancak makale okuması ve kaynak kod indirebilmesi için siteye üye olup sisteme giriş yapmalıdır. • Siteye bağlanan bir kullanıcının site üzerindeki hareketlerini belirtir diyagram şekildeki gibidir.

  15. Class Diyagramları • UML’de sınıflar OOP mantığından yola çıkılarak düşünülmüştür • Sınıfların bir adı , özellikleri (attributes) ve işlevleri(functions) vardır.

  16. Örnek • Öğrenci • Alanlar (fields) • String ad • StringöğrenciNo • int yıl • Metotlar (methods) • booleandersEkle(StringdersKodu,Stringdönem) • booleandersSil(StringdersKodu, String dönem) • booleandanışmanAta(Danışman yeniDanışman)

  17. Erişim • Public: diğer sınıflar erişebilir • Protected: aynı paketteki diğer sınıflar ve bütün alt sınıflar tarafında erişilebilir • Package: aynı paketteki diğer sınıflar tarafında erişilebilir • Private: yalnızca içinde bulunduğu sınıf tarafından erişilebilir (diğer sınıflar erişemezler)

  18. UML Sınıf Örneği

  19. UML nesne (object) gösterimi

  20. UML Paket (package) gösterimi • Birbirleriyle ilişkili sınıflar bir paket (package) içine yerleştirilirler. • Paket isimler küçük harflerle yazılır.

  21. İlişkilerin ve YapılarınModellenmesi • Inheritance (kalıtım) • Association(ilişkili) • Aggregationve Composition (agregasyonve kompozisyon) • Dependency(bağımlılık)

  22. Inheritance (kalıtım-miras) • UML notasyonu Ara yüzlerin uygulanması Ara yüzlerin Genişletilmesi Sınıfların Genişletilmesi

  23. Örnek

  24. Association (ilişkili) • Sınıflar arası ikili (binary) ilişkiler

  25. Aggregation ve Composition(agregasyonve kompozisyon) • Association’ının(birleşmenin )özelbirhali • Parça-Bütün (part-whole)ilişkisini temsil eder • Parça veya bütün’ün hayat süresi konusunda bir yaptırımı yoktur

  26. Aggregation ve Composition • Aggregasyonun daha güçlü bir hali komposizyon (composition) dur. • Kompozisyonda, parçalar bütün olmadan olmazlar (ortadan kalkarlar)

  27. Aggregation/Composition : Örnek • Fakülte olmadan bölümler olamaz (kompozisyon) • Üniversite olmazsa fakülteler de olamaz (kompozisyon) • Bölüm olmadan öğretim üyeleri ve öğrenciler olabilir (agregasyon)

  28. Bağımlılık (dependency) • Bir sınıfın diğer bir sınıfa bağlı olması • Örneğin: bir sınıfın diğer bir sınıfı “kullanması” (use) (sınıfın diğer sınıfın metotlarını çağırması gibi, yada o sınıftan bir nesneyi döndürmesi gibi..

  29. Bağımlılık (dependency): Örnek

More Related