Konfiguracja sprzętu i oprogramowania

Rozwój oprogramowania. Narzędzia wsparcia rozwoju systemu według programu narzędzi programistycznych

Etap 1: przed połową lat 50..

Główne koszty są związane z kodowaniem (w kodach maszynowych). Pojawiają się autokody (języki wykorzystujące notację mnemoniczną dla poleceń) i ich tłumacze (asemblery).

Zaimplementowano możliwości oddzielnej kompilacji i przenoszenia programów. Pojawiają się programy ładujące i konsolidatory.

Etap 2: połowa lat 50. - połowa lat 60.

Rozmiary programów rosną, ujawnia się luka między pojęciami obszarów problemowych a językami maszynowymi. Pojawiają się różne języki wysokiego poziomu (algorytmiczne, uniwersalne):

Fortran (1954-1957);

Algol-60 (1958-1960);

Cobol (1959-1961);

i od nich tłumaczy (kompilatory). Prawie wszystkie podstawowe typy danych, operacje na nich, struktury kontrolne i sposoby ich reprezentacji w programach są wymyślane i testowane, różne opcje parametryzacja podprogramów.

Etap 3: połowa lat 60. - początek lat 70.

Rozmiar oprogramowania gwałtownie rośnie, następuje przejście do kolektywnego charakteru pracy. Wymagania dotyczące oprogramowania rosną w wyniku przejścia na produkcję towarową.

Zmienia się stosunek kosztów tworzenia oprogramowania (40% lub więcej przeznacza się na debugowanie, projektowanie i dokumentację), kodowanie jest jednym z najbardziej proste gatunki Pracuje. Wykorzystywane i tworzone są „duże” języki programowania – PL/1, ALGOL-68, SIMULA-67, uogólniające i integrujące wcześniej wypracowane rozwiązania.

Istnieją zaawansowane systemy programowania z optymalizacją i debugowaniem translatorów, bibliotek makr, bibliotek programy standardowe, specjalistyczne edytory tekstu, narzędzia analityczne i interaktywne debugowanie pod kątem języka wprowadzania. Rozwijane są rozwijane systemy operacyjne, pierwsze DBMS, liczne systemy automatyzacji dokumentacji, systemy zarządzania konfiguracją oprogramowania (śledzenie modyfikacji i tworzenie wersji oprogramowania).

Etap 4 („etap kryzysu rozwoju oprogramowania”): wczesne lata 70.–połowa lat 70.

Mimo rozwoju narzędzi produktywność programistów nie rośnie. Ponadto ze względu na rosnące wymagania dotyczące oprogramowania i nieliniowy wzrost jego złożoności spada wydajność pracy. Warunki tworzenia oprogramowania są łamane, jego koszt rośnie, jego jakość jest nieprzewidywalna, nie sprawdzają się tradycyjne metody (zapewniające dodatkowe zasoby ludzkie i materialne), co charakteryzuje się „kryzysem oprogramowania”.

Rozpoznawane są metodologie programowania strukturalnego (Dijkstra, 1968), kształtują się podstawy technologii programowania (język Pascal (N. Wirth), 1971).

Etap 5: 1976 - nasz czas. Etap pokryzysowego rozwoju narzędzi.

1976 - publikacja pracy Boehma, która wprowadza pojęcie cyklu życia oprogramowania i wskazuje, że główne koszty nie dotyczą rozwoju, ale utrzymania oprogramowania.

Języki programowania:

C (początek lat 70., po raz pierwszy w pełni opisany w 1978 r.);

Modula-2 (1978, opracowany przez język Oberon (1988));

Prolog (1972, rozpowszechniany od 1980);

Smalltalk (1970, wprowadzony jako Smalltalk-80 w 1980);

C++ (początek lat 80., nazwa 1983, w zwykłej formie istnieje od 1990);

Jawa( Wersja Java 1.0 - 1996, Java 2.0 - 1998, Java 5 - 2004...);

C# (1998-2001, wersja 1.0 - 2000-2002, wersja 2.0 - 2003-2005, wersja 3.0 - 2004-2008, wersja 4.0 - 2008-2010).

Opracowywane są zintegrowane środowiska programistyczne. Obiektowe podejście do projektowania i programowania zyskuje akceptację. Tworzone są programy wspierające tworzenie oprogramowania na każdym etapie.

Pytania kontrolne:

1. Jakie czynności obejmuje tworzenie oprogramowania?

2. Jakie są etapy tworzenia oprogramowania w ramach Rational Unified Process (RUP)?

3. Co daje korzystanie z narzędzi?

4. Jakie są składniki programu? Cel każdej części.

5. Definicje programów i oprogramowania.

6. Jakie właściwości powinno mieć oprogramowanie?

7. Jakie języki programowania są używane przy tworzeniu programów?

8. Definicja oprogramowania narzędziowego.

9. Na jakie cztery grupy można podzielić oprogramowanie narzędziowe? Przykłady oprogramowania dla każdej grupy.

10. Według jakich kryteriów można porównać programy z tej samej klasy?

11. Jakie są etapy tworzenia narzędzi do tworzenia oprogramowania?

12. Cel i główne cechy kompilatorów (asemblerów) i edytorów linków.

13. Powołanie i główne cechy redaktorów tekstu.

14. Cel i główne cechy debuggerów.

15. Cel i główne cechy programów do tworzenia instalatorów.

16. Cel i główne cechy edytorów zasobów.

17. Cel i główne cechy profilerów.

18. Cel i główne cechy programów obsługi wersji.

19. Przeznaczenie i główne cechy programów do tworzenia plików pomocy (dokumentacja).

20. Cel i główne cechy generatorów dokumentacji.

21. Cel i główne cechy deasemblerów i dekompilatorów.

22. Cel i główne cechy programów do śledzenia aktywności systemu i zmian zachodzących w systemie.

23. Cel i główne cechy programów-weryfikatorów i kontenerów.

24. Cel i główne cechy programów do ochrony tworzonego oprogramowania (ochrony).

25. Cel i główne cechy SDK.

26. Cel i główne cechy parserów.

27. Wyznaczanie standardów technologicznych.


TEMAT: Metodologie tworzenia oprogramowania.

Literatura: 1. Zelkowitz M., Shaw A., Gannon J. Zasady tworzenia oprogramowania.

2. Ghezzi K., Jazayeri M., Mandrioli D. Podstawy inżynierii oprogramowania.

3. Kamaev V.A., Kosterin V.V. Technologie programowania.

Rozważ koncepcje metodologii, metody i środków.

Definicja 1: metoda(z greckiego methodos - metoda badań lub wiedzy, teoria lub nauczanie) - technika lub system technik do praktycznego wdrożenia czegoś w dowolnym Tematyka, zespół technik lub operacji praktycznego lub teoretycznego rozwijania rzeczywistości, podporządkowanych rozwiązaniu konkretnych problemów.

Metoda obejmuje budynków- przez który prowadzona jest akcja i sposoby- sposób realizacji akcji.

Definicja 2: Metodologia to system zasad, a także zbiór pomysłów, koncepcji, metod, metod i środków, które określają styl tworzenia oprogramowania.

Metodologia to implementacja standardu. Same standardy mówią tylko o tym, co powinno być, pozostawiając swobodę wyboru i adaptacji.

Konkretne rzeczy są realizowane za pomocą wybranej metodologii. To ona decyduje o tym, jak będzie realizowany rozwój. Istnieje wiele skutecznych metodologii tworzenia oprogramowania. Wybór konkretnej metodologii zależy od wielkości zespołu, specyfiki i złożoności projektu, stabilności i dojrzałości procesów w firmie oraz cech osobowych pracowników.

Metodologie są rdzeniem teorii zarządzania rozwojem oprogramowania.

W zależności od zastosowanego modelu cyklu życia metodyki dzielą się na:

Wodospad (kaskada);

Iteracyjny (spirala).

Istnieje również bardziej ogólna klasyfikacja na:

Prognozowane;

Adaptacyjny.

Przewidywane metodologie skupić się na szczegółowym planowaniu na przyszłość. Planowane zadania i zasoby znane są przez cały czas trwania projektu. Zespół ma trudności z reagowaniem na możliwe zmiany. Plan jest optymalizowany w oparciu o zakres prac i istniejące wymagania. Zmieniające się wymagania mogą prowadzić do znaczącej zmiany planu, a także projektu projektu. Często powołany jest dedykowany komitet „zarządzania zmianą”, aby zapewnić, że w projekcie brane są pod uwagę tylko najważniejsze wymagania.

Metodologie adaptacyjne mają na celu przezwyciężenie oczekiwanej niekompletności wymagań i ich ciągłą zmianę. Gdy zmieniają się wymagania, zmienia się również zespół programistów. Zespół zajmujący się zwinnym rozwojem ma trudności z przewidywaniem przyszłości projektu. Jest dokładny plan tylko na najbliższą przyszłość. Bardziej odległe plany istnieją jedynie jako deklaracje celów projektu, oczekiwanych kosztów i rezultatów.

Rozwój kaskadowy lub model kaskadowy – model procesu wytwarzania oprogramowania, w którym proces wytwarzania wygląda jak przepływ, przechodzący kolejno przez fazy analizy wymagań, projektowania, wdrażania, testowania, integracji i wsparcia.

Główną cechą podejścia kaskadowego jest: przejście do kolejnego etapu następuje dopiero po całkowitym zakończeniu prac na obecnym etapie i nie ma powrotów do etapów zaliczonych . Każdy etap kończy się pewnymi wynikami, które służą jako dane wejściowe do następnego etapu (rys. 1).

Ryż. 1. Kaskadowy model cyklu życia.

Każdy etap kończy się wydaniem zestawu dokumentacji wystarczającej do kontynuowania rozwoju przez inny zespół programistów. Kryterium jakości rozwoju przy takim podejściu jest dokładność spełnienia specyfikacji SIWZ.

Zalety stosowania metody kaskadowej:

Na każdym etapie tworzony jest kompletny zestaw dokumentacji projektowej, który spełnia wymagania dotyczące kompletności i spójności;

Etapy prac prowadzone w logicznej kolejności pozwalają zaplanować terminy zakończenia wszystkich prac i odpowiadające im koszty.

