YAZILIM BUNALIMI VE KARMASIKLIK Nesneye Y - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

YAZILIM BUNALIMI VE KARMASIKLIK Nesneye Y

Description:

Title: Memory-Based Learning Instance-Based Learning K-Nearest Neighbor Author: Rich Caruana Last modified by: Y lmaz Created Date: 9/30/2004 5:32:44 PM – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 32
Provided by: RichC157
Category:

less

Transcript and Presenter's Notes

Title: YAZILIM BUNALIMI VE KARMASIKLIK Nesneye Y


1
YAZILIM BUNALIMI VE KARMASIKLIKNesneye Yönelik
Programlamayi Doguran Sebepler
Yilmaz Kiliçaslan
2
Sunum Plani
  • Yazilim Bunalimi
  • Programlama
  • Karmasiklik
  • Çözüm Yollari

3
Yazilim Bunaliminin Ilani 1968
4
Yazilim Bunaliminin Sonuçlari
  • The software crisis manifested itself in several
    ways
  • Projects running over-budget.
  • Projects running over-time.
  • Software was very inefficient.
  • Software was of low quality.
  • Software often did not meet requirements.
  • Projects were unmanageable and code difficult to
    maintain.
  • Software was never delivered.

5
Programlama Nedir?
  • Sanat?
  • Mühendislik?
  • Problem Çözme?

6
Yazilim Projesi Etkinlikleri
PLANLAMA
TASARIM
ANALIZ
KODLAMA VE TEST
YKY/YKG
BIRLESTIRME VE TEST
TEST PLANI HAZIRLAMA
TEST PROSEDÜRÜ HAZIRLAMA
KULLANIM HAZIRLIGI
7
Yazilim Gelistirme Evreleri
  • Analiz
  • Tasarim
  • Kodlama
  • Entegrasyon

8
Analiz
  • Ne yapacagiz?
  • Gereklilikler
  • Problem sahasi

9
Tasarim
  • Nasil yapacagiz?
  • Genel / mantiksal tasarim
  • Soyut düsün!
  • Ayrintili / fiziksel tasarim
  • Somuta dönüstür!

10
Kodlama
  • Programi yazmaya bilgisayar basinda baslama!
  • Azar azar kodla sik sik test et!
  • Ilk önce, ilk derleme hatasini düzelt!

11
Entegrasyon
  • Birlestirilebilir ve sinanmis kod parçalari elde
    eder etmez, bunlari birlestir!
  • Her birlestirme sonrasinda, mutlaka test yap!

12
Yazilim Karmasikligi
  • "Einstein argued that there must be simplified
    explanations of nature, because God is not
    capricious or arbitrary. No such faith comforts
    the software engineer. Much of the complexity
    that he must master is arbitrary complexity.
  • Fred Brooks, 1986
  • "The complexity of software is an essential
    property, not an accidental one."
  • Fred Brooks, 1995

13
Yazilim Karmasikliginin Dört Ögesi
  • Problem sahasinin karmasikligi
  • Yazilim gelistirme sürecini yönetme güçlügü
  • Yazilimin mümkün kildigi esneklik
  • Ayrik sistemlerin beklenmeyen davranislari

14
Problem sahasinin karmasikligi
  • Çatisan talepler
  • Çelisen talepler
  • Anlatilamayan talepler
  • Degisen talepler
  • ...

15
Yazilim gelistirme sürecini yönetme güçlügü
16
Yazilimin mümkün kildigi esneklik
  • Bir yazilimci herseyi programlayabilir!

17
Ayrik sistemlerin beklenmeyen davranislari
  • When we say that a system is described by a
    continuous function, we are saying that it can
    contain no hidden surprises. Small changes in
    inputs will always cause correspondingly small
    changes in outputs. Parnas (1985)
  • On the other hand, discrete systems by their
    very nature have a finite number of possible
    states in large systems, there is a
    combinatorial explosion that makes this number
    very large. Booch (1998)

18
Insani asan karmasiklik
  • The distinguishing characteristic of
    industrial-strength software is that it is
    intensely difficult, if not impossible, for the
    individual developer to comprehend all the
    subtleties of its design. Stated in blunt terms,
    the complexity of such systems exceeds the human
    intellectual capacity. Alas, this complexity we
    speak of seems to be an essential property of all
    large software systems. By essential we mean that
    we may master this complexity, but we can never
    make it go away.
  • Grady Booch, 1998

