Interfejs użytkownika

Interfejs użytkownika (ang. user interface, UI) – przestrzeń, w której następuje interakcja człowieka z maszyną.

Interfejs użytkownika to część urządzenia lub oprogramowania odpowiedzialna za interakcję z użytkownikiem. Człowiek nie jest zdolny do bezpośredniej komunikacji z maszynami. Aby stało się to możliwe urządzenia są wyposażone w odpowiednie funkcje i oprogramowanie. Najprostszy rodzaj komunikacji człowieka z maszyną to polecenia wpisywane na klawiaturze, bardziej zaawansowane sposoby obejmują używanie myszki w środowisku graficznym, komunikację głosową i zarządzanie komputerem za pomocą gestów[1].

Interfejs skoncentrowany na zadaniu – Wikipedia, wolna encyklopedia

Interfejs skoncentrowany na zadaniu jest rodzajem interfejsu użytkownika, który rozszerza metaforę graficznego interfejsu użytkownika, aby uczynić zadania, a nie pliki i foldery, podstawową jednostką interakcji. Zamiast pokazywać całe hierarchie informacji, takie jak drzewo dokumentów, interfejs skoncentrowany na zadaniu pokazuje podzbiór, który jest istotny dla danego zadania. Rozwiązuje to problem przeciążenia informacyjnego, gdy mamy do czynienia z dużymi hierarchiami, takimi jak te w systemach oprogramowania lub dużych zbiorach dokumentów.

Składa się on z mechanizmu, który pozwala użytkownikowi określić zadanie, nad którym pracuje i przełączać się pomiędzy aktywnymi zadaniami, modelu kontekstu zadania, takiego jak ranking stopnia zainteresowania (DOI), mechanizmu skupiającego, który filtruje lub pokazuje istotne dokumenty. Interfejs skoncentrowany na zadaniu został potwierdzony statystycznie istotnym wzrostem produktywności pracowników umysłowych. Został on szeroko przyjęty przez programistów i jest kluczową częścią zintegrowanego środowiska programistycznego Eclipse. Technologia ta jest również określana jako model „kontekstu zadania” i paradygmat „programowania skoncentrowanego na zadaniu”.

Interfejs skoncentrowany na zadaniu został wymyślony przez Mika Kerstena[1] podczas jego doktoratu na University of British Columbia w 2004 r. Kersten wcześniej pracował w zespole programowania aspektowego w Xerox PARC i połączył ideę aspektów przekrojowych i zarządzania zadaniami[2].

Do wczesnych prekursorów interfejsu skoncentrowanego na zadaniu należą metafora interfejsu attention-reactive oraz narzędzie do edycji dokumentów „Edit & Read Wear[3]”.

Pierwszy opis koncepcji interfejsu skoncentrowanego na zadaniu pojawił się w publikacji z konferencji AOSD w 2005 roku. Pierwsza implementacja interfejsu skoncentrowanego na zadaniu rozpoczęła się jako projekt open source o nazwie Eclipse Mylyn[4], stworzony w marcu 2005 roku.

W 2006 roku grupa badawcza i Uniwersytet Wiktorii zademonstrowały użyteczność interfejsu skoncentrowanego na zadaniu i modelu stopnia zainteresowania do wizualizacji ontologii[5].

W 2007 roku implementacja Mylyn została dołączona do większości dystrybucji Eclipse IDE.

W 2008 roku pojawiły się alternatywne implementacje interfejsu skoncentrowanego na zadaniach, w tym NetBeans Cubeon[6] oraz narzędzie Tasktop Pro[7] dla kierowników projektów.

Do 2009 roku większość narzędzi do zwinnego tworzenia oprogramowania i zarządzania cyklem życia aplikacji zapewniała integrację z Mylyn.

W 2011 roku pojawił się NBTaskFocus[8], który zapewniał podobne do Mylyn funkcje skupiania się na zadaniach w NetBeans IDE.

Podstawowym celem interfejsu skoncentrowanego na zadaniu jest ograniczenie informacji wyświetlanych w aplikacji do tych, które są istotne dla bieżącego zadania użytkownika. W oparciu o interakcje użytkownika, każdemu jednoznacznie identyfikowalnemu elementowi informacji dostępnej dla użytkownika przypisywany jest ranking stopnia zainteresowania (DOI).

