Agenda zaj. dr in. Andrzej Sobczak. Informacje analogowe vs dyskretne



Podobne dokumenty
Podstawy programowania

Planowanie adresacji IP dla przedsibiorstwa.

Wprowadzenie do kompilatorów

LEKCJA TEMAT: Zasada działania komputera.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Logiczny model komputera i działanie procesora. Część 1.

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Programowanie Obiektowe

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie komputerów

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Spis treci. Dzie 1. I Omówienie sprztu serii S7-300/400 (wersja 0904) II Instalacja urzdze S7 (wersja 0807) Kurs Diagnostyka Zaawansowana S7

Zarzdzanie i inynieria produkcji Studia II stopnia o profilu: A x P

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Bazy danych Podstawy teoretyczne

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Budowa komputera. Lubię to! - podręcznik

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Klonowanie MAC adresu oraz TTL

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Proces tworzenia programu:

Technologie informacyjne - wykład 12 -

Programowanie w języku C++ Grażyna Koba

Historia modeli programowania

Technika mikroprocesorowa

Konspekt lekcji matematyki klasa 4e Liceum Ogólnokształcce

MODELOWANIE I PROGRAMOWANIE PRACY

Informatyka. Michał Rad

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Architektura Systemów Komputerowych. Paweł Pełczyński

Architektura komputera

Wykład I. Wprowadzenie do baz danych

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

Programowanie sterowników PLC wprowadzenie

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Podstawy programowania wykład

POBÓR MOCY MASZYN I URZDZE ODLEWNICZYCH

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Typy bazy danych Textract

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

Zapisywanie algorytmów w języku programowania

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Podstawy Informatyki Języki programowania

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego.

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

ALGORYTMY I PROGRAMY

PROCEDURY l METODYKA PRZEPROWADZANIA AUDYTU WEWNTRZNEGO

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

Wykład 2. Budowa komputera. W teorii i w praktyce

Efekty kształcenia na kierunku AiR drugiego stopnia - Wiedza Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Podstawy programowania w języku C

Cloud Computing - czego wymaga od dostawcy usług w zakresie bezpieczestwa. Telekomunikacja Polska S.A. Andrzej Karpiski Łukasz Pisarczyk

Komputerowe wspomaganie prac inynierskich CAE

Programowanie w języku Python. Grażyna Koba

Programowanie C# mgr in. Dariusz Ku. p. 119A

Program do konwersji obrazu na cig zero-jedynkowy

Specjalno techniczna 2. Inynieria produkcji w przemyle maszynowym. Zarzdzanie i inynieria produkcji Studia II stopnia o profilu: A x P

Komputer i urządzenia z nim współpracujące.

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Opracował: Jan Front

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Budowa komputera Komputer computer computare

Podsumowanie wyników ankiety

WYMAGANIA NA OCENY Wprowadzenie do informatyki

Wzorcowy załcznik techniczny, do umowy w sprawie przesyłania faktur elektronicznych pomidzy Firm A oraz Firm B

Optymalizacja oprogramowania - wprowadzenie

WPROWADZENIE Mikrosterownik mikrokontrolery

KIERUNKOWE EFEKTY KSZTAŁCENIA

MIKROKONTROLERY I MIKROPROCESORY

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

WIADECTWO INNOWACYJNOCI PRODUKTU

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Wstp. Odniesienie do podstawy programowej

(podstawy i wymagania ze szczególnym zwróceniem uwagi na funkcjonalno systemów. w odniesieniu do poszczególnych poziomów)

Krótka wycieczka do wnętrza komputera

" # # Problemy budowy bezpiecznej i niezawodnej globalnej sieci szerokopasmowej dla słub odpowiadajcych za bezpieczestwo publiczne

Eugeniusz ZIÓŁKOWSKI 1 Wydział Odlewnictwa AGH, Kraków

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Autorzy opracowania (* oznacza współautorstwo):

Wykład Mikroprocesory i kontrolery

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Zasady organizacji projektów informatycznych

