Re So equirements-Drive oftware Developm en ment System
Transkrypt
Re So equirements-Drive oftware Developm en ment System
www.redseeds.eu Requirements-Driven Software Development System „Od wymagań do programów w mgnieniu oka” 1. Co to jest ReDSeeDS? System ReDSeeDS jest nowatorskim narzędziem inżynierii oprogramowania typu CASE (Compu(Comp ter-Aided Software Engineering). ing). Jego podstapodst wową cechą chą jest znaczna automatyzacja pełnego cyklu wytwarzania oprogramowania – od wymawym gań do kodu. System pozwala na formułowanie precyzyjnych yzyjnych wymagań w języku RSL, przyjaznym nawet dla osób bez większego doświadczenia czenia w tworzeniu oprogramowania. Język ten używa używ kontrolowanego języka naturalnego nego oraz notacji graficznych przeznaczonych czonych do współpracy z użytkownikami końcowymi. System zapewnia automatyczną generację modeli projektowych jektowych w popularnym języku UML oraz gotowego kodu wraz w z wszystkimi elementami interfejsu su użytkownika. użytkownika 2. Dla kogo jest ReDSeeDS? Technologia ReDSeeDS ma zastosowanie jako nowy sposób tworzenia oprogramowania przez zez profesjonalnych twórców oproopr gramowania,, jak również przez osoby z małym doświadczeniem w tym zakresie. Efektem zastosowania ReDSeeDS ReDS jest znaczne przyspieszenie i uproszczenie całego cyklu zamawiania i wytwarzania oprogramowania. Na etapie zamawiania, system pozwala na szybkie stworzenie bardzo dobrych jakościowo specyfikacji wymagań zaz mawiając mawiającego. Umożliwia to również bardzo szybkie szyb oszacowanie pracochłonności wykonania systemu. Podczas wytwarzania systemu, ReDSeReDS eDS idealnie wpisuje się w typowy cykl wytwórczy. Zdecydowanie go skraca poprzez szybką generację bardzo dobrej jakości i jednolitego architektonicznie kodu oraz testów akceptacyjnych. Kod ten można bardzo szybko uruchomić w formie prototypu, co zdecydowanie ułatwia uzgadnianie funkcjonalności z klientem. Grupy potencjalnych odbiorców systemu ReDSeeDS to: • • • Organizacje zamawiające oprogramowanie w różnych obszarach (bankowość, (bankowość, telekomunikacja, zdrowie, energetyka, itd.) o Analitycy tworzący wspólnie z użytkownikami specyfikacje wymagań zamawiającego o Osoby szacujące pracochłonność wykonania systemu i przygotowujące zapytania ofertowe oraz przetargi Firmy software’owe produkującee oprogramowanie na zamówienie i oprogramowanie „z pudełka” dla różnych platform (PC, smartfony, fony, tablety, aplikacje webowe, …) o Osoby przygotowujące oferty w przetargach na tworzenie oprogramowania o Analitycy tworzący wspólnie z użytkownikami końcowymi szczegółowe szczegółowe wymagania oprogramowania o Projektanci i programiści systemu implementujący system na podstawie wygenerowanego kodu o Projektanci i wykonawcy testów akceptacyjnych systemu korzystający z wygenerowanych testów Osoby tworzące oprogramowanie amatorsko o Użytkownicy-programiści programiści tworzący aplikacje dla siebie lub udostępniające je poprzez sklepy z aplikacjami Politechnika Warszawska Wydział Elektryczny www.redseeds.eu Requirements-Driven Software Development System „Od wymagań do programów w mgnieniu oka” 3. Jakie korzyści daje ReDSeeDS? System ReDSeeDS zapewnia wymierne korzyści na różnych etapach wytwarzania oprogramowania. oprogramowania Korzyści te zostały zweryfikowane w praktyce przez profesjonalne zespoły przemysłowe oraz przez ez studentów posiadających małe doświadczenie w twotw rzeniu oprogramowania. • Poprawa jakości specyfikacji wymagań: przeprowadzono „testy polowe” i ankiety wśród zespołów w kilku firmach software’owych z Polski, ski, Litwy, Niemiec i Turcji; badania potwierdziły po wysoką stosowalność i przejrzystość języka RSL i narzędzia ReDSeeDs dla doświadczonych analityków oraz zgodność z najlepszymi praktykami inżynierii oprogramowania. • Zmniejszenie złożoności „kodu” źródłowego: źródłowego specyfikacje w języku RSL stanowią de-facto facto kod systemu na wysokim poziopozi mie abstrakcji; średnia liczba elementów w specyfikacji specyfika w języku RSL wynosi 30-50 50 na jeden przypadek użycia, podczas gdy analogiczna implementacja w języku u Java wymaga 400-600 600 elementów programistycznych (klas, ( wierszy kodu, deklaracji). • Redukcja rozmiarów i uproszczenie kodu tworzonego w sposób tradycyjny: badania z udziałem studentów wykazały, że stworzenie typowej pełnej aplikacji biznesowej w systemie ReDSeeDS wymaga uzupełnienia wygenerowanego kodu jedynie o dodatkowe 20-25% kodu du pisanego ręcznie; ręcznie ponadto, zebranie opinie studentów świadczą o tym, że wygenerowana struktura kodu znacznie nie upraszcza jego tworzenie przez niedoświadczonych programistów. 4. Poziom dojrzałości technologii System jest rezultatem dwóch dużych międzynarodowych projektów badawczo-rozwojowych: rozwojowych: ReDSeeDS i REMICS, finansofinans wanych z 6 i 7 Programu Ramowego Uniii Europejskiej. W obydwu przypadkach, system był rozwijany pod kierunkiem grupy badawczej SMoG na Politechnice Warszawskiej. Grupa SMoG posiada dogłębną wiedzę na temat architektury systemu ReDSeReDS eDS oraz dysponuje wszystkimi tkimi niezbędnymi technologiami oraz kodem źródłowym całego systemu. Na system ReDSeeDS składają się: obszerna specyfikacja języka RSL,, repozytorium modeli RSL i UML, maszyna generacji kodu, zaawansowany edytor języka RSL, maszyna do odzyskiwania logiki aplikacji aplikacji i inne elementy. System posiada obszerną dokumentację dla użytkownika. System oparty jest na technologii Eclipse, powszechnie stosowanej do budowy narzędzi inżynierii oprogramowania. Można go łatwo zintegrować z innymi narzędziami. Obecnie zintegrowane zintegrowane jest z narzędziami Enterprise ArA chitect i Modelio, oraz współpracuje ze środowiskami typu IDE (Eclipse, NetBeans). 5. Działania niezbędne zbędne do wdrożenia komercyjnego komercyjneg System w obecnej postaci należy uznać za stabilny prototyp. Przed jego wypuszczeniem na rynek konieczne są działania w zakresie zwiększenia stabilności działania, poszerzenia funkcjonalności i lepszego zintegrowania z innymi narzędziami. Działania Działani te powinny lepiej dostosować narzędzie ReDSeeDS do standardów jakościowych i funkcjonalnych przyjętych dla komercyjnych kome narzędzi CASE. W szczególności, należy wykonać następujące czynności: 1. Zwiększenie przyjazności składni języka RSL: RS poszerzenie bazy odbiorców i możliwych zast stosowań. 2. Poprawa ergonomii edytora języka RSL:: automatyzacja a oznaczania czania zdań w języku naturalnym; szersze s zastosowanie technik „przeciągnij i upuść”; uzupełnienie zupełnienie możliwości edytorów graficznych; graficznych; rozbudowany system podpowiedzi. podpowiedzi 3. Dodanie edytora GUI z możliwością konfiguracji wyglądu aplikacji: aplikacji znaczne rozszerzenie zastosowania systemu. syst 4. Rozszerzenie generatora kodu dla różnych środowisk docelowych: web, Android, iOS, Win ndows, systemy BD, … . 5. Opracowanie modeli (wzorców) dziedziny dla typowych dziedzin: bankowość, telekomunikacja, telekomunik ochrona zdrowia, … . 6. Dopracowanie systemu automatycznej generacji testów akceptacyjnych: znacznie ułatwienie testowania systemów. 7. Stworzenie narzędzi ułatwiających jących typowe zadania deweloperskie: moduł zarządzania wymaganiami, generator dokumentacji, bazowe API, moduł wymiarowania (wyceny) systemu, moduł pracy grupowej (np. integracja z SVN). Wszystkie te czynności powinny zdecydowanie uatrakcyjnić u system dla profesjonalnego twórcy oprogramowania o oraz zwiększyć jego przyjazność dla mniej doświadczonych programistów (w tym programistów-amatorów). programistów amatorów). Powinny także podnieść stast bilność systemu do poziomu komercyjnego i ograniczyć ew. koszty serwisowania systemu dla dużych grup jego użytkowników. użytkowni Politechnika Warszawska Wydział Elektryczny