Inżynieria oprogramowania: Różnice pomiędzy wersjami

Z Encyklopedia Zarządzania
m (Infobox update)
 
(LinkTitles.)
Linia 16: Linia 16:




'''Inżynieria oprogramowania''' jest to wiedza techniczna obejmująca wszystkie fazy życia oprogramowania – projektowania, implementacji oraz konserwacji, której zastosowanie prowadzi do stworzenia gotowego produktu, czyli oprogramowania wysokiej jakości.
'''Inżynieria oprogramowania''' jest to [[wiedza]] techniczna obejmująca wszystkie fazy życia oprogramowania – projektowania, implementacji oraz konserwacji, której zastosowanie prowadzi do stworzenia gotowego produktu, czyli oprogramowania wysokiej jakości.
Oprogramowanie traktowane jako produkt ocenia się według kryteriów zbliżonych do tych stosowanych dla innych wyrobów, a więc cechować się ono powinno:
Oprogramowanie traktowane jako [[produkt]] ocenia się według kryteriów zbliżonych do tych stosowanych dla innych wyrobów, a więc cechować się ono powinno:
* niezawodnością,
* niezawodnością,
* zgodnością z wymaganiami użytkownika,
* zgodnością z wymaganiami użytkownika,
Linia 29: Linia 29:


==Modele cyklu życia oprogramowania==
==Modele cyklu życia oprogramowania==
Produkcja oprogramowania jest procesem, który dla zapewnienia dobrego rozplanowania oraz możliwości monitorowania działań, realizowany jest w pewien systematyczny sposób. Modele cyklów określają kolejne fazy, w których wykonywane są określone czynności, a także precyzują kolejność ich wykonywania.
[[Produkcja]] oprogramowania jest procesem, który dla zapewnienia dobrego rozplanowania oraz możliwości monitorowania działań, realizowany jest w pewien systematyczny sposób. [[Modele]] cyklów określają kolejne fazy, w których wykonywane są określone czynności, a także precyzują kolejność ich wykonywania.
===Model kaskadowy===
===Model kaskadowy===
<google>t</google>
<google>t</google>