Podejście kaskadowe sprawdziło się w budowie elektronicznych systemów informatycznych, dla których już na samym początku rozwoju można dość dokładnie i kompletnie sformułować wszystkie wymagania, aby dać deweloperom swobodę ich realizacji pod względem technicznym jak najlepiej.

Jednocześnie takie podejście ma szereg wad, przede wszystkim ze względu na fakt, że sam proces tworzenia oprogramowania nigdy w pełni nie mieści się w tak sztywnym schemacie. Proces tworzenia oprogramowania ma z reguły charakter iteracyjny: wyniki kolejnego etapu często powodują zmiany w decyzjach projektowych opracowanych na poprzednich etapach. W związku z tym istnieje ciągła potrzeba powrotu do poprzednich etapów i wyjaśnienia lub zrewidowania wcześniej podjętych decyzji (rys. 2). Przedstawiony schemat można przypisać odrębnemu modelowi - modelowi ze sterowaniem pośrednim, w którym korekty międzyetapowe zapewniają większą wiarygodność w porównaniu z modelem kaskadowym, chociaż wydłużają cały okres rozwoju.

Główną wadą modelu kaskadowego jest znaczne opóźnienie w uzyskaniu wyników, a co za tym idzie wysokie ryzyko stworzenia systemu nie odpowiadającego na zmieniające się potrzeby użytkowników. Wynika to z dwóch powodów:

Użytkownicy nie są w stanie od razu określić wszystkich swoich wymagań i nie mogą przewidzieć, jak zmienią się one podczas tworzenia;

Podczas rozwoju mogą wystąpić zmiany w środowisku zewnętrznym, które wpłyną na wymagania dla systemu.

Ryż. 2. Kaskadowy model cyklu życia w praktyce.

W ramach podejścia kaskadowego wymagania dla opracowywanego produktu ustalane są w formie zadania technicznego na cały czas jego tworzenia, a uzyskane wyniki uzgadniane są z użytkownikami dopiero w planowanych punktach po zakończeniu każdego etap (istnieje możliwość dostosowania wyników zgodnie z uwagami użytkowników, jeśli nie wpływają one na wymagania określone w SIWZ). Dzięki temu użytkownicy mogą zgłaszać istotne uwagi dopiero po zakończeniu pracy nad systemem. Użytkownicy mogą otrzymać system, który nie spełnia ich potrzeb. W rezultacie trzeba zacząć nowy projekt który może cierpieć ten sam los.

Aby przezwyciężyć te problemy, w połowie lat 80. zaproponowano spiralny model cyklu życia (ryc. 3).

Ryż. 3. Spiralny (iteracyjny) model cyklu życia.

Jego główną cechą jest: oprogramowanie aplikacyjne nie jest tworzone od razu, jak w przypadku podejścia kaskadowego, ale w częściach z wykorzystaniem metody prototypowania .

Pod prototyp odnosi się do aktywnego składnika oprogramowania, który implementuje poszczególne funkcje i zewnętrzne interfejsy opracowywanego oprogramowania. Tworzenie prototypów odbywa się w kilku iteracjach, czyli zwojach spirali. Każda iteracja odpowiada stworzeniu fragmentu lub wersji oprogramowania, przy którym określone są cele i cechy projektu, oceniana jest jakość uzyskanych wyników i planowana jest praca kolejnej iteracji. W każdej iteracji ryzyko przekroczenia czasu i kosztów projektu jest dokładnie oceniane, aby określić, czy konieczna jest kolejna iteracja, stopień kompletności i dokładności w zrozumieniu wymagań systemowych oraz czy projekt powinien zostać zakończony.

Model spiralny zwalnia użytkowników i programistów z konieczności dokładnego i kompletnego formułowania wymagań systemowych na początkowym etapie, ponieważ są one dopracowywane w każdej iteracji. W ten sposób szczegóły projektu zostają pogłębione i konsekwentnie skonkretyzowane, a w efekcie wybierana jest rozsądna opcja, którą doprowadza się do realizacji.

Model spiralny jest klasycznym przykładem ewolucyjnej strategii projektowania. Model spiralny (Barry Boehm, 1988) opiera się na najlepszych cechach klasycznego cyklu życia i układu, do którego dodawany jest nowy element – ​​analiza ryzyka, która nie była wcześniej dostępna.

Model spiralny definiuje cztery aktywności reprezentowane przez poszczególne sektory spirali:

1. Planowanie – określenie celów, opcji i ograniczeń.

2. Analiza ryzyka – analiza opcji i rozpoznanie/wybór ryzyka.

3. Inżynieria - kolejny poziom rozwoju produktu.

4. Ocena - ocena przez klienta aktualnych wyników projektowania.

Integracyjny aspekt modelu spiralnego jest oczywisty, gdy weźmiemy pod uwagę wymiar promieniowy spirali. Z każdą iteracją po spirali (przemieszczającej się od środka na peryferia) coraz więcej pełne wersje NA.

Na pierwszym obrocie spirali określa się wstępne cele, opcje i ograniczenia, rozpoznaje i analizuje ryzyko. Jeśli analiza ryzyka wykaże niepewność wymagań, prototypowanie (wykorzystane w kwadrancie projektu) przychodzi z pomocą deweloperowi i klientowi. Modelowanie można wykorzystać do dalszej identyfikacji problematycznych i dopracowanych wymagań. Klient ocenia prace inżynierskie (projektowe) i zgłasza propozycje modyfikacji. Kolejna faza planowania i analizy ryzyka opiera się na sugestiach klientów. W każdym cyklu spirali wyniki analizy ryzyka kształtują się w formie „kontynuuj, nie kontynuuj”. Jeśli ryzyko jest zbyt duże, projekt może zostać zatrzymany.

W większości przypadków spirala trwa, a każdy krok popycha programistów w kierunku bardziej ogólnego modelu systemu.

Dzięki metodzie iteracyjnej brakującą część pracy można wykonać w następnej iteracji. Głównym zadaniem jest jak najszybsze pokazanie użytkownikom systemu działającego produktu, tym samym uruchamiając proces wyjaśniania i uzupełniania wymagań.

Model spiralny nie wyklucza podejścia kaskadowego na końcowych etapach projektu w przypadkach, gdy wymagania dla systemu są w pełni zdefiniowane.

Głównym problemem cyklu spiralnego jest określenie momentu przejścia do kolejnego etapu. Aby go rozwiązać, konieczne jest wprowadzenie ograniczeń czasowych na każdym z etapów cyklu życia. Przejście przebiega zgodnie z planem, nawet jeśli nie wszystkie zaplanowane prace zostaną zakończone. Plan opracowywany jest na podstawie danych statystycznych uzyskanych z poprzednich projektów oraz osobistych doświadczeń deweloperów.

Zalety modelu spiralnego:

Najbardziej realistyczny (w postaci ewolucji) odzwierciedla rozwój oprogramowania;

Pozwala jednoznacznie uwzględnić ryzyko na każdym etapie ewolucji rozwoju;

Włącza systematyczny krok podejścia do iteracyjnej struktury rozwoju;

Wykorzystuje symulację, aby zmniejszyć ryzyko i ulepszyć oprogramowanie.

Wady modelu spiralnego:

Nowość (brak wystarczających statystyk dotyczących skuteczności modelu);

Zwiększone wymagania dla klienta;

Trudności w monitorowaniu i zarządzaniu czasem rozwoju.

Do chwili obecnej można wyróżnić następujące iteracyjne metodologie tworzenia oprogramowania:

Racjonalny ujednolicony proces (RUP)

Elastyczne metodyki rozwoju (SCRUM, KANBAN, DSDM, MSF, ALM, XP)

Metodyka rozwoju zwinnego(inż. Zwinne tworzenie oprogramowania).

Większość metodologii Agile ma na celu zminimalizowanie ryzyka poprzez zredukowanie rozwoju do serii krótkich cykli zwanych iteracje które zwykle trwają od jednego do dwóch tygodni. Każda iteracja sama w sobie wygląda projekt oprogramowania w miniaturze i zawiera wszystkie zadania niezbędne do uzyskania mini-wzmocnienia funkcjonalności: planowanie, analiza wymagań, projektowanie, kodowanie, testowanie i dokumentacja. Chociaż pojedyncza iteracja generalnie nie wystarcza do wydania Nowa wersja produktu, zakłada się, że Agile Software Project jest gotowy do wydania na końcu każdej iteracji. Pod koniec każdej iteracji zespół ponownie ocenia priorytety rozwoju.

Metody zwinne kładą nacisk na komunikację twarzą w twarz. Większość zespołów Agile znajduje się w tym samym biurze. Co najmniej obejmuje również „klientów” (klientów, którzy definiują produkt, takich jak menedżerowie produktu, analitycy biznesowi lub klienci). Biuro może również obejmować testerów, projektantów interfejsów, pisarzy technicznych i menedżerów.

Jedną z najbardziej znanych i zaawansowanych metodyk zwinnych jest metodologia SCRUM.

SCRUM- metodyka przeznaczona dla małych zespołów (do 10 osób). Cały projekt podzielony jest na iteracje (sprinty) po 30 dni każda. Wybierana jest lista funkcji systemu, które planowane są do wdrożenia w kolejnym sprincie. Najważniejszymi warunkami są niezmienność wybranych funkcji podczas wykonywania jednej iteracji oraz ścisłe przestrzeganie dat wydania kolejnego wydania, nawet jeśli nie jest możliwe zaimplementowanie całej planowanej funkcjonalności przez jego wydanie. Menadżer ds. rozwoju codziennie odbywa 20-minutowe spotkania zwane scrum, których efektem jest określenie funkcji systemu wdrożonej poprzedniego dnia, napotkanych trudności i planu na kolejny dzień. Takie spotkania pozwalają stale monitorować postępy projektu, szybko identyfikować pojawiające się problemy i szybko na nie reagować.

KANBAN– zwinna metodologia tworzenia oprogramowania zorientowana na zadania.

Podstawowe zasady:

Wizualizacja rozwoju:

o podział pracy na zadania;

o użycie znaków o pozycji zadania w opracowaniu;

Ograniczenie pracy wykonywanej jednocześnie na każdym etapie rozwoju;

Pomiar czasu cyklu (średni czas wykonania jednego zadania) i optymalizacja procesów.

Korzyści z KANBAN:

Zmniejszenie liczby równoległych zadań znacznie skraca czas wykonania każdego zadania z osobna;

Szybka identyfikacja problematycznych zadań;

