Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.

Benzer bir sunumlar


... konulu sunumlar: "These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by."— Sunum transkripti:

1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1 Yazılım Mühendisliği

2 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2 YM Hakkında Neden Üzülmeliyiz? Bazı YM hataları http://www.wired.com/software/coolapps/news/2005/11/69355 Bazı YM hataları http://www.wired.com/software/coolapps/news/2005/11/69355 http://www.wired.com/software/coolapps/news/2005/11/69355 Toyota araç ikaz lambalarının sebepsiz çalışması gibi raporlarından dolayı 160000 hibrit aracını geri çağırmıştır. Toyota araç ikaz lambalarının sebepsiz çalışması gibi raporlarından dolayı 160000 hibrit aracını geri çağırmıştır. 1985-1987 -- Therac-25 tıbbi hızlandırıcı. Radyasyon terabi ayğıtı yanlış çalışmadan dolayı 5 kişinin ölümüne sebep vermiştir. 1985-1987 -- Therac-25 tıbbi hızlandırıcı. Radyasyon terabi ayğıtı yanlış çalışmadan dolayı 5 kişinin ölümüne sebep vermiştir. 1988-1996 -- Kerberos Random Number Generator. Kerberos random sayı üretecinde seed numarasının uygun kullanılmamasından dolayı geliştirilen şifrelerin kırılabileceği anlaşıldı. 1988-1996 -- Kerberos Random Number Generator. Kerberos random sayı üretecinde seed numarasının uygun kullanılmamasından dolayı geliştirilen şifrelerin kırılabileceği anlaşıldı. 2000 yılı problemi 2000 yılı problemi Diğer bir sürü hata… Diğer bir sürü hata…

3 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3 Neden Zor? Çok fazla sayıda “parça olması. Mekanik bir aygıtta olması gerekenden çok fazla Çok fazla sayıda “parça olması. Mekanik bir aygıtta olması gerekenden çok fazla Bulaşık makinesi - 128 parça Bulaşık makinesi - 128 parça Araba - 14,000 parça Araba - 14,000 parça Uzay gemisi - 2.5 milyon parça Uzay gemisi - 2.5 milyon parça Red Hat Linux 7.1 - 30 milyon satır kaynak kodu Red Hat Linux 7.1 - 30 milyon satır kaynak kodu Mac Office - 30 milyon satır kaynak kodu Mac Office - 30 milyon satır kaynak kodu 70 programcı ile= 428,000 satır_kod / programcı 70 programcı ile= 428,000 satır_kod / programcı Normal boyuttaki programlar için durum nedir? Normal boyuttaki programlar için durum nedir? Ortalama bir programcı kod yazımı/ gün= 100 Ortalama bir programcı kod yazımı/ gün= 100 5 gün/hafta * 52 hafta/yıl = 26,000 satır_kod / yıl 5 gün/hafta * 52 hafta/yıl = 26,000 satır_kod / yıl 15 programcı takımı = 390,000 satır_kod/ yıl 15 programcı takımı = 390,000 satır_kod/ yıl

4 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4 Neden zor? (devamı) YM alanı yeni bir alan YM alanı yeni bir alan ENIAC/ MARK-I - 1946 ENIAC/ MARK-I - 1946 FORTRAN - 1957 FORTRAN - 1957 Fakat büyük – 2004 yılı itibariyle Amerikada 760840 yazılım mühendisi çalışıyor. - http://en.wikipedia.org/wiki/Software_engineering Fakat büyük – 2004 yılı itibariyle Amerikada 760840 yazılım mühendisi çalışıyor. - http://en.wikipedia.org/wiki/Software_engineering Yaptığımız herşey yeni. (Aynı evi 30 kez inşa etmiyoruz) Yaptığımız herşey yeni. (Aynı evi 30 kez inşa etmiyoruz) Tekrar üretilebilir sonuçlara ihtiyacımız var. Tekrar üretilebilir sonuçlara ihtiyacımız var. Daha fazla ölçüme ihtiyacımız var. Daha fazla ölçüme ihtiyacımız var.

5 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5 Neden projeler başarısız oluyor? Neden projeler bu kadar sıklıkla başarısız oluyor? Realistik olmayan ve iyi belirlenmemiş proje amaçları Realistik olmayan ve iyi belirlenmemiş proje amaçları Gereken kaynakların yanlış tahmini Gereken kaynakların yanlış tahmini Kötü tanımlanmış sistem gereksinimleri Kötü tanımlanmış sistem gereksinimleri Proje durumlarının yetersiz/eksik raporlanması Proje durumlarının yetersiz/eksik raporlanması Yönetilemeyen riskler Yönetilemeyen riskler Müşteriler, yazılımcılar ve kullanıcılar arasındaki iletişim zayıflığı Müşteriler, yazılımcılar ve kullanıcılar arasındaki iletişim zayıflığı Eski teknolojinin kullanımı Eski teknolojinin kullanımı Proje karmaşıklığının kontrol edimesindeki yetersizlik Proje karmaşıklığının kontrol edimesindeki yetersizlik Özensiz geliştirme uygulamaları Özensiz geliştirme uygulamaları Zayıf proje yönetimi Zayıf proje yönetimi Hissedar politikaları Hissedar politikaları Ticari baskı Ticari baskıhttp://www.spectrum.ieee.org/sep05/1685