Model ten jest analogiczny do modelu prowadzenia przedsięwzięć w innych gałęziach inżynierii, posiada fazy:
[[Model]] ten jest analogiczny do modelu prowadzenia przedsięwzięć w innych gałęziach inżynierii, posiada fazy:
* określenia wymagań – zleceniodawca określa cele, cechy szczególne oraz wymagania wobec systemu,
* określenia wymagań – zleceniodawca określa [[cele]], cechy szczególne oraz wymagania wobec systemu,
* projektowania – faza, w której zostaje stworzony projekt systemu odpowiedni do ustalonych wcześniej wymagań,
* projektowania – faza, w której zostaje stworzony [[projekt]] systemu odpowiedni do ustalonych wcześniej wymagań,
* implementacji – faza, w której poszczególne składowe systemu są implementowane w środowisku programistycznym i testowane,
* implementacji – faza, w której poszczególne składowe systemu są implementowane w środowisku programistycznym i testowane,
* testowania – integracja wszystkich modułów systemu oraz testowanie całego systemu,
* testowania – integracja wszystkich modułów systemu oraz testowanie całego systemu,
* konserwacji – system jest używany przez zleceniodawcę, natomiast producent dokonuje modyfikacji oprogramowania, na które może składać się rozszerzanie funkcjonalności, usuwanie błędów.
* konserwacji – [[system]] jest używany przez zleceniodawcę, natomiast [[producent]] dokonuje modyfikacji oprogramowania, na które może składać się rozszerzanie funkcjonalności, usuwanie błędów.
Model ten jest procesem liniowym, przedstawia cykl życia oprogramowania jako kolejne fazy następujące po sobie. Dodatkowo można wyróżnić fazy nie dotyczące bezpośrednio procesu tworzenia oprogramowania, takie jak:
Model ten jest procesem liniowym, przedstawia [[cykl]] życia oprogramowania jako kolejne fazy następujące po sobie. Dodatkowo można wyróżnić fazy nie dotyczące bezpośrednio procesu tworzenia oprogramowania, takie jak:
* faza strategiczna występująca przed podjęciem formalnych decyzji, w której podejmowane są decyzje rzutujące na dalsze etapy pracy,
* faza strategiczna występująca przed podjęciem formalnych decyzji, w której podejmowane są decyzje rzutujące na dalsze etapy pracy,
* faza analizy – tworzenie modelu systemu
* faza analizy – tworzenie modelu systemu
* faza dokumentacji, w której opracowywana jest dokumentacja techniczna oprogramowania, najczęściej przebiega ona równolegle z pracami nad systemem,
* faza dokumentacji, w której opracowywana jest [[dokumentacja]] techniczna oprogramowania, najczęściej przebiega ona równolegle z pracami nad systemem,
* faza instalacji – instalacja gotowego systemu użytkownikowi.
* faza instalacji – instalacja gotowego systemu użytkownikowi.
===Prototypowanie===
===Prototypowanie===
Linia 56: Linia 56:
* wykrycie braków w specyfikacji wymagań.”
* wykrycie braków w specyfikacji wymagań.”
===Realizacja przyrostowa===
===Realizacja przyrostowa===
Początkowe fazy dotyczące wymagań wyglądają tak samo jak w modelu kaskadowym, następnie następuje faza projektowania wstępnego, czyli ogólnego szkieletu całego systemu. Kolejnym krokiem jest proces iteracyjny składający się z:
Początkowe fazy dotyczące wymagań wyglądają tak samo jak w modelu kaskadowym, następnie następuje faza projektowania wstępnego, czyli ogólnego szkieletu całego systemu. Kolejnym krokiem jest [[proces]] iteracyjny składający się z:
* fazy wyboru modułu systemu realizującego podzbiór funkcji,
* fazy wyboru modułu systemu realizującego podzbiór funkcji,
* fazy projektowania, implementacji oraz testów, tak jak w modelu kaskadowym,
* fazy projektowania, implementacji oraz testów, tak jak w modelu kaskadowym,
* fazy dostarczenia oraz instalacji modułu w systemie.
* fazy dostarczenia oraz instalacji modułu w systemie.
Postępowanie takie pozwala na częstsze kontakty z klientem, daje możliwość wykorzystania przez niego częściowej funkcjonalności, bez zakończenia całego procesu produkcji. Wiąże się również z koniecznością pracy nad wyodrębnionymi modułami systemu, które zwykle zależne są od reszty systemu. Implementacja takich modułów bez możliwości przetestowania ich współpracy może uniemożliwić wykrycie błędów.
Postępowanie takie pozwala na częstsze kontakty z klientem, daje możliwość wykorzystania przez niego częściowej funkcjonalności, bez zakończenia całego procesu produkcji. Wiąże się również z koniecznością pracy nad wyodrębnionymi modułami systemu, które zwykle zależne są od reszty systemu. [[Implementacja]] takich modułów bez możliwości przetestowania ich współpracy może uniemożliwić wykrycie błędów.
===Montaż z gotowych elementów===
===Montaż z gotowych elementów===
Model ten charakteryzuje się wykorzystywaniem podobieństw między tworzonymi i gotowymi, wykonanymi wcześniej systemami. Takie podejście pozwala na redukcję nakładów poprzez używanie gotowych elementów na różnych etapach produkcji, na przykład wykorzystywanie gotowych bibliotek, pełnych programów wykonujących pożądane funkcje w systemie.
Model ten charakteryzuje się wykorzystywaniem podobieństw między tworzonymi i gotowymi, wykonanymi wcześniej systemami. Takie podejście pozwala na redukcję nakładów poprzez używanie gotowych elementów na różnych etapach produkcji, na przykład wykorzystywanie gotowych bibliotek, pełnych programów wykonujących pożą[[dane]] funkcje w systemie.
Zalety takiego rozwiązania to:
Zalety takiego rozwiązania to:
*”Wysoka niezawodność. Gotowe elementy są z reguły dobrze przetestowane, ich niezawodność jest więc większa niż nowo tworzonych elementów.
*”Wysoka [[niezawodność]]. Gotowe elementy są z reguły dobrze przetestowane, ich niezawodność jest więc większa niż nowo tworzonych elementów.
* Zmniejszenie ryzyka.
* Zmniejszenie ryzyka.
* Efektywne wykorzystanie specjalistów.
* Efektywne wykorzystanie specjalistów.
* Narzucenie standardów. Gotowe elementy stworzone z zachowaniem pewnych standardów narzucają zachowanie tych standardów w kolejnych przedsięwzięciach.
* Narzucenie standardów. Gotowe elementy stworzone z zachowaniem pewnych standardów narzucają zachowanie tych standardów w kolejnych przedsięwzięciach.
* Potencjalna redukcja kosztów. Koszt gotowego elementu jest z reguły znacznie mniejszy niż koszt jego pierwotnego opracowania. Pewne czynniki, które mogą jednak wpływać na wzrost kosztów wymienione są poniżej.”
* Potencjalna redukcja kosztów. [[Koszt]] gotowego elementu jest z reguły znacznie mniejszy niż koszt jego pierwotnego opracowania. Pewne czynniki, które mogą jednak wpływać na wzrost kosztów wymienione są poniżej.”
Natomiast wady modelu to:
Natomiast wady modelu to:
*”Dodatkowy koszt przygotowanie elementów do ponownego wykorzystania. Fragmenty systemu muszą być z reguły w pewien sposób przystosowane do tego celu. Jest to pewien dodatkowy nakład, który należy ponieść w trakcie realizacji przedsięwzięcia bez gwarancji, że zwróci się on w przyszłości.
*”Dodatkowy koszt przygotowanie elementów do ponownego wykorzystania. Fragmenty systemu muszą być z reguły w pewien sposób przystosowane do tego celu. Jest to pewien dodatkowy [[nakład]], który należy ponieść w trakcie realizacji przedsięwzięcia bez gwarancji, że zwróci się on w przyszłości.
* Ryzyko uzależnienia się od dostawcy elementów. Dostawca może zaniechać prac nad biblioteką, nie dostosować jej do nowych wersji sprzętu i oprogramowania systemowego.
* [[Ryzyko]] uzależnienia się od dostawcy elementów. [[Dostawca]] może zaniechać prac nad biblioteką, nie dostosować jej do nowych wersji sprzętu i oprogramowania systemowego.
* Niedostatki narzędzi wspomagających ten rodzaj pracy.”
* Niedostatki narzędzi wspomagających ten rodzaj pracy.”
===Model spiralny===
===Model spiralny===
Najbardziej ogólny model cyklu życia oprogramowania, zaproponowany przez Boehma (1988).Składa się z czterech faz realizowanych w kolejnych fazach: analiza ryzyka, konstrukcja (model kaskadowy), atestowanie, planowanie.
Najbardziej ogólny model cyklu życia oprogramowania, zaproponowany przez Boehma (1988).Składa się z czterech faz realizowanych w kolejnych fazach: [[analiza ryzyka]], konstrukcja (model kaskadowy), atestowanie, [[planowanie]].
Analiza ryzyka- ogólne rozważania budowy nowej wersji systemu, budowa prototypów
Analiza ryzyka- ogólne rozważania budowy nowej wersji systemu, budowa prototypów
Konstrukcja- (model kaskadowy) konstrukcja kolejnej wersji systemu  
Konstrukcja- (model kaskadowy) konstrukcja kolejnej wersji systemu  
Atestowanie- w tej fazie oceniana jest oceniana kolejna wersja systemu przez klienta, w przypadku kiedy ocena nie jest pozytywna, rozpoczynany jest kolejny cykl
Atestowanie- w tej fazie oceniana jest oceniana kolejna wersja systemu przez klienta, w przypadku kiedy [[ocena]] nie jest pozytywna, rozpoczynany jest kolejny cykl
Planowanie- ustalenie celów produkcji kolejnych systemów (Jaszkiewicz A. (1997) s. 15-27)
Planowanie- ustalenie celów produkcji kolejnych systemów (Jaszkiewicz A. (1997) s. 15-27)
===Formalne transformacje===
===Formalne transformacje===
Linia 84: Linia 84:


==Wspomaganie procesu definiowania zadań==
==Wspomaganie procesu definiowania zadań==
Wzrost wytwarzanego oprogramowania komputerowego zmusił firmy informatyczne do zastosowania wytwórczych procesów oprogramowania (ang. SDP, software development process).Przyczyniło się to do: zredukowania problemu przekraczania budżetu, łatwiejszego zarządzania inwestycjami, pozwoliło na dotrzymanie terminów. Szkielet SDP, który posiada określoną strukturę, plan oraz kontroluje wykonanie zadań jest tzw. metodyką wytwarzania oprogramowania (SDM). Zespoły informatyczne czy też projekty mogą wymagać zastosowania innej SDM. Opracowano metodyki, które można użyć na potrzeby każdego projektu. Wyróżnić można metodyki: Rational Unified Process, Agile, Scrum, Extreme Programming. Ze względu na oczekiwania twórców systemów informatycznych została opracowana metodyka Open Unified Process (OpenUP), zawierająca praktyki pochodzące z RUP, jak i z Agile.  
Wzrost wytwarzanego oprogramowania komputerowego zmusił firmy informatyczne do zastosowania wytwórczych procesów oprogramowania (ang. SDP, software development process).Przyczyniło się to do: zredukowania problemu przekraczania budżetu, łatwiejszego zarządzania inwestycjami, pozwoliło na dotrzymanie terminów. Szkielet SDP, który posiada określoną strukturę, [[plan]] oraz kontroluje wykonanie zadań jest tzw. metodyką wytwarzania oprogramowania (SDM). Zespoły informatyczne czy też projekty mogą wymagać zastosowania innej SDM. Opracowano metodyki, które można użyć na [[potrzeby]] każdego projektu. Wyróżnić można metodyki: Rational Unified Process, Agile, [[Scrum]], Extreme Programming. Ze względu na oczekiwania twórców systemów informatycznych została opracowana [[metodyka]] Open Unified Process (OpenUP), zawierająca praktyki pochodzące z RUP, jak i z Agile.  