Oblicz czas na wykonanie przeciętnego zadania.

METODA ROZWOJU SYSTEMU DYNAMICZNEGO(DSDM) powstał w wyniku prac konsorcjum 17 brytyjskich firm. W opracowywanie podręczników tej metodologii, organizację szkoleń, programów akredytacyjnych itp. zaangażowana jest cała organizacja. Ponadto wartość DSDM ma wartość pieniężną.

Wszystko zaczyna się od studium wykonalności programu i jego zakresu. W pierwszym przypadku próbujesz dowiedzieć się, czy DSDM jest odpowiedni dla danego projektu. Ma na celu zapoznanie się z zakresem programu na krótkiej serii seminariów, podczas których programiści poznają obszar biznesowy, dla którego będą pracować. Omówiono również główne postanowienia dotyczące architektury przyszłego systemu oraz plan projektu.

Proces dzieli się dalej na trzy powiązane ze sobą cykle: cykl modelu funkcjonalnego odpowiada za tworzenie dokumentacji analitycznej i prototypów, cykl projektowo-konstrukcyjny to doprowadzenie systemu do stanu roboczego, a na końcu ostatni cykl – cykl wdrożeniowy – zapewnia wdrożenie systemu oprogramowania.

Podstawowe zasady, na których zbudowany jest DSDM, to:

Aktywna interakcja z użytkownikami;

Częste wydania wersji;

Niezależność deweloperów w podejmowaniu decyzji;

Testowanie przez cały cykl pracy.

Podobnie jak większość innych metodologii zwinnych, DSDM wykorzystuje krótkie iteracje trwające od dwóch do sześciu tygodni. Szczególny nacisk kładziemy na wysoką jakość pracy i adaptację do zmieniających się wymagań.

RAMY ROZWIĄZAŃ MICROSOFT(MSF) to metodologia tworzenia oprogramowania zaproponowana przez firmę Microsoft Corporation. MSF opiera się na praktyczne doświadczenie Microsoft i opisuje zarządzanie ludźmi i procesami pracy w procesie tworzenia rozwiązania.

Podstawowe pojęcia i zasady modelu procesu MSF:

Jedna wizja projektu – wszystkie zainteresowane strony i tylko uczestnicy projektu muszą jasno rozumieć efekt końcowy, każdy powinien rozumieć cel projektu;

Zarządzanie kompromisami - znajdowanie kompromisów między zasobami projektu, harmonogramem i możliwymi do zrealizowania szansami;

Elastyczność - gotowość do zmiany warunków projektowych;

Skoncentruj się na priorytetach biznesowych - skoncentruj się na zwrocie i korzyściach, których oczekuje konsument rozwiązania;

Zachęcaj do swobodnej komunikacji w ramach projektu;

Tworzenie wersji podstawowych - naprawianie stanu dowolnego artefaktu projektu, w tym kodu programu, planu projektu, instrukcji obsługi, ustawień serwera i późniejszego efektywnego zarządzania zmianami, analityki projektu.

MSF zapewnia sprawdzone metodologie planowania, projektowania, opracowywania i wdrażania skutecznych rozwiązań informatycznych. Dzięki elastyczności, skalowalności i brakowi sztywnych wytycznych, MSF jest w stanie sprostać potrzebom dowolnej wielkości organizacji lub zespołu projektowego. Metodologia MSF składa się z zasad, modeli i dyscyplin zarządzania personelem, procesami, elementami technologicznymi oraz zagadnieniami związanymi ze wszystkimi tymi czynnikami, które są typowe dla większości projektów.

Zarządzanie cyklem życia aplikacji(ALM) - opracowany i utrzymywany przez firmę Borland.

ekstremalne programowanie(XP) - ekstremalne programowanie wspierane przez otwartą społeczność niezależnych programistów.

Istota i koncepcja oprogramowania instrumentalnego

Oprogramowanie narzędziowe (IPO) - oprogramowanie przeznaczone do stosowania przy projektowaniu, opracowywaniu i utrzymaniu programów.

Stosowane oprzyrządowanie w fazie rozwoju. Oprogramowanie narzędziowe to zestaw programów służących do wspomagania programistów w ich pracy, aby pomóc menedżerom ds. rozwoju oprogramowania w ich dążeniu do kontrolowania procesu rozwoju i wynikających z niego wyników. Najbardziej znanymi przedstawicielami tego oprogramowania są programy tłumaczy z języków programowania, które pomagają programistom pisać instrukcje maszynowe. Programy narzędziowe to translatory firm Fortran, Cobol, Jovial, BASIC, APL i Pascal. Ułatwiają proces tworzenia nowych programów pracy. Jednak tłumacze z języków to tylko najbardziej znana część programów narzędziowych; jest ich bardzo dużo.

Wykorzystanie komputerów do tworzenia nowych programów nie jest oczywiste dla osób, które nie są zawodowymi programistami. Często zdarza się, że profesjonaliści jednym tchem mówią o oprogramowaniu narzędziowym (faza rozwoju) i systemowym (faza użytkowania), zakładając, że niewtajemniczeni w tajniki swoich umiejętności są świadomi tej roli oprogramowania narzędziowego. Jak w fazie użytkowania (dla programów aplikacyjnych), oprogramowanie systemowe działa w fazie rozwoju, ale tylko w połączeniu z oprzyrządowaniem. Oprogramowanie narzędziowe lub systemy programowania to systemy do automatyzacji tworzenia nowych programów w języku programowania.

W najbardziej ogólnym przypadku, aby stworzyć program w wybranym języku programowania (język programowanie systemu) musisz mieć następujące elementy:

1. Edytor tekstu do tworzenia pliku z kodem źródłowym programu.

2. Kompilator lub tłumacz. Tekst źródłowy jest tłumaczony na pośredni kod obiektowy za pomocą programu kompilatora. Tekst źródłowy dużego programu składa się z kilku modułów (plików z tekstami źródłowymi). Każdy moduł jest kompilowany w oddzielny plik z kodem wynikowym, które następnie należy połączyć w jedną całość.

3. Linker lub assembler, który łączy moduły obiektowe i generuje działającą aplikację - kod wykonywalny.

Kod wykonywalny to kompletny program, który można uruchomić na dowolnym komputerze z systemem operacyjnym, dla którego program został utworzony. Z reguły plik wynikowy ma rozszerzenie .EXE lub .COM.

W ostatnim czasie upowszechniły się wizualne metody programowania (wykorzystujące języki skryptowe), skoncentrowane na tworzeniu aplikacji Windows. Ten proces jest zautomatyzowany w środowiskach szybki projekt. W tym przypadku wykorzystywane są gotowe komponenty wizualne, które są konfigurowane za pomocą specjalnych edytorów.

Najpopularniejsze edytory (systemy programowania wykorzystujące narzędzia wizualne) do projektowania wizualnego:

Borland Delphi - zaprojektowany do rozwiązywania prawie każdego problemu związanego z programowaniem aplikacji.

Borland C++ Builder to doskonałe narzędzie do tworzenia aplikacji DOS i Windows.

Microsoft Visual Basic to popularne narzędzie do tworzenia programów Windows.

Microsoft Visual C++ - to narzędzie pozwala tworzyć dowolne aplikacje działające w środowisku systemu operacyjnego Typ Microsoft Okna

Zatem istotą oprogramowania instrumentalnego jest tworzenie dowolnych wykonywalny program, przekształcając się formalnie wyrażenia logiczne na wykonywalny kod maszynowy, a także jego kontrolę i korektę.

Zadania i funkcje oprogramowania narzędziowego

Oprogramowanie narzędziowe, jako szczególny rodzaj oprogramowania, charakteryzuje się ogólnymi i szczegółowymi

funkcje, jak w przypadku całego oprogramowania w ogóle. Funkcje ogólne rozważane przez nas powyżej, a wyspecjalizowane funkcje są nieodłączne ten typ programy to:

1. Tworzenie tekstu opracowanego programu za pomocą specjalnie ustalonych słów kodowych (języka programowania), a także określonego zestawu znaków i ich lokalizacji w tworzonym pliku - składni programu.

2. Tłumaczenie tekstu stworzonego programu na kod maszynowy dostępny do rozpoznawania komputerowego. W przypadku znacznej objętości tworzonego programu jest on dzielony na osobne moduły i każdy z modułów jest tłumaczony osobno.

3. Połączenie poszczególnych modułów w jeden kod wykonywalny, zgodnie z niezbędną strukturą, zapewniający koordynację interakcji poszczególnych części ze sobą.

4. Testowanie i kontrola stworzonego programu, wykrywanie i eliminacja błędów formalnych, logicznych i składniowych, sprawdzanie programów pod kątem zabronionych kodów oraz ocena wydajności i potencjału stworzonego programu.

Rodzaje oprogramowania narzędziowego

Na podstawie zadań przypisanych do oprogramowania instrumentalnego można wyróżnić wiele różnych typów oprogramowania instrumentalnego:

Edytory tekstu

Zintegrowane środowiska programistyczne

Kompilatory

Tłumacze ustni

Wyrazy łączące

Parsery i generatory parserów (zobacz Javacc)

monterzy

Debugery

Profilerzy

Generatory dokumentacji

Narzędzia do analizy pokrycia kodu

Narzędzia do ciągłej integracji

Zautomatyzowane narzędzia testujące

Systemy kontroli wersji itp.

Należy zauważyć, że powłoki do tworzenia programów użytkowych są również tworzone przez programy narzędziowe i dlatego można je nazywać programami użytkowymi. Rozważ pokrótce cel niektórych programów instrumentalnych.

Edytory tekstu.

Edytor tekstu - program komputerowy przeznaczony do przetwarzania pliki tekstowe takich jak tworzenie i wprowadzanie zmian.

Skład CAD

CAD to system łączący w sobie środki techniczne, matematyczne i programowe, którego parametry i właściwości dobierane są z maksymalnym uwzględnieniem cech projektowania inżynierskiego i zadań konstrukcyjnych. W CAD wygodę korzystania z programów zapewniają środki komunikacji operacyjnej między inżynierem a komputerem, specjalne języki problemowe oraz dostępność bazy informacyjnej i referencyjnej.