Algorytm. Krótka historia algorytmów

Only for internal use! Interfejs IO-LINK, FDT/DTM, ifm Container

Urzdzenia techniki komputerowej Identyfikacja i charakteryzowanie urzdze zewntrznych komputera

Modelowanie i Programowanie Obiektowe

Poszczególne punkty napisali (* oznacza współautorstwo):

Definicje. Algorytm to:

Klub Paragraf 34, Bronisławów dr in. Marek Dwiarek. Centralny Instytut Ochrony Pracy Pastwowy Instytut Badawczy

Transkrypt:

Katedra Informatyki Gospodarczej Szkoła Główna Handlowa dr in. Andrzej Sobczak W prezentacji wykorzystano fragmenty materiałów: E. Richter-Was, Teoretyczne Podstawy Informatyki J. Florek, Systemy Komputerowe P. Gawrysik, Projektowanie systemów informatycznych 1 Agenda zaj Jak TO działa czyli par słów o budowie komputerów Od danych przez informacje do wiedzy Jak zmusi TO do pracy czyli par słów o pisaniu programów komputerowych 2 Informacje analogowe vs dyskretne U(t) Umax 0 0 Informacje analogowe Umax R=(0,Umax) nieskoczony zbiór moliwych wartoci WE MASZYNA ANALOGOWA WY U(t) Umaxq Informacje dyskretne (cyfrowe) Umax R=( U, 2 U, 3 U, 4 U) # # MASZYNA # CYFROWA # a/c c/a 0 0 moc zbioru R wynosi 4 U - kwant wartoci 3 1

Konwersja liczb (przypomnienie) 1. 10100 B = 1*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 0*2 0 = = 1*16 + 0*8 + 1*4 + 0*2 + 0*1 = 20 D 2. 20:2 = 10 10:2 = 5 5:2 = 2 2:2 = 1 1:2 = 0 reszta=0 reszta=0 reszta=1 reszta=0 reszta=1 kierunek odczytu wyniku czyli 20 D = 10100 B 4 Przetwarzanie informacji Wszelkie procesy zamierzonego przetwarzania informacji przebiegaj według ustalonego algorytmu: DANE POCZTKOWE PROCES PRZETWARZANIA WYNIKI KOCOWE ALGORYTM 5 Przetwarzanie informacji Przetwarzanie informacji mona zrealizowa dwoma sposobami: Specjalizowany układ cyfrowy: DANE SPECJALIZOWANY UKŁAD CYFROWY WYNIKI System mikroprocesorowy (maszyna cyfrowa): PROGRAM DANE MASZYNA CYFROWA WYNIKI 6 2

Architektura maszyny cyfrowej PAMI ZEWNTRZNA MASZYNA CYFROWA PROGRAM PAMI OPERACYJNA WYNIKI UKŁADY WE URZDZENIA ZEWNTRZNE BLOK PRZETWA- RZANIA UKŁADY WY URZDZENIA ZEWNTRZNE DANE STEROWANIE PROCESOR JEDNOSTKA CENTRALNA 7 System mikroprocesorowy SZYNA ADRESOWA SZYNA DANYCH SZYNA STEROWANIA ZEGAR PROCESOR PAMIC UKŁADY WE/WY Centralna jednostka przetwarzajca (CPU) DANE PROGRAMY WYNIKI... URZ. ZEWN. MONITORY, DRUKARKI, CZYTNIKI,... Uniwersalny układ przetwarzajcy informacj i sterujcy prac pozostałych elementów systemu UYTKOWNIK 8 Architektura klasycznego komputera Architektura klasycznego komputera (wg von Neumana) opiera si na załoeniach: program wykonywany przez procesor wraz z danymi jest umieszczony w pamici; kolejno wykonywanych rozkazów zaley od ich umieszczenia w programie (w kolejnych komórkach pamici), a zmiana tej zasady moe by wykonana tylko: przez program (rozkaz skoku); przez system operacyjny np. wykrycie błdu; przez operatora np. reset; procesor odczytuje kolejne rozkazy z pamici wysyłajc odpowiednie adresy 9 3