6 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6 Nasıl tamir ederiz? Daha fazla tekrarlanabilir sonuçlara sahip olmamız gerekiyor. Daha fazla tekrarlanabilir sonuçlara sahip olmamız gerekiyor. Standart süreçler (proces) / güzel çıktılar verebilen prosedürleri üretmek Standart süreçler (proces) / güzel çıktılar verebilen prosedürleri üretmek Tasarım örüntüleri Tasarım örüntüleri Nesneye dayalı programlama (tekrar kullanım) Nesneye dayalı programlama (tekrar kullanım) Yazılım ve süreçlerin herikisinin daha fazla kontrolü/ölçülmesi Yazılım ve süreçlerin herikisinin daha fazla kontrolü/ölçülmesi Geliştirmenin her aşamasında daha fazla test yapmak gerekiyor. Geliştirmenin her aşamasında daha fazla test yapmak gerekiyor. Yazılımları geliştirmek için kullanılan süreçlerin daha iyi anlanması ve dolayısı ile en iyi yazılımı en hızlı şekilde üretebiliriz. Yazılımları geliştirmek için kullanılan süreçlerin daha iyi anlanması ve dolayısı ile en iyi yazılımı en hızlı şekilde üretebiliriz. “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.” - IEEE Standard Glossary of Software Engineering Terminology

7 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7 Software Engineering: A Practitioner’s Approach Bölüm 1 Yazılım ve Yazılım Mühendisliği (Slides modified by Dan Fleck) Software Engineering: A Practitioner’s Approach Bölüm 1 Yazılım ve Yazılım Mühendisliği (Slides modified by Dan Fleck) copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

8 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8 Yazılımın İki Görevi Yazılım bir üründür Yazılım bir üründür Hesaplama potansiyelini kullanır Hesaplama potansiyelini kullanır Bilgiyi üretir, yönetir, toplar, modifiye eder, gösterir ve iletir. Bilgiyi üretir, yönetir, toplar, modifiye eder, gösterir ve iletir. Yazılım bir ürünü üretmek için kullanılan bir yazılımdır. Yazılım bir ürünü üretmek için kullanılan bir yazılımdır. Doğrudan sistem fonksiyonelliği sağlar veya fonksiyonelliğini destekler Doğrudan sistem fonksiyonelliği sağlar veya fonksiyonelliğini destekler Diğer programları kontrol eder (örnek, bir işletim sistemi) Diğer programları kontrol eder (örnek, bir işletim sistemi) İletişimi etkiler (örnek, ağ yazılımları) İletişimi etkiler (örnek, ağ yazılımları) Diğer yazılımların geliştirilmesine yardım eder (e.g., yazılım araçları) Diğer yazılımların geliştirilmesine yardım eder (e.g., yazılım araçları)

9 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9 Yazılım nedir? Yazılım; Yazılım; çalıştırıldığı zaman istenilen özellikleri, fonksiyonları ve performansı sergileyen komutlar kümesidir (bilgisayar programları), çalıştırıldığı zaman istenilen özellikleri, fonksiyonları ve performansı sergileyen komutlar kümesidir (bilgisayar programları), programlara bilgiyi yeterli derecede idare etmeyi (manipulate) mümkün kılan veri yapılardır, programlara bilgiyi yeterli derecede idare etmeyi (manipulate) mümkün kılan veri yapılardır, programların kullanımını ve işletilmesini tanımlayan dökümentasyondur. programların kullanımını ve işletilmesini tanımlayan dökümentasyondur.

10 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10 Yazılım nedir? yazılım mühendislik ürünüdür yazılım mühendislik ürünüdür yazılım eskimez yazılım eskimez yazılım karmaşıktır yazılım karmaşıktır çoğu yazılım özel-yapılmıştır (custom- built) çoğu yazılım özel-yapılmıştır (custom- built)

11 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11 Eskime - Yıpranma