Elementy konstrukcyjne CAD to podsystemy, które posiadają wszystkie właściwości systemów i są tworzone jako niezależne systemy. Są to części CAD dobrane według określonych kryteriów, które zapewniają wykonanie części zrealizowanych zadań projektowych przy otrzymaniu odpowiednich rozwiązań projektowych i dokumentacji projektowej.

Zgodnie z przeznaczeniem podsystemu CAD dzieli się je na dwa typy: projektowe i konserwacyjne.

Projektowanie obejmuje podsystemy, które wykonują procedury i operacje projektowe, na przykład:

podsystem układu maszyny;

podsystem projektowania zespołów montażowych;

Podsystem projektowania części;

· podsystem projektowania obwodów sterowniczych;

· podsystem projektowania technologicznego.

Serwis obejmuje podsystemy zaprojektowane w celu utrzymania wydajności podsystemów projektowych, na przykład:

· podsystem graficznego wyświetlania obiektów projektowych;

podsystem dokumentacji;

Podsystem wyszukiwania informacji itp.

W zależności od relacji do obiektu projektowego rozróżnia się dwa typy podsystemów projektowych:

zorientowany obiektowo (obiektyw);

Niezależny od obiektu (niezmienny).

Podsystemy obiektów obejmują podsystemy, które wykonują jedną lub więcej procedur projektowych lub operacji, które są bezpośrednio zależne od określonego obiektu projektowego, na przykład:

podsystem projektowania układów technologicznych;

podsystem do modelowania dynamiki, projektowanej konstrukcji itp.

Podsystemy niezmienne obejmują podsystemy, które wykonują ujednolicone procedury i operacje projektowe, na przykład:

podsystem do obliczania części maszyn;

podsystem do obliczania warunków skrawania;

podsystem do obliczania wskaźników techniczno-ekonomicznych itp.

Proces projektowania realizowany jest w podsystemach w postaci określonej sekwencji procedur i operacji projektowych. Procedura projektowa odpowiada części podsystemu projektowego, w wyniku której podejmowana jest określona decyzja projektowa. Składa się z elementarnych operacji projektowych, ma ugruntowaną kolejność ich realizacji i ma na celu osiągnięcie lokalnego celu w procesie projektowania. Przez operację projektową rozumie się warunkowo przypisaną część procedury projektowej lub elementarną czynność wykonaną przez projektanta w procesie projektowym. Przykładami procedur projektowych mogą być procedury opracowywania schematu kinematycznego lub rozmieszczenia obrabiarki, technologii przetwarzania produktów itp., a przykładami operacji projektowych są obliczanie naddatków, rozwiązanie równania itp.

Strukturalna jedność podsystemów CAD jest zapewniona przez ścisłą regulację powiązań między różnymi typami oprogramowania, zjednoczonych wspólną funkcją docelową dla tego podsystemu. Istnieją następujące rodzaje zabezpieczeń:

wsparcie metodyczne – dokumenty odzwierciedlające skład, zasady doboru i działania narzędzi automatyzacji projektowania;

· wsparcie językowe - języki projektowania, terminologia;

oprogramowanie matematyczne - metody, modele matematyczne, algorytmy;

oprogramowanie - dokumenty z tekstami programów, programy na nośnikach maszynowych oraz dokumenty eksploatacyjne;

· wsparcie techniczne - urządzenia sprzętu komputerowego i organizacyjnego, środki transmisji danych, urządzenia pomiarowe i inne oraz ich kombinacje;

· Wsparcie informacyjne- dokumenty zawierające opis standardowych procedur projektowych, standardowych rozwiązań projektowych, standardowych elementów, komponentów, materiałów i innych danych;

wsparcie organizacyjne - regulaminy i instrukcje, rozkazy, kadry i inne dokumenty regulujące strukturę organizacyjną jednostek i ich współdziałanie z zestawem narzędzi automatyzacji projektowania.

· 64 technologie CALS.

Technologie CALS służą do integracji przemysłowych zautomatyzowanych systemów w jeden wielofunkcyjny system. Celem integracji zautomatyzowanych systemów projektowania i sterowania jest zwiększenie efektywności tworzenia i użytkowania złożonego sprzętu.

We współczesnych warunkach formowania się globalnego społeczeństwo informacyjne rola informacji i Technologie informacyjne w przygotowaniu przyszłego specjalisty znacznie wzrasta. W najbliższej przyszłości strategicznym potencjałem społeczeństwa nie będą zasoby energetyczne, ale informacja i wiedza naukowa. Informacja staje się głównym zasobem rozwoju naukowego, technicznego i społeczno-gospodarczego społeczeństwa, znacząco wpływa na przyspieszony rozwój nauki, techniki i różnych gałęzi przemysłu, odgrywa istotną rolę w procesie unowocześniania edukacji. Cecha wartościowo-semantyczna kształcenia na uniwersytecie i aktywność zawodowa specjalistów powinna wyrażać się w kształtowaniu intelektualnego środowiska zawodowego najpełniej realizującego zadania działalności badawczej i projektowej.

Powszechna informatyzacja wszystkich rodzajów działalności człowieka: od tradycyjnych zadań intelektualnych o charakterze naukowym po automatyzację produkcji, handlu, handlu, bankowości i innych działań służy zwiększeniu wydajności produkcji. W warunkach gospodarki rynkowej konkurencję z powodzeniem utrzymują tylko przedsiębiorstwa wykorzystujące w swojej działalności nowoczesne technologie informacyjne.

To właśnie informatyka wraz z postępowymi technologiami wytwarzania materiałów może znacząco podnieść wydajność pracy i jakość produktów, a jednocześnie znacząco skrócić czas wprowadzania na rynek nowych produktów spełniających potrzeby i oczekiwania konsumentów. Wszystko to dotyczy przede wszystkim złożonych produktów wymagających intensywnej nauki, w tym produktów do celów technicznych.

Doświadczenie zdobyte w procesie wdrażania różnych autonomicznych systemów informatycznych pozwoliło na uświadomienie sobie potrzeby integracji różnych technologii informatycznych w jeden kompleks polegający na stworzeniu w przedsiębiorstwie lub grupie przedsiębiorstw (przedsiębiorstwa wirtualnego) zintegrowanego środowiska informacyjnego, wspierającego wszystkie etapy cyklu życia produktów. Środowisko zawodowe najpełniej ujawnia możliwości rozwoju zawodowego, wykorzystując nowe technologie informatyczne w nauce oraz w obszarze zarządzania procesami produkcyjnymi. Innowacyjne technologie w branży przetwarzania informacji wraz z wprowadzeniem technologii CALS-(Continuous Acquisition and Life cycle Support) – ciągłe informowanie o cyklu życia projektowanego obiektu, przenosi automatyzację zarządzania procesami produkcyjnymi na nowy poziom.

Wykorzystanie technologii informatycznych opartych na ideologii CALS jest jednym z czynników wpływających na sprawniejsze wdrożenie systemu automatyczna kontrola przedsiębiorstwo.

Technologie CALS służą do integracji przemysłowych zautomatyzowanych systemów w jeden wielofunkcyjny system. Celem integracji zautomatyzowanych systemów projektowania i sterowania jest zwiększenie efektywności tworzenia i użytkowania złożonego sprzętu.

Istotą koncepcji CALS jest zastosowanie zasad i technologii wsparcia informacyjnego na wszystkich etapach cyklu życia produktu, w oparciu o wykorzystanie zintegrowanego środowiska informacyjnego, które zapewnia jednolite metody zarządzania procesami i interakcji ze wszystkimi uczestnikami tego cyklu : klienci produktów (w tym agencje rządowe i departamenty), dostawcy (producenci) produkty, personel obsługujący i konserwujący. Te zasady i technologie są wdrażane zgodnie z wymaganiami międzynarodowe standardy, regulujący zasady zarządzania i współdziałania głównie poprzez elektroniczną wymianę danych.

Podczas korzystania z technologii CALS, jakość produktów ulega poprawie dzięki pełniejszemu uwzględnianiu dostępnych informacji w decyzjach projektowych i zarządczych, a także zmniejszeniu ulegają koszty materiałowe i czasowe projektowania i wytwarzania produktów. W procesie wdrażania tej technologii ważność decyzji podejmowanych w zautomatyzowanym systemie zarządzania przedsiębiorstwem (AMS) będzie wyższa, jeśli decydent i odpowiednie programy sterujące mają dostęp online nie tylko do bazy AMMS, ale także do baz innych zautomatyzowane systemy, dzięki czemu mogą optymalizować plany pracy, zawartość wniosków, dystrybucję wykonawców, alokację środków finansowych itp. Jednocześnie przez dostęp online należy rozumieć nie tylko możliwość odczytania danych z bazy, ale także łatwość ich prawidłowej interpretacji, czyli m.in. spójność składni i semantyki z protokołami przyjętymi w APCS. Podsystemy technologiczne muszą dokładnie postrzegać i poprawnie interpretować dane pochodzące z podsystemów projektowania wspomaganego komputerowo. Nie jest to łatwe do osiągnięcia, jeśli główne przedsiębiorstwo i powiązane organizacje pracują z różnymi zautomatyzowanymi systemami. Ponadto istotny staje się problem ochrony informacji na całym obwodzie działania podsystemów technologicznych.

Zastosowanie technologii CALS może znacznie zmniejszyć nakład prac projektowych, ponieważ opisy wcześniej zakończonych pomyślnie opracowań komponentów i urządzeń, wiele wcześniej zaprojektowanych komponentów sprzętu, maszyn i systemów jest przechowywanych w bazach danych serwerów sieciowych dostępnych dla każdego użytkownika Technologia CALS. Dostępność i ochronę ponownie zapewnia spójność formatów, metod, instrukcji w różnych częściach całego zintegrowanego systemu. Ponadto istnieje więcej możliwości specjalizacji przedsiębiorstw, aż do tworzenia wirtualnych przedsiębiorstw, co również przyczynia się do redukcji kosztów.

W procesie wdrażania technologii CALS koszty operacyjne są znacznie obniżane dzięki wdrożeniu zintegrowanych funkcji wsparcia logistycznego. Znacznie ułatwione jest rozwiązywanie problemów związanych z konserwowalnością, integracją produktów z różnymi systemami i środowiskami, adaptacją do zmieniających się warunków pracy itp. Te korzyści z integracji danych są osiągane dzięki zastosowaniu nowoczesnych technologii CALS.

