Create
Learn
Share

Mgr3

rename
kari565's version from 2016-11-08 11:18

Section

Question Answer
29. Metody ustalenia wymagań stawianych oprogramowaniu.Wywiady i przeglądy. Wywiady powinny być przygotowane (w postaci listy pytań) i podzielone na odrębne zagadnienia. Powinny być przeprowadzone na reprezentatywnej grupie użytkowników. Wywiady powinny doprowadzić do szerokiej zgody i akceptacji projektu. Analiza istniejącego oprogramowania. Dość często nowe oprogramowanie zastępuje stare. Studia powinny ustalić wszystkie dobre i złe strony starego oprogramowania. Analiza wymagań systemowych. Gdy nowy system ma być częścią większego systemu. Analiza przeznaczenia systemu. Określenie realistycznych celów systemu i metod ich osiągnięcia. Prototypowanie. Zbudowanie prototypu systemu działającego w zmniejszonej skali.
30. Pojęcie komponentu. Typy komponentów i ich charakterystyka.Komponent jest samowystarczalną, podstawową jednostką programowania. Posiada deklaratywnie zdefiniowane interfejsy i podane wprost zależności. Charakteryzuje się wyspecyfikowaną funkcjonalnością, jest reużywalny, może być skonfigurowany i wdrożony niezależnie od programisty, który go stworzył. Czarna skrzynka z dostępem poprzez interfejs. Przykłady: CORBA JavaBeans, EJB COM/DCOM
31. Istota problemu niejednorodności warstwy pośredniej w systemach rozproszonych, protokoły interoperabilności.Niejednorodność systemów rozproszonych wynika z: korzystania z różnych języków programowania (systemy nie wspierają wszystkich języków), integracji nowego systemu z istniejącymi (np. integracjia systemu DCOM i CORBA) wykorzystanie różnych platform sprzętowych (np. DCOM na systemy różne od Windows) różnica w wydajności systemów. Interoperacyjność - zdolność różnych systemów (warstwy pośredniej np. DCOM, CORBA, Java/RMI) do wymiany informacji oraz użycia wymienionych informacji. Protokoły interoperabilności definiują wspólny format komunikatów, umożliwiając komunikację między różnymi implementacjami warstw pośrednich. W przypadku CORBY protokoły te można podzielić na: GIOP i ESIOP
32. Języki programowania zarządzane i niezarządzane w środowisku Microsoft.NET.Języki zarządzane udostępniają mechanizmy do zarządzania pamięcią (garbage collection). Pozwala to na pisanie czytelnego, spójnego i odpornego na błędy związane z wyciekami pamięci kodu. Wykorzystanie mechanizmów języków zarządzanych okupione jest narzutem obliczeniowym obecnym podczas ich działania (np. w trakcie czyszczenia pamięci). Przykłady: Visual C#, Visual Basic.NET, Visual J#.NET, Visual C++.NET Języki niezarządzane - programista samodzielnie zarządza pamięcią i bezpieczeństwem. Poprawne zarządzanie pamięcią jest często skomplikowane i może być kosztowne w utrzymaniu i wymagać większych umiejętności programisty. Języki niezarządzane kompilowane są bezpośrednio do kodu maszynowego, nie do CIL (Common Intermediate Language). Przez co są nieprzenośne i naturalnie są ubogie w funkcje oferowanie przez środowisko uruchomieniowe CLR. Przykłady: C, C++, Delphi.
33. Najgłówniejsze funkcje oprogramowania CLR w środowisku Microsoft.NET:CLR - wirtualna maszyna technologii .NET odpowiedzialna za uruchamianie programów w niej napisanych. CLR kompiluje (Just-In-Time compilation) kod pośredni (bytecode - CIL, Common Intermediate Language) do języka maszynowego, następnie jego instrukcje wykonywane są przez procesor. Do głównych funkcji pełnionych przez CLR zaliczyć można: zarządzanie pamięcią (garbage collection) mechanizmy bezpieczeństwa (uprawnienia kodu, bezpieczeństwo oparte na rolach) silnik do debuggowania JIT compiler - kompilacja do kodu maszynowego przed wykonaniem danego fragmentu kodu. Zaawansowane systemy JIT potrafią wykonywać programy szybciej niż interpretery. (też w Javie) bezpieczeństwo (zgodność) typów manager wyjątków manager wątków
34. Definicja i wykorzystanie wspólnego systemu typów danych CTS w środowisku Microsoft.NET.Wspólny system typów (Common Type System) definiuje jak typy danych są deklarowane, używane i w jaki sposób są zarządzane przez CLR podczas działania aplikacji. Jest istotnym elementem wsparcia dla mechanizmu integracji różnych języków programowania. Zapewnia bezpieczeństwo typów i wydajność uruchamianego kodu. CTS dostarcza zbioru typów danych wszystkim językom platformy .Net, dzięki czemu mogą używać i manipulować tymi samymi typami danych.
35. Specyfikacja wspólnego języka CLS w środowisku Microsoft.NET.Specyfikacja wspólnego języka (Common Language Specification) - zbiór zasad i cech kompilatora działającego w .NET, który generuje akceptowany przez CLR kod wykorzystywany w ujednolicony sposób przez wszystkie języki działające na platformie .NET. Dzięki CLS mogą one współdziałać. Używanie wszystkich typów CTS może być uciążliwe przy projektowaniu języka programowania, dlatego powstał CLS. CLS określa podzbiór CTS. CLS wymaga np. by język obsługiwał większość typów skalarnych m. in. Boolean, Byte, Char, Decimal, Int16, Int32, Int64, Double. Nie jest za to wymagana obsługa typów takich jak UInt16, UInt32, UInt64. CTS pozwala, by najniższy indeks tablicy był dowolną liczbą całkowitą, natomiast CLS wymaga, by wynosił on 0.
36. Wymiary przezroczystości systemów rozproszonych.Przezroczystość - ukrycie przed użytkownikiem rozproszonej natury systemu. Wymiary przezroczystości: dostępu – ukrywa różnice w reprezentacji danych oraz w sposobie dostępu do zasobów. lokalizacji – ukrywa miejsce, w którym znajduje się zasób. replikacji – jego użytkownicy nie mogą określić liczby istniejących kopii zasobu. współbieżnego wykonywania – zasób może być współdzielony przez użytkowników. odporności na błędy – ukrywa przed użytkownikiem błędy i awarie i odtwarza zasoby przenośności – niewidoczna dla usera możliwość przemieszczenia zasobu do innego położenia skalowalności – zapewnia możliwość dodania dodatkowych zasobów.
37. Paradygmaty programowania.programowanie imperatywne - kod jest sekwencją instrukcji (C, Fortran) programowanie strukturalne - tworzenie kodu w hierarchiczne bloki z wykorzystaniem instrukcji warunkowych i pętli for/while; strukturalność zakłócana jest przez instrukcje typu break, continue, goto czy switch. programowanie proceduralne - dzielenie kodu na procedury wykonujące ściśle określone operacje, mechanizm przekazywania parametrów, zwracania wartości przez funkcję programowanie obiektowe - grupowanie danych w obiekty (opisując stan) i przyporządkowanie metod manipulacji. Programy polegają na tworzeniu wielu obiektów i ich komunikacji w celu osiągnięcia określonego celu. Abstrakcja, enkapsulacja, dziedziczenie, polimorfizm. (C#, Java) programowanie deklaratywne - opisywanie oczekiwanych rezultatów programu, zamiast szczegółowych instrukcji jak ten cel osiągnąć; przykład SQL
38. Wymagania stawiane systemom rozproszonym.skalowalność - umiejętność adaptacji systemu do zwiększonego obciążenia (większa liczba klientów systemu, szybkości obsługi żądań, itp); powinna być stosunkowo prosta i ograniczać się np. do wymiany/dodania procesorów/pamięci w systemie. otwartość - możliwość rozbudowania systemu bez konieczności jego przebudowy; łatwa integracja nowych komponentów z istniejącymi (poprzez definiowanie interfejsów). heterogeniczność - umiejętność współpracy i komunikacji różnych języków programowania, systemów operacyjnych czy platform sprzętowych. współdzielenie zasobów - udostępnianie zasobów sprzętowych, oprogramowania oraz danych. odporność na błędy - system rozproszony powinien kontynuować swoją pracę nawet w przypadku awarii jednego z komponentów wchodzących w jego skład (osiągana przez redundancję i mechanizmy przywracania). przezroczystość - ma na celu ukrycie rozproszonej natury systemu i przedstawienie go (zarówno użytkownikowi jak i programiście) jako spójną całość.
39. Składniki architektury DCOM.DCOM - technologia Microsoft do komunikacji między elementami oprogramowania rozmieszczonymi na komputerach w sieci. Warstwy DCOM Górna warstwa – podstawowa architektura programowania, widoczna dla programów klient-serwer i obiektów. Klient żąda obiektu i wywołuje jego metody, a serwer tworzy instancję obiektu i udostępnia ją klientowi. Połączenie klienta z serwerem jest całkowicie ukryte przed programistą. Programy klienta i serwera współdziałają jakby przebywały w tej samej przestrzeni adresowej na tym samym komputerze. Środkowa warstwa - architektura usług zdalnych, składa się z infrastruktury tworzącej iluzję znajdowania się w tej samej przestrzeni adresowej klienta i serwera. Aby przesłać dane między różnymi przestrzeniami adresowymi wykorzystywany jest marshaling i demarshaling. Marshaling pakuje parametry wywołania metody (u klienta) lub wartości zwrotu (u serwera) do standardowego formatu transmisji. Demarshaling rozpakowuje standardowy format odpowiedniej prezentacji danych w przestrzeni adresowej procesu odbiorczego. Warstwa dolna - określa protokół przesyłu, wspierający działanie klienta i serwera na różnych maszynach.
40. Proces modelowania wymagań funkcjonalnych.Proces modelowania wymagań - proces w którym analityk zbiera wymagania od klienta. Proces jest wieloetapowy, a każdy etap stopniowo zwiększa "zrozumienie" tego, jaki system powinien zostać stworzony. Etapy: 1. Ustalenie wizji i zakresu projektu - najważniejsze funkcje projektu, konkurencyjne oprogramowanie, czym produkt będzie się wyróżniać, grupa docelowa produktu, jakie potrzeby użytkownika będzie zaspokajać 2. Określenie źródeł wymagań - określenie wymagań aplikacji z punktu widzenia przyszłych użytkowników przez analityków. Różne formy: user stories, przypadki użycia. Przy określaniu wymagań aplikacji brane są też pod uwagę rządzące procesy biznesowe przedsiębiorstwa np. regulacje prawne. Zidentyfikowane wymagania zbiera się w specyfikacji wymagań systemowych. Mogą być reprezentowane na różne sposoby: opisy, diagramy przepływu danych, diagramy klas, tabele.
memorize

Recent badges