Pami w komputerze Pami jako układ przeznaczony do przechowywania informacji binarnej mona scharakteryzowa nastpujcymi parametrami: pojemno szybko koszt pobór mocy Pojemno pamici okrela ilo informacji jak mona w niej przechowa wyraon w bitach, bajtach. Pami dzielona jest na fragmenty (w zalenoci od typu pamici) umoliwiajce adresowanie. 10 Parametry pamici Szybko pamici okrela jak czsto procesor (lub inne urzdzenie) moe z niej korzysta. czas dostpu - czas od momentu dania informacji z pamici do momentu, w którym ta informacja ukae si na wyjciu pamici czas cyklu - najkrótszy czas jaki musi upłyn pomidzy dwoma daniami dostpu do pamici szybko transmisji - okrela ile bajtów (bitów) mona przesła pomidzy pamici a innym urzdzeniem w jednostce czasu. Koszt pamici okrela cen jak naley ponie za uzyskanie wysokich parametrów pamici. Pobór mocy okrela jakie jest zapotrzebowanie energetyczne na realizacj funkcji pamici zwłaszcza przy deniu do wzrostu jej pojemnoci. 11 Typy pamici Pamici RAM (Random Access Memory) nazywamy pami półprzewodnikow o dostpie swobodnym przeznaczon do zapisu i odczytu. RAM jest pamici ulotn, co oznacza, e po wyłczeniu zasilania dane s tracone. Pamici ROM (Read Only Memory) nazywamy pami półprzewodnikow o dostpie swobodnym przeznaczon tylko do odczytu uprzednio zapisanych danych. Oznacza to, e nie mona do niej zapisywa danych w trakcie normalnej pracy w systemie. ROM jest pamici nieulotn, co oznacza, e po wyłczeniu zasilania dane nie s tracone. 12 4

Dysk twardy 13 CD-ROM 14 Dyskietka 15 5

Układy wejcia-wyjcia Układem we/wy nazywamy układ elektroniczny poredniczcy w wymianie informacji pomidzy mikroprocesorem i pamici systemu z jednej strony a urzdzeniem peryferyjnym (zewntrznym urzdzeniem współpracujcym) z drugiej. 16 Dane, informacja, wiedza Dane: surowe fakty o organizacji i jej działaniach (np. transakcjach) Informacje: celowo zorganizowane dane posiadajce okrelone znaczenie Wiedza: informacje nadajca si do wykorzystania. 17 Dane, informacja, wiedza Dane Fakty, statystyki, opinie, przewidywania zabrane z rónych wewntrznych i zewntrznych ródeł Informacja Dane interpretowane w kontekcie okrelonego celu Wiedza Wiedza jest to zdolno do wykonywania okrelonych zada w oparciu o posiadan informacj 18 6

Dane, informacja, wiedza Złoono semantyczna Mdro Wiedza Informacje Dane Sygnały Zajte zasoby 19 System informacyjny 20 System informacyjny System informacyjny: zestawienie komponentów (ludzi, danych, procesów, sposobów komunikacji, infrastruktury), które współdziałaj ze sob w celu zapewnienia codziennego funkcjonowania organizacji jak równie wspierajcy rozwizywanie problemów i podejmowanie decyzji przez kadr kierownicz. 21 7