===Metodyka OpenUP===
===Metodyka OpenUP===
Linia 96: Linia 96:
Metodyka OpenUP opisuje trzy poziomy organizacji pracy: poziom osobisty, poziom zespołu oraz poziom odbiorcy systemu.  
Metodyka OpenUP opisuje trzy poziomy organizacji pracy: poziom osobisty, poziom zespołu oraz poziom odbiorcy systemu.  
Poziom osobisty- do członka należy wykonanie mikro przyrostów, reprezentujących wyniki jakie zostały osiągnięte w wyniku kilkugodzinnej czy też kilkudniowej pracy
Poziom osobisty- do członka należy wykonanie mikro przyrostów, reprezentujących wyniki jakie zostały osiągnięte w wyniku kilkugodzinnej czy też kilkudniowej pracy
Poziom zespołu- zajmuje się kolejnymi interakcjami jakie zostały zaplanowane, w ramach których odbiorca otrzymuje kolejne elementy.
Poziom zespołu- zajmuje się kolejnymi interakcjami jakie zostały zaplanowane, w ramach których [[odbiorca]] otrzymuje kolejne elementy.
Poziom Odbiorcy systemu- jest podzielony na cztery fazy: (rozpoczęcie, opracowanie, wytworzenie, przekazanie).
Poziom Odbiorcy systemu- jest podzielony na cztery fazy: (rozpoczęcie, opracowanie, wytworzenie, przekazanie).
Taki proces wytwórczy pozwala na to aby odbiorca systemu mógł prowadzić nadzór nad finansami, zakresem oraz ryzykiem projektu.(Gratkowski T. 2010, s. 105-107)
Taki proces wytwórczy pozwala na to aby odbiorca systemu mógł prowadzić [[nadzór]] nad finansami, zakresem oraz ryzykiem projektu.(Gratkowski T. 2010, s. 105-107)


===Metodyka CDM Fast Track===
===Metodyka CDM Fast Track===
Linia 109: Linia 109:
* dostarczanie częściowych rozwiązań,
* dostarczanie częściowych rozwiązań,
* podział prac,
* podział prac,
* udział w pracach projektowych użytkowników mogących samodzielnie podejmować ważne decyzje w dziedzinie tworzonego systemu. (Mincer-Daszkiewicz J. (2002) s. 3)
* [[udział]] w pracach projektowych użytkowników mogących samodzielnie podejmować ważne decyzje w dziedzinie tworzonego systemu. (Mincer-Daszkiewicz J. (2002) s. 3)
==Bibliografia==
==Bibliografia==
* Gratkowski T. (2010). [https://repo.pw.edu.pl/docstore/download/WUTe4aa898226bd4933a226494a94f5e2e7/MIS-2010-3.pdf#page=105 ''Wspomaganie procesu definiowania zadań wykonywanych w ramach projektu informatycznego''], Metody Informatyki Stosowanej, (3), 105-109.
* Gratkowski T. (2010). [https://repo.pw.edu.pl/docstore/download/WUTe4aa898226bd4933a226494a94f5e2e7/MIS-2010-3.pdf#page=105 ''Wspomaganie procesu definiowania zadań wykonywanych w ramach projektu informatycznego''], Metody Informatyki Stosowanej, (3), 105-109.
* Grobelny M., Grobelna I. (2010). [http://yadda.icm.edu.pl/yadda/element/bwmeta1.element.baztech-article-BSW4-0086-0011/c/Grobelny.pdf ''Diagramy aktywności języka UML i sieci Petriego w systemach sterowania binarnego-od transformacji do weryfikacji.''], Pomiary Automatyka Kontrola, 56, 1154-1158.
* Grobelny M., Grobelna I. (2010). [http://yadda.icm.edu.pl/yadda/element/bwmeta1.element.baztech-article-BSW4-0086-0011/c/Grobelny.pdf ''Diagramy aktywności języka UML i sieci Petriego w systemach sterowania binarnego-od transformacji do weryfikacji.''], Pomiary [[Automatyka]] [[Kontrola]], 56, 1154-1158.
* Jaszkiewicz A. (1997). ''Inżynieria oprogramowania.'' Helion
* Jaszkiewicz A. (1997). ''Inżynieria oprogramowania.'' Helion
* Mincer-Daszkiewicz J. (2002). [https://www.usos.edu.pl/system/files/pl-kkio-2002-tarnowopodgorne.pdf ''Tworzenie i wdrażanie produkcyjnego oprogramowania w środowisku akademickim.''], IV Krajowa Konferencja Inżynierii Oprogramowania–KKIO, 2002, 299-314.
* Mincer-Daszkiewicz J. (2002). [https://www.usos.edu.pl/system/files/pl-kkio-2002-tarnowopodgorne.pdf ''Tworzenie i wdrażanie produkcyjnego oprogramowania w środowisku akademickim.''], IV Krajowa [[Konferencja]] Inżynierii Oprogramowania–KKIO, 2002, 299-314.


{{a|Karolina Stawowy}}
{{a|Karolina Stawowy}}


[[Kategoria:Informatyka]]
[[Kategoria:Informatyka]]

Wersja z 23:44, 19 maj 2020

Inżynieria oprogramowania
Polecane artykuły


Inżynieria oprogramowania jest to wiedza techniczna obejmująca wszystkie fazy życia oprogramowania – projektowania, implementacji oraz konserwacji, której zastosowanie prowadzi do stworzenia gotowego produktu, czyli oprogramowania wysokiej jakości. Oprogramowanie traktowane jako produkt ocenia się według kryteriów zbliżonych do tych stosowanych dla innych wyrobów, a więc cechować się ono powinno:

  • niezawodnością,
  • zgodnością z wymaganiami użytkownika,
  • efektywne,
  • ergonomiczne,
  • łatwe w konserwacji.

"Od początku istnienia, w ramach inżynierii oprogramowania występowały dwa nurty:

  • nurt formalny, który postuluje jak najszersze stosowanie metod formalnych: formalnych języków specyfikacji, formalnych transformacji, formalnych dowodów poprawności,
  • nurt praktyczny, który opiera się na stosowaniu notacji nie w pełni sformalizowanych, w dużej mierze graficznych, oraz proponuje metody, w których dużą rolę odgrywa wiedza i doświadczenie ludzkie.” (Jaszkiewicz A., 1997, s. 11)

Modele cyklu życia oprogramowania

Produkcja oprogramowania jest procesem, który dla zapewnienia dobrego rozplanowania oraz możliwości monitorowania działań, realizowany jest w pewien systematyczny sposób. Modele cyklów określają kolejne fazy, w których wykonywane są określone czynności, a także precyzują kolejność ich wykonywania.

Model kaskadowy

Model ten jest analogiczny do modelu prowadzenia przedsięwzięć w innych gałęziach inżynierii, posiada fazy:

  • określenia wymagań – zleceniodawca określa cele, cechy szczególne oraz wymagania wobec systemu,
  • projektowania – faza, w której zostaje stworzony projekt systemu odpowiedni do ustalonych wcześniej wymagań,
  • implementacji – faza, w której poszczególne składowe systemu są implementowane w środowisku programistycznym i testowane,
  • testowania – integracja wszystkich modułów systemu oraz testowanie całego systemu,
  • konserwacji – system jest używany przez zleceniodawcę, natomiast producent dokonuje modyfikacji oprogramowania, na które może składać się rozszerzanie funkcjonalności, usuwanie błędów.

Model ten jest procesem liniowym, przedstawia cykl życia oprogramowania jako kolejne fazy następujące po sobie. Dodatkowo można wyróżnić fazy nie dotyczące bezpośrednio procesu tworzenia oprogramowania, takie jak:

  • faza strategiczna występująca przed podjęciem formalnych decyzji, w której podejmowane są decyzje rzutujące na dalsze etapy pracy,
  • faza analizy – tworzenie modelu systemu
  • faza dokumentacji, w której opracowywana jest dokumentacja techniczna oprogramowania, najczęściej przebiega ona równolegle z pracami nad systemem,
  • faza instalacji – instalacja gotowego systemu użytkownikowi.

Prototypowanie

Model prototypowania cechuje się minimalnym ryzykiem spowodowanym złym określeniem wymagań przez zleceniodawcę.

  • ”ogólne określenie wymagań,
  • budowa prototypu,
  • weryfikacja prototypu przez klienta,
  • pełne określenie wymagań,
  • realizacja pełnego systemu zgodnie z modelem kaskadowym.

Głównym celem realizacji prototypu jest lepsze określenie wymagań, czyli:

  • wykrycie nieporozumień pomiędzy klientem a twórcami systemu,
  • wykrycie brakujących funkcji,
  • wykrycie braków w specyfikacji wymagań.”

Realizacja przyrostowa

Początkowe fazy dotyczące wymagań wyglądają tak samo jak w modelu kaskadowym, następnie następuje faza projektowania wstępnego, czyli ogólnego szkieletu całego systemu. Kolejnym krokiem jest proces iteracyjny składający się z:

  • fazy wyboru modułu systemu realizującego podzbiór funkcji,
  • fazy projektowania, implementacji oraz testów, tak jak w modelu kaskadowym,
  • fazy dostarczenia oraz instalacji modułu w systemie.

Postępowanie takie pozwala na częstsze kontakty z klientem, daje możliwość wykorzystania przez niego częściowej funkcjonalności, bez zakończenia całego procesu produkcji. Wiąże się również z koniecznością pracy nad wyodrębnionymi modułami systemu, które zwykle zależne są od reszty systemu. Implementacja takich modułów bez możliwości przetestowania ich współpracy może uniemożliwić wykrycie błędów.

Montaż z gotowych elementów

Model ten charakteryzuje się wykorzystywaniem podobieństw między tworzonymi i gotowymi, wykonanymi wcześniej systemami. Takie podejście pozwala na redukcję nakładów poprzez używanie gotowych elementów na różnych etapach produkcji, na przykład wykorzystywanie gotowych bibliotek, pełnych programów wykonujących pożądane funkcje w systemie. Zalety takiego rozwiązania to:

  • ”Wysoka niezawodność. Gotowe elementy są z reguły dobrze przetestowane, ich niezawodność jest więc większa niż nowo tworzonych elementów.
  • Zmniejszenie ryzyka.
  • Efektywne wykorzystanie specjalistów.
  • Narzucenie standardów. Gotowe elementy stworzone z zachowaniem pewnych standardów narzucają zachowanie tych standardów w kolejnych przedsięwzięciach.
  • Potencjalna redukcja kosztów. Koszt gotowego elementu jest z reguły znacznie mniejszy niż koszt jego pierwotnego opracowania. Pewne czynniki, które mogą jednak wpływać na wzrost kosztów wymienione są poniżej.”

Natomiast wady modelu to:

  • ”Dodatkowy koszt przygotowanie elementów do ponownego wykorzystania. Fragmenty systemu muszą być z reguły w pewien sposób przystosowane do tego celu. Jest to pewien dodatkowy nakład, który należy ponieść w trakcie realizacji przedsięwzięcia bez gwarancji, że zwróci się on w przyszłości.
  • Ryzyko uzależnienia się od dostawcy elementów. Dostawca może zaniechać prac nad biblioteką, nie dostosować jej do nowych wersji sprzętu i oprogramowania systemowego.
  • Niedostatki narzędzi wspomagających ten rodzaj pracy.”

Model spiralny

Najbardziej ogólny model cyklu życia oprogramowania, zaproponowany przez Boehma (1988).Składa się z czterech faz realizowanych w kolejnych fazach: analiza ryzyka, konstrukcja (model kaskadowy), atestowanie, planowanie. Analiza ryzyka- ogólne rozważania budowy nowej wersji systemu, budowa prototypów Konstrukcja- (model kaskadowy) konstrukcja kolejnej wersji systemu Atestowanie- w tej fazie oceniana jest oceniana kolejna wersja systemu przez klienta, w przypadku kiedy ocena nie jest pozytywna, rozpoczynany jest kolejny cykl Planowanie- ustalenie celów produkcji kolejnych systemów (Jaszkiewicz A. (1997) s. 15-27)

Formalne transformacje

Model formalnych transformacji opiera się na wymaganiach sprecyzowanych w pewnym formalnym języku, następnie są one automatycznie transformowane do innej postaci formalnej - pośredniej, bądź bezpośrednio do postaci kodu programu. Należy dodać, że wszystkie transformacje wykonywane są automatycznie, bez udziału ludzi. (Jaszkiewicz A. (1997) s. 27) W ramach formalnych transformacji wprowadzony został język UML (ang. Unified Modeling Language), który jest powszechnie stosowany w przemyśle oraz w świecie naukowym. Głównymi zaletami tej technologii jest jej przejrzystość, intuicyjność oraz szerokość możliwych zastosowań. (Grobelny M., Grobelna I. (2010) s. 1154)

Wspomaganie procesu definiowania zadań

Wzrost wytwarzanego oprogramowania komputerowego zmusił firmy informatyczne do zastosowania wytwórczych procesów oprogramowania (ang. SDP, software development process).Przyczyniło się to do: zredukowania problemu przekraczania budżetu, łatwiejszego zarządzania inwestycjami, pozwoliło na dotrzymanie terminów. Szkielet SDP, który posiada określoną strukturę, plan oraz kontroluje wykonanie zadań jest tzw. metodyką wytwarzania oprogramowania (SDM). Zespoły informatyczne czy też projekty mogą wymagać zastosowania innej SDM. Opracowano metodyki, które można użyć na potrzeby każdego projektu. Wyróżnić można metodyki: Rational Unified Process, Agile, Scrum, Extreme Programming. Ze względu na oczekiwania twórców systemów informatycznych została opracowana metodyka Open Unified Process (OpenUP), zawierająca praktyki pochodzące z RUP, jak i z Agile.

Metodyka OpenUP

OpenUP opiera się na czterech głównych zasadach:

  1. Współpracy, która ma celu ulepszenia działania
  2. równoważenie sprzeczności, której celem jest maksymalizacja korzyści dla odbiorcy
  3. najszybszej koncentracji na konstrukcji systemu, aby zminimalizować ryzyko oraz organizację fazy wytwarzania
  4. rozwijanie systemu, na podstawie opinii odbiorcy systemu

OpenUP zorganizowana jest w dwóch obszarach: zawartości metody oraz procesu. Zawartość metody (role, zadania, artefakty oraz porady), zawartość procesu składają się szablony, w których zastosowane są poszczególne elementy metodyki. Metodyka OpenUP opisuje trzy poziomy organizacji pracy: poziom osobisty, poziom zespołu oraz poziom odbiorcy systemu. Poziom osobisty- do członka należy wykonanie mikro przyrostów, reprezentujących wyniki jakie zostały osiągnięte w wyniku kilkugodzinnej czy też kilkudniowej pracy Poziom zespołu- zajmuje się kolejnymi interakcjami jakie zostały zaplanowane, w ramach których odbiorca otrzymuje kolejne elementy. Poziom Odbiorcy systemu- jest podzielony na cztery fazy: (rozpoczęcie, opracowanie, wytworzenie, przekazanie). Taki proces wytwórczy pozwala na to aby odbiorca systemu mógł prowadzić nadzór nad finansami, zakresem oraz ryzykiem projektu.(Gratkowski T. 2010, s. 105-107)

Metodyka CDM Fast Track

Metodyka CDM Fast Track dopuszcza możliwość zmian wymagań wobec systemu w trakcie trwania projektu. Cechą charakterystyczną tego podejścia jest możliwość iteracyjnego powtarzania faz jak w modelu przyrostowym oraz spiralnym. "W metodyce CDM Fast Track stosuje się następujące techniki:

  • określanie ram czasowych (ang. timeboxes) i priorytetów,
  • spotkania z użytkownikami (ang. workshops),
  • tworzenie prototypów,
  • iteracyjne dopracowywanie modułów systemu,
  • dostarczanie częściowych rozwiązań,
  • podział prac,
  • udział w pracach projektowych użytkowników mogących samodzielnie podejmować ważne decyzje w dziedzinie tworzonego systemu. (Mincer-Daszkiewicz J. (2002) s. 3)

Bibliografia

Autor: Karolina Stawowy