Im częściej i ostatnio użytkownik wchodził w interakcje z danym elementem informacji, tym wyższy jest DOI dla tego elementu dla danego zadania.

Rankingi DOI dla elementów informacji mogą być wykorzystane w interfejsie skoncentrowanym na zadaniu na cztery sposoby.

Elementy poniżej pewnego progu DOI mogą być filtrowane w celu zmniejszenia liczby prezentowanych elementów. Elementy mogą być uszeregowane według ich DOI; na przykład, elementy o największym zainteresowaniu mogą być wyświetlane na początku listy. Elementy mogą być ozdobione kolorami, aby wskazać zakresy DOI.

Wreszcie, wyświetlanie elementów informacji strukturalnych może być automatycznie zarządzane w oparciu o DOI; na przykład tekst odpowiadający elementom o niskim DOI może być automatycznie pomijany.

Wartość DOI dla każdego elementu informacji, z którym użytkownik wchodzi w interakcję w ramach zadania, może być wyprowadzana z przechowywanej historii zdarzeń interakcji zarejestrowanych podczas pracy użytkownika z aplikacją. Podejście to wymaga, aby użytkownik wskazał początek zadania. Zbiór wszystkich zdarzeń interakcji, które mają miejsce podczas pojedynczego zadania nazywany jest „kontekstem zadania”.

Wykazano, że interfejsy skoncentrowane na zadaniach skutecznie redukują przeciążenie informacyjne i poprawiają produktywność[9].

Projekt Eclipse Mylyn i NBTaskFocus dla NetBeans IDE jest implementacją interfejsu skoncentrowanego na zadaniach. Mylyn[10] filtruje, sortuje, podświetla, zawija i zarządza rozszerzaniem drzewa dla wielu widoków w Eclipse IDE na podstawie aktualnie aktywnego zadania. NBTaskFocus filtruje panele projektu i zarządza automatycznym kontekstem zadań dla NetBeans IDE.

[11] Projektowanie aplikacji mobilnych w oparciu o interfejs skoncentrowany na zadaniu [ edytuj | edytuj kod ]

Urządzenia mobilne są bardziej skomplikowanym rozwiązaniem aniżeli komputery[12], głównie pod kątem projektowania aplikacji.

Urządzenia mobilne nie są miniaturowymi komputerami, ale osobną kategorią, która wymusza inne podejście do kwestii User Experience, projektowania, badań, technologii. Smartfony traktujemy jako urządzenia, z którymi mamy o wiele silniejszą więź emocjonalną niż z komputerami.

Wykonujemy na nich zadania prostsze, trwające mniej czasu i wymagające mniejszego zaangażowania od strony użytkownika. Interakcje podejmujemy zazwyczaj w sposób bardziej impulsywny.

Projektowanie aplikacji mobilnej zorientowane na zadania duży nacisk kładzie na maksymalną użyteczność, wygodę oraz dostosowanie interfejsu do szybkiego i bezproblemowego wykonania zadań[13].

Dominującą zasadą podczas projektowania aplikacji mobilnych jest minimalizm. Redukcji powinny ulec funkcjonalności. Warto dostosowywać funkcjonalności do możliwości urządzeń. Minimalizacja oznacza także minimalizację oczekiwań względem użytkownika minimalizację działań upraszczanie gestów.

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Transkrypt

1 Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

2 Rapid Application Development RAD Szybkie tworzenie programów użytkowych (Rapid Application Development RAD) jest mającą już prawie 20 lat techniką szybkiego konstruowania programów, szczególnie przydatną dla systemów, w których istotną rolę odgrywa interfejs użytkownika, natomiast mniejszą przetwarzanie danych

3 Programy takie mają zbliżoną do siebie strukturę, wiele czynności przy programowaniu daje się w nich zautomatyzować. Typowe dla RAD jest korzystanie z zaawansowanych środowisk wytwarzania oprogramowania (narzędzi CASE) oraz posługiwanie się programowaniem graficznym (visual programming). Typowym środowiskiem RAD jest oprogramowanie CASE służące do produkcji kodu dokonującego interakcji z bazą danych i tworzącego rozmaite raporty (współcześnie najczęściej taki kod wyposażony jest w internetowy interfejs użytkownika). Środowisko takie zawiera: narzędzia interfejsu z bazą danych (generowanie zapytań na podstawie formularzy) generator interfejsu użytkownika (formularzy z guzikami, polami itp.) powiązania z aplikacjami biurowymi, takimi jak arkusze kalkulacyjne, do dokonywania podstawowych operacji na danych narzędzia generowania raportów

