Yazılım Mühendisliğine Giriş 2. Hafta 2016 GÜZ 1
Yazılım Mühendisliğine Giriş Dersinin Öğrenme Hedefleri -I Karmaşık yazılım sistemlerinin temellerine kısa bir bakış, Yazılım sistemleri gerçekleştirilmesi ile ilgili süreçlerden haberdar olmak, Prosesler (süreçler) genel olarak sistemin geliştirilmesi, yazılım kalite güvencesinin sağlanması ve yazılım projesinin yönetimi ile ilgili bilgi edinmek ve bunların entegrasyonudur. 2
Yazılım Mühendisliğine Giriş Dersinin Öğrenme Hedefleri II Yazılım, yaşam döngüsünün geliştirme aşamaları ile ilgili bilgi edinmek Yazılım geliştirme süreçleri, özellikle gereksinimler analizi, gereksinimlerin betimlenmesi, yazılım tasarım yöntemleri kısaca incelenir UML-odaklı modelleme (Unified-Based Language -Birleştirilmiş Modelleme Dili) ve kullanımı ile ilgili temel bilgilerin verilmesi 3
Bilgisayar Kullanımının Tarihçesi 4
COMPUTER Latin «computere» sözcüğünden gelmektedir. (reckon-to sumup) Webster's Sözlüğü «computer» sözcüğünü programlanabilen herhangi bir elektronik aygıt olarak tanımlar. Bu aygıt datayı alır, depolar ve işlem yapar The Old Oxford Englishsözlüğü «computer» sözcüğünü hesaplamalar yapmak üzere görevlendirilmiş kişi olarak tanımlar. Makinelerden önce hesaplamalar yapmak üzere insanlar işe alınmaktaydı. 5
Bilgisayarın Tarihçesinden Kısımlar II-ilk yüksek hızlı elektronik sayısal bilgisayar ENIAC olarak bilinmektedir. 1946 1955 yılları aktif olarak arasında kullanılmıştır. I-Stonehenge(MÖ. 2800 İngiltere de ) takvim olduğuna inanılırdı. Gündönümlerini spesifik bir tarzda ölçmekte; ay ve güneş tutulmalarını izlemekteydi. III-Günümüzde web kullanılılarak gereksinimlerimiz makine üzerinde sunucularda çalışmaktadır. Kullanıcı gereksinimleri sunucuya bağlanmak üzere bir uygulama programı ile çalıştırılır ve bu ortama istemci adı verilir. programında çalışır 6
Shaman inancına göre insan ilk sayma mekanizmasını olarak geliştirdi. Duvarlardaki işaretlerden (çentiklerden) anlaşılmaktadır. 7
İlk Hesap Makinesi 6,302,715,408sayısı gösterilmektedir Bilgisayarların tarihçesi 2000 yıl öncesine, abaküsün doğuşuna dayanır. İlk Abaküsün Babil de keşfedildiği düşünülmektedir. Asya da Çin Japonya, Hindistan ve Kore ile ticaret yapıyordu. İşadamlarının hesaplarında ve ödemelerinde ihtiyaç duymaları ile Abaküs ortaya çıkmıştır. Abaküs tarihte ilk öncü gerçek hesap makinesi olarak bilinmekte olup bunu bilgisayar izleyecektir Suanpan üst kısımda ikili boncukların, alt kısımda ise beşli boncukların bağlandığı odundan yapılmış bir kutucuktur. Bu boncuklar programlama kurallarına göre kullanıcı tarafından yer değiştirildiğinde hem onlu (decimal) hem de 16 lı (hexsadecimal) basit aritmetik işlemler yapılabilirdi. 8
Sürgülü Hesap Cetveli İngiltere de William Oughtred(1574-1660 )tarafından keşfedilmiş ve 1970 li yıllarda elektronik hesap makinelerine kadar etkin olarak kullanılmıştır. Sürgülü hesap cetveli (slide rule slipstick) mekanik analog bir bilgisayardır. Özellikle çarpma ve bölme işlemlerini, karekök alma, logaritma, trigonometri gibi bilimsel fonksiyonları da yapabiliyordu. Genel olarak toplama ve çarpma işlemleri için uygun değildi 9
Dişli Çarklı Mekanik Hesap Makinesi Wilhelm Schickard, (1623,Tubingen, Germany) ilk mekanik hesap makinesinin mucididir. Sütunlar üzerine yerleştirilmiş 6 dijit ile çalışan bir sistemdi. Blaise Pascal (1642)ilk ticari hesap makinesini bulmuştur. Pascaline toplama ve çıkarma işlemlerinin elle yapılabildiği bir aygıt idi. Schickard ın hesaplama saati 8 dijitli Pascal ın Pascalinemakinesi 10
Leibniz in Mekanik Hesap Makinesi Gottfried Leibniz (1673) çarpma, bölme, toplama, çıkarma işlemlerinintümünü yapabilen mekanik hesap makinesi yapmıştır. Dişlilerin yerine oyuk içerisine yerleştirilmiş on tane dönen silindir tasarlamıştır Ayaklı hesaplayıcı onlu sayı sistemine sahip olmasına rağmen (her makaranın (silindirin) 10 deliği bulunmaktadır) kendi çevrelerinde dönen bir ayak formunda düzenlenmişlerdir Leibniz ikili sayı sistemini ilk defa kullandı İkili sayı sistemi modern bilgisayarların çalışmasının temelini oluşturacaktı. 11
Algoritmaların Gelişmesi ve Hesaplamaya Mekaniğin Katkısı 18. yüzyılın sonlarında Endüstriyel Devrimin sonucunda otomatikleştirme işlemlerinde pek çok ilerlemeler kaydedilmiştir. Bu dönemde küçük gruplar halinde pamuk endüstrisinde yüksek donanımlı işçilerin çalıştıkları görülür. Mekanikdokuma tezgahlarının gelişmesine bağlı olarak bu dokuma makinelerinin önemli sonuçlarına rağmen, dokumaların (bezlerin) uzunluğu el ile dokumacılığının yavaşlamasına neden oluyordu. 12
Algoritmaların Gelişmesi ve Hesaplamaya Mekaniğin Katkısı Jacquard bir dizi karton kart üzerindeki deliklerin oluşturduğu gruplarla «punched cards» dokumanın desenini tasarladı. Her kart üzerinde eşit sayıda satır ve sütun bulunuyordu. Deliğin olup olmadığı mekanik olarak kontrol edilmekte ve böylece tezgah üzerinde işlemin olup olmadığı simgelenmekteydi. Kartların bir teyp ile bağlanması Jacquard tezgahında oldukça karmaşık desenlerin dokunabilmesini sağlandı. 13
ms Analitik Makine Dokuma tezgahlarının kaşifi Jacquard (1801) giysi modelleri dokuyan tekstil tezgahlarının geliştiricisi olarak anılır. Bu aynı zamanda 20 yüzyılın ortalarında bilgisayar programlarında kullanılacak delikli kartların (punch-card) kullanıldığı ilk makine olarak da hatırlanabilir. Dokumalar basılmış delikleri okuyarak ahşaptan yapılmış küçük bilgisayar levhalarında depolanmıştır. İlk genel amaçlı bilgisayar olarak adlandırılabilir 14
Slayt 14 msoffice4 loom:tezgah weave: dokunus biçimi ; 22.9.2008
Jacquard kartının katlanmış görünümü Jacquard dokuması için özel kartların seçimi ile o tanımlanmış bir tekstil tasarımı örneği 15
Babbage Fark Makinesi (Difference Machine) Charles Babbage (1822,İngiliz matematikçi ) oda büyüklüğünde buharla çalışan bir hesap makinesi tasarlamıştır Bu makine logaritma tabloları gibi tablo şeklinde verilmiş sayıları hesaplayabiliyordu Aynı zamanda okyanus seyrüseferi (gemiciliği) ile ilgili tablolarda hesaplama yapabiliyordu Babbage inmakinesinin tablolardaki hataları da bulup düzelteceği düşünülüyordu. Fakat Babbage ninfark Makinesinin tasarımı zordu ve bu proje İngiltere tarihinde tüm zamanların en pahalı projesine dönüştü. Aygıt hiçbir zaman sonlanmıyordu. 16
Babbage in Analitik Makinesi Fark Makinesinin olumsuz yönleri zamanla geliştirilerek Analitik Makineye dönüştü. Analitik Makine 30 metre uzunluğunda 10 metre genişliğinde ev büyüklüğünde bir makine idi ve gücünü 6 buhar makinesinden elde etmekte idi. Genel amaçlı bir makine olduğu için programlanabileceği kabul edilmişti. Makinenin girişleri input(program ve data) delgi kartları (punchedcards) ile gerçekleştirilmekteydi. Mekanik tezgahlar, Jacquard tezgahı gibi, bir yöntem kullanarak zamana göre yönlendiriliyordu. Çıkış (output) için, makinenin bir yazıcısı, bir harita işaretleyicisi (plotter) ve bir zili bulunmaktaydı. 17
Babbage in Analitik Makinesi Makine 10-tabanında sabit nokta aritmetiği yapabiliyordu Makine aynı zamanda sayıları kart üzerine delebiliyordu. Böylece datanın sonradan yeniden okunabilmesi mümkün olabilecekti. Babbage desen deliklerinin problem ifadesi gibi soyut bir fikir oluşturabildiğini fark etti. Bu görüş aynı zamanda problemin çözümünün ham veri gereksinimi(rawdata requirement) olarak değerlendirilebilir. 18
Babbage in Görüşünün Günümüze Etkileri Babbage delikli kağıdın bir depolama mekanizması olarak kullanılabileceğini fark etti Böylece hesaplanmış sayılardan gelecekte yararlanılabilecekti. Babbage bu Analitik Makineyi iki kısımdan oluşturdu «Store»and «Mill» (Depolama ve İşleme) dokuma endüstrisinin iki sözcüğü idi. «Store» sayıların tutulduğu yer, Millise yeni sonuçların elde edildiği dokumalardı. mso 19
Slayt 19 msoffice5 mill: preslemek ; 22.9.2008
Babbage in Görüşünün Günümüze Etkileri Modern bir bilgisayarda bu parçalar bellek (memory unit) ve merkezi işleme birimi central processing unit (CPU)olarak adlandırılır. Analitik Makinenin aynı zamanda bilgisayarları hesap makinesinden ayıran bir anahtar fonksiyonu da vardı. Koşul Deyimi (conditional statement). Bu deyim programın her çalıştırıldığında farklı bir sonucu gerçekleştirmesini sağlar. 20
Babbage in Görüşünün Günümüze Etkileri Koşul deyimine bağlı olarak programın akışı (bir sonraki satırda hangi deyimi işleyeceği) duruma (koşula) bağlı olarak değişecektir Bu değişim programın çalıştırıldığı her an gerçekleşebilecektir. 21
Hollerith n Delgi Kartlarını Kullanışı, Hollerith masası Kart deliklerine duyarlı bir kart okuyucu ve Sayma yapabilecek dişli çark mekanizmasından oluşmaktadır. Pascal ın mekanizması kullanılmıştır ve arabalardaki odometrelere benzemektedr Kadran göstergesi büyük bir duvarda bulunmaktadır. Araba hız ölçeri aslında böyle bir hız ölçerdir. sayma sonuçlarının tutulması sağlanır. 22
The Difference between Jacquard vehollerithdelgi Kartları arasındaki farklar Jacquard kartlarındaki desenler belirlendiğinde, tasarlanmış olan resim değiştirilememektedir. Günümüzde bu gösterim bilgi depolamada sadece okunabilir tür (read-onlyform) olarak adlandırılır. Hollerith ise delgi kartlarını günümüzde okuma/yazma (read/write) yapılabilir olarak adlandırılan yapıya dönüştürmüştür. 23
Hollerith in Delgi Kartları ile ilgili Gözlemi Hollerith trende giderken kondüktörün sadece delikli her bileti herhangi bir yerinden delmediğini, delikleri özel bir dokuya göre oluşturduğunu gözlemlemiştir. Deliklerin pozisyonu bilet sahibinin yaklaşık olarak boyu, ağırlığı, göz rengi gibi kriterlere göre belirlenmekteydi. Bu işlem biletleri farklı kişilerin kullanmasını önlemek için yapılmaktaydı. Hollerith bu sürecin faydasını fark etti. Yeni kartların delinmesi (yazma işlemi write) diğer kart setlerinin analizine (okunması read) göre belirlenebilirdi. 24
IBM in Doğuşu 1924yılında Herman Hollerith in şirketi Computing-Tabulating-Recording Company ismini International Business Machines(IBM)olarak değiştirdi. IBM hızla büyüdü ve delgi kartlarının kullanılması ile çok güçlendi Delgi Kartı 25
IBM in ilk Uygulamaları Gaz faturaları delgi kartları ile her ay gelmekteydi. Ödemesi yapılınca kullanıcı kartı geri vermekte idi. Delgi kartları kullanıcının hesabında isim, adres, gaz kullanımı vs. şeklinde kaydedilmekteydi. Sürücü otoyola girdiğinde kendisine verilmiş olan delgi kartı yola nereden girdiğini ve nerede çıktığını göstermekteydi. Ödeme de sürücünün gittiği mesafeye göre hesaplanmakta idi Seçimde oy kullanan kişini kartı bir delgi kartı idi. Farklı tipte bir bilgisayar delikli kartı 26
Z3 Bilgisayarı(1939-1941) Hollerith in makinesi çizelge yapma (cetvel düzenleme) ile sınırlı idi. Delgi kartları daha karmaşık hesaplamaları gerçekleştiremiyordu. Konrad Zuse(Alman) karmaşık mühendislik problemlerini çözebilmek için ilk programlanabilir bilgisayarları tasarladı. Z3 makinesi aynı zamanda ikili sistemde çalışan ilk makine idi. O zamana kadar tüm makineler onlu sayı sisteminde çalışmakta idi. 27
İkili Simgeleme Sistemi (Binary Representation) İkili sayı sistemi 0 ve 1 lerden oluşur. Delgi kartında da delik var /yok şeklinde ikili bir sistem bulunmaktadır. Kart okuyucu tarafından bir delik okunuyor ise 1 olarak simgelenir. Kartın sütunlarından birinde hiç bir delik yoksa, geçerli say 0 olacaktır. 28
İkili Simgeleme Sistemi İkili sayı sisteminde bir bit sadece 0 veya 1 in olmasıdır. 6 bitten oluşan ikili bir sayı mümkün ise, 64 farklı sayı yazabilmek olasıdır. (2^(n-1)) genel formüldür. İkili betimleme bilgisayarların gelişmesine önemli katkı sağlamıştır. Kart okuyucular, elektrik devrelerinin on/off durumları gibi iki durumlu aygıtlar olarak düşünülebilir. Vakum tüpler 29
Bitin tanımlaması ile ilgili bir şaka İki bit karşılaşmışlar. Biri diğerine sormuş: "Are you ill?" İkinci bit cevap vermiş: "No, just feeling a bit off. Bits/Bytes aşağıdaki şekilde hesaplanmaktadır: 1 byte = 8 bits 1 kilobyte (K/ Kb) = 2^10 bytes = 1,024 bytes 1 megabyte (MMB) = 2^20 bytes = 1,048,576 bytes 1 gigabyte (G/GB) = 2^30 bytes = 1,073,741,824 bytes 1 terabyte (T/ TB) = 2^40 bytes = 1,099,511,627,776 bytes 1 petabyte (P/ PB) = 2^50 bytes = 1,125,899,906,842,624 bytes 1 exabyte(e/ EB) = 2^60 bytes= 1,152,921,504,606,846,976 bytes.... 30