• Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan yazılım mühendisliği eğitim serisinin bir parçasıdır. Eğitmen, Object Oriented Software Engineering kitabından faydalanarak UML (Unified Modeling Language) ve nesne yönelimli programlama kavramlarını anlatmaktadır.
    • Video, UML'in ne olduğu, tarihçesi ve önemi ile başlayıp, farklı diagram türlerini tanıtmaktadır. Ardından iyi bir modelin özellikleri, UML'in tasarım sürecindeki rolü ve nesne yönelimli programlama temel kavramları (class, object, attribute, operation, inheritance) açıklanmaktadır. Son bölümde ise classlar arasındaki ilişkiler (multiplicity, reflexive, direction, generalization) ve çoklu miras kavramları günlük hayattan örneklerle anlatılmaktadır.
    • Videoda ayrıca UML'in standartlaştırmaya sağladığı, farklı yazılım firmalarında kullanılan gösterim standartları ve iyi bir modelin özellikleri (standarta oturması, anlaşılabilir olması, yazılım mühendislerine fikir vermesi, soyutlama sağlaması) gibi konular da ele alınmaktadır. Bir sonraki videoda NetBeans üzerinden çizimlerin nasıl yapılacağı, aggregation, kompozisyon, interface gibi konuların ele alınacağı belirtilmektedir.
    00:36UML Kavramı ve Tarihçesi
    • UML (Unified Modeling Language), nesne yönelimli programlamada kullanılan bir modelleme dilidir.
    • 1990'ların sonlarına gelindiğinde, benzer projelerin tekrar edilmesi ve insanların kafalarında modeller oluşturmasıyla birlikte, daha iyi iletişim kurma ihtiyacı doğmuştur.
    • 1994 yılında Grady Booch ve Ivar Jacobson isimli iki kişi birleşerek Rational Software adlı bir firma kurmuş ve Rational Rose adlı bir yazılım geliştirmiştir.
    03:25UML'in Gelişimi ve Standartları
    • 1995 yılında Jacobson, UML'e use case'leri dahil etmiştir.
    • 1997 yılında Object Management Group (OMG) kurulmuş ve UML standartlarını yayınlamıştır.
    • Şu an güncel olan UML versiyonu 2.5'tir ve bu standartlar, UML çizimlerinin nasıl oluşturulması gerektiği konusunda şablonlar sunmaktadır.
    05:12UML Çizim Araçları ve Önemi
    • UML standartlarına herkesin uymadığı, bazılarını yapmanın zor olduğu belirtilmektedir.
    • UML çizim araçları genellikle ücretlidir, ücretsiz olanların çoğu kalitesizdir.
    • UML, yazılım firmalarına standartizasyon sağlar ve özellikle iyi yapan yazılım firmalarının kendi standartları ve gösterim standartları vardır.
    06:32UML Diagram Türleri
    • Class diagramlar, nesne yönelimli tasarımda class'ların birbirine göre durumlarını, ilişkilerini ve içeriklerini gösterir.
    • Interaction diagramlar, bir süreç içinde nesnelerin nasıl etkileşime girdiğini gösterir.
    • State diagramlar, kodun aldığı değişik durumları ve nasıl davranacağını gösterirken, component ve deployment diagramlar sistemin diğer sistemlerle nasıl ilişkili olduğunu gösterir.
    08:18UML ve Object Constraint Language
    • UML (Unified Modeling Language), bir gösterim şekli, görsellik ve bu görselliğin yapılmasını belirleyen kurallar içeren bir dildir.
    • Object Constraint Language, görsel öğeler yerine programlama diline benzer bir dil kullanarak nesnelerin taşıması gereken koşulları belirten bir dildir.
    • Gösterimler yazılımdan yazılıma, standarttan standarta değişebilirken, semantik (anlambilim) her zaman aynı kalır.
    09:20UML Öğrenme ve Amacı
    • UML öğrenirken sadece gösterimleri ezberlemek değil, anlamlarını ve gerçek dünyadaki kullanımlarını anlamak önemlidir.
    • Yazılım mühendisliğinin amacı, UML kültürü ve bakış açısını kazandırmaktır.
    • İyi bir model standarta uygun, anlaşılır (readable), yeni tasarım fikirlerini sunmalı ve farklı soyutlama seviyelerini içermelidir.
    11:45UML'in Kullanım Alanları
    • UML, tasarım sürecinde standartlar ve tasarımları oluşturmak için kullanılır.
    • Elektronik devre tasarımları veya mimari projeler gibi, UML de standart çizimlerle tasarım anlatılır ve herkes tarafından anlaşılabilir hale getirilir.
    • UML ile kafanızdaki yazılım hayallerini çizime dönüştürerek, herkesin anlayabileceği ve üretime dökülebilecek bir tasarım oluşturabilirsiniz.
    14:18Tasarım Kalıpları ve Dokümantasyon
    • UML, tasarım kalıpları sunarak standart problemlere hazır çözümler sağlar.
    • UML sadece bir iletişim aracı değil, kalıpları kullanarak problemleri çözebileceğiniz hazır yapılar sunan bir modelleme dilidir.
    • Yazılım projelerinin dökümantasyonu, gelecekte yapılacak değişiklikler için önemlidir, özellikle askeri projeler veya uzun süre kullanılan cihaz yazılımları gibi durumlarda.
    17:29UML'de Nesne Yönelimli Kavramlar
    • UML'de nesne yönelimli kavramları tanımak için sınıflar, nesneler ve ilişkilerin anlamları önemlidir.
    • Association, bir sınıfın başka bir sınıfın bir örneğini kullanmasıdır; örneğin insan sınıfının içinde araba tipinden bir değişken bulunması.
    • Attribute'lar (özellikler) bir sınıftaki değişkenleri, operationlar ise fonksiyonlar veya metotları ifade eder.
    19:11Genelization ve Inheritance İlişkisi
    • Genelization, inheritance ilişkisidir ve "şşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşşş
    21:56Classlar Arasındaki İlişkiler ve Multiplicity Kavramı
    • Classlar arasındaki ilişkiler multiplicity (çokluk ilişkisi) veya kardinality (kardinallik) olarak adlandırılır ve farklı ilişki tiplerini ifade eder.
    • Bir şirketin çalışanı arasındaki ilişki birden çoka ilişki olarak tanımlanır; şirket bir olabilirken, çalışanlar hiç olabilir veya sonsuz sayıda olabilir.
    • Manager ve sekreter arasındaki ilişki çoktan çok ilişki olarak tanımlanır; bir yöneticinin birden fazla sekreteri olabilir ve bir sekreterin birden fazla yöneticisi olabilir.
    23:34İlişki Türleri ve Önemi
    • Birebir ilişki genellikle gerçek hayatta çok karşılaşılmaz ve genellikle bir hatadır; bir bilginin birden fazla sınıfa bölünmesi gereksizdir.
    • Birebir ilişki, konseptual (kavramsal) farklılıklar nedeniyle olabilir, ancak tasarım aşamasında bu ilişkilerin birleştirilmesi gerekebilir.
    • Ofis ve çalışan arasındaki ilişki bir çalışanın ya hiç ofisi yok ya da bir ofisi vardır şeklinde tanımlanır.
    25:11Multiplicity İfadeleri ve Önemi
    • Multiplicity ilişkilerinde "multiple" ile belirli sayılar (3, 5 gibi) ve "many" ile belirsiz sayılar (0'dan sonsuza kadar) ifade edilir.
    • İlişkilerin isimlendirilmesi önemlidir; örneğin "employ works for company" veya "sekreter supervisor of manager" gibi ifadeler kullanılır.
    • İlişkilerin isimlendirilmesi kodda, dokümantasyonda ve mantıksal sorgulamada kullanılabilir.
    28:08İlişki Türlerinin Özellikleri
    • One-to-one ilişkiler istisna durumlardır ve gerçek hayatta sık karşılaşılmaz.
    • Many-to-many ilişkiler problemli olabilir ve genellikle many-to-one ilişkilere dönüştürülmesi gerekir.
    • Bir sınıfa çok sayıda özellik (örneğin 255'den fazla kolon) eklenemezken, fiziksel sebepler nedeniyle sınıflar bölünebilir.
    30:30Many-to-Many İlişkiler ve Normalizasyon
    • Many-to-many ilişkileri normalizasyon yaparak, ortaya bir ilave obje (tablo) ekleyerek ortadan kaldırabiliriz.
    • Passenger ile booking arasındaki rezervasyon, müşteri ile satış arasındaki ilişki, uçuş ile satış arasındaki ilişki many-to-many ilişkilerdir.
    • Many-to-many ilişkileri normalizasyon yaparak, "registration" gibi bir kayıt kavramı ekleyerek many-to-one ve one-to-many ilişkilere dönüştürebiliriz.
    31:55Refleksi (Yansıtma) İlişkileri
    • Refleksi (yansıtma) ilişkileri, bir class'ın kendi kendini yansıtmasıdır.
    • Örneğin, bir dersin ön koşul dersi olduğu durumunda, ders class'ında kendi tipinden bir ön koşul dersi özelliği bulunur.
    • Yönetici ile çalışan arasındaki ilişki de refleksi ilişkidir çünkü çalışanın yöneticisi de çalışan tipinden bir varlıktır.
    33:25İlişki Yönlendirmesi
    • İlişkilerin yönü, kimin kimi ilişkilendirdiği belirler.
    • Öğrenci ile ders arasındaki ilişki, öğrenci dersi alıyorsa öğrenciden derse doğru bir ok olur.
    • İlişki yönü, hangi tarafta bilgi tutulacağına göre değişir ve her iki tarafta da bilgi tutulabilir.
    34:34Genel İlişkiler ve Miras Alma
    • Genelization (ISA) ilişkisi, bir class'ın başka bir class'tan inherit etmesi (miras alması) durumudur.
    • Hayvan örneğinde, karada yaşayanlar ve suda yaşayanlar hayvandır; otoburlar ve etoburlar da hayvandır.
    • İlişki tipleri (habited, type of food) belirtilerek genelization ilişkileri tanımlanabilir.
    35:32Miras Alma İlişkilerinde Dikkat Edilmesi Gerekenler
    • Gereksiz miras alma ilişkileri kurulmaması önemlidir.
    • Recording örneğinde, video recording ve audio recording kategorileri arasında miras alma ilişkisi kurulmamalıdır.
    • Recording kategorisi altında video recording ve audio recording alt kategorileri olarak geçerken, recording kategorisi tek bir varlık olarak tanımlanmalıdır.
    36:55Recursive Yapılar ve Veri Yapıları
    • Recursive fonksiyonlar ve veri yapıları, kendi içinden kendi tipine bir gösterici tanımlayabilen yapıları içerir.
    • Binary ağaç veya linked list gibi recursive yapılar, veri yapılarında kendi kendini gösteren bir tanım içerir.
    • Bu tanım tek başına yeterlidir, ancak canlı bir örneği görmek için audio veya video recording şeklinde detaylandırılabilir.
    37:40Genelleme ve Sınıflandırma
    • Hayvanlar gibi varlıkları farklı kriterlere göre (yaşam ortamı, yemek tipi) iki ayrı şekilde bölmek mümkündür.
    • Proje içinde gereken şeyleri yapmak önemlidir, tüm dünyadaki varlıkları sınıflandırmaya doğru gitmemek gerekir.
    • İki farklı kriteri aynı anda kullanarak, örneğin hayvanları önce yaşam ortamına göre sonra yemek tipine göre bölmek mümkündür.
    39:05Tasarım Seçenekleri ve Performans
    • İlk bölme ve sonraki bölmelerin neye göre olduğu, yazılımın performansını, kullanacak class sayısını ve iş yükünü etkileyen faktörlere sahiptir.
    • Yazılım mühendisliğinde yazılımın nasıl ölçüleceği ve maliyetinin nasıl düşürüleceği önemli kriterlerdir.
    • Bölme sırası yanlış seçilirse, yazılacak sınıf sayısı değişebilir ve farklı sayıda class çıkabilir.
    40:13Çoklu Miras ve Gelecek Konular
    • Bölme işleminde çoklu miras (multiple inheritance) yapılabilir, örneğin bir hayvan hem aquatic hem land animal olabilir.
    • Java'da çoklu miras bulunmaz, ancak diğer dillerde bu özellik kullanılabilir.
    • Bir sonraki videoda NetBeans üzerinden nasıl çizildiği, aggregationlar, kompozisyonlar, asustionlar, propagationlar ve interface'ler anlatılacaktır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor