Automatyzacja programowania

Subskrybuj RSS A A A
4 listopada 2008
Sylwester Lewandowski

Największy udział w kosztach wytworzenia oprogramowania ma czas, jaki zajmuje jego produkcja. Kluczem są więc narzędzia i środowiska wspomagające pracę programistów.

Największy udział w kosztach wytworzenia oprogramowania ma czas, jaki zajmuje jego produkcja. Kluczem są więc narzędzia i środowiska wspomagające pracę programistów.

Praca inżynierów oprogramowania najczęściej odbywa się pod dużą presją czasu. Rozumieją to producenci środowisk programistycznych i projektanci języków poszukując coraz lepszych rozwiązań, które umożliwiłyby bardziej efektywną pracę, szybsze niż dotąd wykonywanie zadań, a także zmniejszenie liczby błędów, które pojawiają w wytwarzanym kodzie. W praktyce oznacza to wprowadzanie mechanizmów umożliwiających automatyzację standardowych procedur i procesów związanych z programowaniem, a także kontroli i monitorowania jakości kodu.

Zmiany w językach

Minęło przeszło pięćdziesiąt lat od czasu, kiedy to Fortran został uznany za język przełomowy, który umożliwia istotną automatyzację pracy programisty. Droga od kart perforowanych, przez programowanie strukturalne, programowanie obiektowe do obecnego stanu, w którym kluczowa jest nie tylko znajomość samego języka, ale również biegłe posługiwanie się frameworkami, była długa. Zmiany, które następowały w językach przez lata miały na celu zwiększenie możliwości projektantów oprogramowania i usprawnienie ich pracy.

Najlepszym przykładem może być problem zwalniania pamięci. Wytworzenie kodu, w którym nie występują wycieki pamięci, zawsze było czasochłonne. Dlatego też powstały platformy zarządzane Java i .NET, gdzie zautomatyzowano proces zwalniania zasobów, zdejmując ten ciężar z programistów. Wprawdzie okupiono to zmniejszeniem elastyczności i wolniejszą pracą programów, ale najistotniejsze problemy, a mianowicie: przyspieszenie produkcji oprogramowania oraz ograniczenie błędów, zostały rozwiązane. Obecnie można zaobserwować poszerzanie programowania zorientowanego obiektowo o inne paradygmaty. Przykładem może być .NET, gdzie wprowadzono elementy deklaratywne do języków platformy za sprawą LINQu. Pozwala to na przetwarzanie zbiorów danych z dowolnego źródła za pomocą składni zbliżonej do SQL. W ten sposób możliwe jest ujednolicenie kodu operującego na danych, a w rezultacie ograniczenie liczby błędów i niezbędnego nakładu pracy.

Kolejny przykład to programowanie funkcyjne, które znajdzie się na platformie .NET za sprawą F#. Ten paradygmat programowania ma zastosowania głównie w rozwiązaniach naukowych, finansowych i technicznych. "Jedną z najważniejszych cech F# jest szerokie spektrum jego zastosowań: od skryptów aż po wytwarzanie komponentów czy złożonych systemów" - mówi Don Syme, jeden z twórców F#. Te zmiany to pierwszy krok do automatyzacji przetwarzania zbiorów danych w kodzie czy przeprowadzania skomplikowanych obliczeń.

Narzędzia programistyczne

Obecnie rynek ten podbijają wielordzeniowe procesory, co w nieunikniony sposób prowadzi do popularyzacji aplikacji wykorzystujących przetwarzanie równoległe. Visual Studio już od wersji 2005 ma wsparcie dla OpenMP (standardu pozwalającego na zrównoleglenie kodu), a teraz rozwijane są Parallel Extensions dla .NET. Z kolei Intel dwa lata temu wprowadził na rynek narzędzia pozwalające zrównoleglić kod C++, przenosząc ciężar z ręcznego programowania operacji równoległych na zarządzanie wątkami. Ułatwia to automatyzację wielu elementów programowania. Niedawno pojawiły się istotne udoskonalenia tych narzędzi. Wersja Thread Building Blocks 2.1 zawiera znacznie ulepszone mechanizmy wspomagające tworzenie interfejsów użytkownika, a także wprowadza techniki sztucznej inteligencji i programowania sieciowego. Producent chwali się także poprawieniem wydajności, harmonogramowania i zarządzania pamięcią.

O ile rozwój aplikacji równoległych dotyka tylko pewnego segmentu rynku, o tyle wsparcie dla procesów produkcji programowania, refaktoringu, czy zarządzania jakością jest ważne dla każdego zespołu programistów. W tym wypadku przykładem nowych narzędzi może być Visual Studio Team System, którego funkcjonalności pozwalają prowadzić projekty zgodnie z MSF, czy tworzyć własne rozszerzenia, aby dostosować VSTS do metodyk obowiązujących wewnątrz firmy. Innym przykładem jest TeamFocus firmy Borland. Należy ono do zbioru narzędzi Management Solutions, które należą do grupy produktów ALM (Application Life-cycle Management). Inne narzędzia z tego pakietu to TeamDemand, który ma ułatwić kierownictwu biznesowemu monitorowanie pracy i zarządzanie wymaganiami oraz TeamAnalytics, który ma generować raporty dla kontroli jakości.