Zautomatyzowane systemy przemysłowe mogą pracować autonomicznie i obecnie na tej podstawie odbywa się organizacja procesu zarządzania produkcją. Jednak efektywność automatyzacji będzie zauważalnie wyższa, jeśli dane wygenerowane w jednym z systemów będą dostępne w innych systemach, ponieważ decyzje w nich podejmowane będą bardziej świadome.

Doświadczenia we wdrażaniu technologii CALS pokazują, że w celu osiągnięcia odpowiedniego poziomu interakcji pomiędzy zautomatyzowanymi systemami przemysłowymi konieczne jest stworzenie jednolitej przestrzeni informacyjnej zarówno w ramach poszczególnych przedsiębiorstw, jak i, co ważniejsze, w ramach zrzeszenia przedsiębiorstw. Zjednoczony przestrzeń informacyjna Zapewnia to ujednolicenie zarówno formy, jak i treści informacji o konkretnych produktach na różnych etapach ich cyklu życia.

Ujednolicenie formularza osiąga się poprzez zastosowanie standardowych formatów i języków do przedstawiania informacji w wymianach międzyprogramowych oraz w dokumentacji.

Unifikację treści, rozumianą jako jednoznaczną poprawną interpretację danych o konkretnym produkcie na wszystkich etapach jego cyklu życia, zapewnia opracowanie ontologii aplikacji (meta-opisów) utrwalonych w protokołach aplikacji CALS.

CAD - co to jest?

Czym więc są systemy komputerowego wspomagania projektowania? CAD odnosi się do zautomatyzowanych systemów, które są zaprojektowane do wdrażania określonej technologii informacyjnej poprzez projektowanie. W praktyce CAD to systemy techniczne, które w ten sposób pozwalają na automatyzację, zapewniają funkcjonowanie procesów składających się na rozwój projektów. CAD, w zależności od kontekstu, może odnosić się do:

oprogramowanie wykorzystywane jako główny element odpowiedniej infrastruktury;

Zbiór systemów technicznych i kadrowych (w tym obejmujących wykorzystanie CAD w postaci oprogramowania) wykorzystywanych w przedsiębiorstwie do automatyzacji procesu tworzenia projektów;

W ten sposób można wyróżnić szerszą i węższą interpretację omawianego terminu. Trudno powiedzieć, która z tych interpretacji jest częściej stosowana w biznesie. Wszystko zależy od konkretnego zakresu zastosowania systemów komputerowego wspomagania projektowania, a także od zadań, do których te systemy mają być wykorzystywane. Na przykład w kontekście pojedynczego warsztatu w produkcji CAD ma być specyficznym programem do komputerowego wspomagania projektowania. Jeśli mówimy o planowaniu strategicznym rozwoju organizacji, to takie pojęcie jak CAD najprawdopodobniej będzie odpowiadać infrastrukturze wielkoskalowej, która służy do zwiększenia efektywności opracowywania różnych projektów. Należy zauważyć, że sam termin CAD jest skrótem, który można rozszyfrować na różne sposoby. W ogólnym przypadku skrót ten odpowiada kombinacji słów „system projektowania wspomaganego komputerowo”. Istnieją również inne możliwości odszyfrowania tego skrótu. Na przykład dość powszechna jest opcja „system automatyzacji prac projektowych”. W języku angielskim odpowiednikiem terminu CAD jest skrót CAD, w niektórych przypadkach używany jest również CAX. Przyjrzyjmy się bliżej pytaniu: w jakim celu można tworzyć systemy komputerowego wspomagania projektowania w inżynierii mechanicznej i innych dziedzinach ?

CAD: cel tworzenia

Głównym celem rozwoju CAD jest zwiększenie wydajności pracy specjalistów korporacyjnych, którzy rozwiązują różne zadania produkcyjne, w tym związane z projektowaniem inżynierskim. W takim przypadku wydajność można poprawić dzięki następującym czynnikom:

Zmniejszenie złożoności procesu projektowania;

Skrócenie czasu realizacji projektu;

Obniżenie kosztów prac projektowych oraz kosztów związanych z eksploatacją;

Zapewnienie poprawy jakości infrastruktury projektowej.

Zmniejszone koszty testowania i symulacji.

CAD to narzędzie, które pozwala osiągnąć wymierne korzyści dzięki następującym czynnikom:

Efektywny Wsparcie informacyjne specjaliści zaangażowani w rozwój projektów;

Automatyzacja dokumentacji;

Zastosowanie koncepcji projektowania równoległego;

Ujednolicenie różnych rozwiązań;

Zastosowanie modelowania matematycznego jako alternatywy dla kosztownych testów;

Optymalizacja metod projektowania;

Poprawa jakości procesów zarządzania przedsiębiorstwem.

Zastanówmy się teraz, w jakiej strukturze można przedstawić system automatycznego projektowania.

CAD: klasyfikacje

Najczęstsze kryteria klasyfikacji systemów CAD obejmują przypisanie branżowe. Istnieją następujące typy:

  1. Wspomagane komputerowo projektowanie infrastruktury budowy maszyn;
  2. CAD dla sprzętu elektronicznego;
  3. CAD w branży budowlanej.

Pierwszy typ systemów CAD może być stosowany w wielu gałęziach przemysłu: lotniczym, motoryzacyjnym, stoczniowym, dóbr konsumpcyjnych. Ponadto odpowiednią infrastrukturę można wykorzystać do opracowania zarówno poszczególnych części, jak i różnych mechanizmów przy użyciu różnych podejść w ramach modelowania i projektowania.

Systemy CAD drugiego typu służą do projektowania gotowego sprzętu elektronicznego i jego poszczególne elementy takie jak układy scalone, procesory i inne rodzaje sprzętu.

CAD trzeciego typu może służyć do projektowania różnych konstrukcji, budynków, elementów infrastruktury.

Innym kryterium, według którego można klasyfikować systemy komputerowego wspomagania projektowania, jest zamierzony cel. Tutaj wyróżnia się:

Narzędzia projektowe służące do automatyzacji dwuwymiarowych lub trójwymiarowych modeli geometrycznych w celu generowania dokumentacji projektowej;

Systemy wykorzystywane do opracowywania różnych rysunków;

Systemy zaprojektowane do modelowania geometrycznego;

Systemy zaprojektowane do automatyzacji obliczeń w ramach projektów inżynierskich i symulacja dynamiczna;

Narzędzia automatyzacji służące do optymalizacji technologicznej projektów;

Systemy przeznaczone do komputerowej analizy różnych parametrów projektów.

Ta klasyfikacja jest uważana za warunkową.

V zautomatyzowany system projekt procesu może obejmować szeroki zakres funkcji spośród wymienionych powyżej. Szczegółowa lista możliwości CAD jest określana przede wszystkim przez twórcę tego systemu. Przyjrzyjmy się, jakie zadania może rozwiązać.

Systemy narzędzi do tworzenia oprogramowania

1. Narzędzia do tworzenia oprogramowania.

W procesie opracowywania narzędzi programowych, w takim czy innym stopniu, wykorzystywane jest komputerowe wsparcie rozwoju PS.

Odbywa się to poprzez prezentację przynajmniej niektórych dokumentów programowych PS (przede wszystkim programów) na komputerowych nośnikach danych (np. dyski) i udostępnienie twórcy PS specjalne PS lub dołączone do komputera urządzenia specjalne stworzony do dowolnego przetwarzania takich dokumentów.

Jako taki specjalny PS możesz określić kompilator z dowolnego języka programowania.

Kompilator chroni programistę PS przed koniecznością pisania programów w języku komputerowym, który byłby wyjątkowo niewygodny dla programisty PS - zamiast tego pisze programy w dogodnym dla niego języku programowania, który odpowiedni kompilator automatycznie tłumaczy na język komputerowy .

Jako specjalne urządzenie wspierające proces tworzenia PS może służyć emulator dowolny język.

Emulator pozwala na wykonywanie (interpretację) programów w języku innym niż język komputera, który wspiera rozwój PS, na przykład w języku komputera, dla którego ten program jest przeznaczony.

PS, które mają wspierać rozwój innych PS, będą: wywołać oprogramowanie do tworzenia PS, a urządzenie komputerowe specjalnie zaprojektowane do wspierania rozwoju PS zostanie nazwane narzędzie do tworzenia oprogramowania sprzętowego.

Narzędzia programistyczne PS mogą być używane przez cały cykl życia PS do pracy z różnymi dokumentami programowymi. Więc Edytor tekstu może być wykorzystany do opracowania prawie każdego dokumentu programowego.

Z punktu widzenia funkcji, jakie narzędzia pełnią w tworzeniu oprogramowania, można je podzielić na następujące cztery grupy:

redaktorzy,

analizatory,

konwertery,

narzędzia wspomagające wykonywanie programów.

Redakcja wspierać projektowanie (tworzenie) niektórych dokumentów programowych na różnych etapach cyklu życia.

Jak już wspomniano, do tego możesz użyć jednego z uniwersalnych Edytor tekstu.

Można jednak zapewnić silniejsze wsparcie wyspecjalizowani redaktorzy: Każdy typ dokumentu ma swój własny edytor. W szczególności na wczesnych etapach opracowywania dokumenty mogą być szeroko wykorzystywane pomoce graficzne opisy (schematy, diagramy itp.). W takich przypadkach może się to bardzo przydać edytor graficzny.

Na etapie programowania (kodowania) zamiast edytora tekstu może być wygodniej edytor sterowany składnią A, który jest specyficzny dla używanego języka programowania.

Analizatory wytwarzają statyczne przetwarzanie dokumentów, przeprowadzając Różne rodzaje ich kontrola, identyfikacja ich określonych właściwości i gromadzenie danych statystycznych (np. sprawdzanie zgodności dokumentów z określonymi standardami), czy dynamiczna analiza programów (np. w celu identyfikacji rozkładu czasu pracy programu według programu moduły).

Konwertery umożliwiają automatyczne przenoszenie dokumentów do innej formy prezentacji (na przykład formaterów) lub tłumaczenie dokumentu jednego typu na dokument innego typu (na przykład konwertery lub kompilatory), syntezę dokumentu z osobnych części itp.

Narzędzia wspierające wykonywanie programów, pozwalają na wykonywanie na komputerze opisów procesów lub ich poszczególnych części, przedstawionych w formie innej niż kod maszynowy lub kod maszynowy z dodatkowymi możliwościami jego interpretacji.