System informatyczny System informacyjny niekoniecznie musi zawiera elementy infrastruktury IT System informacyjny moe si składa z wicej ni jednego systemu informatycznego. 22 Pocztki programowania Programowanie pierwszych komputerów polegało na rcznym ustawianiu setek przełczników we właciwych połoeniach - std nazwa programowanie zewntrzne. W taki sam sposób naleało te wprowadzi dane do programu. Wkrótce ilo danych wzrosła tak bardzo, e trzeba było poszuka nowej metody. Tak metod było wprowadzenie czytników dziurkowanych tam i kart. Wród twórców pierwszych elektronicznych maszyn liczcych na szczególn uwag zasługuje wgierski matematyk John von Neumann. Przedstawił on koncepcj maszyny wewntrznie programowalnej, przechowujcej w pamici nie tylko dane, ale i program obliczeniowy. Okazało si, e potrzebny jest system porozumiewania si z maszyn i kodowania wykonywanych przez ni programów. I tak doszło do powstania pierwszych jzyków programowania. 23 Pocztki programowania c.d. Z biegiem czasu zmieniała si technologia produkcji komputerów. Lampy elektronowe zostały zastpione mniejszymi i taszymi tranzystorami, które wkrótce zostały wyparte przez układy scalone. Skonstruowanie w 1971 r. mikroprocesora przyczyniło si do powstania komputerów opartych na układach scalonych o bardzo duej skali integracji. Równolegle do rozwoju sprztu rozwijały si techniki programowania. Motorem postpu była idea całkowitego wykorzystania mocy procesora i moliwoci systemu operacyjnego. Programowanie pierwszych komputerów odbywało si bezporednio w kodzie binarnym, który mona przedstawi jako cig zer i jedynek. Kady typ komputera operował własnym kodem wewntrznym, dlatego te jzyk pierwszej generacji został nazwany jzykiem maszynowym - zorientowanym na konkretn maszyn. 24 8

Pocztki programowania c.d. Poniewa operowanie kodem binarnym było do uciliwe, przypisano poszczególnym cigom zerojedynkowym łatwiejsze do zrozumienia skróty mnemotechniczne: JMP (skrót od słowa jump), MOV (skrót od słowa move),... Tak powstał jzyk symboliczny, zwany asemblerem. Jest on uwaany za jzyk programowania niskiego poziomu, gdy jest bezporednio zwizany z kodami jzyka maszynowego. Programowanie w jzyku asemblera było bardzo trudne, wymagało znajomoci rejestrów procesora i struktury pamici. Poza tym było zwizane z konkretnym typem procesora. Wkrótce powstały jzyki wysokiego poziomu. Jednym z pierwszych jzyków tego typu jest FORTRAN, który powstał w 1957 roku i do dzi jest podstawowym jzykiem programowania oblicze naukowych. Zalet jest dua szybko programów oraz rozbudowane biblioteki procedur numerycznych. Z czasem rozszerzono moliwoci jzyków wysokiego poziomu, takich jak BASIC, PASCAL i C++ o narzdzia wizualne (Rapid Application Development), które znacznie ułatwiaj konstruowanie programu. 25 Kompilator vs. interpreter Kompilator - program słucy do tłumaczenia programu ródłowego (napisanego w jzyku programowania) na kod binarny. Kompilator działa w całym programie i wynikiem jego działania jest w pełni skompilowany program. Do jzyków kompilowanych zaliczamy: Pascal, C, czy C++. Innym sposobem tłumaczenia kodu ródłowego programu jest jego interpretacja przez program zwany interpreterem. Interpreter odczytuje kolejne fragmenty tekstu programu i na bieco przesyła odpowiednie polecenia procesorowi. Dziki temu mona łatwiej znale błdy w programie, ale program działa wolniej. Przykładami jzyków interpretowanych s Basic, Logo, Perl, PHP i JavaScript. 26 Programowanie strukturalne vs. obiektowe Tradycyjne podejcie do programowania, zwane programowaniem proceduralnym charakteryzuje si rozdzieleniem danych od operujcych na nich funkcji. Odizolowanie danych od kodu moe prowadzi do przypadkowych zmian danych przez funkcje, które nie s z nimi logicznie zwizane. Ponadto modyfikacja programu napisanego w ten sposób jest trudna do realizacji, gdy nawet niewielka zmiana działania programu moe spowodowa konieczno wprowadzenia poprawek w wielu miejscach. 27 9