W wypadku narzędzi typu QA (Quality Assurance) warto zauważyć nowe oprogramowanie IBM Rational Software Analyzer. Pozwala ono na automatyczne wykrywanie błędów na podstawie statycznej analizy kodu. "Niestety widzimy coraz więcej błędów w kodzie aplikacji pojawiających się na rynku. A im wcześniej zostaną one zauważone, tym mniej to będzie kosztować producenta i użytkowników" - tak uzasadnia Dave Locke, dyrektor marketingu produktów Rational.

Zintegrowane środowiska IDE

Narzędzia wspierające pracę programistów są ważne, ale kluczowym elementem zawsze będzie dla nich środowisko programistyczne IDE (ramka). Na rynku środowisk dla platformy Java jest duża konkurencja, wystarczy chociażby wymienić NetBeans, Eclipse czy IBM Rational Application Developer, a pośród aplikacji dla Windows króluje niepodzielnie Visual Studio. Ciekawym zjawiskiem jest także bardzo duża popularność wszelkiego rodzaju wtyczek i rozszerzeń, które mogą usprawniać pracę. Przykładem takim może być chociażby ReSharper firmy JetBrains dla Visual Studio i Visual Assit X firmy Whole Tomato Software. Tego typu produkty oferują m.in. rozbudowany refaktoring, formatowanie kodu i wykrywanie potencjalnych błędów. Jednakże środowiskiem, do którego powstaje najwięcej wtyczek jest niewątpliwie Eclipse, a wcześniej wspomniany Rational Software Analyzer jest właśnie pluginem dla tego środowiska. Warto zauważyć, że często funkcjonalności, które najpierw występują w postaci wtyczek, potem szybko stają się integralną częścią środowisk. Wynika to najprawdopodobniej z tego, że stosowanie dużej liczby rozszerzeń jest często okupione mniej stabilną pracą środowiska.

Debata Computerworld i Microsoftu o tworzeniu interfejsu użytkownika oraz użyteczności oprogramowania, czytaj str. 28.

Najważniejsze cechy IDE

  • debugowanie,

  • łatwość użycia,

  • łatwość edycji kodu,

  • czas kompilacji,

  • wizualne wsparcie,

  • szybkość działania kompilowanego kodu.

Oceń artykuł

średnio: 0 liczba ocen: 0

Komentarze (0)

Najnowsze

MAC, czyli ministerstwo reformowania rządzenia

Premier wspiera lojalnie w kryzysie najbliższego współpracownika, Michała Boniego, przyjmując na siebie atak oburzonych internautów podczas debaty o ACTA.

Nowe, unijne zamówienia publiczne

Komisja Europejska proponuje ważne zmiany prawa wspólnotowego w obszarze zamówień publicznych. Warto im się przyjrzeć bo to jeden z elementów nowej perspektywy finansowej UE. Warto zatem przyjrzeć się owej propozycji bliżej.

Bezpieczeństwo rządowych stron - analiza

Zespół zadaniowy ds. ochrony portali rządowych opublikował wytyczne. Trudno stwierdzić, że to najlepsze rekomendacje, jakie można było przy okazji zaistniałych ataków wypracować.

DEBATA: Kiedy walka polityczna w sieci przemienia się w cyberterroryzm?

Skuteczny atak cybernetyczny przyniesie opłakane skutki dla państwa i gospodarki. Boleśnie się o tym przekonaliśmy, gdy nie można było dostać się na strony internetowe najważniejszych instytucji w Polsce.

Czy MSW chce unieważnienia przetargu na pl.ID?

Rośnie ryzyko całkowitego unieważnienia przetargu na nowe dowody osobiste. Krajowa Izba Odwoławcza odrzuciła odwołanie firmy Sygnity, która nie zgadzała się na wydłużenie o trzy miesiące terminu składania ofert na dostawę blankietów nowych dowodów osobistych. Wydłużenie całego postępowania o trzy miesiące może spowodować skargi uczestniczących w nim firm, a w konsekwencji unieważnienie przetargu.

Garść rad dla roztropnego szefa IT

Trudne czasy w gospodarce to okres, kiedy szczególnego znaczenia nabiera hasło: Jak cię widza, tak cię piszą. Osłabienie rynku przekłada się na oszczędności w przedsiębiorstwie, a oszczędności najłatwiej szukać w działach, które, w opinii zarządu, nie są bezpośrednio związane z prowadzoną działalnością - czyli również w dziale IT.

Sprzeczne wizje e-dowodu

Koncepcja elektronicznego dowodu osobistego powstała w Polsce wiele lat temu. Starsze są koncepcje elektronicznego systemu świadczeń ochrony zdrowia. Mimo to, nadal są w trakcie budowy.

Rekomendacje

Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88