Przykładem takiego narzędzia jest kod emulatora innego komputera. Do tej grupy narzędzi należy również zaliczyć różne debuggery.

Zasadniczo każdy system programowania zawiera podsystem programu wykonawczego, który wykonuje najbardziej typowe fragmenty programu dla języka programowania i zapewnia standardową reakcję na wyjątki występujące podczas wykonywania programu (taki podsystem nazwiemy wsparciem wykonawczym), - można również uznać za instrument tej grupy.

2. Środowiska narzędziowe do tworzenia i utrzymania oprogramowania.

Obecnie każdy system programowania związany jest nie z osobnymi narzędziami (np. kompilatorem), ale jakiś logicznie powiązany zestaw narzędzi programowych i sprzętowych, które wspierają rozwój i utrzymanie oprogramowania na podany język programowanie lub skupienie się na określonym obszarze tematycznym. Nazwiemy taką kolekcję środowisko narzędziowe do rozwoju i utrzymania PS.

Dla takich instrumentalnych środowisk jest to typowe

po pierwsze, korzystanie zarówno z narzędzi programowych, jak i sprzętowych, oraz

po drugie, pewna orientacja albo na określony język programowania, albo na określony obszar tematyczny.

Środowisko instrumentalne niekoniecznie musi funkcjonować na komputerze, na którym PS opracowany za jego pomocą będzie musiał być używany. Często taka kombinacja jest całkiem wygodna (jeśli tylko moc używanego komputera na to pozwala): nie trzeba zajmować się komputerami różne rodzaje, opracowany PS może zawierać komponenty samego środowiska narzędziowego.

Jeśli jednak komputer, na którym ma być używany PS, nie jest dostępny dla twórców tego PS (na przykład jest stale zajęty inną pracą, której nie można przerwać lub jest nadal w fazie rozwoju) lub jest niewygodny dla rozwijanie PS, lub moc tego komputera jest niewystarczająca do zapewnienia funkcjonowania wymaganego środowiska instrumentalnego, to tzw. podejście instrumentalno-celowe.

Jego istota tkwi w PS jest rozwijany na jednym komputerze, zwanym instrumentalnym, i zostanie zastosowany na innym komputerze, zwanym celem (lub obiektem).

Wyróżnić trzy główne klasy środowisk narzędziowych do rozwoju i utrzymania PS

(Rys. 16.1): ·

środowiska programistyczne,

miejsca pracy technologia komputerowa

systemy instrumentalne technologii programowania.

Środowisko programistyczne jest przeznaczone

głównie do wspomagania procesów programowania (kodowania), testowania i debugowania PS.

Miejsce pracy technologii komputerowej skupia się na wspieraniu wczesnych etapów rozwoju PS (specyfikacji) i automatycznym generowaniu programów według specyfikacji.

System narzędzi technologii programowania ma na celu wspieranie wszystkich procesów rozwoju i utrzymania przez cały cykl życia oprogramowania i koncentruje się na wspólnym opracowywaniu dużych systemów oprogramowania o długim cyklu życia.

W przypadku takich systemów koszt utrzymania zwykle przewyższa koszt rozwoju.

Ryż. 16.1. Główne klasy środowisk narzędziowych do rozwoju i utrzymania PS.

3. Środowiska programowania narzędzi.

Środowiska programistyczne zawierać przede wszystkim

Edytor tekstu, który pozwala na projektowanie programów w danym języku programowania, narzędzia pozwalające kompilować lub interpretować programy w tym języku, a także testować i debugować powstałe programy.

Ponadto mogą istnieć inne narzędzia, na przykład do statycznego lub analiza dynamiczna programy.

Te narzędzia współdziałają ze sobą poprzez zwykłe pliki przez standardowe funkcje system plików.

Są następujące klasy środowisk programistycznych(patrz rys. 14.2): ·

środowiska ogólnego przeznaczenia,

środowiska zorientowane językowo.

Środowiska programistyczne ogólnego przeznaczenia zawierają zestaw narzędzi programowych, które wspierają tworzenie programów w różnych językach programowania (na przykład edytor tekstu, edytor linków lub interpreter języka komputera docelowego) i zwykle stanowią pewne rozszerzenie możliwości używany system operacyjny. Aby programować w takim środowisku w dowolnym języku programowania, będziesz potrzebować dodatkowych narzędzi zorientowanych na ten język (na przykład kompilatora).


Rys.16.2. Klasyfikacja środowisk narzędzi programistycznych.

Zorientowane językowo środowisko narzędziowe programowanie ma na celu wspomaganie rozwoju systemu oprogramowania w dowolnym języku programowania, a wiedza o tym języku została w znacznym stopniu wykorzystana przy budowaniu takiego środowiska. Dzięki temu w takim środowisku mogą być dostępne dość rozbudowane funkcje, które uwzględniają specyfikę tego języka.

Takie środowiska dzielą się na dwie podklasy:

środowiska interpretacyjne,

środowiska sterowane składnią.

Interpretacyjne środowisko programowania zapewnia interpretację programów w danym języku programowania, tj. zawiera przede wszystkim interpreter języka programowania, na który zorientowane jest to środowisko. Takie środowisko jest niezbędne dla języków programowania typu interpretacyjnego (takich jak Lisp), ale może być używane dla innych języków (takich jak na komputerze instrumentalnym).

Środowisko programistyczne sterowane składniowo opiera się na znajomości składni języka programowania, na który jest zorientowany. W takim środowisku zamiast edytora tekstu wykorzystywany jest edytor sterowany składniowo, co pozwala na korzystanie z różnych wzorców konstrukcji składniowych (dzięki temu tworzony program zawsze będzie poprawny składniowo). Równolegle z programem taki edytor formuje (w pamięci komputera) swoje drzewo składniowe, z którego mogą korzystać inne narzędzia.

4. Pojęcie technologii komputerowej do tworzenia oprogramowania i jej zadania.

Istnieją pewne trudności w opracowaniu rygorystycznej definicji technologii CASE (technologia komputerowa do rozwoju PS).

CASE to skrót od Computer-Aided Software Engineering (inżynieria programowania wspomaganego komputerowo). Ale bez pomocy (wsparcia) komputera PS od dawna nie były rozwijane (przynajmniej jest używany kompilator).

W rzeczywistości pojęcie to nabiera węższego (specjalnego) znaczenia, które stopniowo się zaciera (jak to zawsze bywa, gdy pojęcie nie ma ścisłej definicji).

Początkowo CASE rozumiano jako inżynierię wczesnych etapów tworzenia oprogramowania (definicja wymagań, opracowanie zewnętrznego opisu i architektury PS) z wykorzystaniem wsparcia oprogramowania (narzędzia programowe).

Obecnie CASE można również rozumieć jako inżynierię całego cyklu życia oprogramowania (w tym jego utrzymania), ale tylko w przypadku, gdy programy są częściowo lub całkowicie generowane zgodnie z dokumentami uzyskanymi na wskazanych wczesnych etapach rozwoju. W tym przypadku technologia CASE zasadniczo różni się od ręcznej (tradycyjnej) technologii tworzenia PS: zmieniła się nie tylko treść procesy technologiczne ale także ich całość.

Obecnie można scharakteryzować technologię komputerową rozwoju PS

Korzystanie ze wsparcia oprogramowania w celu opracowania wymagań graficznych i specyfikacje graficzne PS,

Automatyczne generowanie programów w dowolnym języku programowania lub w kodzie maszynowym (częściowo lub całkowicie),

Wsparcie oprogramowania do prototypowania.

Mówi się również, że technologia komputerowa do rozwoju PS jest „bez papieru”, tj. przeznaczony do komputerowej reprezentacji dokumentów programowych.

Jednak dość trudno jest śmiało odróżnić technologię ręcznego tworzenia oprogramowania od technologii komputerowej opartej na tych cechach. Oznacza to, że nie zostały wyróżnione najważniejsze w technice komputerowej.

Naszym zdaniem główna różnica między technologią ręcznego tworzenia oprogramowania a technologią komputerową jest następująca.

Technologia ręczna koncentruje się na opracowywaniu dokumentów, które są jednakowo rozumiane przez różnych twórców PS, podczas gdy technologia komputerowa koncentruje się na zapewnianiu semantycznego zrozumienia (interpretacji) dokumentów z obsługą oprogramowania dla technologii komputerowej.

Komputerowa reprezentacja dokumentów nie oznacza jeszcze takiego ich rozumienia. Natomiast semantyczne rozumienie dokumentów pozwala na automatyczne generowanie programów przez obsługę oprogramowania, a konieczność zapewnienia takiego rozumienia powoduje, że pożądane są różne formy graficzne dokumentów wejściowych. To właśnie umożliwia racjonalną zmianę samego zestawu procesów technologicznych dla rozwoju i utrzymania oprogramowania.

Z omówienia istoty technologii komputerowej można zrozumieć związane z tym zmiany w cyklu życia oprogramowania.

Jeśli podczas korzystania z technologii ręcznej główne wysiłki w zakresie rozwoju PS podjęto na etapach rzeczywistego programowania (kodowania) i debugowania (testowania), to w przypadku korzystania z technologii komputerowej było to na wczesnych etapach opracowywania PS (określanie wymagań i specyfikacja funkcjonalna).

Jednocześnie istotnie zmienił się charakter dokumentacji: zamiast całego łańcucha nieformalnych dokumentów skoncentrowanych na przekazywaniu informacji od klienta (użytkownika) do różnych kategorii programistów, powstaje prototyp PS obsługujący wybranego użytkownika interfejs i formalne specyfikacje funkcjonalne wystarczające do automatycznej syntezy (generacji) programów PS (lub przynajmniej znacznej ich części).

Jednocześnie stało się możliwe automatyczne generowanie części dokumentacji potrzebnej programistom i użytkownikom. Zamiast ręcznego programowania (kodowania) - automatyczne generowanie programów, co sprawia, że ​​samodzielne debugowanie i testowanie programów nie jest konieczne: zamiast tego dodaje się raczej głęboką automatyczną kontrolę semantyczną dokumentacji.

Charakter konserwacji PS również ulega znacznym zmianom: wszystkie zmiany są wprowadzane przez opiekuna tylko do specyfikacji (w tym prototypu), inne zmiany w PS są wprowadzane automatycznie.