4 W latach 90-tych opracowana została całościowa metodologia tworzenia oprogramowania RAD: Oprogramowanie (kolejne iteracje, kolejne wersje prototypów) są tworzone w przedziałach czasowych o ściśle określonej długości (time boxing) Jeśli jakieś wymagane elementy nie dają się zrealizować w zadanym przedziale czasowym są opuszczane Oprogramowanie jest tworzone przez mały zespół, który często spotyka się z przedstawicielami klienta, aby przedyskutować funkcjonowanie aktualnych prototypów i ewentualnie korygować wymagania dla kolejnych Tworzenie kodu opiera się głównie na predefiniowanych elementach, rozmaitych API, bibliotekach, komponentach, zintegrowanych środowiskach wytwarzania kodu; mało jest ręcznego programowania

5 Techniki RAD krytykowane są pod wieloma względami: "szybkie" oznacza często obniżenie standardów niezawodności, efektywności, jakości oprogramowania zależność od zastosowanych komponentów może prowadzić do kłopotów z ewolucją oprogramowania, kosztami użytkowania, czasem do problemów prawnych stosowanie gotowych komponentów często prowadzi do niekompatybilności wymagań nie są realizowane żądane cechy, natomiast pojawiają się inne niepotrzebne programy stają się zbyt podobne jedne do drugich Techniki RAD jako techniki prototypowania mogą być wykorzystywane w większych projektach w fazie określania wymagań, a także w procesie projektowania.

6 Środowisko jako osobny pakiet oprogramowania Przykłady: pakiet Microsoft Visual Studio(popularny na systemach rodziny Windows) narzędzia firmy Borland (np.: C++ Builder) Eclipse i NetBeans (domyślnie stworzone dla Javy; posiadają możliwość rozszerzenia, w celu obsługi innych języków) Zend Studio (rozwiązanie dedykowane dla języka PHP) Przykłady innych środowisk, w różnym stopniu wzorowanych na powyższych: Dev-C++ Code::Blocks KDevelop Aniuta Geany

7 Microsoft Visual Studio Microsoft Visual Studio to zestaw narzędzi programistycznych (IDE), w skład którego wchodzi: Microsoft Visual C# (od wersji 2002) Microsoft Visual C++ Microsoft Visual Basic Microsoft Visual J# (wersje ) Microsoft Visual Web Developer ASP.NET (od wersji 2005) Microsoft Visual F# (od wersji 2010) Microsoft Visual Studio pozwala na tworzenie samodzielnych aplikacji, a także aplikacji sieciowych, usług sieciowych oraz serwisów internetowych. Dawniej istniała możliwość zakupu osobnych pakietów dla poszczególnych języków programowania (np. Visual C++). Obecnie jedyną możliwością jest zakup całego produktu Visual Studio.

8 Edycje Microsoft Visual Studio jest dostępny w następujących edycjach: Visual Studio Express - uproszczone wersje programów dostępnych w płatnych wersjach Visual Studio przeznaczone głównie dla studentów i hobbystów. Zawierają uproszczoną wersję MSDN - MSDN Express Library, nie pozwalają na użycie wtyczek. Licencja pozwala na tworzenie programów komercyjnych. Języki dostepne w ramach Visual Studio Express: Visual Basic Express Visual C++ Express Visual C# Express Visual Web Developer Express Visual Studio Standard - Wersja ta umożliwia użycie wtyczek, używa bibliotekę MSDN. Nie ma możliwości zdalnego debugowania, w wersji 2008 nie ma możliwości tworzenia oprogramowania na urządzenia mobilne. Visual Studio Professional - Jest możliwość zdalnego debugowania i tworzenia oprogramowania na urządzenia mobilne. Visual Studio Team System - edycja z dodatkowymi narzędziami ułatwiającymi współpracę przy tworzeniu

