Program Konferencji Testwarez 2012
|
|
- Helena Pawlak
- 8 lat temu
- Przeglądów:
Transkrypt
1 CORE Nº Jak zaprogramować bota? Poradnik dla początkujących Marcin Mrowiński Ocena procesów testowych z wykorzystaniem modelu TMMi Piotr Piotrowski Tester w projektach metodologii Agile 10 przykazań testera Program Konferencji Testwarez październik, Poznań Tomasz Olszewski
2
3 Wprowadzenie Testowanie oprogramowania INDEX 04 Redakcja Od redakcji Inżynieria oprogramowania 05 Ocena procesów testowych z wykorzystaniem modelu TMMi Piotr Piotrowski Jak zaprogramować bota? Poradnik dla początkujących Marcin Mrowiński Zaproszenie do udziału w V edycji cyklu wydarzenia BAF, Warszawa, grudnia Wirtualizacja aplikacji zwiększa produktywność oraz ułatwia testowanie i wdrażanie współczesnych systemów IT Marek Kucharski 24 Tester w projektach metodologii Agile 10 przykazań testera Tomasz Olszewski Program konferencji Testwarez Proces wyboru narzędzia do zarządzania testowaniem Radosław Smilgin Numer specjalny c0re
4 Wprowadzenie Redakcja Kwartalnik c0re (4 numery w roku) jest wydawany przez gasq Service GmbH. Od redakcji Redaktor naczelny: Karolina Zmitrowicz karolina.zmitrowicz@coremag.eu Witamy w nowym numerze magazynu c0re. Ponadto, zapraszamy do udziału w tegorocznej edycji Redakcja w składzie: Bartłomiej Prędki bartłomiej.predki@coremag.eu Krzysztof Chytła krzysztof.chytla@coremag.eu W tym numerze polecamy: Tester w projektach metodologii Agile. 10 przykazań testera - konferencji Testwarez - liczymy na Waszą obecność w Poznaniu! Uczestników konferencji, oraz Współpraca: Dariusz Paczewski dariusz.paczewski@coremag.eu Michał Figarski Robert Kuźmiak Piotr Piotrowski Tomasz Olszewski o zasadach obowiązujących w testowaniu w projektach zwinnych. Ocena procesów testowych z wykorzystaniem modelu TMMi osoby zainteresowane, informujemy również, że pod koniec października przedstawimy Wam numer specjalny c0re, poświęcony Testwarez - a w nim artykuły na bazie prelekcji. 04 Adres korespondencyjny: C0RE Magazine c/o gasq Service GmbH Kronacher Straße Bamberg Germany Piotr Piotrowski w kontynuacji tematyki o modelu dojrzałości procesu testowego. Życzymy miłej lektury! Redakcja Dział reklamy: info@coremag.eu WWW: Wszystkie znaki firmowe zawarte w piśmie są własnością odpowiednich firm. Prawa autorskie: Wszystkie opublikowane artykuły są objęte prawem autorskim autora lub przedsiębiorstwa. Wykorzystywanie w innych publikacjach, kopiowanie lub modyfikowanie zawartości artykułu bez pisemnego upoważnienia autora jest zabronione. Osoby zainteresowane współpracą w zakresie publikacji prosimy o kontakt: redakcja@coremag.eu
5 Inżynieria oprogramowania Ocena procesów testowych z wykorzystaniem modelu TMMi Autor: Piotr Piotrowski O Autorze: Pracownik wiedzy, Inżynier, Badacz, Działacz. Inżynier Testów w przedsiębiorstwie Tieto Poland, gdzie zajmuje się m. in. czynnościami testowymi w przemyśle motoryzacyjnym. Posiada doświadczenie głównie w dziedzinie: badań i rozwoju, telekomunikacji, informatyki, jakości i samoprzywództwa. Jest członkiem i/lub wspiera około czterech organizacji non-profit. Uczestniczył w rozmaitych projektach i przedsięwzięciach, głównie międzynarodowych, w tym naukowych. Posiada zaawansowany stopień rozwoju osobistego należy do górnych 21% populacji. Uzyskał bardzo wysokie miejsce w krajowym programie edukacyjnym dla kadry menedżerskiej i wygrał jedną z edycji krajowego konkursu o prestiżową praktykę. Zdobył łącznie około czterdziestu certyfikatów z: zarządzania, angielskiego oraz testowania oprogramowania. Jest autorem pewnych rozwiązań wdrożonych w biznesie, dwóch zgłoszeń patentowych, ponad 25 artykułów i 1 monografii. Posiada wykształcenie w: zarządzaniu (niezależne opanowanie programu doktoratu z administracji biznesu), technologii (zaliczone trzy lata doktoratu z telekomunikacji). Zainteresowania to: rozwój osobisty, działalność naukowa i wiele innych. Singiel, dwie siostry. Autor pragnie podziękować organizacji TMMi Foundation za zgodę na nieodpłatne użycie dokumentów pochodzących z tejże organizacji, wykorzystanych przy pracy nad artykułem. Streszczenie Artykuł dostarcza odpowiedzi, jak zorganizować, przeprowadzić i udokumentować ocenę procesów testowych według modelu TMMi, dostępnego wraz z towarzyszącymi dokumentami i innymi informacjami do pobrania ze strony organizacji TMMi Foundation ( której celem jest usprawnianie procesów testowych. Typy oceny procesów testowych Wynik oceny (ang. assessment) procesów testowych jest jedną z danych źródłowych wykorzystywanych przy usprawnianiu tychże procesów. Ocenę przeprowadza się względem określonego modelu procesów testowych. Modele tego typu są wypracowywane przez organizacje, które korzystają z dorobku wielu firm, instytucji naukowych i indywidualnych ekspertów. Zakres przeprowadzanej oceny można rozpatrywać 05
6 06 Inżynieria oprogramowania dwuwymiarowo - jako liczbę jednostek organizacyjnych danego przedsiębiorstwa podlegających ocenie oraz zastosowany w ocenie fragment modelu procesów testowych. Po ustaleniu zakresu oceny ustala się, kto poniesie jej koszty. Jednym z modeli procesów testowych jest TMMi (ang. Test Maturity Model integration), w którym na podstawie wytycznych organizacji TMMi Foundation [TAM09 - Zgoda na wykorzystanie dokumentu [TAM09] od TMMi Foundation.] istnieją dwa typy oceny procesów testowych z wykorzystaniem modelu TMMi: nieformalny, który można nazwać samooceną (ang. self-assessment) dokonywaną przez przedsiębiorstwo własnymi siłami, bez zewnętrznego akredytowanego asesora, przy użyciu niewielkiej liczby zaangażowanych osób. Ma ona charakter szybkiego sprawdzenia bez punktowania względem modelu TMMi. Wykorzystuje się tu wywiady z załogą lub dokumenty organizacyjne albo informacje pochodzące od klientów, formalny, określany, jako ocena z użyciem zewnętrznych przedsiębiorstw, z których pochodzą co najmniej dwaj akredytowani asesorzy oraz środki do oceny w postaci formularzy, czy oprogramowania. Pojawiają się tu także: punktowanie względem modelu TMMi, wykazanie silnych i słabych stron, analiza luk w procesach. Obowiązkowe są także wywiady z załogą oraz użycie dokumentów powstałych w przedsiębiorstwie. W zależności od potrzeb biznesowych danego przedsiębiorstwa można również opracować ocenę mieszaną, stosującą część zasad oceny formalnej i nieformalnej, określonych w dokumencie [TAM09]. Przy podejmowaniu decyzji o typie oceny procesów testowych bierze się pod uwagę czynniki takie jak: cele biznesowe (potrzebę uzyskania oficjalnego certyfikatu zgodności z modelem TMMi, wymagania klientów), zakres i czas oceny (jeden lub więcej całych poziomów dojrzałości TMMi, czy określone Specyficzne Praktyki modelu TMMi), umiejętności przeprowadzania oceny (stopień znajomości modelu TMMi i wytycznych organizacji TMMi Foundation w zakresie przeprowadzania oceny, obiektywizm i dokładność oceny), stopień rozwoju organizacji, w której odbywa się ocena (obecność zarządzania procesowego w organizacji, nastawienie członków organizacji do ocen zgodności z modelami procesów), ryzyko nieefektywności oceny (stopień wykorzystania wyników oceny do późniejszych usprawnień procesów testowych). Podsumowując, ocena formalna oferuje więcej gotowej wiedzy eksperckiej, specjalistycznych narzędzi, oficjalne poświadczenie certyfikatem i jest droższa od oceny nieformalnej, natomiast drugi z wymienionych typów może poprzedzać pierwszy. Przygotowanie do oceny Nazwa poziomu Procentowy zakres punktacji Po pierwszym, krótkim zapoznaniu decyzyjnych członków organizacji z pomysłem dokonania oceny procesów testowych z wykorzystaniem modelu TMMi i uzyskaniu ich wstępnej akceptacji, należy zorganizować dłuższe spotkanie, na którym zostaną przedyskutowane szczegóły związane z wyborem typu i przyjętą postacią oceny. Następnie przygotowuje się plan oceny, który zawiera [TAM09]: cel oceny zawierający odpowiedź na pytanie dlaczego przeprowadza się ocenę? Pomaga on nie zgubić kierunku oceny oraz wpływa na inne elementy planu, zakres oceny można w nim określić, które części modelu TMMi będą Opis poziomu zgodność procesu z modelem TMMi N (Not Achieved) 0 15% Brak zgodności lub niewielka zgodność P (Partially Achieved) 15 50% Częściowa zgodność proces ze znaczącymi słabościami, niekompletny, nierozpowszechniony, niezgodny z przeznaczeniem lub rezultatami L (Largely Achieved) F (Fully Achieved) NA (Not Applicable) 50 85% Znacząca zgodność proces systematyczny i rozpowszechniony. Pewne niewielkie słabości w: upowszechnieniu, zastosowaniu i rezultatach % Jednoznaczna zgodność proces systematyczny i rozpowszechniony. Brak oczywistych słabości w: upowszechnieniu, zastosowaniu i rezultatach. - Proces nie jest do zastosowania w organizacji i jest wyłączony z końcowych wyników oceny NR (Not Rated) - Proces nie jest punktowany z uwagi na brak obiektywnych danych służących do tego celu Tabela 1. Skala pomiarowa punktacji dla oceny z wykorzystaniem modelu TMMi [TAM09].
7 Inżynieria oprogramowania wykorzystywane jako odniesienie, jakie części organizacji zostaną poddane ocenie, ograniczenia oceny wynikają one z dostępności określonych zasobów, np. finansowych do pokrycia kosztów oceny, przewidywanego czasu oceny, poufności określonych informacji, wyłączenia pewnych części przedsiębiorstwa spod oceny, metodę oceny należy tu przemyśleć również techniki najbardziej odpowiadające danej firmie, Punktacja Obszaru Procesu Punktacja Celi Not Rated Cele Ogólne GG1 Fully Achieved GG2 Not Rated Cele Specyficzne SG1 Largely Achieved SG2 Not Achieved SG3 Partially Achieved SG4 Not Applicable NR F NR L N P NA kryteria kompetencji asesora zależne przede wszystkim od obranego typu oceny, czynności spis czynności pozwalający przeprowadzić ocenę w zakładanej formie, osiągnąć pożądany zakres wyników, zasoby - zwyczajowo należy określić zespół biorący udział w procesie oceny, dokonać rezerwacji pokojów, itp., harmonogramy data, czas, lokalizacja, lista uczestników: spotkań, wywiadów, sesji zbierania danych, prezentacji rezultatów, odpowiedzialności dla sponsora oceny, czyli osoby należącej do struktury przedsiębiorstwa, dostarczającej zasobów, lidera wyzwalającego zapał uczestników oceny, weryfikującej kompetencje asesorów, opracowującej harmonogram oceny, głównego punktu kontaktu udzielającego informacji o ocenie, odpowiedzialnej za odebranie rezultatów oceny, będącej właścicielem danych używanych do oceny; dla lidera zespołu oceniającego zajmującego się zarządzaniem pracą zespołu oceniającego, obecnego przy omawianiu kwestii związanych z planowaniem i punktowaniem, prezentującego rezultaty sponsorowi, raporty o asesorach i wyniki formalnej oceny organizacji TMMi Foundation [co określa document TMMi Data Submission Requirements (DSR) [DSR09]], odpowiada za bezpieczne przechowywanie informacji i danych o audycie przez 3 lata; dla członka zespołu oceniającego uczestniczącego w planowaniu, wywiadach z członkami ocenianej organizacji w charakterze prowadzącego wywiad lub skryby, punktowaniu, w tym, dochodząc do konsensusu w kwestii punktowania z co najmniej jednym innym asesorem, GG Generic Goal Cel Ogólny [Cele Ogólne, w przeciwieństwie do Specyficznych, są powtarzane w wielu miejscach modelu TMMi], SG Specific Goal Cel Specyficzny. Tabela 2. Przykład końcowego wyniku punktacji dla Obszaru Procesu wynikającego z punktacji składowych Celi opracowanie własne. kryteria sukcesu odnoszone względem stopnia wykonania planu oceny, zamierzone wyniki oceny muszą zawierać minimalny zbiór określony przez daną metodę oceny. Przykłady danych wyjściowych to: data, dane wejściowe, identyfikacja metody przeprowadzania oceny i procesów poddanych ocenie, wartości punktacji oraz opisy jakościowe. Plan oceny można poddać dyskusji na kolejnym spotkaniu, którego celem jest ostateczne uzgodnienie wszystkich kwestii potrzebnych do przeprowadzenia oceny w formie pożądanej przez dane przedsiębiorstwo. Przeprowadzanie oceny Przed właściwym elementem przeprowadzania oceny, jakim jest punktowanie poszczególnych procesów testowych, zbiera się według ustalonych zasad dane, które będą poddane ocenie. Dane te muszą spełniać dwa podstawowe wymagania być poufne i nie wskazywać na konkretną osobę. Metody pozyskania danych to: poufne dostarczenie dokumentów związanych z danym procesem, poufny wywiad z osobami uczestniczącymi w danym procesie, dystrybucja i poufne zebranie kwestionariuszy od ludzi zaangażowanych w danych proces, poufne zbadanie satysfakcji klientów danych organizacji. Skala pomiarowa punktacji przy ocenie z wykorzystaniem modelu TMMi zawiera kilka poziomów widocznych w Tab. 1 Podstawowe zasady dla agregowanych, końcowych wyników punktacji są następujące: wypadkowa punktacja całego poziomu dojrzałości modelu TMMi jest równa najniższej punktacji jednego ze składowych Obszarów Procesów, wypadkowa punktacja całego Obszaru Procesu TMMi jest równa najniższej punktacji jednego ze składowych Specyficznych lub Ogólnych Celów, wypadkowa punktacja całego Celu modelu TMMi jest oparta na punktacji wszystkich składowych Praktyk, zasady wypadkowego punktowania Praktyki modelu TMMi oraz pozostałe zasady punktacji są określone w przyjętej metodzie oceny. Komentarz do Tab. 2 jest następujący w tabeli zawarto różne oceny Celi modelu TMMi składających się na dany Obszar Procesu. Końcowa punktacja Obszaru Procesu wynosi NR, ponieważ ważne jest to, że cały Obszar Procesu nie może 07
8 Inżynieria oprogramowania 08 być punktowany z uwagi na brak punktacji choćby jednego Celu. Poza tym wynik NA innego z Celów świadczy o wyłączeniu go z oceny i nie służy decyzji o punktacji całego Obszaru Procesu. Załóżmy, że w Tab.2 wykreślamy wiersze z ocenami Celi w postaci NR i NA, wtedy końcowa ocena całego Obszaru Procesu wyniosłaby N. Jedną z kluczowych kwestii jest sumienność punktowania elementów składowych modelu TMMi także przez asesorów pochodzących z wnętrza danego przedsiębiorstwa. Postawa taka jest pomocna przy uzyskiwaniu dokładnych, prawdziwych, końcowych ocen elementów modelu, które służą wyciąganiu realnych wniosków w zakresie późniejszego usprawniania procesów testowych. Poza tym asesor, który sumiennie wykonał swoją pracę, potencjalnie łatwiej obroni jej wyniki, zwłaszcza przed zarzutami o ich zaniżenie. Przykładowo w zakresie części Specyficznych Praktyk odnoszących się do dokumentu strategii testów, należy wziąć pod uwagę nie tylko obecność samego dokumentu i od razu zakładać jednoznaczną zgodność (F), lecz także sprawdzić kompletność tegoż dokumentu w zakresie punktów i ich zawartości, nie wspominając o realnym zastosowaniu dokumentu strategii testów w organizacji i tym, że zapisy w dokumencie w dokumencie powinny być zbieżne z tym, czym się zajmuje w rzeczywistości dane przedsiębiorstwo, a i czy sama firma realizuje zapisy w dokumencie oraz jak te postulaty mają się do modelu TMMi, czy dalej, do innych praktyk wypracowanych przez międzynarodowe środowisko. Opracowanie wyników oceny Zasadniczym wynikiem opracowania wyników oceny jest raport z oceny, który posiada uzgodniony wcześniej format, zawierający: datę oceny, pięć pierwszych, wymienionych powyżej, elementów planu oceny: cel, zakres, ograniczenia, metodę oceny, kryteria kompetencji asesora, listę elementów związanych z pozyskiwaniem danych, takich jak np. użyte kwestionariusze, całe wypracowane punktowanie obowiązkowo dla formalnego typu oceny. Czynności związane z analizą sporządzonego raportu i wyciąganiu wniosków są podwaliną usprawniania procesów testowych. Propozycja podejścia do usprawniania procesów testowych jest opisana w Obszarze Procesu 5.3 modelu TMMi o nazwie Test Process Optimization, należącym na najwyższego poziomu dojrzałości modelu TMMi, czyli 5-tego. Podsumowanie Dane przedsiębiorstwo może spróbować własnych sił w badaniu procesów testowych pod kątem zgodności z modelem TMMi, ponieważ model i metoda badawcza są dostępne nieodpłatnie do użytku wewnętrznego. Formalny typ badania przeprowadzają natomiast akredytowane firmy i aseso- Literatura [DSR09] TMMi Data Submission Requirements (DSR). Version 1.0. Produced by the TMMi Foundation. Copyright TMMi Foundation, Ireland [TAM09] TMMi Assessment Method Application Requirements (TAMAR). Version 2.0. Produced by the TMMi Foundation. Copyright TMMi Foundation, Ireland [TMM12] Test Maturity Model integration. Release 1.0. Produced by the TMMi Foundation. Copyright TMMi Foundation, Ireland. downloads/tmmi/tmmi%20framework. pdf rzy przy użyciu akredytowanych metod, których listę można znaleźć na stronie w sekcji Suppliers (pol. Dostawcy), gdzie widać również, że ocena przedsiębiorstw sięgnęła już 4-tego poziomu dojrzałości modelu TMMi, spośród wszystkich 5-ciu poziomów definiowanych przez model. Podstawowe zasady oceny są podobne jak przy posługiwaniu się innymi modelami procesów, takimi jak CMMi. Stanowi to dobrą opcję dla przedsiębiorstwa, które ma związki z CMMi i chciałoby, dokładniej niż w modelu CMMi, zbadać procesy testowe.
9 Inżynieria oprogramowania Jak zaprogramować bota? Poradnik dla początkujących Autor: Marcin Mrowiński O Autorze: Absolwent Politechniki Szczecińskiej, na Wydziale Elektrycznym. Inżynier oprogramowania z kilkuletnim doświadczeniem, zawodowo zajmujący się tworzeniem aplikacji pod platformy Embedded, przy wykorzystaniu języka C++ 09 Pracownik międzynarodowej firmy IT z branży nowoczesnych technologii, obecnie w roli kierownika technicznego dla domeny Entertainment. Hobby: gry retro, gra na gitarze, język japoński oraz programowanie. Kontakt z autorem: marcin.mrowinski@gmail.com Zamiast wstępu Okres urlopowy dobiega końca i programiści wracają do pracy nad projektami komercyjnymi. Mój artykuł, trochę przewrotnie, ma za zadanie skierować uwagę developerów z powrotem na obszar miły i rozrywkowy, jakim są gry komputerowe. Gry powinny otwierać gracza na różnorodne zadania, zmierzające w rezultacie do osiągania kolejnych etapów. Niestety, wiele z gier oferuje bardzo powtarzalny model rozgrywki, który czyni je zwyczajnie nudnymi. Ostateczny cel stojący przed graczem, jakim jest np. osiągnięcie najwyższego poziomu sprowadza się do mechanicznego wykonywania wciąż tych samych czynności. Wydaje się, że uniknięciem takiej sytuacji jest napisanie bota, czyli programu, który wykonuje zaprogramowane czynności zamiast człowieka. Przykładowy bot opisany poniżej został oparty o bardzo prostą grę SimpleGame stworzoną specjalnie w celach demonstracyjnych. Temat jest obszernie opisany na forach internetowych, co pozwoli na dodatkowe poszerzenie swojej wiedzy w przypadku zainteresowania tą tematyką. Gra SimpleGame pozwala na poruszanie się postacią w lewo/prawo oraz atakowanie. Poniższy artykuł przybliży kolejne etapy powstawania prostego bota, który będzie wykonywał te czynności
10 Inżynieria oprogramowania Elementy potrzebne do napisania bota -Znalezienie adresu pamięci, pod którym zapisane są istotne informacje w poniższym przykładzie będzie to licznik ataków wykonanych przez postać bez poruszania się. -Program bota, pod postacią pliku biblioteki DLL -Injector DLL - program, który pozwoli na wstrzyknięcie bota do obcego procesu, czyli uruchomienie kodu bota w przestrzeni adresowej gry. Znajdowanie adresu pamięci Bot jest programem, którego działanie najczęściej związane jest z monitorowaniem aktualnej wartości zmiennej w grze, a następnie reagowanie na jej zmiany w określony sposób. Jednym z przykładów jest zautomatyzowanie zażywania Rysunek 1. Główny ekran gry mikstur leczenia w celu uniknięcia utraty życia. W przypadku gry SimpleGame bot będzie wykonywać atak określoną ilość razy (monitorując w tym celu stan licznika AttackCount), a następnie przesunąć się o pewną odległość w prawą stronę. Zmienna AttackCount, której wartość zwiększa się po każdym ataku, znajduje się gdzieś w pamięci gry. Podstawowym zadaniem jest znalezienie jej dokładnego adresu. W przypadku dużych gier zadanie to jest zazwyczaj dosyć trudne. Producenci oczywiście nie publikują ich kodu, więc programiści są zmuszeni znaleźć taki adres samodzielnie. Na potrzeby tego artykułu, ujawniłem kod SimpleGame w celu łatwiejszego zrozumienia opisywanego zagadnienia. 10 class CCharBase private: int DummyValue1; int AttackCount; int DummyValue2; public: CCharBase() AttackCount = 0; void inccntr() AttackCount++; void zerocntr() AttackCount = 0; int getattackcntr() return AttackCount; ; //Pointer for CCharBase //located somewhere in memory static CCharBase* CCharBasePtr; //Static function that operates on pointer //Usefull for AoB searching example static CCharBase* getptr() return CCharBasePtr; Kod 1. Fragmenty kodu gry Osobom, które nie są zainteresowane samym poszukiwaniem adresów w poszczególnych grach, z pomocą przychodzą fora internetowe, na których inni użytkownicy publikują wątki zawierające zestawienia tzw. addy (od słowa address ) oraz offset do danej statystyki w grze. W przypadku teoretycznego forum o SimpleGame, możnaby się spotkać z wartościami: #define CharBasePtr 0x #define AttackCountOffset 0x4 CharBasePtr - jest to adres pamięci, pod którym znajduje się wskaźnik. Wskazuje on na miejsce, gdzie alokowany jest obiekt zawierający między innymi dane na temat ilości ataków wykonanych przez postać AttackCount. Zazwyczaj Char- BasePtr itp. nazywane są także addy. AttackCountOffset jest to różnica pomiędzy adresem objektu CCharBase a zmienną AttackCount. Zwykle używa się w stosunku do niej pojęcia offset. W przypadku SimpleGame, istotne fragmenty kodu gry (zawierającego elementy Qt) wyglądają następująco (Kod 1). Konstruktor głównego okna (symulujący alokowanie CCharBase w losowym miejscu przy każdym włączeniu gry) oraz
11 Inżynieria oprogramowania metoda obsługująca zdarzenia klawiatury (Kod 2). Jak wspomniałem, głównym zadaniem jest samodzielne znalezienie danego addy oraz offsetu, które pozwalają na dokładne określenie adresu pod którym można odczytać wartość zmiennej AttackCount. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) ui->setupui(this); Z pomocą przychodzą programy takie jak CheatEngine, które pozwalają na skanowanie pamięci obcego procesu. Można także pokusić się o samodzielne napisanie takiego skanera. Trzeba pamiętać, że gry alokują pamięć dynamicznie, więc każde włączenie gry od nowa, zmieni adres CCharBaseObj. W przypadku SimpleGame symulację takiego zachowania można zaobserwować w kodzie konstruktora MainWindow(). Całą operację opisaną poniżej kontynuuje się, aż do uzyskania poszukiwanych wartości. Jeżeli postać nie wykonała żadnego ataku, zmienna AttackCount ma wartość 0. Dodatkowo licznik ten jest zerowany w przypadku poruszenia postaci. //Randomize memory mechanism int RANGE = 10; srand(gettickcount()); int randomnr = rand()%range; CCharBase* CCharBaseArray[RANGE]; //Now create CCharBase object for(int i = 0; i<range;++i) CCharBaseArray[i] = new CCharBase(); //allocate 10 CCharBase objects for(int i = 0; i<range;++i) if(i!= randomnr) delete CCharBaseArray[i]; //delete 9 of CCharBase objects //CCharBasePtr points to different memory on every single run CCharBasePtr = CCharBaseArray[randomNr]; 11 void MainWindow::keyPressEvent(QKeyEvent* event) //Keyboard handling if(event->key() == Qt::Key_Right) //Move right, reset AttackCntr ui->warrior->setgeometry(ui->warrior->x()+5,ui->warrior->y(),ui->warrior->width(),ui- >Warrior->height()); CCharBasePtr->zeroCntr(); if(event->key() == Qt::Key_Left) //Move left, reset AttackCntr ui->warrior->setgeometry(ui->warrior->x()-5,ui->warrior->y(),ui->warrior->width(),ui- >Warrior->height()); CCharBasePtr->zeroCntr(); if(event->key() == Qt::Key_Control) //start attack animation, AttackCntr + 1 for(int i=0, h=1; i<20;++i) ui->warrior->setgeometry(ui->warrior->x(),ui->warrior->y()-h,ui->warrior- >width(),ui->warrior->height()); QApplication::processEvents(); Sleep(5); if(i == 9)h = -1; CCharBasePtr->incCntr(); //Debug purpose only, show current AttackCntr setwindowtitle(qstring( ATTACK CNTR: %1 ).arg(ccharbaseptr->getattackcntr())); Kod 2. Konstruktor głównego okna oraz metoda obsługująca zdarzenia klawiatury
12 Inżynieria oprogramowania Głównym celem jest zawężenie poszukiwań do jednego miejsca. W tym momencie wystarczy zaatakować wciskając ponownie klawisz ataku, tym samym stan licznika wzrośnie do 2 (Rys. 4). Z puli adresów, które wcześniej zawierały 1 sprawdzamy, czy któryś z nich przypadkiem nie zmienił się na 2. W poniższym przykładzie pula adresów zmniejszyła się do 2 elementów: Searching for value 2 from 0x0 to 0x6fffeff 2 values found in memory [0] - 0x3eb6c4 [1] - 0x3eb764 Nadal niemożliwe jest dokładne ustalenie poszukiwanego adresu, pod którym znajduje się AttackCount. 12 Rysunek 2. Poszukiwane wartości CharBasePtr oraz AttackCountOffset Pierwszy skan należy wykonać w obszarze całej pamięci gry, przy czym warto pamiętać, że zmienna AttackCount jest zapisana na czterech bajtach. Następnie dokonujemy pierwszego ataku (wciskając określony przycisk na klawiaturze), zwiększając tym samym wartość licznika o 1 i poszukamy wszystkich wartości 1 zapisanych na czterech bajtach (Rys 3). W takim przypadku opisaną czynność powtarzamy, aż do otrzymania jednego adresu. Searching for value 3 from 0x0 to 0x6fffeff Value found at: 0x3eb764 Wynikiem takiego skanowania pamięci w pełnym zakresie jest najczęściej spora liczba adresów, które spełniają powyższy warunek. Rysunek 3. Stan gry po wykonaniu pierwszego ataku Ja, ograniczając ilość pamięci do skanowania, uzyskałem w ten sposób niemal 4000 wyników. Poniżej znajdują się przykładowe z nich: Searching for value 1 from 0x0 to 0x6fffeff 3823 values found in memory [0] - 0x20008 [1] - 0x2293ac [2] - 0x2294fc Rysunek 4. Stan gry po wykonaniu drugiego ataku
13 Inżynieria oprogramowania Jak wspomniałem przy każdym uruchomieniu gry, adres zmiennej AttackCount będzie się różnić, gdyż jest przypisany dynamicznie. Przy kolejnym uruchomieniu gry wartość mogłaby się przykładowo znaleźć pod adresem 0xb Należy więc ustalić jaki jest jej addy oraz offset, które pozwolą na dokładne odnalezienie zmiennej przy każdorazowym włączeniu gry. Rozpoczyna się zatem od poszukiwania addy, czyli wskaźnika, który wskazuje dokładnie na dany adres (bardzo rzadki przypadek) lub adres, który wskazuje na miejsce w pamięci przed tym adresem. Jest to, niestety, z reguły kwestia prób i błędów oraz doświadczenia. Wykonujemy zatem skan pamięci w poszukiwaniu 4-bajtowego adresu, który będzie pokazywał w okolice znalezionego przed chwilą adresu zawierającego AttackCount, czyli np. od 0x3eb750 do 0x3eb764. W przypadku skomplikowanych gier takich adresów jest najczęściej kilka (np. różne obiekty mogą zawierać wskaźnik na ten sam obiekt), jednakże wskaźniki, które są interesujące z reguły znajdują się przy sobie na początku adresu bazowego gry. Wynikiem poszukiwania w przypadku SimpleGame jest 1 wartość: Searching for pointers looking from 0x3eb750 to 0x3eb764 in range from 0x to 0x6fffeff Pointer found at: 0x > 0x3eb760 Znaleziony adres 0x (czyli CCharBasePtr) pokazuje na obiekt CCharBaseObj zaalokowany pod adresem 0x3eb760. Rysunek 5. Wynik deassemblacji od adresu 0x wersji gry i mogą się zmienić dopiero po zmianach dokonanych np. w kolejnym patchu. Array of Bytes W przypadku wielu gier, można co jakiś czas spodziewać się patchy wprowadzających nowe elementy gry, poprawki, mapy, przedmioty i wiele innych. Wiąże się to ze zmianą addy oraz offset. Pierwszym sposobem na zidentyfikowanie nowych wartości jest bazowanie na uprzednio zdobytej wiedzy i poszukiwanie tych wartości tak, jak w przypadku licznika ataków. Bardziej efektywną metodą jest jednak znalezienie tak zwanych AoB (Array of Bytes), czyli tablicy bajtów charakteryzujących dany obszar pamięci. Pozwolą one w prosty sposób znaleźć adres wskaźnika oraz offset. Do ustalenia AoB posłuży nam deassembler. Pierwszym krokiem w tym celu powinno być przeszukanie pamięci procesu, w którym załadowana jest gra, celem znalezienia miejsca zawierającego wcześniej zlokalizowane addy lub offset. Wynikiem poszukiwania 4-bajtowego 0x417038, jest przykładowo adres 0x Pod tym adresem znajduje się wcześniej znaleziony addy, a otaczający kod do- 13 Jest to poszukiwany addy. Jak łatwo się domyślić, offset wyliczamy odejmując adres, w którym naprawdę znajduje się licznik ataków od adresu pokazywanego przez wskaźnik. Tym samym 0x3eb764-0x3eb760 = 0x4 offset. Znając te wartości możemy np. stale monitorować, czy postać nie doszła do ustalonego limitu ataków i resetować licznik poprzez zmianę pozycji bohatera. Znalezione wartości są stałe dla danej Rysunek 6. Wynik deassemblacji od adresu 0x40145c. Widoczny kod funkcji getptr()
14 Inżynieria oprogramowania 14 konuje na nim nieokreślonych operacji. Następnie powinniśmy zdeasemblować pamięć w tym miejscu, uzyskując tym samym kod gry. Wynik tego działania przedstawiam na (Rys. 5). Interpretowanie kodu bezpośrednio od znalezionego adresu jest niepoprawne, gdyż znaleziony adres jest częścią instrukcji: mov [0x417038], eax Cofając się o kilka bajtów można stwierdzić dokładniej, co dzieje się w kodzie (Rys. 6) Na podstawie adresów, które są zmienne, można ustalić Array of Bytes. W tym przypadku byłby to: E5 A1???????? C9 C3 //Static function that operates on pointer //Usefull for AoB searching example static CCharBase* getptr() return CCharBasePtr; Kod 3. Kod statycznej funkcji zwracającej wskaźnik na CCharBase Przy czym ciąg znaków?? oznacza typowy wildcard, czyli jakąkolwiek wartość w pamięci. Jest to oczywiście kod maszynowy statycznej funkcji zwracającej wskaźnik na CCharBase (Kod 3). Dokładnie w ten sam sposób postępuje się w przypadku poszukiwania offsetu. Mając już znalezione AoB charakteryzujące obszar, który zawiera potrzebne adresy, można je wykorzystać w przyszłości. Przykładowo w przypadku spatchowania gry, gdzie większość kodu zostanie taka sama. Metody iniekcji Znając wartości addy i offset wiadomo dokładnie, spod jakiego adresu czytać dane, aby wydobyć ilość ataków. Problemem jest niestety czytanie z pamięci aplikacji. Gry najczęściej chronione są specjalnymi programami, które zabezpieczają je między innymi przed wykonaniem operacji typu OpenProcess, Rysunek 7. Okno bota #include <windows.h> extern int Main(); //tells compiler that function Main is located somewhere else. void WINAPI MainThread( ) //This function will run when DLL will be attached to Game. Main(); //located in ControlDialog.cpp, This will load the form and display it BOOL WINAPI DllMain(HMODULE hmodule, DWORD dwreason, LPVOID lpvreserved) switch(dwreason) //the switch to check for the DLL call reason case DLL_PROCESS_ATTACH: //if the DLL is attached DisableThreadLibraryCalls(hModule); //disable library calls CreateThread(NULL,NULL, (LPTHREAD_START_ROUTINE)MainThread, NULL, NULL, NULL); break; case DLL_PROCESS_DETACH: //when the program exits and the DLL is detached ExitProcess(0); //it exits the process to make a smoother exit break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; return TRUE; Kod 4. MainDLL.cpp #include ControlDialog.h using namespace DemoBOT; int Main() //Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); //Create the main window and run it Application::Run(gcnew ControlDialog()); //ControlDialog is the name of the form created. return 0; Kod 5. ControlDialog.cpp
15 Kod 6. Odczyt wartości Inżynieria oprogramowania inline ULONG_PTR ReadPointer(ULONG_PTR* ulbase, INT noffset) if (!IsBadReadPtr((VOID*)ulBase, sizeof(ulong_ptr))) if (!IsBadReadPtr((VOID*)((*(ULONG_PTR*)ulBase)+nOffset), sizeof(ulong_ptr))) return(ulong_ptr)((*(ulong_ptr*)ulbase)+noffset); return 0; WriteProcessMemory lub ReadProcessMemory z innego procesu. Rozwiązaniem jest wstrzyknięcie pliku DLL zawierającego program bota, bezpośrednio do procesu gry, który będzie działać w jej obrębie. Dla systemu Windows istnieją 3 techniki iniekcji: - używając metody CreateRemoteThread() - używając metody SetWindowsHookEx() - Caveman code Więcej informacji na ich temat wraz z przykładami użycia można znaleźć w Internecie. Istnieją również uniwersalne injectory (np. Castorama GMMMI). Wymagają one jedynie podania nazwy aplikacji, do której będą wstrzykiwane DLL ki. stawiony poniżej bezpieczny (stosujący funkcję IsBadReadPtr) sposób (Kod 6). Kod bota, znajdujący się w głównym oknie aplikacji, będzie więc następujący (Kod 7). W kodzie można zauważyć zdefiniowane makra GetPointer, NewThread oraz SendKey. Pozwalają one na wywołanie bardziej skomplikowanych funkcji w prosty sposób. Zaznaczenie kontrolki checkbox w głównym oknie bota, wystartuje wątek AutoAttack. Wątek ten sprawdza najpierw stan licznika AttackCount poprzez wywołanie funkcji GetPointer, używając jako parametry wcześniej znalezionych addy oraz offset. Jeżeli stan tego licznika jest większy niż 5 - kilka razy zostanie wciśnięty klawisz klawiatury odpowiadający za ruch postaci w prawo. Następnie bot wykona atak wciskając klawisz CTRL i odczeka jedną sekundę, aby powtórzyć akcję (rys. 8 - rys.11). Jeżeli użytkownik odznaczy checkbox, wątek po chwili zakończy się, a postać przestanie się poruszać. Podsumowanie Program bota przedstawionego powyżej jest oczywiście bardzo prosty, przedstawia jednak zasady czytania pamięci oraz reagowania na jej zmiany. Służą do tego funkcje służące do symulowania wciśnięć przycisków (keybd_event, PostMessage lub mouse_event), co pozwala na symulowanie zachowań prawdziwego gracza. W przypadku rzeczywistych gier, przy odrobinie inwencji można taki program rozwinąć o wyszukiwanie wrogich postaci sterowanych w grze przez komputer, używanie mikstur leczenia, zbierania przedmiotów oraz wiele innych. Należy 15 Kod bota Zakładając, że udało nam się wstrzyknąć przygotowaną DLL kę z programem bota, przy ładowaniu pliku DLL zostanie wywołana metoda DllMain z parametrem DLL_PROCESS_ATTACH. W tym miejscu należałoby stworzyć wątek, który uruchomi główne okno programu, pozwalające użytkownikowi na kontrolę funkcji bota oraz na obsługę czynności takich, jak czytanie pamięci i wydawanie postaci komend (wciśnięcie klawisza odpowiedzialnego za poruszanie). Program bota załadowany w obszarze pamięci gry, ma do niej swobodny dostęp. Tym samym zamiast funkcji ReadProcessMemory można uzywać memcpy lub podobnych. Popularnym sposobem używanym powszechnie przy pisaniu botów do gier jest odczyt wartości w przed-
16 Inżynieria oprogramowania #include windows.h inline ULONG_PTR ReadPointer(ULONG_PTR* ulbase, INT noffset) if (!IsBadReadPtr((VOID*)ulBase, sizeof(ulong_ptr))) if (!IsBadReadPtr((VOID*)((*(ULONG_PTR*)ulBase)+nOffset), sizeof(ulong_ptr))) return *(ULONG_PTR*)((*(ULONG_PTR*)ulBase)+nOffset); return 0; #define GetPointer(Base, Off) ReadPointer((ULONG_PTR*)Base, Off); #define NewThread(name) CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)&name, NULL, NULL, NULL); //#define SendKey(KeyPress) PostMessage(FindWindow( SimpleGame, 0), WM_KEYDOWN, KeyPress, (MapVirtualKey(KeyPress, 0) << 16) + 1); //useful if game supports WindowProc control #define CharAddy 0x #define AttackOffset 0x4 int CurrentJumpCntr() return (int)getpointer(charaddy, AttackOffset); 16 bool attackactive = false; void AutoAttack() while(attackactive) //If checkbox checked if(currentjumpcntr() >= 5) //If 5 attacks already done move right for(int i=0;i<10;++i) keybd_event(vk_right, 0, 0, 0); //Press -> key keybd_event(vk_right, 0, KEYEVENTF_KEYUP, 0); //and release Sleep(100); keybd_event(vk_control, 0, 0, 0); //Press CTRL key keybd_event(vk_control, 0, KEYEVENTF_KEYUP, 0); //and release Sleep(1000); private: System::Void checkbox1_checkedchanged(system::object^ sender, System::EventArgs^ e) if(this->checkbox1->checked) attackactive = true; NewThread(AutoAttack); else attackactive = false; Kod 7. ControlDialog.h
17 Inżynieria oprogramowania przy tym pamiętać, że twórcy gier z reguły oczywiście nie życzą sobie używania tzw. macro-assisted (auto-hunting) programs, co może doprowadzić do zablokowania konta w przypadku np. wykrycia pewnych regularności w sposobie poruszania się wirtualnej postaci. Napisanie jednak działającego programu, który pozwala na polepszenie poziomu wirtualnego herosa wydaje się być nad wyraz satysfakcjonujące i wynagradzające poświęcony na to czas. W przypadku chęci pogłębienia wiedzy warto zapoznać się również z tematem hacków, czyli bardziej skomplikowanych operacji związanych z modyfikowaniem na żywo pamięci gry, celem np. podmiany adresów wywoływanych funkcji. W tym przypadku zalecam bardzo dużą ostrożność, gdyż właśnie hacki są głównym powodem, dla którego stosuje się programy ochronne gier i to właśnie one w najprostszy sposób mogą doprowadzić do zablokowania konta w grze. Rysunek 8. Stan początkowy gry. Postać w pozycji startowej, AttackCount = 0. Bot nieaktywny Zdobyta wiedza może się także przydać w profesjonalnych zadaniach projektowych. Pozwala ona wpływać na kod programu innej aplikacji w sposób nieprzewidziany przez autorów. Przykładowo mogą być to monitory pewnych wartości, czytanie parametrów wywołań wewnętrznych funkcji lub przekierowanie wywołań w inne miejsca kodu (tzw. hooking). Wiedza ta jest jednak bardziej zaawansowana, a podstawy najlepiej opanować łącząc przyjemne z pożytecznym. Dlatego też napisanie bota wydaje się w tym przypadku trafnym wyborem. Rysunek 9. Postać zaatakowała 5 razy i poruszyła się w prawo. Gra w momencie gdy wykonany był pierwszy atak w nowej pozycji 17 Rysunek 10. Postać zaatakowała po raz kolejny 5 razy, po czym poruszyła się w prawo. Gra w momencie gdy wykonany był 4 atak w drugim cyklu Referencje Forum, bogate w przykłady, skrypty, boty php?p= Wątek na forum poświęcony technikom iniekcji Darmowy program open source. Pomocny w przeszukiwaniu pamięci innych procesów Rysunek 11. Bohater w kolejnym cyklu, AttackCount równy 0, zresetowany przez zmianę pozycji postaci
18 Inżynieria oprogramowania Zaproszenie do udziału w V edycji cyklu wydarzenia Warszawa, grudnia Tytuł warsztatu Architektura Korporacyjna, Analiza Biznesowa i Zarządzanie Procesami Biznesowymi Czas trwania: 2 dni Miejsce spotkania: Sheraton Warsaw Hotel Prowadzący: dr Juergen Pitschke Tematyka Celem warsztatu organizowanego w ramach cyklu Business Analyst Forum jest zaprezentowanie koncepcji Architektury Korporacyjnej w kontekście analizy biznesowej oraz metod zarządzania procesami biznesowymi. Ponadto celem jest wskazanie sposobu usystematyzowanego podejścia do specyfikowania wymagań biznesowych oraz płynnego przejścia od etapu planowania działalności operacyjnej organizacji do planowania zasobów potrzebnych do jej realizacji. Zarządzanie procesami biznesowymi oraz analiza biznesowa są dyscyplinami inżynierskimi, które już na dobre zagościły w codzienności korporacyjnej, stanowiąc bazę oraz często przyczynek do zmian zasad pracy oraz poważniejszych zmian organizacyjnych. Praktyka pokazuje jednak, iż zauważalnie często, próba dokonania zmian w procesach oraz wspierających je systemach informatycznych napotyka na problemy, których źródło może tkwić zarówno w obszarach strategicznych organizacji jak i w niezrozumieniu wzajemnych oczekiwań i potrzeb na poziomach operacyjnych. Systemem oraz instytucją pozwalającą na zarządzanie tego typu sytuacjami jest dyscyplina nazywana Architekturą Korporacyjną (ang. Enterprise Architecture). Rozpatrując organizację w sposób holistyczny, można stwierdzić, iż zarówno analiza biznesowa jak i zarządzanie procesowe, z jednej strony dostarczają danych wymaganych paradygmatem Architektury Korporacyjnej, a z drugiej, są działaniami, które powinny być ograniczane ramami architektonicznymi zdefiniowanymi w ramach tejże Architektury. Prelegent Dr Juergen Pitschke jest założycielem i dyrektorem zarządzającym BCS. Od dawna zajmuje się tematem modelowania i projektowania wizualnego rozwiązań biznesowych. Jest uznanym ekspertem w dziedzinie metodycznego stosowania standardowych notacji modelowania. W swojej karierze zawodowej pomógł wielu organizacjom wprowadzić te standardy i metody w ich codzienną działalność. Jest tłumaczem metodyki RuleSpeak na język niemiecki. Współpracował z takimi firmami jak Kuehne+Nagel (AG & Co.) KG, Class KGaA mbh oraz takimi instytucjami jak Federalne Biuro Policji w Szwajcarii oraz Urząd Hydrograficzny w Wielkiej Brytanii. Jest wykładowcą University of Cooperative Education w Dreźnie, gdzie prowadzi zajęcia z zakresu inżynierii oprogramowania oraz analizy systemowej.
19 Inżynieria oprogramowania Program warsztatu 1. Architektura, metoda i proces. Wykorzystanie podejścia opracowanego przez Ivara Jacobsona do prowadzenia analizy biznesowej w oparciu o ustanowione ramy architektoniczne. 2. Architektura Korporacyjna metoda, dyscyplina zarządcza czy struktura? Czym jest Architektura Korporacyjna? Różni autorzy, konsultanci oraz firmy definiują Architekturę Korporacyjną na różne sposoby. W trakcie warsztatów porównane zostaną te definicje oraz wypracowana zostanie definicja robocza na potrzeby warsztatu. 3. Architektura Korporacyjna jako struktura wprowadzenie do Siatki Zachmana (Zachman Framework). Siatka Zachmana definiuje uniwersalną strukturę informacji dla Architektury Korporacyjnej. W trakcie warsztatów zaprezentowana zostanie koncepcja oraz podstawy Siatki. Dokonane zostanie także porównanie Siatki Zachmana z TOGAFem. 4. Architektura Korporacyjna a BPM. W ramach tego bloku omówione zostaną korzyści jakie można odnieść, odwołując się w ramach inicjatyw związanych z zarządzaniem procesowym do ram architektonicznych. 5. Architektura Korporacyjna jako metoda w jaki sposób tworzyć Architekturę Korporacyjną? W jaki sposób powiązać modele i elementy modeli w Siatce Zachmana? Które elementy muszą być zdefiniowane? Które elementy są opcjonalne? Jakie standardy należy stosować, aby zdefiniować wymagane artefakty? W ramach bloku zostaną wypracowane standardy prezentacji dla wymaganych rodzajów artefaktów ze szczególnym uwzględnieniem podejścia procesowego. Wskazane zostaną zależności łączące procesy biznesowe, pojęcia biznesowe, logikę biznesową oraz wymagania biznesowe Role w zarządzaniu Architekturą Korporacyjną. Jakie role powinny być zdefiniowane w organizacji, aby skutecznie zarządzać Architekturą Korporacyjną? Jakie powinny być kompetencje oraz odpowiedzialności poszczególnych ról? 7. Ograniczenia Architektury Korporacyjnej Nie ma jednej, słusznej metody! Co znajduje się poza Architekturą Korporacyjną? W trakcie bloku wskazane zostaną zależności łączące Architekturę Korporacyjną z takimi dyscyplinami jak Zarządzanie Projektami oraz Zarządzanie Zmianą. Organizator AION firma doradczo - szkoleniowa, specjalizująca się w świadczeniu usług z zakresu analizy biznesowej i systemowej oraz modelowania procesów biznesowych. W obszarze kompetencji AION znajduje się doradztwo, prowadzenie specjalistycznych szkoleń i konferencji, tworzenie systemów IT oraz wdrażanie narzędzi wspomagających modelowanie i usprawnianie procesów biznesowych. Kontakt tel. (71) tel. kom aion@aion.com.pl Serdecznie zapraszamy na warsztaty! Więcej informacji znajdą Państwo na stronie
20 Inżynieria oprogramowania Wirtualizacja aplikacji zwiększa produktywność oraz ułatwia testowanie i wdrażanie współczesnych systemów IT 20 Autor: Marek Kucharski Współczesne systemy IT już dawno przestały być wielką, monolityczną aplikacją. Zastąpił je skomplikowany konglomerat tradycyjnych aplikacji jak CRM czy ERP; mniejszych, wysokospecjalizowanych, coraz częściej oferowanych w chmurze. Wszystkie elementy takiego systemu muszą się ze sobą komunikować i to najczęściej w czasie rzeczywistym. Przy takim stopniu współzależności właściwe przetestowanie nowej aplikacji staje się ogromnym wyzwaniem obarczonym wysokimi kosztami, nakładem pracy i czasu. Aby temu zaradzić powstała koncepcja wirtualizacji aplikacji. Dzięki niej przedsiębiorstwa mogą zaoszczędzić znaczne środki na etapie zarówno samej produkcji jak i testowania oraz wdrażania nowych komponentów do swoich systemów informatycznych. Zawsze fascynowało mnie jak linie lotnicze ustalają ceny biletów w sprzedaży internetowej. Ostatnio miałem okazję zapo- znać się z częścią tej tajemnicy wizytując jedną ze znanych linii lotniczych. Ich proces sprzedażowy znacznie różni się od tego, który zarządza kupnem np. biletów komunikacji miejskiej czy kolejowej. W przypadku połączeń kolejowych, za dane połączenie w danym okresie czasu obowiązuje sztywna, z góry ustalona cena. Tymczasem zakup biletu lotniczego przypomina raczej ruletkę. Z grubsza rzecz biorąc cały proces przebiega w pięciu etapach. W pierwszym kroku klient loguje się do portalu. Następnie system CRM po dokonaniu identyfikacji klienta - dostarcza informacji na temat historii jego zakupów, ilości zgromadzonych punktów lojalnościowych, itd. Gdy klient wybierze skąd, dokąd i kiedy chciałby polecieć, wówczas portal kontaktuje się z głównym systemem opartym na komputerze typu mainframe w celu uzyskania możliwych opcji przelotu. W kolejnym kroku portal komunikuje się z zewnętrznym systemem dostarczającym informacji o tym, jakie ceny na podobne połączenia oferuje konkurencja. Dopiero po zebraniu tych wszystkich informacji następuje wycena połączeń dla danego klienta. Jeżeli klient wybierze jakieś połączenie, do zawarcia transakcji potrzebna jest jeszcze autoryzacja karty płatniczej, realizowana przez kolejny system zewnętrzny. Mamy więc pięć systemów biorących udział w transakcji: 1. Portal internetowy 2. CRM dostarczający dane o profilu klienta 3. Mainframe z systemem rezerwacyjnym 4. Serwis dostarczający dane o konkurencyjnych ofertach 5. Serwis transakcji finansowych Moja wizyta we wspomnianej wyżej linii lotniczej związana była nie tylko z zaspokojeniem ciekawości, ale przede wszystkim z problemem, z jakim borykała się ta
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Bardziej szczegółowoAnalityk i współczesna analiza
Analityk i współczesna analiza 1. Motywacje 2. Analitycy w IBM RUP 3. Kompetencje analityka według IIBA BABOK Materiały pomocnicze do wykładu z Modelowania i Analizy Systemów na Wydziale ETI PG. Ich lektura
Bardziej szczegółowoUsługa: Testowanie wydajności oprogramowania
Usługa: Testowanie wydajności oprogramowania testerzy.pl przeprowadzają kompleksowe testowanie wydajności różnych systemów informatycznych. Testowanie wydajności to próba obciążenia serwera, bazy danych
Bardziej szczegółowo1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI
KARTA PRZEDMIOTU przedmiotu Stopień studiów i forma Rodzaj przedmiotu Grupa kursów Zaawansowane techniki analizy systemowej oparte na modelowaniu warsztaty Studia podyplomowe Obowiązkowy NIE Wykład Ćwiczenia
Bardziej szczegółowoInżynieria oprogramowania II
Wymagania funkcjonalne, przypadki użycia Inżynieria oprogramowania II Problem i cel Tworzenie projektów bez konkretnego celu nie jest dobre Praktycznie każdy projekt informatyczny powstaje z uwagi na jakiś
Bardziej szczegółowoDwie szkoły oceny 360 stopni. Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem
Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem Czy stosowanie tradycyjnego podejścia do metody 360 stopni jest jedynym rozwiązaniem? Poznaj dwa podejścia do przeprowadzania procesu oceny
Bardziej szczegółowoKarta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty
Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty przedmiotu Stopień studiów i forma: Rodzaj przedmiotu Kod przedmiotu Grupa kursów Zaawansowane techniki analizy
Bardziej szczegółowoDLA SEKTORA INFORMATYCZNEGO W POLSCE
DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej
Bardziej szczegółowoPrzedmowa... 7 1. System zarządzania jakością w przygotowaniu projektów informatycznych...11
Spis treści Przedmowa... 7 1. System zarządzania jakością w przygotowaniu projektów informatycznych...11 1.1. Wprowadzenie...11 1.2. System zarządzania jakością...11 1.3. Standardy jakości w projekcie
Bardziej szczegółowoTester oprogramowania 2014/15 Tematy prac dyplomowych
Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoZARZĄDZANIE MARKĄ. Doradztwo i outsourcing
ZARZĄDZANIE MARKĄ Doradztwo i outsourcing Pomagamy zwiększać wartość marek i maksymalizować zysk. Prowadzimy projekty w zakresie szeroko rozumianego doskonalenia organizacji i wzmacniania wartości marki:
Bardziej szczegółowoWSTĘPNA OFERTA WSPÓŁPRACY
WSTĘPNA OFERTA WSPÓŁPRACY Charakterystyka firmy Zakres usług Etapy i metody pracy Konsultanci i współpraca z klientem Kontakt Grupa STS s.c., ul. Maszynowa 7a/3, 02-392 Warszawa Charakterystyka firmy Pracownia
Bardziej szczegółowoZwrot z inwestycji w IT: prawda czy mity
Zwrot z inwestycji w IT: prawda czy mity Inwestycje w technologie IT 1 muszą podlegać takim samym regułom oceny, jak wszystkie inne: muszą mieć ekonomiczne uzasadnienie. Stanowią one koszty i jako takie
Bardziej szczegółowoKatalog szkoleń certyfikowanych Testowanie Oprogramowania
Katalog szkoleń certyfikowanych Testowanie Oprogramowania Szanowni Państwo, Certyfikowane szkolenia testerzy.pl to dwie uznane ścieżki szkoleniowe dla testerów ISTQB oraz ISEB. Dostarczamy pełny zakres
Bardziej szczegółowoWstęp do zarządzania projektami
Wstęp do zarządzania projektami Definicja projektu Projekt to tymczasowe przedsięwzięcie podejmowane w celu wytworzenia unikalnego wyrobu, dostarczenia unikalnej usługi lub uzyskania unikalnego rezultatu.
Bardziej szczegółowoZarządzanie usługami IT
Zarządzanie usługami IT Koncepcja usługowej organizacji IT oraz cykl życia usługi IT dr Remigiusz Orzechowski Instytut Zarządzania Wartością Kolegium Nauk o Przedsiębiorstwie Szkoła Główna Handlowa w Warszawie
Bardziej szczegółowoMaciej Oleksy Zenon Matuszyk
Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu
Bardziej szczegółowoModel referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami
Politechnika Gdańska Wydział Zarządzania i Ekonomii Katedra Zastosowań Informatyki w Zarządzaniu Zakład Zarządzania Technologiami Informatycznymi Model referencyjny Open Source dla dr hab. inż. Cezary
Bardziej szczegółowoKumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy
Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy Marek Żukowicz 14 marca 2018 Streszczenie Celem napisania artykułu jest próba podania konstruktywnego dowodu, który wyjaśnia, że niewielka
Bardziej szczegółowoSkuteczność => Efekty => Sukces
O HBC Współczesne otoczenie biznesowe jest wyjątkowo nieprzewidywalne. Stała w nim jest tylko nieustająca zmiana. Ciągłe doskonalenie się poprzez reorganizację procesów to podstawy współczesnego zarządzania.
Bardziej szczegółowoWszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.
Wszystkie problemy leżą w testach O czym będziemy rozmawiać Coś nie wyszło Jak wygląda proces wytwórczy Każdy widzi to inaczej Jakie wnioski wyciągamy z testów Analiza problemów Możliwe rozwiązania O czym
Bardziej szczegółowoDESIGN THINKING. Peter Drucker. Nie ma nic bardziej nieefektywnego niż robienie efektywnie czegoś, co nie powinno być robione wcale.
DESIGN THINKING Nie ma nic bardziej nieefektywnego niż robienie efektywnie czegoś, co nie powinno być robione wcale. Peter Drucker WSTĘP Zdajemy sobie sprawę, że każdą organizację tworzą ludzie, dlatego
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI
ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI XVIII Forum Teleinformatyki mgr inż. Michał BIJATA, doktorant, Wydział Cybernetyki WAT Michal.Bijata@WAT.edu.pl, Michal@Bijata.com 28 września 2012 AGENDA Architektura
Bardziej szczegółowoSzkolenie akredytowane PRINCE2 Foundation z egzaminem Informator
Program Rozwoju Kompetencji studentów Wydziału Zarządzania i Ekonomii PG Szkolenie akredytowane PRINCE2 Foundation z egzaminem Informator Szkolenie akredytowane przez AXELOS Limited. PRINCE2 jest zarejestrowanym
Bardziej szczegółowoProgramowanie zespołowe
Programowanie zespołowe Laboratorium 4 - modele tworzenia oprogramowania, manifest Agile i wstęp do Scruma mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 14 marca 2017 1 / 21 mgr inż. Krzysztof
Bardziej szczegółowoKIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA
KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA Nazwa kierunku studiów: Informatyczne Techniki Zarządzania Ścieżka kształcenia: IT Project Manager, Administrator Bezpieczeństwa
Bardziej szczegółowoREQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN
REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN Podziękowania REQB Poziom Podstawowy Przykładowy Egzamin Dokument ten został stworzony przez główny zespół Grupy Roboczej REQB dla Poziomu Podstawowego. Tłumaczenie
Bardziej szczegółowoRozdział 5: Zarządzanie testowaniem. Pytanie 1
Pytanie 1 Dlaczego niezależne testowanie jest ważne: A) Niezależne testowanie jest w zasadzie tańsze niż testowanie własnej pracy B) Niezależne testowanie jest bardziej efektywne w znajdywaniu defektów
Bardziej szczegółowoWprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Bardziej szczegółowoOFERTA SZKOLEŃ I WARSZTATÓW ROZWOJOWYCH
OFERTA SZKOLEŃ I WARSZTATÓW ROZWOJOWYCH Dla Biznesu. Z sensem. S t r o n a 2 Szkolenia z kontekstem Dostosowane do potrzeb firmy i uczestników (poprzedzone badaniem potrzeb). Charakter warsztatowy (ćwiczenia).
Bardziej szczegółowoPYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK
KLUCZ ODPOWIEDZI Część DODATEK 8.1 9.4 PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB Na podstawie: Syllabus REQB Certified Professional for Requirements Engineering, Advanced Level, Requirements
Bardziej szczegółowoFUNKCJONALNOŚ C PORTAL B2B KAMELEON.ŚQL 7.5.60
FUNKCJONALNOŚ C PORTAL B2B KAMELEON.ŚQL 7.5.60 W KAMELEON.SQL 7.5.60 została dodana funkcjonalność klasy B2B (na tą funkcjonalność wymagana jest dodatkowa licencja, którą można wykupić w naszej firmie)
Bardziej szczegółowoCertyfikowany kurs asesora metody Assessment Center /Development Center
6-7, 27-28 lutego, Golden Floor, Warszawa Certyfikowany kurs asesora metody Assessment Center /Development Center Szkolenie skierowane jest do specjalistów ds. zarządzania zasobami ludzkimi lub rekrutacji,
Bardziej szczegółowoCertyfikowane szkolenia testerzy.pl to uznana ścieżka szkoleniowa ISTQB dla testerów.
Szanowni Państwo Certyfikowane szkolenia testerzy.pl to uznana ścieżka szkoleniowa ISTQB dla testerów. Dostarczamy pełny zakres usług w procesie odpowiedniego przygotowania uczestników do egzaminów. Dostarczamy
Bardziej szczegółowohoryzonty formuła in-company 20 lat Akademia Zarządzania Strategicznego dla TOP MANAGEMENTU program dostosowany do specyfiki branżowej klienta
20 lat doświadczeń D O R A D Z T W O S T R A T E G I C Z N E I S E M I N A R I A Inwestycja w Zespół zwiększa szanse na sukces NO1 Nowe WŚRÓD PROGRAMÓW ZARZĄDZANIA STRATEGICZNEGO ORGANIZOWANY PRZEZ FIRMĘ
Bardziej szczegółowoS Y L A B U S - d l a s z k o l e ń REZULTAT O3 DZIAŁANIA: O3-A2 PROJEKTU E-GOVERNMENT 2.0 W PRAKTYCE
P R O G R A M Y K S Z T A Ł C E N I A S Y L A B U S - d l a s z k o l e ń REZULTAT O3 DZIAŁANIA: O3-A2 PROJEKTU E-GOVERNMENT 2.0 W PRAKTYCE KRAKÓW 2015 1 Spis treści NARZĘDZIA WEB 2.0 W SEKTORZE PUBLICZNYM
Bardziej szczegółowoMODEL KOMPETENCYJNY DYREKTORA
MODEL KOMPETENCYJNY DYREKTORA JAKO NARZĘDZIE WSPOMAGAJĄCE ZARZĄDZANIE PLACÓWKĄ ZARZĄDZANIE PO WROCŁAWSKU prof. UWr Kinga Lachowicz-Tabaczek Instytut Psychologii Uniwersytetu Wrocławskiego, HR Projekt Wrocław
Bardziej szczegółowoSZKOLENIE BADANIE SATYSFAKCJI KLIENTA I ZARZĄDZANIE SATYSFAKCJĄ KLIENTA W PRZEDSIĘBIORSTWIE
SZKOLENIE ROZWIĄZANIA W ZAKRESIE ROZWOJU KAPITAŁU LUDZKIEGO PRZEDSIĘBIORSTW BADANIE SATYSFAKCJI KLIENTA I ZARZĄDZANIE SATYSFAKCJĄ KLIENTA W WPROWADZENIE W dobie silnej konkurencji oraz wzrastającej świadomości
Bardziej szczegółowoKatalog szkoleń certyfikowanych Testowanie oprogramowania
Katalog szkoleń certyfikowanych Testowanie oprogramowania Szanowni Państwo, Certyfikowane szkolenia testerzy.pl to dwie uznane ścieżki szkoleniowe dla testerów ISTQB oraz ISEB. Dostarczamy pełny zakres
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoSerdecznie zapraszamy! BMS Group Sp. z o.o. ul. Nowogrodzka 50/ Warszawa, tel:
Assessment Center /Development Center Centrum oceny i rozwoju - certyfikowany kurs na asesora 7-8, 28-29 listopada, Warszawa, Centrum Konferencyjne Sale Hrubieszowska. Szkolenie skierowane jest do specjalistów
Bardziej szczegółowoWarsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni
Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni Warsztaty FRAME I. Cel Zapoznanie uczestników z możliwościami wykorzystania Europejskiej Ramowej Architektury ITS FRAME (zwanej dalej FRAME ) oraz jej narzędzi
Bardziej szczegółowoZwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)
Program szkolenia: Zwinna współpraca programistów i testerów z wykorzystaniem BDD i Spec Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Zwinna współpraca programistów i testerów
Bardziej szczegółowoWaterfall model. (iteracyjny model kaskadowy) Marcin Wilk
Waterfall model (iteracyjny model kaskadowy) Marcin Wilk Iteracyjny model kaskadowy jeden z kilku rodzajów procesów tworzenia oprogramowania zdefiniowany w inżynierii oprogramowania. Jego nazwa wprowadzona
Bardziej szczegółowoC++ Przeładowanie operatorów i wzorce w klasach
C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje
Bardziej szczegółowoWstęp do zarządzania projektami
Wstęp do zarządzania projektami Definicja projektu Projekt to tymczasowe przedsięwzięcie podejmowane w celu wytworzenia unikalnego wyrobu, dostarczenia unikalnej usługi lub uzyskania unikalnego rezultatu.
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoKatalog rozwiązań informatycznych dla firm produkcyjnych
Katalog rozwiązań informatycznych dla firm produkcyjnych www.streamsoft.pl Obserwować, poszukiwać, zmieniać produkcję w celu uzyskania największej efektywności. Jednym słowem być jak Taiichi Ohno, dyrektor
Bardziej szczegółowoProjekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON Opis szkoleń z obszaru INFORMATYKA planowanych
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoAplikacje internetowe i mobilne w zarządzaniu
Aplikacje internetowe i mobilne w zarządzaniu WSB Bydgoszcz - Studia podyplomowe Opis kierunku Aplikacje Mobilne w Zarządzaniu- Studia w WSB w Bydgoszczy Rozwój Internetu, a zarazem technologii wspierających
Bardziej szczegółowoProcesowa specyfikacja systemów IT
Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office
Bardziej szczegółowoPraktyka testowania dla początkujących testerów
Praktyka testowania dla początkujących testerów Warsztaty stanowią 100% praktykę testowania i skupiają się zwłaszcza na tych aspektach, które przydatne są w codziennej pracy testera. Przeznaczone są dla
Bardziej szczegółowoProjekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie
Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie
Bardziej szczegółowoLaunch. przygotowanie i wprowadzanie nowych produktów na rynek
Z przyjemnością odpowiemy na wszystkie pytania. Prosimy o kontakt: e-mail: kontakt@mr-db.pl tel. +48 606 356 999 www.mr-db.pl MRDB Szkolenie otwarte: Launch przygotowanie i wprowadzanie nowych produktów
Bardziej szczegółowoPiotr Ślęzak. Gdzie się podziała jakość
Piotr Ślęzak Gdzie się podziała jakość Działamy na styku Biznesu i IT Analiza biznesowa Kontrola jakości Doradztwo Projekty Szkolenia ForProgress spółka z ograniczoną odpowiedzialnością sp.k. kontakt@forprogress.com.pl
Bardziej szczegółowoPraktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC Jarosław Świerczek Punkty funkcyjne Punkt funkcyjny to metryka złożoności oprogramowania wyznaczana w oparciu o określające to oprogramowanie
Bardziej szczegółowoFAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?
27.06.11 FAQ Systemu EKOS 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen? Procedura rejestracji ocen wymaga podpisywania protokołów (w postaci wypełnionych formularzy InfoPath Forms
Bardziej szczegółowoBadanie kompetencji wolontariuszy wiedza i praktyka
Program szkolenia dla Tutorów i Asesorów Badanie kompetencji wolontariuszy wiedza i praktyka Walidacja efektów wcześniejszego uczenia się w wolontariacie 1.1 Wstęp Walidacja i badanie wcześniej nabytej
Bardziej szczegółowoInstrukcja dla użytkowników serwisu internetowego
Instrukcja dla użytkowników serwisu internetowego 1 2 Spis treści SPIS TREŚCI... 2 I WSTĘP... 3 II OPIS FUNKCJONALNOŚCI... 3 1. LOGOWANIE DO SERWISU INTERNETOWEGO... 3 1.1 Reguły bezpieczeństwa... 3 2.
Bardziej szczegółowoWstęp do zarządzania projektami
Wstęp do zarządzania projektami Definicja projektu Projekt to tymczasowe przedsięwzięcie podejmowane w celu wytworzenia unikalnego wyrobu, dostarczenia unikalnej usługi lub uzyskania unikalnego rezultatu.
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Bardziej szczegółowoOferta. opracowania mierzalnego i efektywnego procesu sprzedaży. dla xxxxxxxxxx. Niniejsza oferta została przygotowana przez:
Oferta opracowania mierzalnego i efektywnego procesu sprzedaży dla xxxxxxxxxx Niniejsza oferta została przygotowana przez: Right Solutions ul. Pileckiego 130/86 02-781 Warszawa www.rightsolutions.pl NIP:
Bardziej szczegółowoWskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:
Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie
Bardziej szczegółowoOrganizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią
Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią Marek Bieniasz Sławomir Umpirowicz Piotr Miszewski Kraków, 10 13 września 2012 Plan prezentacji Informacje
Bardziej szczegółowo9 elementów zarządzania projektami Narzędzia Nowoczesnego Project Managera
9 elementów zarządzania projektami Narzędzia Nowoczesnego Project Managera Darmowy Ebook Autor: Adam Omelczuk Tytuł: 9 elementów zarządzania projektami W życiu i w biznesie Darmowy Ebook NARZĘDZIA Nowoczesnego
Bardziej szczegółowoDarmowy fragment www.bezkartek.pl
Wszelkie prawa zastrzeżone. Rozpowszechnianie całości lub fragmentów niniejszej publikacji w jakiejkolwiek postaci bez zgody wydawcy zabronione. Autor oraz wydawca dołożyli wszelkich starań aby zawarte
Bardziej szczegółowoMiędzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka
Bardziej szczegółowoZARZĄDZANIE PROJEKTAMI
ZARZĄDZANIE PROJEKTAMI Aktywne szkolenie dla kadry kierowniczej Program warsztatów i szczegóły CEL SZKOLENIA: prezentacja kompleksowej metodologii zarządzania projektami tak aby uczestnicy byli w stanie
Bardziej szczegółowoSkuteczne zarządzanie projektami IT w otoczeniu uczelnianym. Piotr Ogonowski
Skuteczne zarządzanie projektami IT w otoczeniu uczelnianym Piotr Ogonowski Agenda Najważniejsze elementy organizacji projektowej Agile czy klasycznie? Jak wdrożyć podejście projektowe na Uczelni? Kluczowe
Bardziej szczegółowoLaboratorium Informatyka (I) AiR Ćwiczenia z debugowania
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu
Bardziej szczegółowoAnaliza biznesowa a metody agile owe
Analiza biznesowa a metody agile owe P6S_WG01 ma wiedzę w zakresie metodyk zwinnych P6S_WG02 ma wiedzę w zakresie zwinnego gromadzenia i zarządzania wymaganiami P6S_WG03 zna i rozumie proces wytwarzania
Bardziej szczegółowoZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.
ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager. Na szkolenie zapraszamy: testerów kierowników działów testowych analityków systemowych
Bardziej szczegółowoInnowacyjne narzędzia do zarządzania kompetencjami i ich rozwoju
Innowacyjne narzędzia do zarządzania kompetencjami i ich rozwoju Od aspiracji... do realnych potrzeb naszych klientów Od aspiracji Przy planowaniu prac nad rozwojem autorskiej platformy MN Portal zapytaliśmy
Bardziej szczegółowoORGANIZACJA Z CHARAKTEREM OFERTA WSZECHNICY UJ. Jak świadomie kształtować kulturę organizacyjną firmy?
OFERTA WSZECHNICY UJ Z CHARAKTEREM Jak świadomie kształtować kulturę organizacyjną firmy? Jak poprzez kulturę organizacyjną wspierać efektywność? Jak odpowiadać na oczekiwania pracowników dotyczące kultury
Bardziej szczegółowoKILKA SŁÓW O ROLI PRODUCT MANAGERA
CZĘŚĆ I. KILKA SŁÓW O ROLI PRODUCT MANAGERA Product manager pracuje na styku świata IT i biznesu. Analizuje potrzeby użytkowników i klientów, współpracuje ze wszystkimi działami firmy maksymalizując wartość
Bardziej szczegółowoOferta szkoleniowa. ISTQB Poziom Podstawowy (Foundation Level) Opis szkolenia:
Oferta szkoleniowa ISTQB Poziom Podstawowy (Foundation Level) Opis szkolenia: Certyfikat ISTQB to najbardziej rozpoznawalny międzynarodowy certyfikat z zakresu testowania oprogramowania. Jest on niezależnym
Bardziej szczegółowoAutor: Artur Lewandowski. Promotor: dr inż. Krzysztof Różanowski
Autor: Artur Lewandowski Promotor: dr inż. Krzysztof Różanowski Przegląd oraz porównanie standardów bezpieczeństwa ISO 27001, COSO, COBIT, ITIL, ISO 20000 Przegląd normy ISO 27001 szczegółowy opis wraz
Bardziej szczegółowoO nas. Dlaczego warto kupić nasze bazy?
O nas TUR-INFO.PL to lider wśród turystycznych internetowych serwisów informacyjnych dla branży. To serwis skierowany do osób zawodowo związanych z turystyką właścicieli i pracowników biur turystycznych,
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy
Bardziej szczegółowoForex PitCalculator INSTRUKCJA UŻYTKOWNIKA
Forex PitCalculator Forex PitCalculator jest aplikacją służącą do obliczania podatku należnego z tytułu osiągniętych na rynku walutowym zysków. Jest to pierwsze tego typu oprogramowanie na polskim rynku.
Bardziej szczegółowoCFO Knowledge Exchange Temat przewodni: Praktyczne podejście do optymalizacji procesów biznesowych
zapraszają na kolejne spotkanie z cyklu CFO Knowledge Exchange Temat przewodni: Praktyczne podejście do optymalizacji procesów biznesowych siedziba MDDP Business Consulting, Warszawa, 6 lutego 2015 r.
Bardziej szczegółowoNarzędzia CASE dla.net. Łukasz Popiel
Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania
Bardziej szczegółowoAgile Project Management
Charles G. Cobb, pmp Zrozumieć Agile Project Management Równowaga kontroli i elastyczności przekład: Witold Sikorski APN Promise Warszawa 2012 Spis treści Wstęp...vii Kto powinien przeczytać tę książkę?...
Bardziej szczegółowoRozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Bardziej szczegółowoZarządzanie bezpieczeństwem informacji przegląd aktualnych standardów i metodyk
Zarządzanie bezpieczeństwem informacji przegląd aktualnych standardów i metodyk dr T Bartosz Kalinowski 17 19 września 2008, Wisła IV Sympozjum Klubu Paragraf 34 1 Informacja a system zarządzania Informacja
Bardziej szczegółowoWdrożenie nowych proinnowacyjnych usług sprzyjających dyfuzji innowacji w sektorze MSP nr umowy: U- POIG.05.02.00-00-016/10-00
Regulamin usługi Wdrożenie nowych proinnowacyjnych usług sprzyjających dyfuzji innowacji w sektorze MSP nr umowy: U- POIG.05.02.00-00-016/10-00 Projekt realizowany jest w ramach Działania 5.2 Wsparcie
Bardziej szczegółowoZarządzanie projektami - narzędzia, software, dokumentacja, metodyka PMBOK
Zarządzanie projektami - narzędzia, software, dokumentacja, metodyka PMBOK Opis Szkolenie realizowane w ramach: Oferowane zajęcia umożliwiają uczestnikom poznanie najlepszych metod i narzędzi stosowanych
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoCzym jest DLL Injection
Szykuje się artykuł, opisujący wykonanie techniki DLL Injection. Do napisania artykułu przymierzałem się już wiele miesięcy temu, miał być pierwszym dotyczącym reverse engineeringu. Ciągle odwlekałem go
Bardziej szczegółowoPodstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Bardziej szczegółowoJak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia. Click Piotr Kałuski to edit Master subtitle style
Jak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia Click Piotr Kałuski to edit Master subtitle style Punkty widzenia Zespół Testów Manager Projektu Użytkownik końcowy Zespół Testów
Bardziej szczegółowo0Digital employer branding
0Digital employer branding OPRACOWANE PRZEZ Spis treści 01 02 Digital employer branding w pigułce /str. 3 Komunikacja w digitalu /str. 6 a) Komunikacja zewnętrzna /str. 8 03 04 b) Komunikacja wewnętrzna
Bardziej szczegółowoDiagnostyka pamięci RAM
Diagnostyka pamięci RAM 1 (Pobrane z slow7.pl) Uszkodzenie pamięci RAM jest jednym z najczęściej występujących problemów związanych z niestabilnym działaniem komputera. Efektem uszkodzenia kości RAM są
Bardziej szczegółowoUsługi analityczne budowa kostki analitycznej Część pierwsza.
Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.
Bardziej szczegółowoJabil Poland w Kwidzynie poszukuje kandydatów na stanowiska:
Jabil Poland w Kwidzynie poszukuje kandydatów na stanowiska: INŻYNIER ELEKTRONIK PROJEKTANT ELEKTRONIK - PROGRAMISTA Wdrażanie, utrzymanie i naprawa systemów testujących dla urządzeń elektronicznych Optymalizacja
Bardziej szczegółowo