12 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12 Yazılım Uygulamaları sistem yazılımı – işletim sistemi, dosya yönetimi, ağ yönetimi, sürücüler … sistem yazılımı – işletim sistemi, dosya yönetimi, ağ yönetimi, sürücüler … uygulama yazılımı – veri işleme, iş fonksiyonları … uygulama yazılımı – veri işleme, iş fonksiyonları … mühendislik/bilimsel yazılım – CAD, stres analizi, … mühendislik/bilimsel yazılım – CAD, stres analizi, … gömülü yazılım – mikrodalga fırın tuşları, araç kontrolü, cep telefonu yazılımları, … gömülü yazılım – mikrodalga fırın tuşları, araç kontrolü, cep telefonu yazılımları, … ürün-hattı yazılımları – kelime işleme, … ürün-hattı yazılımları – kelime işleme, … Web uygulamaları) – günümüzdeki çoğu uygulama Web uygulamaları) – günümüzdeki çoğu uygulama Yapay Zeka yazılımları – Robotik, veri madenciliği, uzman sistemler Yapay Zeka yazılımları – Robotik, veri madenciliği, uzman sistemler

13 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13 Yazılım—Yeni Kategoriler Heryerde olabilen hesaplama (Ubiquitous computing)— kablosuz ağlar Heryerde olabilen hesaplama (Ubiquitous computing)— kablosuz ağlar Netsourcing— Web’in bir hesaplama motoru olarak kullanılması Netsourcing— Web’in bir hesaplama motoru olarak kullanılması Açık Kaynak (Open source) — kaynakların herkesin kullanımına açılması Açık Kaynak (Open source) — kaynakların herkesin kullanımına açılması … Veri madenciliği Veri madenciliği Grid hesaplama Grid hesaplama Bilişsel makinalar Bilişsel makinalar Nanoteknoloji için yazılımlar Nanoteknoloji için yazılımlar

14 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14 Yazılımın değişimi Yeni hesaplama ortam veya teknolojilerine adapte olabilmelidir. Yeni hesaplama ortam veya teknolojilerine adapte olabilmelidir. Yeni ticari ihtiyaçlara göre güçlendirilmelidir. Yeni ticari ihtiyaçlara göre güçlendirilmelidir. Diğer modern sistem ve veritabanlarıyla birlikte çalışabilmesi için geliştirilmelidir. Diğer modern sistem ve veritabanlarıyla birlikte çalışabilmesi için geliştirilmelidir. Bir ağ ortamında kullanılabilmesi için yazılımın tekrar tasarımı yapılmalıdır. Bir ağ ortamında kullanılabilmesi için yazılımın tekrar tasarımı yapılmalıdır. Neden değişmeli?

15 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15 Web Uygulamalarının Karakteristikleri - I Ağ yoğunlukludur: Bir web uygulaması ağda bulunur ve farklı istemci gruplarının ihtiyaçlarına hizmet eder. Ağ yoğunlukludur: Bir web uygulaması ağda bulunur ve farklı istemci gruplarının ihtiyaçlarına hizmet eder. Uyumluluk (concurrency): Aynı anda çok fazla sayıda kullanıcı web uygulamasına erişebilir. Uyumluluk (concurrency): Aynı anda çok fazla sayıda kullanıcı web uygulamasına erişebilir. Aşırı (öngörülemeyen) yük: Web uygulaması kullanıcılarının sayısı günden güne çok farklılık gösterebilir. Aşırı (öngörülemeyen) yük: Web uygulaması kullanıcılarının sayısı günden güne çok farklılık gösterebilir. Performans: Web uygulaması kullanıcısı çok beklememelidir. (müşteri kaybına yol açabilir) Performans: Web uygulaması kullanıcısı çok beklememelidir. (müşteri kaybına yol açabilir) Mümkün olabilirlik: Popüler web uygulamalarına kullanıcılar 24/7/365 erişim yapabilmeyi isterler. Mümkün olabilirlik: Popüler web uygulamalarına kullanıcılar 24/7/365 erişim yapabilmeyi isterler.

16 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16 Web Uygulamalarının Karakteristikleri - II Veriye bağlıdır (data driven): Web uygulamalarının çoğunun esas fonksiyonu metin, grafik, ses ve video içeriğini kullanıcılara ulaştırmak için hipermedyanın kullanılmasıdır. Veriye bağlıdır (data driven): Web uygulamalarının çoğunun esas fonksiyonu metin, grafik, ses ve video içeriğini kullanıcılara ulaştırmak için hipermedyanın kullanılmasıdır. İçeriğe duyarlıdır: Bir web uygulamasının kalitesinin tespitinde içeriği büyük önem taşır. İçeriğe duyarlıdır: Bir web uygulamasının kalitesinin tespitinde içeriği büyük önem taşır. Güvenlik:Bazı durumlarda web uygulamalarına erişen sayısını sınırlamak imkansız olabilir. Güvenlik:Bazı durumlarda web uygulamalarına erişen sayısını sınırlamak imkansız olabilir. Estetik: Web uygulamalarının inkar edilemez ilgi çekme şeklidir. Estetik: Web uygulamalarının inkar edilemez ilgi çekme şeklidir.

