YZM211 YAZILIM TASARIMI

Benzer belgeler
YZM 2108 Yazılım Mimarisi ve Tasarımı

BÖLÜM 5 MİMARİ TASARIM YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

YZM211 YAZILIM TASARIMI

YMT 312-Yazılım Tasarım Ve Mimarisi MimariTasarım

YZM211 YAZILIM TASARIMI

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

YMT 312-Yazılım Tasarım Ve Mimarisi Mimari Tasarım Çözümlemesi

YMT 312-Yazılım Tasarım Ve Mimarisi Mimari Stilleri

BÖLÜM 9 MİMARİ STİLLERİ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

SE Engineering Sciences 30 Mayıs 2011, Pazartesi 13:00 M1-2 İNG 152 -İngilizce II 31 Mayıs 2011, Salı 14:00 Yabancı Diller Binası

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Yaz.Müh.Ders Notları #6 1

Yazılım Mühendisliğinin Temelleri (SE 100) Ders Detayları

YAZILIM MODELLEME VE TASARIM

Business Intelligence and Analytics Principles and Practices: Charting the Course to BI and Analytic Success

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

NESNEYE YÖNELİK TASARIM SÜRECİ

(Fabrika Şablonu) Factory Pattern. Tasarım şablonlarının Creational (Yaratıcı) Sınıflandırmasına aittir. Fabrika(Factory) Şablonu

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Zeynep ALTAN Yazılım Mühendisliği Bölümü Beykent Üniversitesi, Mühendislik-Mimarlık Fakültesi

Hacı Bekir Oğuz

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

SiSTEM ANALiZi ve TASARIMI

Bilgisayar Mühendisliğinin Temelleri (COMPE 100) Ders Detayları

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir.

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

YAZ OKULU TARİHLERİ. Yaz Okulu için yeni ders kayıtları Temmuz 2012 tarihlerinde OASIS sistemi üzerinden yapılacaktır.

YAŞAR ÜNİVERSİTESİ İÇ MİMARLIK VE ÇEVRE TASARIMI BÖLÜMÜ İNTİBAK ÇİZELGESİ ( )

YZM 2108 Yazılım Mimarisi ve Tasarımı

YMT 312-Yazılım Tasarım Ve Mimarisi ALT-DÜZEY TASARIM

Kurumsal Mimari. (Enterprise Architecture) MUSTAFA ULUS, 2015

MÜFREDAT DERS LİSTESİ

Olay Tabanlı Bir Yazılım Mimarisinde Bağımlılık İletimi ve Bileşen Gerçekleştirimi

SOFTWARE ENGINEERING Ders İzlence Formu. Kodu:CSE400 Dersin Adı: SOFTWARE ENGINEERING Toplam Saat

Bilgisayar Oyunları ve Simulasyon (COMPE 376) Ders Detayları

Kullanıcı Arayüzü Analiz ve Tasarımı (SE 440) Ders Detayları

IBM Analytics Professional Services (IBM Analitik Profesyonel Hizmetleri)

YZM 2108 Yazılım Mimarisi ve Tasarımı

Yazılım Tasarımı Kalitesi. L 12 Nesneye. Tasarım Kalitesi Nitelikleri

FAKÜLTE KURULU KARARLARI

Ders 8 Konu Özeti ve Problemler

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Sistem Analizi ve Tasarımı DERS2

Bilgisayar Mühendisliği

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

Yazılım Örüntüleri (SE 461) Ders Detayları

YÖK TEZLERİ PROJE KELİME TARAMASI

Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları

MÜŞTERİ İLİŞKİLERİ YÖNETİMİ (PZL208U)

PROSES TASARIMINA GİRİŞ [1-4]

SOFTWARE ENGINEERING PRACTICE Ders İzlence Formu. Kodu: CSE401 Dersin Adı: SOFTWARE ENGINEERING PRACTICE Toplam Saat

EK: SENATO ONAYI ALMIŞ MEVCUT EKDAL PROGRAMLARI A) GENEL EKDALLAR Genel ekdallar tüm öğrencilere açıktır.