Powiedziawszy to Cykl życia PS z wykorzystaniem technologii komputerowej można przedstawić na poniższym schemacie (rys. 16.3).


Ryż. 16.3. Cykl życia narzędzia programowego wykorzystującego technologię komputerową.

prototypowanie umożliwia zastąpienie pośredniego opisu interakcji między użytkownikiem a PS technologią ręczną (przy określaniu wymagań dla PS i opisu zewnętrznego PS) przez bezpośredni wybór przez użytkownika metody i stylu tej interakcji z mocowaniem wszystkie niezbędne szczegóły.

Zasadniczo na tym etapie powstaje dokładny opis interfejs użytkownika zrozumiała obsługa oprogramowania technologii komputerowej i przy odpowiedzialnym udziale użytkownika: programista pokazuje użytkownikowi na monitorze różne opcje, a użytkownik wybiera opcje akceptowalne dla niego, użytkownik z pomocą programisty wprowadza oznaczenia przetwarzanych przez siebie obiektów informacyjnych i dokonywanych na nich operacji, wybiera sposób dostępu do nich i łączy je z różnymi oknami, menu, klawiaturami wirtualnymi itp.

Wszystko to opiera się na obecności w oprogramowaniu obsługi technologii komputerowej konfigurowalnej powłoki z obszerna biblioteka puste miejsca różnych fragmentów i szczegółów ekranu. W wyniku tych działań określana jest powłoka PS - górny poziom kontroli PS. Takie prototypowanie wydaje się być Najlepszym sposobem pokonanie bariery między użytkownikiem a deweloperem.

Opracowanie specyfikacji rozkłada się na kilka różnych procesów.

Jeśli wykluczymy Pierwszy etap opracowanie specyfikacji (definicja wymagań), wówczas w procesach tych wykorzystywane są metody, które prowadzą do powstania sformalizowanych dokumentów, tj. wykorzystywane są sformalizowane języki specyfikacji. Jednocześnie szeroko stosowane są graficzne metody specyfikacji, prowadzące do powstania różne schematy oraz diagramy, które dość formalnie definiują strukturę środowiska informacyjnego i strukturę zarządzania PS. Do takich struktur dołączane są fragmenty danych i opisy programów, prezentowane w algebraicznych językach specyfikacji (na przykład z wykorzystaniem semantyki operacyjnej lub aksjomatycznej) lub w językach specyfikacji logicznej (oparte na logicznym podejściu do specyfikacji programu). Takie specyfikacje umożliwiają generowanie programów w dużej mierze lub całkowicie automatycznie.

Automatyczna kontrola specyfikacji

Systemy narzędziowe technologii programowania.

Do komputerowego wsparcia rozwoju i utrzymania dużych systemów oprogramowania o długim cyklu życia wykorzystywane są systemy narzędziowe technologii programowania.

System narzędzi technologii programowania to zintegrowany zestaw narzędzi programowych i sprzętowych, który obsługuje wszystkie procesy tworzenia i utrzymywania dużych systemów oprogramowania przez cały cykl życia w ramach określonej technologii.

Z definicji tej wynikają następujące główne cechy tej klasy obsługi komputera: ·

złożoność, ·

postaw na rozwój zespołu,

pewność technologiczna,

integracja.

Złożoność obsługi komputera oznacza, że ​​obejmuje ona wszystkie procesy rozwoju i utrzymania oprogramowania, a produkty tych procesów są skoordynowane i wzajemnie połączone. Dzięki temu system jest w stanie zapewnić co najmniej kontrolę nad kompletnością (kompletnością) tworzonej dokumentacji (w tym zestawu programów) oraz spójnością jej zmiany (wersjonowanie). Fakt, że obsługa komputera obejmuje również fazę obsługi PS oznacza, że ​​system musi obsługiwać jednocześnie pracę z kilkoma wariantami PS, zorientowanymi na różne warunki użytkowania PS i różne urządzenia z nim związane, tj. powinien zapewniać zarządzanie konfiguracją PS.

Koncentracja na wspólnym rozwoju oznacza, że ​​system musi wspierać zarządzanie (zarządzanie) pracą zespołu i dla różnych członków tego zespołu zapewniać różne prawa dostępu do różnych fragmentów produkcji procesów technologicznych.

Pewność technologiczna pomoc komputerowa oznacza, że ​​jego złożoność jest ograniczona do ram konkretnej technologii programowania. Systemy narzędziowe technologii programowania są wystarczająco duże i drogie, aby w jakiś sposób uzasadnić przeciążenie ich narzędzi. Dlatego zestaw narzędzi w nich zawartych jest starannie dobierany z uwzględnieniem potrzeb tematu, używanych języków i wybranej technologii programowania.

Zintegrowana obsługa komputera to:

integracja danych,

Integracja interfejsu użytkownika

Integracja przez akcje (funkcje),

Integracja danych oznacza, że ​​narzędzia działają zgodnie z ustalonym schematem informacyjnym (modelem) systemu, który określa zależność różnych fragmentów danych (obiektów informacyjnych) wykorzystywanych w systemie od siebie.

Integracja interfejsu użytkownika oznacza, że ​​wszystkie narzędzia są połączone jednym interfejsem użytkownika.

Integracja działania oznacza, że ​​po pierwsze, w systemie znajdują się części wspólne wszystkich narzędzi, a po drugie, niektóre narzędzia, wykonując swoje funkcje, mają dostęp do innych narzędzi.

Biorąc pod uwagę omawiane właściwości systemów instrumentalnych technologii programowania, możemy wyróżnić t ri ich główne składniki

rozwojowa baza danych (repozytorium),

zestaw narzędzi, ·

interfejsy.

Repozytorium – centralny komputerowy magazyn informacji związanych z projektem (rozwojem) PS przez cały cykl jego życia.

Toolkit - zestaw narzędzi, który definiuje możliwości, jakie system zapewnia zespołowi programistycznemu. Zwykle zestaw ten jest otwarty: oprócz zestawu minimalnego (narzędzia wbudowane), zawiera środki jego rozszerzenia (narzędzia importowane) oraz ustrukturyzowany, składający się z jakiejś wspólnej części wszystkich narzędzi (rdzeń) i strukturalny (czasami hierarchicznie powiązane) klasy narzędzi.

Interfejsy są podzielone na

1) niestandardowe

2) systemowe.

Interfejs użytkownika zapewnia programistom dostęp do narzędzi (języka poleceń itp.), implementowanych przez powłokę systemu.

Interfejsy systemowe zapewniają interakcję między narzędziami i ich wspólnymi częściami. Interfejsy systemu wyróżniają się jako elementy architektury ze względu na otwartość systemu - muszą być wykorzystywane przez nowe (importowane) narzędzia zawarte w systemie.

Najbardziej ogólną architekturę systemów instrumentalnych technologii programowania pokazano na rys. 16.4.

Wyróżnić dwie klasy systemy narzędziowe technologii programowania:

1) systemy narzędzi wsparcia projektu i

2) systemy instrumentalne zależne od języka.

System narzędzi wsparcia projektu- to otwarty system, zdolny do wspierania rozwoju PS w różnych językach programowania po jego odpowiednim rozszerzeniu o narzędzia programowe zorientowane na wybrany język. Taki system zawiera rdzeń (zapewniający w szczególności dostęp do repozytorium), zestaw narzędzi wspomagających zarządzanie (zarządzanie) rozwojem PS, niezależne od języka programowania narzędzia wspierające rozwój PS (tekstowe i graficzne). edytory, generatory raportów itp.), a także narzędzia do rozbudowy systemu.

System narzędzi zależny od języka- jest to system wspierający rozwój PS w dowolnym języku programowania, który zasadniczo wykorzystuje specyfikę tego języka w organizacji swojej pracy. Ta specyfika może wpływać zarówno na możliwości jądra (w tym na strukturę repozytorium), jak i na wymagania dotyczące powłoki i narzędzi.

Przykładem takiego systemu jest Ada Programming Support Environment (APSE).


Ryż. 16.4. Ogólna architektura systemów instrumentalnych technologii programowania.

Zidentyfikowano i scharakteryzowano główne etapy tworzenia oprogramowania. Dla każdego etapu podano i opisano środki, które można zastosować do osiągnięcia celów etapu.

1. Terminologia

Przed przystąpieniem do rozważań nad narzędziami programistycznymi, które można wykorzystać do tworzenia programów, konieczne jest określenie podstawowych pojęć i terminów, które będą używane w artykule. Zgodnie z tematyką artykułu, podstawowym dla nas terminem jest oczywiście „narzędzia programistyczne”. W odniesieniu do dziedziny tworzenia oprogramowania definicja ta może brzmieć następująco:

Narzędzia do tworzenia oprogramowania- zestaw technik, metod, technik, a także zestaw programów narzędziowych (kompilatory, biblioteki aplikacji/systemu itp.) wykorzystywanych przez programistę do stworzenia kodu programu Programu spełniającego określone wymagania.

Z uwzględnieniem ta definicja termin „Rozwój programu” brzmiałby tak:

Rozwój oprogramowaniatrudny proces, którego głównym celem jest stworzenie i utrzymanie kodu programu, który zapewnia wymagany poziom niezawodności i jakości. Aby osiągnąć główny cel tworzenia oprogramowania, wykorzystywane są narzędzia programistyczne.

2. Podstawowe narzędzia wykorzystywane na różnych etapach tworzenia programu

W zależności od obszaru tematycznego i zadań przydzielonych programistom, tworzenie oprogramowania może być dość złożonym procesem krok po kroku, który wymaga dużej liczby uczestników i różnorodnych narzędzi. Aby określić, kiedy iw jakich przypadkach, jakie narzędzia są używane, wyróżniamy główne etapy tworzenia oprogramowania. Dla problematyki rozpatrywanego zagadnienia najbardziej interesujące są następujące etapy rozwoju:

  1. Projekt aplikacji.
  2. Implementacja kodu aplikacji.
  3. Testowanie aplikacji.

Tutaj celowo pomijane są etapy związane z pisaniem zadania technicznego, planowaniem terminów, budżetem itp. Powodem tego jest to, że na tych etapach, z rzadkimi wyjątkami, praktycznie nie są używane żadne konkretne narzędzia programistyczne.

2.1 Narzędzia do projektowania aplikacji

