Geri Dön

Algoritma animasyonu sistemleri konusunda inceleme

Başlık çevirisi mevcut değil.

  1. Tez No: 75291
  2. Yazar: NAZAN ÇAYRAK
  3. Danışmanlar: DOÇ. DR. TAKUHİ NADİA ERDOĞAN
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 1998
  8. Dil: Türkçe
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Kontrol ve Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 209

Özet

ÖZET Görsel programlama ve programların görselleştirilmesi terimleri, programcıların yeni yapılandırdıkları programlara bakış açılarım yansıtmaktadır. Bu terimler, yeni anlayışların ve yeni yazılım tekniklerinin,daha doğrusu görsel ve grafiksel anlatımların önem kazanarak, programlara, yazılım sistemlerine yeni bir boyutun eklendiğini göstermektedir. Karmaşık olan yazılımların anlaşılmaz yapısına rağmen, görsel programlama, bu karmaşıklığın yazılımın statik ya da dinamik; iki ya da üç boyutlu renkli sunumlar ile giderilmesini sağlamıştır. Görsel programlamanın barındırdığı potansiyel yazılım mühendisliğinin bu konuda daha çok yatırım yapacağını düşündürmektedir. Görsel programlama programcılara, kodlarını yaratmada; ve kullanıcılara, yazılım sistemleri ile etkileşimde büyük kolaylıklar yaşatacaktır. Daha önemlisi, programların anlamsal açıdan açık bir şekilde grafik imgelerle ifade edilmesi, beyinde canlandırılan görüntü ile aslı arasındaki boşluğu daraltacaktır. Sonuç olarak yazılım endüstrisinde verimlilik artacak ve programcıların yazılım sistemi geliştirme yetenekleri artacaktır; kullanıcılar ise daha anlaşılır daha kaliteli ve hatalarından arındırılmış kodlar kull anabi leceklerdi r. Algoritma kodlan yaratılırken, programcılar, genellikle, kodlarını şekillerle ifade ederler. Bağlantılı liste ya da ikili ağaç yapıları, kodlardan ziyade önce çizimlerle ifade edilirler. Paralel mimarilerde veri akışı genellikle grafiklerle takip edilir. Bu gibi görsel metodlar, algoritmaları, tasarımları, veri yapılarını ve akış diyagramlarını ifade etmek için lineer program sözcüklerinden daha doğal bir yol sunarlar. Gerçekten de Algoritma Analizi dersi öğrencileri için de, algoritmaların görsel ifadelerle sunumu, geleneksel yöntemlerle sunumundan çok daha etkili olmuştur. Görsel programlamnın, üç ayrı, fakat birbiriyle ilişkili araştıma ve geliştirme alanından oluştuğu görülmektedir. Bunlar, yazılımın statik ya da dinamik çokboyutlu görüntüsünü sağlayacak grafik teknikleri, grafik tabanlı, yüksek seviyeli programlama dilleri ve bunların davranışlarını anlayıp yorumlayabilen bir yazılım sistemi olarak listelenebilir. Programın veya yazılım sisteminin, aslını izole etmek ve saklamak önemli bir noktadır. Yazılımın, farklı kullanıcılar tarafından biçimlendirilen farklı görünümleri olabilir. Elbette ki görünüm bir yönetici, bir öğretmen ya da bir sistem analistin gereksinimlerini karşılamak üzere yaratılıyor olabilir ve bunlar basit siyah-beyaz görüntüler olmayabilir. Bu görüntüler, kullanıcıya istenilen bilginin daha iyi anlatılabilmesi için bir dizi resimlerden, ikonlardan ve ilşkilendirilmiş grafiklerden yapılandırılmış, renklendirilmiş ve hatta seslendirilmiş olabilir. Böylelikle karmaşık bir bilgi yığını, kullanıcıya, bu yeni görsel olanaklarla daha açık, daha anlaşılır bir biçimde sunulabilir. Bilgisayar bilimleri araştırmasında yüksek seviyeli dillere doğru bir yönelim vardır. Fortran, Algol, Ada vb. programlama dilleri programcının verimliliğini artırmak amacıyla tercih edilmemeye başlanmıştır. Yazılım üretimine yeni ve daha verimli olmayı hedefleyen yaklaşımlar, bilgisyara, isteklerimizi anlatırken kullandığımız ifadeleri ve dilleri daha anlaşılır hale getirmeyi içermelidir. Bu konuda bir yaklaşım kullanıcının doğal diline en yakın dili yaratmaktır. Bir başka yaklaşım ise grafiksel bir dil yaratmaktır. Grafik dilinin en önemli özelliği, programcıya ya da kullanıcıya ortamı gerçek bir evren gibi algılama ve bunu ikonlarla ve sembollerle yönetme olanağı vermesidir. Veri akışını, algoritmaların kontrol yapılarını ve yazılımın çalışmasını görebilmek, yazılım mühendislerinin bu yapıları daha kolay ve çabuk anlamasını sağlar. Bunu sağlayan verinin sunulma şeklidir. Balsa Ssitemi kullanılarak bir çok animasyon örneği ile öğrencilerinin algoritmaları daha İyi anlamasını sağlamışlardır. Animasyon tasarımı, bu bağlamda psikolojik ve pedagojik anlamda geliştirilmeye açık bir alandır. X111Animasyonun en önemli kısmı verilerin nasıl ifade edildiğinin anlaşılmasıdır. Örneğin, sıralama algoritmasının animasyonunda, sırasız dizi, kartezyen düzleminde yer alan noktalar kümesi şeklinde ifade edilebilir. Her nokta x, dizideki numara y, numaranın dizi içindeki yeri olmak üzere, düzenli (x,y) çiftleri olarak gösterilebilir. Yerindeki eleman (x,x) olarak gösterilebilir. Kullanıcı, programın, nokta kümesini nasıl kontrol ettiğini ya da nasıl değiştirdiğini gözleyebilir. Bundan başka bilgisayar, istatistik ve performans bilgilerini grafiklerle kullanıcıya sunabilir. Animasyon yeteneği olan Smalltalk programlama ortamında, animasyon sistemi yapılandırmak için gerekli güçlü programlama ve grafik arayüzleri sağlanmıştır. Onların yaklaşımı anime edilmekte olan program ile grafiksel sunum kodunu birbirinden ayırarak kullanucıyı implementasyon detaylarından korumaktı. Sistemlerinde yaratılabilen, bir objenin, çoklu görüntüsünün algoritmanın işleyişinin daha kolay anlaşılmasını sağlamıştır. Sistemleri deneysel bir sistem olmasına rağmen, birçok animasyon örneği yapılandırmalardır. Algoritma animasyonlarının, programcıya fazla bir yük getirmeden tasarlanabiliyor olması, algoritmadaki paralelliğin gözlenebilir olması ve mimari bağımsız çalışabilmesi sonraki çalışmaların odak noktası olmuştur. Bu amaçla C ve C++ dillerinde yazılmış, Tango, Polka ve Samba animasyon sistemleri geliştirilmiştir, ayrıca Java apletleri kullanılarak bir çok algoritma için farklı animasyonlar geliştirlmiştir. Animasyonlar, programcıya, yazılımdaki mantıksal tutarsızlıkları bulma ve hata ayıklama konularında oldukça faydalıdırlar. Animasyondaki ikonlan oluşturan yazılım ile animasyonu yapılan yazılım arasında birebir bir uygunluk olmalıdır ki; animasyon çalıştırıldığında tutarsızlıklar ve hatalar kolayca ayıklanabilsin. Bu yaklaşım PegaSys sisteminin geliştiricileri tarafından incelenmiştir. Bu sistem, grafiksel imgeleri normal olarak kullanmakta, programı ifade eden resimler arasında XIVotomatik olarak mantıksal bir ilişki kurabilmekte ve kendini programlayarak mantıksal hataların bulunmasını sağlamaktadır. Grafik disiplinlerinin, bilgisayar dillerinin ve yazılım mühendisliğinin birleşerek oluşturduğu, yaratıcılığa açık bu alandaki gelişmeler, bize, yazılımcıların verimliliğini arttırmada, yazılım sistemlerini geliştirmede, karmaşıklıklarım kontrol etmede ve daha da önemlisi karmaşık yapılarını anlamada azımsanamayacak kadar çok fayda sağlamaya devam edecektir. XV

Özet (Çeviri)

SUMMARY A SURVEY OF ALGORITHM ANIMATION SYSTEMS The terms“visual programming”and“program visualisation”only partially capture the spirit of a new way for programmers to interact with software and the programs they construct. These terms indicate a new dimension added to programs and software systems, namely the ability to gain different insights and new ways to deal with software through visual and graphical means. Although software can be very complex, visual programming can give us the means to cut through this complexity by providing ways to represent software clearly and concisely in both static and dynamic modes and in two or three dimensions, with color and highlighting. It is proposed that the potential advantages of visual programming can advance the state of software engineering. It is convinced that visual programming offers exciting opportunity for major changes in the way that programmers create software and the way that users interact with software systems. By representing programs as semantically suggestive graphical images, we can narrow the gap between mind and medium. The result will give rise to improvements in software productivity and in the ability for users to access and develop software systems. Programmers tend to relate graphical representations easily, and they use them often. They draw pictures of linked lists and trees. Graphical representations are used to represent data flows in highly parallel architectures. Such visual methods offer a more natural way to express algorithms, designs, data structures, and control flows than linear language-style statements do. Indeed, the experience at Brown university shows that graphical techniques for teaching algorithm analysis are superior to conventional methods.We can see three distinct, but related, research areas that comprise visual programming. These are the graphics techniques that provide both static and dynamic multi dimensional views of software, graphics-based, very high-level programming languages, and animation of algorithms and software for deeper understanding of their behaviour. Animated graphical views of a program better convey its meaning, mehodology, and purpose. Animated views help three central programming activities : (1) Understanding programs : Animated visualizations help explain the inner workings of programs and are useful inwstructional tools for teaching computer science. (2) Evaluating existing programs : Animated visualizations help programmers monitor system performance. For example, an animated view of certain operating system compenents could illustrate when bottlenecks occur, and a view of a job queue could allow easier detection of deadlock conditions. Animated views also make easier to compare the performance of related programs. (3) Developing new programs : Animated visualizations help researchers and designers debug programs and explore new variants of existing algorithms. The graphical views of a program illustrate behaviors and characteristics not evident during its initial design. Consequently, they promote the discovery of alternative solutions to problems. Algorithm animation is the process of abstracting a program's data, operations, and semantics, and creating dynamic graphical views of those abstractions. It encompasses program animation and data structure rendering, which typically involve one-to-one mappings between program data and the animation images. However, algorithm animation is broader than these two areas and involves program views that go beyond simple data-structure presantations. Frequently, the animation XVllimages have no direct correspondence to the program's data or execution units, but instead represent abstractions designed to elucidate the program semantics. The coupling of an animation to an executing program distinguishes algorithm animation from other, more general types of animation. In an animation of an interactive program, the program's runtime operations and data dictate how the animation appears. The corresponding animated views must be informative and coherent, regardless of the program's input. Given this condition, animation designers Should not have to create different animation routine for each possible program configuration. Therefore, algorithm animation requires models that support the creation of animation routines that can adapt to various program states. It is important to isolate and store the essence of a program or software system. They provide the basis for tailoring different views of the software that meet the needs of different users. Certainly the views desired by a user, a manager, a novice maintainer, and a system analyst will be very different and they will not be simple as black and white pictures. Rather they will consist of sets of pictures, icons, and associated graphics carefully structured and colored so that a user can navigate through them for desired information about software. Thus, new capabilities, color and dynamic representations can be used to clarify a complex mass of information. Within computer science research, there is a strong movement towards using very high level programming languages. A new, more productive approach to software creation must involve languages and means of problem specification that dramatically increase our ability to express requirements of computer. One approach is to create a language that is much closer to the natural language of the user. A different approach is the creation of graphical languages. Certainly the ability to see dataflow and control structures of algorithms and software as they execute will give software engineers and computer scientists the ability to xviiiunderstand and feel the action of software or algorithms. Their algorithm of simulator and animator, Balsa, has been used for many examples and has led to greater understanding of the algorithms. The key of this greater understanding lies in the way that how data is represented. For example, in the animation of sorting algorithms, an unordered list of numbers can be represented as a cloud of dots in the Cartesian plane. Each dot shows an ordered pair (x,y), where x is a number on the list, and y is the number's rank in the list. An element in its place has representation of (x,x). The viewer can observe how the algorithm visits and changes the cloud of dots on the screen, thus can obtain a new perspective on how the algorithm operates. Moreover, the computer can capture statistics about performance and present these to the viewer as graphs and charts. Data representations are possible for more complex data structures, such as those found in graph algorithms. Smalltalk programming environment provides powerful programming and graphics tools upon which animation system can be built. This environment isolates graphical viewing structure from the code of the algorithm being animated and separates the user from implementation details. Multiple views of a single object convey an understanding of what an algorithm does, how it works. Although their system is experimental, they have run several samples including sorting, an abstract queue or ring buffer, and the Dutch national flag problem. Animation system researchers are focused on implementing animation systems which provides easy of use, display parallelism of algorithms and architecture independent animations. For this purpose Tango, Polka and Samba are developed in C and C++ programming language. In addition, using Java applets is very famous for algorithm animation. XIXAnimation can be particularly effective in guiding user to find out bugs and logical inconsistencies in the software. The animation, that can be full or limited, ought to be coupled with automation as much as possible. However, there must be an exact, formal correspondence between the icons depicting the software and the software itself. This approach is discussed by developers of Pegasys, a system that uses graphical images as formal. It automatically reasons about logical relationships among pictures representing programs and the programs themselves, thus permitting detection of logical errors in the program. This creative union of the disciplines of graphics, computer languages, and software engineering will continue to provide us a powerful way to produce software systems, to control their complexity, and especially to understand them. XX

Benzer Tezler

  1. Moleküler modelleme metodu ile nesnelerin hacimsel olarak modellenmesi ve deformasyonu

    Deformation and modeling of objects as volume with molecular modeling method

    RIDVAN YAYLA

    Yüksek Lisans

    Türkçe

    Türkçe

    2012

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBilecik Şeyh Edebali Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. DR. ALPASLAN DUYSAK

  2. Trajectory based UAV coordination

    Yörünge tabanlı İHA koordinasyonu

    HALİSE TÜRKMEN

    Yüksek Lisans

    İngilizce

    İngilizce

    2019

    Mekatronik Mühendisliğiİstanbul Teknik Üniversitesi

    Mekatronik Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ EMRE KOYUNCU

  3. Kullanıcı kesitleriyle yüz ifadelerini analiz eden bir çoklu etmen sistemi uygulaması

    A Multi agent system application analyzing facial expressions with user profiles

    SANEM SARIEL

    Yüksek Lisans

    Türkçe

    Türkçe

    2002

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. B. TEVFİK AKGÜN

  4. Midcourse and final phase path planning for air vehicles to avoid countermeasures

    Hava araçlarının karşı tedbirlerden kaçınma amaçlı orta ve son fazdaki yol planlaması

    BERK ATAELİ

    Yüksek Lisans

    İngilizce

    İngilizce

    2021

    Elektrik ve Elektronik MühendisliğiOrta Doğu Teknik Üniversitesi

    Elektrik-Elektronik Mühendisliği Ana Bilim Dalı

    PROF. DR. MEHMET KEMAL LEBLEBİCİOĞLU

  5. Multi input multi output intelligent modeling techniques and application to human driver

    Çok giriş çok çıkışlı akıllı modelleme teknikleri ve insan sürücüye uygulanması

    EMRE TEKİN

    Yüksek Lisans

    İngilizce

    İngilizce

    2012

    Mekatronik Mühendisliğiİstanbul Teknik Üniversitesi

    Mekatronik Mühendisliği Ana Bilim Dalı

    PROF. DR. ŞENİZ ERTUĞRUL