9 C++ Builder Borland C++ Builder to narzędzie programistyczne typu RAD firmy Borland do tworzenia aplikacji w języku C++. Zaletą tego IDE jest wykorzystanie dostępnej również w środowisku Delphi, w pełni obiektowej biblioteki VCL, znacznie ułatwiającej budowę interfejsu użytkownika w systemie Windows. Ponadto C++ Builder dobrze wykorzystuje bazy danych (można używać zarówno sterowników ODBC, ADO, jak i wyspecjalizowanych w obsłudze konkretnej bazy danych komponentów) i pracuje w nowoczesnych technologiach jak np. CORBA. C++ Builder, do samej budowy programu wykorzystuje kompilator BCC32 oraz linker ILINK32 firmy Borland. Od listopada 2006 roku, dystrybucję C++ Buildera przejęła firma CodeGear, wydzielona z Borlanda. W tym samym czasie wprowadzono do dystrybucji dużo tańsze (ceny rzędu 400 USD) narzędzia oparte o kompilator C++. Jest to nowa linia tanich narzędzi - Turbo C++ oraz Turbo C# (równolegle z podobną linią produktów Delphi - Turbo Delphi oraz Turbo Delphi.NET). Oprócz płatnych wersji Professional istnieją także darmowe wersje Explorer (do pobrania ze strony CodeGear), które można wykorzystywać w celach komercyjnych. Wersje Explorer nie pozwalają na instalację dodatkowych komponentów.

10 Eclipse - platforma (framework) napisana w Javie do tworzenia aplikacji typu rich client. Na bazie Eclipse powstało zintegrowane środowisko programistyczne do tworzenia programów w Javie, które jest razem z tą platformą rozpowszechniane. Projekt został stworzony przez firmę IBM, a następnie udostępniony na zasadach otwartego oprogramowania. W chwili obecnej jest on rozwijany przez Fundację Eclipse. Obsługiwane platformy Eclipse dostępne jest dla wszystkich platform, które posiadają własną implementację wirtualnej maszyny Javy, oraz dla których przygotowano implementację opracowanej przez Fundację biblioteki graficznej SWT, która jest alternatywą dla standardowych bibliotek graficznych Javy AWT i Swing. Wtyczki Sama platforma nie dostarcza żadnych narzędzi służących do tworzenia kodu i budowania aplikacji, oferuje jednak obsługę wtyczek (ang. plugin) rozszerzających jej funkcjonalność, umożliwiających m.in. rozwijanie aplikacji w językach Java, C/C++, PHP, tworzenie GUI, modelowanie aplikacji za pomocą UML, współpracę z serwerami aplikacji, serwerami baz danych itp. Wtyczka Plog4u pozwala na pracę w Eclipse z projektami opartymi

11 Zend Studio komercyjne zintegrowane środowisko programistyczne (Integrated Development Environment, IDE) oparte o platformę Eclipse przeznaczone dla tworzących w języku PHP. Wersja 7.1 zawiera: integrację z Zend Framework integrację z PHPDocumentor integrację z PHPUnit obsługa procesu refaktoryzacji automatyczną generację kodu zwijanie kodu (zwane foldingiem) obsługę systemów kontroli wersji: Subversion oraz CVS środowisko do debugowania podgląd baz danych MySQL, Microsoft SQL Server, Oracle, PostgreSQL, SQLite i innych przeglądarkę plików/projektu obsługa JavaScript, HTML oraz CSS

12 Dev-C++ Dev-C++ zintegrowane środowisko programistyczne, obsługujące języki C i C++, na licencji GPL, dla systemów rodziny Windows i Linux. Jest zintegrowany z MinGW, czyli z windowsowym portem kompilatora GCC. Program jest napisany w Delphi, a jego linuksowy odpowiednik w Kylix. Program jest przechowywany na witrynie SourceForge. Dev- C++ został pierwotnie stworzony przez programistę Colina Laplace'a i jego zespół Bloodshed Software. Dev-C++ wykorzystuje tzw. DevPaki. Są to rozszerzenia programu, pozwalające mu korzystać z różnych bibliotek, szablonów i narzędzi, np. z DirectX-a, z biblioteki Allegro, OpenAL czy wxwidgets. Innym przydatnym rozszerzeniem tego typu jest devpack conio. Status Program od 2005 roku nie jest już rozwijany. Nie pojawiają się także żadne newsy.

Jarosław Kułak
Jarosław Kułak

Leave a Comment