Wykład 4
Oprogramowanie komputerów
Podział oprogramowania.
Właściwości programu komputerowego.
Oprogramowanie systemowe komputerów.
Do funkcjonowania systemu komputerowego niezbędne jest jego oprogramowanie.
Program - zbiór instrukcji sterujących działaniem komputera, zbudowany w celu zrealizowania przez komputer określonego zadania.
Oprogramowanie
oprogramowanie systemowe
systemy operacyjne
oprogramowanie pomocnicze
systemy programowania
oprogramowanie użytkowe
programy narzędziowe
edytory tekstu
arkusze kalkulacyjne
SZBD
pakiety graficzne
pakiety wspomagania pracy biurowej
pakiety zintegrowane
pakiety do pracy grupowej
systemy użytkowe
systemy powielarne
systemy indywidualne
Oprogramowanie systemowe - grupa programów, która bezpośrednio nie wspomagają użytkownika w realizowaniu jego zadań, ale umożliwiają, ułatwiają bądź organizują pracę systemu komputerowego
System operacyjny - oprogramowanie, które jest niezbędne do uruchomienia i działania systemu komputerowego. W trakcie uruchamiania komputera, część systemu operacyjnego jest ładowana do pamięci operacyjnej komputera i rezyduje w niej przez cały czas pracy. System operacyjny zarządza zasobami komputera i udostępnia je aplikacjom użytkowym, z których korzysta użytkownik.
Składniki systemu operacyjnego na PC:
instrukcje wewnętrzne, będące tą częścią procedur zawartych w systemie, które stale rezydują w pamięci RAM i realizują podstawowe zadania systemu operacyjnego,
procesor poleceń - umożliwia komunikowanie się użytkownika z komputerem za pomocą zestawu sformalizowanych komend, które z jednej strony przypominają język naturalny, z drugiej zaś wywołują odpowiednie polecenia wewnętrzne lub zewnętrzne. Komputer w odpowiedzi na wydana komendę realizuje ją i wyświetla komunikat informujący użytkownika o przebiegu operacji,
polecenia zewnętrzne - dodatkowe programy zawarte w systemie operacyjnym, nie są niezbędne do działania komputera, pozwalają natomiast wykonywać pewne procedury organizacyjno-porządkujące, uruchamiane są w razie potrzeby i dopiero wtedy ich kod ładowany do pamięci operacyjnej
Cechy systemu operacyjnego:
wielozadaniowość - zadanie, nie wymagające bieżącej kontroli użytkownika, nazywa się zadania wsadowymi. Zadania które wymagają ciągłego dialogu programu z użytkownikiem nazywa się zadaniami interaktywnymi,
wielodostęp (wielostanowiskowość) - wymagana sieć komputerowa,
ochrona danych - zespól właściwości SO, które decydują o jego przydatności w instytucjach uznających troskę o dane za sprawę pierwszorzędnej wagi.. Na bezpieczeństwo składają się dwie główne właściwości:
stabilność systemu operacyjnego - odporność na awarie sprzętu i błędy w oprogramowaniu
autoryzowanie dostępu do danych - czyli ograniczanie praw użytkowników do zasobów systemu komputerowego- według zasad przyjętych w danej instytucji. Autoryzacja ma zapobiec udostępnianiu danych osobom do tego nie uprawnionym, a także celowemu zniszczeniu lub modyfikacji danych.
Oprogramowanie pomocnicze - rozszerza i usprawnia funkcje udostępniane przez SO. Nie służy do realizacji zadań użytkownika, ale wspiera pracę innych programów. Wśród nich wyróżnić można następujące podgrupy:
nakładki na system operacyjny - ułatwiają korzystanie z funkcji systemu operacyjnego, np. Norton Commander,
programy diagnostyczne, testowe i naprawcze służą do badania składników systemu komputerowego w celu określenia ich wydajności lub wykrycia usterek w konfiguracji, naprawy błędnych zapisów plików na dyskach,
programy antywirusowe - służą do wykrywania i niszczenia wirusów, które „zainfekowały” pamięci masowe systemu komputerowego. Wirus to mały program komputerowy zdolny do samodzielnej replikacji i dołączania się do innych programów. Jego działalność często może spowodować duże straty w systemie komputerowym.
Archiwizery - programy, których zadaniem jest kompresja zbiorów i ich łączenie w większe zbiory. Stosuje się do przechowywania zapasowych kopii danych i programów.
Oprogramowanie sieciowe - programy umożliwiające pracę w sieci oraz komunikację i wymianę danych za pośrednictwem sieci
Systemy programowania - to programy, które służą do tworzenia oprogramowania. Składają się z dwóch elementów:
języka programowania, będącego mocno zredukowanym językiem naturalnym o rygorystycznej składni,
kompilatora - program który tłumaczy kod zrozumiały dla programisty na kod maszynowy, zrozumiały dla procesora komputera.
Generacje języków programowania:
I generacja - kod maszynowy, czyli ciąg zer i jedynek stanowiący binarny zapis funkcji mikroprocesora wraz z ich parametrami. Kod maszynowy charakteryzuje się tym, że może być „zrozumiały” i wykonany prze mikroprocesor komputera, jest natomiast zupełnie nieprzejrzysty dla programisty. Obecnie nie stosuje się zapisu kodu maszynowego jako metody produkcji oprogramowania,
II generacja - języki zwane asemblerami (assemble - składać), w których funkcje mikroprocesora są modyfikowane za pomocą tzw. mnemoników. Są to krótkie i proste polecenia, będące dokładnymi odpowiednikami procedur, które może wykonać procesor, np. komenda ADD A B spowoduje dodanie zmiennej A do B i umieszczenie wyniku w zmiennej A. Asemblery, jako języki niskiego poziomu, słabo nadają się do tworzenia rozbudowanego oprogramowania użytkowego, dlatego stosuje się głównie do tworzenia elementów oprogramowania systemowego, zwłaszcza tych, w których najważniejsza jest szybkość działania i zgodność ze sprzętem komputerowym.
III generacja - to najliczniejsza grupa języków; w nich powstała większość dostępnego obecnie oprogramowania. Oferują dla programistów takie udogodnienia jak proceduralność, obiektowość, np. C, C++, Pascal, Basic, Prolog;
IV generacja (Fourth Generation Language - 4GL) - to zaawansowane technologicznie systemy programowania, które jakby „ukrywają” przed programistą stopień skomplikowania tworzonej aplikacji, umożliwiając mu skoncentrowanie się na aspektach merytorycznych. Ad technologicznym aspektem działania aplikacji pieczę sprawuje sam system programowania, stosując standardowe, sprawdzone rozwiązania. Języki IV generacji są językami najwyższego poziomu. Oferują możliwość szybkiego tworzenia oprogramowania za cenę małej elastyczności języka programowania, a tym samym ograniczenia obszaru zastosowań. Są powszechnie stosowane do tworzenia systemów użytkowych, które charakteryzują się dużym podobieństwem zastosowanych rozwiązań., nie wymagają uniwersalnych narzędzi programistycznych. Podstawowym udogodnieniem jest szybkie tworzenie i modyfikowanie aplikacji (Rapid Application Development - RAD). Przykład: Oracle, Informix, Progress.
Możliwości funkcjonalne:
interaktywne generowanie raportów (report generator),
interaktywne definiowanie dialogu użytkownika z systemem w ramach wprowadzania danych do bazy danych (form generator, screen pointer),
interaktywne opracowywanie zapytań dotyczących zawartości bazy danych (query generator),
współpraca z wieloma (różnymi) bazami danych
mechanizmy zapewnienia ochrony danych,
obsługa działania w środowisku wielodostępnym,
współpraca z nadzorującym systemem operacyjnym
wspólne baza adresowe, np. Lotus Notes, Novell GroupWise.