Programowanie strukturalne vs. obiektowe Takich wad pozbawione jest programowanie obiektowe, bdce po programowaniu strukturalnym kolejnym etapem w rozwoju jzyków programowania. Programowanie obiektowe jest stylem programowania, w którym do tworzenia programów uywa si obiektów. obiekt = dane + metody Styl taki powstał w wyniku postrzegania rzeczywistoci jako zbioru obiektów rónego typu, które mog wykonywa okrelone czynnoci, potrafi si ze sob komunikowa i na siebie wzajemnie oddziaływa. Obiekty w programie czsto odzwierciedlaj cechy i umiejtnoci swoich odpowiedników ze wiata rzeczywistego. 28 Struktury danych i algorytmy (powtórzenie) Struktury danych to narzdzia do reprezentowania informacji która ma by przetworzona przez program komputerowy, a algorytmy to przepisy wykonania czynnoci niezbdnych do jej przetworzenia. Wybór algorytmu do rozwizania konkretnego problemu programistycznego pomaga w ustaleniu, jak struktur danych naleałoby uy, ale i odwrotnie wybrana struktura danych ma ogromny wpływ na szczegóły realizacji i efektywnoci algorytmu. System mikroprocesorowy (maszyna cyfrowa): PROGRAM DANE MASZYNA CYFROWA WYNIKI 29 Uwarunkowania budowy systemów informatycznych Systemy informatyczne s najczciej obiektami o duym stopniu złoonoci. Podejcie systemowe w projektowaniu zaczerpnite z teorii organizacji i zarzdzania Strukturalizacja systemu, czyli dekompozycja systemu na mniejsze składniki i przedstawienie go w postaci struktury hierarchicznie powizanych komponentów. Głboko dekompozycji powinna zosta dobrana przez projektanta zaley m.in. od: rodzaju stosowanych technik IT, podwykonawców, wielkoci systemu itd. 30 10

Budowa systemów informatycznych Przy rozwizywaniu prostych zada podejcie ad hoc moe dawa szybsze rezultaty, Jednak gdy mamy do czynienia z bardziej złoonymi problemami efektywniejsze jest podejcie systematyczne. Najczciej budowa systemu jest procesem. Jest to skoczony cig kroków (czynnoci) powizanych ze sob relacjami, które maj doprowadzi do osignicia zamierzonego celu w postaci systemu spełniajcego przyjte wymagania. W procesie projektowania moliwe s ptle. 31 Jak tworzy si system informatyczny (skrót) Definicja problemu i specyfikacja: Analiza wymaga uytkownika (czsto nieprecyzyjne i trudne do zapisania), budowa prostego prototypu lub modelu systemu. Analiza i projektowanie: Wyróniamy najwaniejsze komponenty, specyfikujemy wymagania zwizane z wydajnoci systemu, szczegółowe specyfikacje niektórych komponentów. Implementacja: Kady implementowany komponent poddajemy serii testów. Instalacja i testowanie przez uytkowników Konserwacja W wielu wypadkach to ponad 50% nakładów poniesionych na napisanie systemu. 32 Definicja problemu i specyfikacja Uwiadomienie i wyartykułowanie potrzeby posiadania systemu; Okrelenie ogólnych celów systemu; Przygotowanie zapytania ofertowego; Wybranie wykonawcy; Przygotowanie kontraktu (z opisem zada, punktów kontrolnych, nakładami i harmonogramem); Negocjowanie i podpisanie kontraktu. 33 11