Öğretim planındaki AKTS Mimari Tasarım Atölyesi II

SİSTEM ANALİZİ VE TASARIMI

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

ANADOLU ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI DOKTORA YETERLİK SINAVI OCAK 2017

Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS. BUHAR KAZANLARI Seçmeli 4 7 3

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Öğrencilere bilgisayar destekli titreşim analizi yeteğinin kazandırılması

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Yazılım İnşası ve Evrimi (SE 556) Ders Detayları

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

YZM403 YAZILIM PROJESİ YÖNETİMİ BÖLÜM 7 KAYNAK TAHSİSİ. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

Elena Battini SÖNMEZ Önder ÖZBEK N. Özge ÖZBEK. 2 Şubat 2007

CICS / CICP Sertifika Programları. Eğitim Kataloğu. Hazırlayan: İç Kontrol Enstitüsü

CICS / CICP Sertifika Programları İçin. Kurs Kataloğu

DERS BİLGİ FORMU DERS BİLGİLERİ. Türü Zorunlu/ Seçmeli DERS PLANI

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Selsoft Eğitim Kataloğu

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

Proje Çevresi ve Bileşenleri

Bilgisayarlı Muhasebe ve Uygulamaları (MGMT 418) Ders Detayları

T.C. İZMİR KÂTİP ÇELEBİ UNIVERSITY FACULTY OF ENGINEERING AND ARCHITECTURE DEPARTMENT OF CIVIL ENGINEERING. Course Name T P L ECTS

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

YAZILIM TASARIMI KALİTESİ (ÖLÇME VE DEĞERLENDİRME)

SENTEZ TABANLI YAZILIM MİMARİSİ TASARIM YAKLAŞIMININ ESSENCE ÇERÇEVESİYLE MODELLENMESİ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BIM BUILDING INFORMATION MODELING YAPI BİLGİ MODELİ

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS MÜHENDİSLİK EKONOMİSİ Seçmeli 4 7 3

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

English for Academic Reading & Speaking I İngilizce Akademik Okuma ve Konuşma I. Introduction to Civil Engineering İnşaat Mühendisliğine Giriş

BİLİM (Yazılı) SINAVI KONULARI

EĞİTİM-ÖĞRETİM YILI BAHAR DÖNEMİ MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

EK: SENATO ONAYI ALMIŞ MEVCUT EKDAL PROGRAMLARI A) GENEL EKDALLAR Genel ekdallar tüm öğrencilere açıktır.

AÇIK ARABİRİMLER. FV sistemine ait verilerin bir açık veri protokolü üzerinden özel olarak işlenmesi.

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

Transkript:

BÖLÜM 4 MÜHENDİSLİK TASARIMI ÇÖZÜMLEMESİ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Amaçlar 2 Mimari tasarım ve ayrıntılı tasarım arasındaki farkı anlamak Mimari ve ayrıntılı tasarım spesifikasyonlarının içeriğini incelemek Tasarım spesifikasyonları için kısaltmalar önermek Tasarımı prensipleri sunmak Bu prensiplerin anlaşılmasını ve hatırlanmasını kolaylaştırıcı bir sınıflandırma oluşturmak

İçerik 3 Mühendislik tasarımı sürecinde mimari ve ayrıntılı tasarım Mimari tasarım spesifikasyonları Ayrıntılı tasarım spesifikasyonları Tasarımı prensipleri Temel prensipler Yapıcı prensipler Yazılım mühendisliği tasarım prensipleri sınıflandırması

Generic Software Engineering Design SRS : Problem Design Document : Solution SRS Analyze SRS Analysis 4 Genel Bir Yazılım Mühendislik Tasarımı Süreci Generate/Improve Candidate Architectures Evaluate Candidate Architectures Select Architecture [else] Finalize Architecture [adequate architecture] Generate/Improve Detailed Design Alternatives Architectural Design Evaluate Detailed Design Alternatives Select Detailed Design [else] Detailed Design [else] [adequate detailed design] Finalize Design [adequate architecture] Design Document

