{"id":15385,"date":"2024-07-17T09:08:16","date_gmt":"2024-07-17T07:08:16","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=15385"},"modified":"2025-05-30T10:26:09","modified_gmt":"2025-05-30T08:26:09","slug":"definicje-rozwoj-oprogramowania","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/definicje-rozwoj-oprogramowania\/","title":{"rendered":"Definicje Rozw\u00f3j oprogramowania"},"content":{"rendered":"\n<p>W niniejszym artykule przedstawione zosta\u0142o podstawowe definicje, jakie s\u0105 zwi\u0105zane z obszarem <em>Rozw\u00f3j oprogramowania<\/em>.<\/p>\n<p><strong>Tabela wirtualna<\/strong> nie istnieje w bazie danych, ale jest emulowana przez SAS. Dost\u0119p do tabeli wirtualnej mo\u017cna uzyska\u0107 w taki sam spos\u00f3b, jak do tabeli bazy danych. Zawarto\u015b\u0107 tabeli wirtualnej jest obliczana w czasie wykonywania zapytania na podstawie warto\u015bci wej\u015bciowych. Jako wynik zapytania mo\u017ce zosta\u0107 zwr\u00f3cona dowolna liczba wierszy. Tabela wirtualna mo\u017ce by\u0107 u\u017cywana tylko jako pojedyncza tabela w prostej instrukcji SQL.<\/p>\n<p>Tabele wirtualne powinny by\u0107 u\u017cywane, je\u015bli wynik zapytania mo\u017ce zawiera\u0107 wi\u0119cej ni\u017c jeden wiersz. Je\u015bli wynik zapytania zawiera tylko maksymalnie jeden wiersz, funkcja wirtualna jest odpowiednia, poniewa\u017c mo\u017ce by\u0107 u\u017cywana w JOIN.<\/p>\n<p><strong>Funkcja wirtualna<\/strong> to specjalna tabela, kt\u00f3ra zwraca wiersz wynik\u00f3w dla zestawu warto\u015bci wej\u015bciowych, kt\u00f3ry jest obliczany w czasie wykonywania zapytania. Nie istnieje ona w bazie danych, ale jest emulowana przez SAS.<br>Funkcja wirtualna jest zwykle po\u0142\u0105czona z inn\u0105 tabel\u0105 bazy danych za pomoc\u0105 z\u0142\u0105czenia typu LEFT OUTER. Przypisanie warto\u015bci dla parametr\u00f3w wej\u015bciowych funkcji wirtualnej jest okre\u015blone przez warunek z\u0142\u0105czenia lub klauzul\u0119 WHERE. Je\u015bli zapytanie zawiera JOIN, wynik zapytania jest najpierw okre\u015blany bez uwzgl\u0119dnienia funkcji wirtualnej w bazie danych. Warto\u015bci kolumn funkcji wirtualnej s\u0105 nast\u0119pnie obliczane dla ka\u017cdego wiersza wyniku. SAS oblicza warto\u015bci kolumn wyj\u015bciowych funkcji wirtualnej dla przypisania warto\u015bci parametr\u00f3w wej\u015bciowych okre\u015blonych przez warunek JOIN.<\/p>\n<div><strong>Wirtualna kolumna relacji <\/strong>rozszerza tabel\u0119 obiektu biznesowego o kolumn\u0119, kt\u00f3rej zawarto\u015b\u0107 jest obliczana w czasie wykonywania zapytania. Wirtualna kolumna relacji opiera si\u0119 na relacji mi\u0119dzy \u017ar\u00f3d\u0142owym obiektem biznesowym a okre\u015blonym docelowym obiektem biznesowym, kt\u00f3ry musi spe\u0142nia\u0107 okre\u015blone warunki. Nale\u017cy zauwa\u017cy\u0107, \u017ce dodaje ona dodatkow\u0105 kolumn\u0119 do tabel wszystkich \u017ar\u00f3d\u0142owych obiekt\u00f3w biznesowych, kt\u00f3re maj\u0105 tak\u0105 relacj\u0119 z docelowym obiektem biznesowym.<\/div>\n\n\n\n<p><b>Wydanie (realase) <\/b>&#8211; jest okre\u015blone przez ci\u0105g znak\u00f3w w postaci V.R.M: Version (wersja), Release (wydanie) i Modification-Level (poziom modyfikacji).<\/p>\n<p><strong>Aktualizacja oprogramowania &#8211; <\/strong>jednostka logiczna, kt\u00f3ra przenosi wersje obiekt\u00f3w programistycznych mi\u0119dzy systemami. Dla ka\u017cdej aktualizacji oprogramowania tworzone s\u0105 dwa pliki, od\u015bwie\u017cenie kodu (ko\u0144cz\u0105ce si\u0119 na .cr) i od\u015bwie\u017cenie \u017ar\u00f3d\u0142a (ko\u0144cz\u0105ce si\u0119 na .sr). Ka\u017cd\u0105 aktualizacj\u0119 oprogramowania mo\u017cna jednoznacznie zidentyfikowa\u0107 na podstawie wydania, identyfikatora i repozytorium \u017ar\u00f3d\u0142owego (prefiks eksportu, np. babel). Partnerzy mog\u0105 tworzy\u0107 aktualizacje oprogramowania, aby dostarcza\u0107 zmiany specyficzne dla klienta i w\u0142asne standardowe rozszerzenia.<br \/>Aktualizacje oprogramowania zawieraj\u0105 poprawki b\u0142\u0119d\u00f3w \/ ulepszenia, kt\u00f3re s\u0105 przeprowadzane dla okre\u015blonej wersji. Dla ka\u017cdej wersji mo\u017cna wygenerowa\u0107 dowoln\u0105 liczb\u0119 aktualizacji oprogramowania.<br \/>Rozr\u00f3\u017cnia si\u0119 dwie klasy aktualizacji oprogramowania: kod systemowy (aktualizacje oprogramowania SYS) i kod aplikacji (aktualizacje oprogramowania APP). Aktualizacje oprogramowania SYS obejmuj\u0105 obiekty deweloperskie z przestrzeni nazw poni\u017cej <em>com.cisag.pgm<\/em> i <em>com.cisag.sys<\/em>, a tak\u017ce poni\u017cej powi\u0105zanych podprzestrzeni nazw z <em>com.cisag.archive<\/em>, <em>com.cisag.dbu<\/em> i <em>com.cisag.nls.<\/em> Wszystkie inne obiekty deweloperskie s\u0105 przenoszone wraz z aktualizacjami oprogramowania APP. W szczeg\u00f3lno\u015bci s\u0105 to wszystkie obiekty deweloperskie, kt\u00f3re nie zosta\u0142y utworzone przez producenta oprogramowania. W przeciwie\u0144stwie do aktualizacji oprogramowania APP, aktualizacje oprogramowania SYS nie zawieraj\u0105 obiekt\u00f3w programistycznych typu klasy Java. S\u0105 one zawarte w silniku systemowym dla kodu systemu.<\/p>\n<p><strong>Java Development Kit (JDK)<\/strong> to narz\u0119dzie programistyczne opracowane przez firm\u0119 Sun Microsystems do pisania program\u00f3w w j\u0119zyku Java. JDK jest dost\u0119pny bezp\u0142atnie. Zawiera kompilator Java, interpreter, debugger, przegl\u0105dark\u0119 aplet\u00f3w i dokumentacj\u0119.<\/p>\n<p><strong>ODBC<\/strong> to standard dost\u0119pu do \u017ar\u00f3de\u0142 danych (zazwyczaj baz danych) za po\u015brednictwem jednolitego interfejsu w systemie Windows.<\/p>\n<p><strong>J\u0119zyk wy\u015bwietlania<\/strong> &#8211; to j\u0119zyk, w kt\u00f3rym wy\u015bwietlane s\u0105 elementy interfejsu systemu i metadane w sterowniku ODBC. Jest on ustawiany dla ka\u017cdego u\u017cytkownika, zazwyczaj w jego j\u0119zyku ojczystym.<\/p>\n<p><strong>J\u0119zyk zawarto\u015bci<\/strong> &#8211; j\u0119zyk tre\u015bci to j\u0119zyk, w kt\u00f3rym wy\u015bwietlane i edytowane s\u0105 atrybuty obiekt\u00f3w OLTP mo\u017cliwe do zlokalizowania. Obejmuje to na przyk\u0142ad opis artyku\u0142u, kt\u00f3ry mo\u017cna przet\u0142umaczy\u0107 bezpo\u015brednio za pomoc\u0105 okna dialogowego.<\/p>\n<p><strong>Teksty do zlokalizowania<\/strong> &#8211; to teksty w atrybutach obiekt\u00f3w biznesowych, kt\u00f3re mo\u017cna przet\u0142umaczy\u0107.<\/p>\n\n\n\n<p><strong>Pami\u0119\u0107 podr\u0119czna <\/strong>to struktura danych, w kt\u00f3rej obiekty s\u0105 tymczasowo przechowywane, aby umo\u017cliwi\u0107 kr\u00f3tki czas dost\u0119pu. Funkcjonalno\u015b\u0107 pami\u0119ci podr\u0119cznej opiera si\u0119 na za\u0142o\u017ceniu, \u017ce obiekt, kt\u00f3ry by\u0142 ostatnio potrzebny, z du\u017cym prawdopodobie\u0144stwem b\u0119dzie wkr\u00f3tce potrzebny ponownie. Pami\u0119\u0107 podr\u0119czna ma zazwyczaj sko\u0144czony rozmiar i wykorzystuje r\u00f3\u017cne strategie, aby zdecydowa\u0107, kt\u00f3re obiekty maj\u0105 zosta\u0107 usuni\u0119te z pami\u0119ci podr\u0119cznej. Pami\u0119ci podr\u0119czne mog\u0105 by\u0107 po\u0142\u0105czone szeregowo na kilku poziomach, takich jak pami\u0119\u0107 podr\u0119czna transakcji, wsp\u00f3\u0142dzielona pami\u0119\u0107 podr\u0119czna i pami\u0119\u0107 podr\u0119czna bazy danych.<\/p>\n\n\n\n<p><strong>Pami\u0119\u0107 podr\u0119czna transakcji <\/strong>to lokalny obszar pami\u0119ci, w kt\u00f3rym tymczasowo przechowywane s\u0105 zmiany w ramach transakcji. Tworzona jest w momencie rozpocz\u0119cia nowej transakcji najwy\u017cszego poziomu. Zmiany zapisane w pami\u0119ci podr\u0119cznej transakcji staj\u0105 si\u0119 w pe\u0142ni trwa\u0142e dopiero po zatwierdzeniu transakcji najwy\u017cszego poziomu. Ka\u017cda transakcja najwy\u017cszego poziomu ma w\u0142asn\u0105 pami\u0119\u0107 podr\u0119czn\u0105 transakcji.<\/p>\n\n\n\n<p><strong>Wsp\u00f3\u0142dzielona pami\u0119\u0107 podr\u0119czna <\/strong>&#8211; jest to pami\u0119\u0107 podr\u0119czna wsp\u00f3\u0142dzielona przez wszystkie sesje serwera aplikacji dla instancji Business Objects. Ta wsp\u00f3\u0142dzielona pami\u0119\u0107 podr\u0119czna umo\u017cliwia, aby dane, kt\u00f3re s\u0105 bardzo cz\u0119sto odczytywane przez r\u00f3\u017cne sesje, by\u0142y dost\u0119pne tylko raz w pami\u0119ci g\u0142\u00f3wnej.<\/p>\n\n\n\n<p><strong>Wska\u017anik<\/strong> &#8211; reprezentuje techniczny lub biznesowy parametr liczbowy, kt\u00f3rego warto\u015b\u0107 powinna by\u0107 monitorowana. Ka\u017cdy wska\u017anik jest jednoznacznie identyfikowany przez przestrze\u0144 nazw oraz nazw\u0119. W ramach jednej przestrzeni nazw mo\u017ce znajdowa\u0107 si\u0119 wiele wska\u017anik\u00f3w, r\u00f3\u017cni\u0105cych si\u0119 nazwami. Wska\u017aniki r\u00f3\u017cni\u0105 si\u0119 mi\u0119dzy sob\u0105 typem operacji oraz sposobem prezentacji informacji wykorzystywanych do monitorowania. System udost\u0119pnia zestaw standardowych wska\u017anik\u00f3w. Opr\u00f3cz nich u\u017cytkownicy mog\u0105 tworzy\u0107 w\u0142asne dynamiczne wska\u017aniki. W takim przypadku warto\u015bci wska\u017anik\u00f3w s\u0105 obliczane na podstawie definicji dzia\u0142a\u0144, a nast\u0119pnie udost\u0119pniane za pomoc\u0105 Worflow. Zewn\u0119trzne narz\u0119dzia monitoruj\u0105ce mog\u0105 uzyskiwa\u0107 dost\u0119p do wska\u017anik\u00f3w jako MBean (Java Management Extensions \u2013 zarz\u0105dzalne komponenty systemowe).<\/p>\n\n\n\n<p><br><strong>Definicja Hook Contract<\/strong> &#8211; zawiera zestaw powi\u0105zanych hook\u00f3w, np. wszystkie hooki dzia\u0142aj\u0105ce na poziomie jednostki biznesowej (Business Entity) dla konkretnego obiektu biznesowego. Jednak\u017ce hooki z warstwy logiki i hooki z warstwy dialogowej dla tego samego obiektu powinny by\u0107 rozdzielone i zawarte w osobnych definicjach hook contract. Dopiero dzi\u0119ki istnieniu definicji hook contract, hooki s\u0105 oficjalnie udost\u0119pniane do implementacji. Definicja Hook Contract  to obiekt deweloperski typu <em>Hook Contract<\/em>, z podtypem <em>Definicja Hook Contract<\/em>  (w XML: HOOK_DEFINITION). Jest to zatem obiekt deweloperski oparty na strukturze XML.<\/p>\n\n\n\n<p><strong>Implementacja hook contract <\/strong>&#8211; aby zaimplementowa\u0107 hook, opr\u00f3cz samej klasy implementuj\u0105cej logik\u0119 (np. w Java), konieczne jest utworzenie r\u00f3wnie\u017c implementacji hook contract. W ramach kt\u00f3re okre\u015bla si\u0119<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>kt\u00f3re hooki maj\u0105 by\u0107 zaimplementowane<\/li>\n\n\n\n<li>jakie klasy s\u0105 przypisane do ich realizacji<\/li>\n<\/ul>\n\n\n\n<p>Nie ma obowi\u0105zku implementowania wszystkich hook\u00f3w dost\u0119pnych w definicji \u2014 mo\u017cna zaimplementowa\u0107 tylko wybran\u0105 podgrup\u0119. Implementacja hook contract to obiekt deweloperski typu <em>Hook Contract<\/em>, z podtypem <em>Implementacja hook contract<\/em> (w XML: HOOK_IMPLEMENTATION).<\/p>\n","protected":false},"author":12,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-15385","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-rozwoj-oprogramowania"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/15385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/comments?post=15385"}],"version-history":[{"count":14,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/15385\/revisions"}],"predecessor-version":[{"id":32070,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/15385\/revisions\/32070"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=15385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}