17 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17 Yazılım Efsaneleri Seçilmiş efsaneler Seçilmiş efsaneler Eğer hedeflenen programın gerisinde kalırsak, programı yakalamak için daha fazla programcı istihdam ederiz. Eğer hedeflenen programın gerisinde kalırsak, programı yakalamak için daha fazla programcı istihdam ederiz. Program yazmak için amaçların ana hatlarının belirlenmesi yeterlidir – detaylar sonra dolabilir. Program yazmak için amaçların ana hatlarının belirlenmesi yeterlidir – detaylar sonra dolabilir. Proje ihtiyaçları değişir fakat yazılım esnek olduğu için bu değişiklikleri kolaylıkla yazılımı yansıtabiliriz. Proje ihtiyaçları değişir fakat yazılım esnek olduğu için bu değişiklikleri kolaylıkla yazılımı yansıtabiliriz. Programı yazdığımızda ve çalışır hale getirdiğimizde işimiz biter. Programı yazdığımızda ve çalışır hale getirdiğimizde işimiz biter. Yazılım mühendisliği bizi gereksiz dökümentasyona yönlendirir ve dolayısı ile sürekli olarak bizi yavaşlatır. Yazılım mühendisliği bizi gereksiz dökümentasyona yönlendirir ve dolayısı ile sürekli olarak bizi yavaşlatır.

18 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 18 Genel Bir Çatı (Bakış) İletişim İletişim Muşterilerle sıkı işbirliği ihtiyaçların belirlenmesi ve bilgi toplanması için gereklidir. Muşterilerle sıkı işbirliği ihtiyaçların belirlenmesi ve bilgi toplanması için gereklidir. Planlama Planlama İş için bir planlanın oluşturulması. Takip edilecek teknik görevler, riskler, gereken kaynaklar, üreticilecek ürünler, ve plan. İş için bir planlanın oluşturulması. Takip edilecek teknik görevler, riskler, gereken kaynaklar, üreticilecek ürünler, ve plan. Modelleme Modelleme Belirlenen ihtiyaçlara uygun olan tasarımın ve bu ihtiyaçların daha iyi anlaşılmasını sağlayacak modellerin müşteri ve programcı tarafından oluşturulmasıdır. Belirlenen ihtiyaçlara uygun olan tasarımın ve bu ihtiyaçların daha iyi anlaşılmasını sağlayacak modellerin müşteri ve programcı tarafından oluşturulmasıdır. Yapılış Yapılış Kod üretiminin ve koddaki hataların tespiti için testlerin yapılması Kod üretiminin ve koddaki hataların tespiti için testlerin yapılması Kullanımı Kullanımı Yazılım kullanacak müşteriye ürünün teslimi ve kritiklerin alınması. Yazılım kullanacak müşteriye ürünün teslimi ve kritiklerin alınması.

19 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 19 Yazılım Mühendisliği Gerçeklerden birkaçı; Gerçeklerden birkaçı; yazılım geliştirilmeden önce problemin anlaşılması için toplu bir çaba gösterilmelidir. yazılım geliştirilmeden önce problemin anlaşılması için toplu bir çaba gösterilmelidir. tasarım çok önemli bir aktivitedir. tasarım çok önemli bir aktivitedir. Tanım Tanım Yazılım mühendisliği gerçek makineler üzerinde etkili bir şekilde çalışan güvenilir yazılımları ekonomik olarak bulmak için sağlam mühendislik prensiplerinin kullanılması ve düzenlenmesidir. Yazılım mühendisliği gerçek makineler üzerinde etkili bir şekilde çalışan güvenilir yazılımları ekonomik olarak bulmak için sağlam mühendislik prensiplerinin kullanılması ve düzenlenmesidir.

20 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20 Yazılım Mühendisliği IEEE tanımı IEEE tanımı Yazılım mühendisliği: 1) Yazılımın geliştirilmesi, yönetilmesi ve bakımı için sistematik, disiplinli, ölçülebilir yaklaşımların uygulamasıdır, 2) 1’de tanımlanan yaklaşımların çalışılmasıdır. Yazılım mühendisliği: 1) Yazılımın geliştirilmesi, yönetilmesi ve bakımı için sistematik, disiplinli, ölçülebilir yaklaşımların uygulamasıdır, 2) 1’de tanımlanan yaklaşımların çalışılmasıdır.


"These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by." indir ppt

Benzer bir sunumlar


Google Reklamları