Mimari Tasarım (Architectural Design) 5 Mimari tasarım, programın büyük parçalarının, bunların sorumluluklarının, özelliklerinin, ve arabirimlerinin; ve bu parçalar arasındaki ilişki ve etkileşimlerin belirlenmesi aktivitesidir. Yüksek düzeyli tasarım Kara kutular Her programın bir mimarisi vardır

Ayrıntılı Tasarım (Detailed Design) 6 Ayrıntılı tasarım, büyük program parçalarının içsel elemanlarının, bunların yapısının, ilişkilerinin, süreçlerinin; ve sıklıkla da bunların algoritma ve veri yapılarının belirlenmesi aktivitesidir. Orta ve düşük düzeyli tasarım Kara kutular Ayrıntılı tasarım kodlamaya daha yakındır

Mimari Tasarım Spesifikasyonları 7 Decomposition (ayrıştırma) Program parçaları veya modüller Responsibilities (sorumluluklar) Veri ve davranış Interfaces (arabirimler) Bir arabirim, varlıkların üzerinden iletişim kurduğu bir sınırdır. Collaborations (işbirlikleri) Kim neyi ne zaman yapar? Relationships (ilişkiler) Kullanımlar, bağımlılıklar, vb. Properties (özellikler) Performans, güvenilirlik, vb. States and Transitions (durumlar ve geçişler) Dışsal olarak görünür DeSCRIPTR

Ayrıntılı Tasarım Spesifikasyonları 8 Decomposition (ayrıştırma) Altsistem parçaları veya birimleri Responsibilities (sorumluluklar) Veri ve davranış Interfaces (arabirimler) Herkese açık özellikler Collaborations (işbirlikleri) Kim neyi ne zaman yapar? Relationships (ilişkiler) Kalıtım, ilişkiler, vb. Properties (özellikler) Performans, güvenilirlik, vb. States and Transitions (durumlar ve geçişler) Dışsal olarak görünür Packaging and Implementation (paketleme ve implementasyon) Kapsam, görünürlük, vb. Algorithms, Data Structures, and Types (algoritmalar, veri yapıları, ve tipler) Belki DeSCRIPTR-PAID

Tasarım Prensipleri 9 Tasarım prensipleri bir tasarımı daha iyi yapan özellikleri belirten ifadelerdir. Temel (basic) prensipler bir tasarımın müşteri gereksinim ve isteklerini daha iyi karşılamasını sağlayan karakteristikleri belirtir. Yapıcı (constructive) prensipler, deneyime dayalı olarak, bir tasarımı daha iyi yapan belirli mühendislik tasarımı karakteristiklerini belirtir.

Temel Prensipler 10 Fizibilite (Feasibility) Bir tasarım gerçekleştirilebilir olduğu sürece kabul edilebilirdir. Yeterlilik (Adequacy) Müşterilerin daha fazla gereksinim ve isteğini karşılayan tasarımlar daha iyidir. Ekonomi (Economy) Daha ucuza, daha az zamanda, ve daha az risk ile gerçekleştirilebilen tasarımlar daha iyidir. Değiştirilebilirlik (Changeability) Bir programın kolayca değiştirilebilmesine imkan tanıyan tasarımlar daha iyidir.

Yapıcı Prensipler 11 Modülerlik (Modularity) prensipleri İyi tasarım modülerdir; bu prensipler tasarımların belirttiği modüllerin değerlendirilmesinde yardımcı olur. Uygulanabilirlik (Implementability) prensipleri İyi tasarımları uygulamak, hayata geçirmek kolaydır; bu prensipler tasarımların kolay uygulanabilir olup olmadığının değerlendirilmesinde yardımcı olur. Estetik (Aesthetic) prensipleri İyi tasarımlar güzeldir; bu prensipler güzel tasarımların seçilmesinde yardımcı olur.

Modülerlik 12 Modüler bir program iyi tanımlanmış, kavramsal olarak basit, ve bağımsız bileşenlerden oluşur. Bu bileşenler iyi tanımlanmış arabirimler üzerinden haberleşirler.