Na etapie projektowania aplikacji, w zależności od złożoności tworzonego oprogramowania, która bezpośrednio zależy od wymagań, wykonywane są następujące zadania projektowe:

  1. Analiza wymagań.
  2. Opracowanie architektury oprogramowania przyszłości.
  3. Rozwój urządzeń głównych komponentów oprogramowania.
  4. Opracowanie układów interfejsu użytkownika.

Wynikiem projektu jest zwykle dokument projektu oprogramowania lub dokument architektury oprogramowania. Zadanie „Analiza wymagań” realizowane jest zwykle metodami systemologii (analiza i synteza), z uwzględnieniem doświadczenia eksperckiego projektanta. Wynikiem analizy jest zwykle sensowny lub sformalizowany model procesu funkcjonowania programu. W zależności od złożoności procesu, do budowy tych modeli można zastosować różne metody i narzędzia pomocnicze. W ogólnym przypadku do opisu modeli stosuje się zwykle następujące zapisy (w nawiasach podano): oprogramowanie, które można wykorzystać do uzyskania modeli):

  • BPMN (Vision 2003 + BPMN, AcuaLogic BPMN, Eclipse, Sybase Power Designer).
  • Schematy blokowe (Vision 2003 i wiele innych).
  • Diagramy ER (Visio 2003, ERWin, Sybase Power Designer i wiele innych).
  • Diagramy UML (Sybase Power Designer, Rational Rose i wiele innych).
  • układy, modele mat itp.

Czasami po rozwinięciu oprogramowanie przeznaczony do automatyzacji wszelkich złożonych czynności, zadanie analizy (modelowania) jest wykonywane przed kompilacją wymagania techniczne do przyszłego produktu. Wyniki analizy pozwalają na sformułowanie uzasadnionych wymagań dla określonej funkcjonalności opracowywanego programu i obliczenie realnych korzyści z wprowadzenia opracowanego produktu. Co więcej, okazuje się inaczej, że na podstawie wyników analizy początkowe cele i zadania automatyzacji zmieniają się diametralnie lub na podstawie wyników oceny skuteczności rozwoju i wdrożenia podejmuje się decyzję o nierozwijaniu produktu.

Zadaniem drugim i trzecim z powyższej listy zadań jest opracowanie modelu (opisu) przyszłego systemu zrozumiałego dla kodera – osoby piszącej kod programu. Tutaj duże znaczenie ma to, jaki paradygmat programowania (paradygmat programowania należy również traktować jako narzędzie programistyczne) musi być używany podczas pisania programu. Jako przykład głównych paradygmatów należy podać:

  • Programowanie funkcjonalne;
  • Programowanie strukturalne;
  • programowanie imperatywne;
  • programowanie logiczne;
  • Programowanie obiektowe (prototypowanie; używanie klas; programowanie podmiotowe).

Jego wybór w dużej mierze zależy od utrwalonych nawyków, doświadczenia, tradycji, narzędzi, którymi dysponuje zespół programistów. Czasami opracowywane oprogramowanie jest tak złożone, że różne paradygmaty są używane do rozwiązywania wielu problemów w różnych komponentach systemu. Należy zauważyć, że wybór takiego lub innego podejścia nakłada ograniczenia na środki, które zostaną użyte na etapie wdrażania kodu programu. Rezultatem rozwiązania tego problemu, w zależności od podejścia, może być (w nawiasach podano narzędzia programowe, które można wykorzystać do ich uzyskania):

  • diagram klas itp. (Ration Rose, Sybase PowerDesigner i wiele innych).
  • opis modułów struktury i ich interfejsu programistycznego (np. Sybase PowerDesigner i wiele innych).

Opracowanie układów interfejsu użytkownika implikuje stworzenie wizualnej reprezentacji tego, jak będą wyglądać określone formy wideo, okna w opracowywanej aplikacji. Rozwiązanie tego problemu opiera się na wykorzystaniu narzędzi designerskich, które nie będą brane pod uwagę w tym artykule.

2.2 Sposoby wdrażania kodu programu

Na etapie wdrażania kodu programu kodowanie poszczególnych elementów programu odbywa się zgodnie z opracowanym projektem technicznym. Narzędzia, które można zastosować, zależą w dużej mierze od podejść zastosowanych podczas projektowania, a ponadto od stopnia zaawansowania projektu technicznego. Niemniej jednak wśród narzędzi do tworzenia kodu programu należy wyróżnić następujące główne typy narzędzi (przykłady narzędzi podano w nawiasach): metody i techniki algorytmów.

  • języki programowania (C++, C, Java, C#, php i wiele innych);
  • narzędzia interfejsu użytkownika (MFC, WPF, QT, GTK+ itp.)
  • narzędzia do wersjonowania kodu programu (cvs, svn, VSS).
  • sposoby uzyskania kodu wykonywalnego (MS studio wizualne, gcc i wiele innych).
  • narzędzia do zarządzania bazami danych (Oracle, MS SQL, FireBird, MySQL i wiele innych).
  • debuggery (MS Visual Studio, gdb itp.).

2.3 Narzędzia do testowania programów

Głównymi zadaniami testowania jest weryfikacja, czy funkcjonalność opracowanego programu spełnia początkowe wymagania, a także identyfikacja błędów, które jawnie lub niejawnie manifestują się podczas działania programu. Kluczowe czynności związane z testowaniem obejmują:

  • Testowanie awarii i odzyskiwania.
  • Testy funkcjonalności.
  • Testy bezpieczeństwa.
  • Testowanie interakcji.
  • Testowanie procesu instalacji.
  • Test użyteczności.
  • testowanie konfiguracji.
  • Test naprężeń.

Wśród głównych rodzajów funduszy, które można wykorzystać do wykonania przydzielonej pracy, są:

  • narzędzia do analizy kodu, profilowania (Code Wizard - ParaSoft, Purify - Rational Softawre. Test Coverage - Semantic, itp.);
  • narzędzia do testowania funkcjonalności (TEST - Parasoft, QACenter - Compuware, Borland SilkTest itp.);
  • narzędzia do testowania wydajności (QACenter Performance - Compuware itp.).

3. Wniosek

Proces tworzenia programów jest procesem złożonym, a to, jakie narzędzia należy użyć, w dużej mierze zależy od zadań przydzielonych programistom. Niezależnie od zadań rozwojowych narzędzia nie mogą ograniczać się tylko do zestawu niektórych narzędzi, konieczne jest również uwzględnienie metod, technik, podejść i wszystkiego, co służy do stworzenia programu spełniającego określone wymagania.

Również zobaczyć :

Tworzenie oprogramowania odbywa się za pomocą różnych narzędzi, które zapewniają:

    oryginalne programowanie;

    korzystanie z pakietów oprogramowania aplikacyjnego - typowe programy realizujące funkcje przetwarzania danych;

    automatyzacja głównych etapów tworzenia programu.

Najbardziej tradycyjnymi narzędziami programistycznymi są języki i systemy programowania. Języki programowania dzieli się zwykle na języki maszynowe i algorytmiczne.

Maszyna języki zawierają instrukcje maszynowe odpowiadające najprostszym operacjom przetwarzania. Instrukcje maszynowe są powiązane z określoną klasą komputerów i/lub systemów operacyjnych.

Algorytmiczne języki programowania opisują algorytm problemu, zapewniają widoczność algorytmu i wygodę obsługi programu. Języki algorytmiczne dzielą się na języki maszynowe, proceduralne i problemowe.

maszyna-zorientowany Języki programowania są językami niskiego poziomu, ponieważ uwzględniają architekturę i rodzaj komputerów. Programowanie w takich językach jest pracochłonne, ale programy są optymalne pod względem wymaganych zasobów komputerowych. Przykładami języków programowania zorientowanych maszynowo są różne asemblery 1 (Macro Assembler, Turbo Assembler itp.) pewnej klasy komputerów.

proceduralny-zorientowany języki programowania takie jak Visual Basic, Pascal, C++, Ada, Cobol, PL1 itp. umożliwiają opisanie zestawu procedur przetwarzania i implementację typowych struktur obliczeniowych:

1. Sekwencje bloków (instrukcje): 1, 2, 3, 4 itd.

Wszystkie bloki (instrukcje) są wykonywane w ścisłej kolejności (rys. 5 A)

2. Przejście warunkowe (rys.5 B) – sprawdzenie danego warunku (2) i wybór akcji alternatywnej: jeśli warunek jest spełniony – 3, w przeciwnym razie – 4. Następnie kontrola jest przekazywana do bloku 5.

3. Wybór alternatywny (Rys.5 C) - sprawdzenie warunku (2), jeśli warunek jest spełniony - wykonanie czynności 3, w przeciwnym razie sprawdzenie warunku (4); jeśli warunek jest spełniony, wykonywane jest działanie 5 i tak dalej. Jeżeli żaden z warunków nie został spełniony lub nie wykonano akcji (3 lub 5 itd.), kontrola jest przekazywana do bloku 6.

A B C

Rysunek 5

4. Proces cykliczny– pętla while (rys. 6A). Pętla jest powtarzana do momentu spełnienia warunku (2) - blok 3. Jeśli warunek (2) jest fałszywy, przenieś sterowanie do bloku 4.

5. Proces cykliczny – cykl „przed” (rys. 6B). Pętla jest wykonywana co najmniej raz - blok 2. Po sprawdzeniu warunku (3), jeśli jest spełniony, blok (2) jest wykonywany, w przeciwnym razie sterowanie przechodzi do bloku 4.

Rysunek 6

Języki programowania cel typ używany w kod programu klasy obiektów lub procedury zdarzeń są również elementami programowania strukturalnego.

problematyczny-zorientowany języki programowania - relacyjne języki zapytań wysokiego poziomu, generatory raportów itp. pozwalają zidentyfikować problem, informacje wejściowe i wyjściowe, bez określania konkretnych procedur przetwarzania.

Pakiety oprogramowania aplikacyjnego (APP) dzielą się na klasy:

    SPP zorientowane na problem - zapewniają rozwiązanie problemów z określonego obszaru tematycznego;

    SPP zorientowane na metody - wspierają określony typ modelu i metody rozwiązywania problemów, są stosowane niezależnie od tematyki;

    Oprogramowanie użytkowe ogólnego przeznaczenia - zapewnia obsługę technologii informatycznych (prace tekstowe, graficzne, obliczenia standardowe itp.).

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!