Analiza Analiza procesów biznesowych; Identyfikacja procesów zwizanych z planowanym systemem; Okrelenie grup obecnych i przyszłych uytkowników; Analiza obecnych i przyszłych potrzeb uytkowników; Opracowanie funkcjonalnego modelu systemu i ogólna specyfikacja systemu. W ramach analizy procesów biznesowych niezbdna moe okaza si poprawa jakoci samych procesów, jeszcze przed wdroeniem systemu. 34 Analityk systemowy Analityk rozpoznaje problem wewntrz organizacji, który moe by rozwizany za pomoc rodków technicznych lub organizacyjnych Jest pomostem midzy tymi, którzy potrzebuj komputeryzacji, a tymi, którzy znaj technologi Musi zna zarówno technologi, zasady zarzdzania oraz posiada podstawow wiedz dotyczc charakteru analizowanych procesów biznesowych Analityk zgłbia problemy i moliwoci organizacji Przekształca wiedz o potrzebach informacyjnych na propozycj struktury technicznej potrzebnej do ich zaspokojenia 35 Projektowanie Opracowanie modeli fizycznych; Specyfikacja aplikacji (take interfejsu uytkownika); Wybór architektury systemu; Wybór oprogramowania aplikacyjnego (pakiety, oprogramowanie własne) i systemowego oraz sprztu, Okrelenie zasad alokacji oprogramowania i aplikacji w zasobach sprztowych. 36 12

Implementacja Wykonanie prototypu sprawdzenie załoe projektu sprawdzenie reakcji uytkowników Wykonanie systemu Przygotowanie dokumentacji technicznej uytkownika procedury wdroenia systemu procedury testowania systemu 37 Instalacja, testowanie Instalacja systemu; Testowanie poprawnoci funkcjonalnej; Testowanie parametrów wydajnociowych; Optymalizacja, poprawki usuwanie błdów; "strojenie" systemu (wydajno); Pełna migracja danych (jeli potrzebna) 38 Jak tworzy si system informatyczny (podejcie procesowe) Zbiór przypadków organizacji Przypadek organizacji Przypadek A organizacji B Metody modelowania i technologie baz danych Analiza zbioru przypadków organizacji i modelowanie systemu informacyjnego Model fizyczny Model logiczny Model (procesowy) systemu informacyjnego Projekt systemu informatycznego (standaryzacja) Wdraanie systemu informatycznego i dostosowanie organizacji do modelu procesowego Definicje struktur danych (baz danych), kodowanie aplikacji 39 13

Metody programistyczne Projektowanie zstpujce (top-down design): Rozpoczynamy od zdefiniowania problemu który chcemy rozwiza Problem dzielimy na główne kroki podproblemy. Podproblemy s dzielone na drobniejsze kroki ta długo, a rozwizania drobnych podproblemów staj si proste - nazywamy to stopniowym uszczegółowianiem. 40 Metody programistyczne c.d. W idealnej sytuacji podproblemy mog by rozwizywane niezalenie, a ich rozwizania łczone w celu otrzymania rozwizania całego problemu. W odniesieniu do tworzenia kodu oznacza to, e poszczególne kroki powinny by kodowane niezalenie, przy czym dane wyjciowe jednego kroku s uywane jako dane wejciowe do innego. Zalety: systematyczna metoda rozwizywania problemów rozwizanie jest modularne, poszczególne kroki mog by uruchamiane, modyfikowane i ulepszane niezalenie od pozostałych rozwizanie składa si z klarownych fragmentów które mona niezalenie zrozumie dobrze zaprojektowane fragmenty mog by ponownie zastosowane w innych zadaniach mona rozpozna wspólne problemy na samym pocztku i unikn wielokrotnego ich rozwizywania 41 Metody programistyczne c.d. Projektowanie wstpujce (bottom-up design): Polega na wyjciu od samego jzyka i wzbogacaniu go nowymi operacjami, dopóki nie bdzie mona wyrazi rozwizania problemu w rozszerzonym jzyku. Zazwyczaj programy projektuje si łczc metod wstpujca i zstpujca: Zaczynamy od podzielenia problemu na pod-zadania. Przekonujemy si, e byłby przydatny okrelony pakiet funkcji. Rozstrzygamy, jakie funkcje wejd w skład pakietu i rozszerz jzyk. Powtarzamy to iteracyjnie, dzielc problemy na prostsze i wzbogacaj tym samym jzyk... dopóki rozwizania wszystkich problemów składowych nie dadz si zapisa bezporednio w rozszerzonym jzyku. 42 14