Modülerliğin Avantajları 13 Anlaşılması ve açıklanması kolaydır Dokümante etmesi kolaydır Değiştirilmesi kolaydır Test edilmesi ve hata ayıklaması kolaydır Daha fazla yeniden-kullanılabilirdir (reusable) İnce ayar yapılması daha kolaydır

Modül Nedir? 14 Bir modül parçaları olan bir program birimidir. Yakın parçalar (Immediate parts) parça hiyerarşisinde bütünün hemen altında yer alan parçalardır. Program Sub-programs or sub-systems Packages, compilation units Classes, functions Attributes, operations, blocks - Lines of code

Modülerlik Prensipleri 1 15 Küçük Modüller (Small Modules) Küçük modüllerden oluşan tasarımlar daha iyidir. Bilgi Saklama (Information Hiding) Her modül kendi içsel yapısının ve süreçlerinin ayrıntılarını diğer modüllerden gizlemelidir. En Düşük Ayrıcalık (Least Privilege) Modüller gerek duyulmayan kaynaklara erişememelidir.

Modülerlik Prensipleri 2 16 Bağlılık (Coupling) Modül bağlılığı en aza indirilmelidir. Bağlılık (Coupling) modül çiftleri arasındaki bağlantının derecesidir. Uyum (Cohesion) Modül uyumu olabildiğince yüksek olmalıdır. Uyum (Cohesion) modülün parçalarının birbiriyle ne kadar ilgili olduğunun derecesidir.

Uygulanabilirlik Prensipleri 17 Basitlik (Simplicity) Basit ve sade tasarımlar daha iyidir. Yeniden Kullanım (Software reuse) yeni yazılım ürünlerinin oluşturulmasında mevcut varlıkların (tasarım, kod, doküman vb.) kullanılmasıdır. Yeniden Kullanım ile Tasarım (Design with Reuse) Mevcut varlıkları yeniden kullanan tasarımlar daha iyidir. Yeniden Kullanım için Tasarım (Design for Reuse) Yeniden kullanılabilir varlıklar üreten tasarımlar daha iyidir.

Estetik Prensipleri 18 Güzellik (Beauty) Güzel (basit ve güçlü) tasarımlar daha iyidir. Başka estetik prensipleri var mıdır? Simetri (Symmetry) Denge (Balance) Oran (Proportion)

Prensipler Arasındaki İlişkiler 19 Bazı prensipler birbirini destekler Uyum (Cohesion), Bağlılık (Coupling), Bilgi Saklama (Information Hiding) Basitlik (Simplicity), Güzellik (Beauty) Basitlik (Simplicity), Küçük Modüller (Small Modules) Bazı prensipler birbiriyle çelişir Basitlik (Simplicity), Yeniden Kullanım için Tasarım (Design for Reuse) Küçük Modüller (Small Modules), Yeniden Kullanım için Tasarım (Design for Reuse) Cohesion, Small Modules Destek veya çelişki duruma göre değişebilir.

Tasarım Prensiplerinin Sınıflandırılması 20 Engineering Design Principles Basic Feasibility Adequacy Changeability Economy Constructive Modularity Small Modules Information Hiding Least Privilege Coupling Cohesion Implementability Simplicity Design with Reuse Design for Reuse Aesthetic Beauty

Özet 1 21 Mimari tasarım büyük program parçalarının yüksek düzeyli spesifikasyonudur. Ayrıntılı tasarım program birimlerinin orta düzeyli ve düşük düzeyli spesifikasyonudur. Mimari tasarım için DeSCRIPTR spesifikasyonları Ayrıntılı tasarım için DeSCRIPTR-PAID spesifikasyonları

Özet 2 22 Temel prensipler (Yeterlilik, Ekonomi, Fizibilite, Değiştirilebilirlik) müşteri gereksinim ve isteklerini karşılamakla ilgilidir. Yapıcı prensipler mühendislik deneyimine dayalıdır. Modülerlik prensipleri: Küçük Modüller, Bilgi Saklama, En Düşük Ayrıcalık, Bağlılık, ve Uyum. Uygulanabilirlik prensipleri: Basitlik, Yeniden Kullanım ile ve Yeniden Kullanım için Tasarım. Estetik prensibi: Güzellik.