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