19
Yazilim Mühendislerinin Kapasitesi
  • "The world is only sparsely populated with
    geniuses. There is no reason to believe that the
    software engineering community has an
    inordinately large proportion of them.
  • Lawrence Peters, 1981

20
Kontrolsüz Karmasikligin Sonuçlari
  • Bir sistem ne kadar karmasik olursa, top yekûn
    çökme olasiligi o kadar yüksek olur. Shankar
    (1984)
  • NYP öncesi karmasiklik-maliyet iliskisi

21
How to program a computer to play good chess
It used to be thought in the 1950's and on into
the 1960's-that the trick to making a machine
play well was to make the machine look further
ahead into the branching network of possible
sequences of play than any chess master can.
1990s chess-playing computer
However, as this goal gradually became attained,
the level of computer chess did not have any
sudden spurt, and surpass human experts. In fact,
a human expert can quite soundly and confidently
trounce the best chess programs of this day.
Hofstadter, 1979
Grandmaster Garry Kasparov, former World Chess
Champion
22
Chunking and Chess skill
In the 1940's, the Dutch psychologist Adriaan de
Groot made studies of how chess novices and chess
masters perceive a chess situation. Put in their
starkest terms, his results imply that chess
masters perceive the distribution of pieces in
chunks.
23
Computer Systems
When a computer program is running, it can be
viewed on a number of levels. On each level, the
description is given in the language of computer
science, which makes all the de descriptions
similar in some ways to each other-yet there are
extremely important differences between the
views one gets on the different levels.
24
Instructions and Data
The words of memory contain not only data to be
acted on, but also the program to act on the data.
25
The base sequence for the chromosome
ofbacteriophage OX174
26
Machine Language vs. Assembly Language
84, 0, 184, 142, 216, 198, 6, 158, 15, 36, 205,
32
If you were to enter these numbers into your
computer's memory and run them under MS-DOS, you
would see a dollar sign placed in the lower right
hand corner of your screen, since that is what
these numbers tell the computer to do.
MOV AX, 47104MOV DS, AXMOV 3998, 36INT 32
27
A "stratified" picture of Al
FIGURE 59. To create intelligent programs, one
needs to build up a series of levels of hardware
and software, so that one is spared the agony of
seeing everything only on the lowest level.
Descriptions of a single process on different
levels will sound very different from each other,
only the top one being sufficiently chunked that
it is comprehensible to us. Adapted from P. H.
Winston, Artificial Intelligence (Reading, Mass.
Addison-ifele'', 1977)
28
Bilissel Siniflandirma
Eleanor Rosch ve arkadaslari, bilissel
siniflandirmanin ortogonal iki eksen tarafindan
belirlendigini saptadirlar
Level of Inclusiveness
vehicle mammal
furniture
Segmentation of Categories
car dog chair
saloon collie
rocking chair
29
Yazilim Karmasikligina Çözüm Arayislari
  • Three major innovations in programming have been
    devised to cope with the problem of complexity
  • Object-oriented programming (OOP)
  • The Unified Modeling Language (UML)
  • - Improved software development processes

Robert Lafore, 2002
30
ÖZET
  • Yazilim bunalimi, süreyi ve bütçeyi asan, müsteri
    beklentilerini karsilamayan projelere yol
    açmistir.
  • Bunalimin nedeni, yazilimin dogasinda ve
    gelistirme süreçlerinde mevcut olan
    karmasikliktir.
  • Nesneye Yönelik Programlama, karmasiklik ile
    mücadele amaciyla gelistirilmis araçlardan
    birisidir.

31
Kaynaklar
  • Booch, G. 1998. Object-Orinted Analysis and
    Design. Addison-Wesley.
  • Brooks, F. April 1986. No Silver Bullet Essence
    and Accidents of Software Engineering. IEEE
    Computer vol. 20(4), p. 12.
  • Brooks, F. 1995. "Chap. 17". "'No Silver Bullet'
    Refined" (Anniversary Edition with four new
    chapters ed.) Addison-Wesley.
  • Hofstadter, D. 1979. Gödel, Escher, Bach An
    Eternal Golden Braid, Basic Books.
  • Parnas, D. july 1985. Software Aspects of
    Strategic Defense System Victoria, Canada
    University of Victoria, Report DCS-47-IR.
  • Peters, L. 1981. Software Design. New York, NY
    Yourdon Press, p. 22.
  • Shankar, K. 1984. Data Design Types, Structures,
    and Abstractions. Handbook of Software
    Engineering. New York, NY Van Nostrand Reinhold,
    p. 253.
Write a Comment
User Comments (0)
About PowerShow.com