1/25
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
czym jest „kryzys oprogramowania”?
Termin odnosi się do problemów, które pojawiły się już w latach 60. XX wieku w rozwijaniu głównie dużych i skomplikowanych systemów.
Jakie są objawy „kryzysu oprogramowania”?
projekty trwają i kosztują więcej niż planowano
nienadążanie za rozwojem sprzętu i potrzeb użytkowników
zła jakość oprogramowania
trudności w utrzymywaniu oprogramowania
czym jest „dług technologiczny”?
Dług technologiczny to metafora, która polega na tym, że decyzje projektowe podjęte dla szybkiego wdrożenia lub oszczędności mogą prowadzić w przyszłości do trudnego w utrzymaniu, modernizacji i rozwoju oprogramowania.
“Dług” narasta, wraz z czasem zaniedbywania jego jakości, generując wysokie koszty naprawy.
Jakie są cechy “niepoprawialnego” oprogramowania, tzn. trudnego do utrzymania?
* konstrukcja programów “na czas”
* brak dokumentacji
* tworzenie przez wieloosobowe zespoły
* programy zaliczeniowe studentów
* archaiczne programy
jakie są przyczyny „kryzysu oprogramowania”?
1. Coraz większa złożoność i zaawansowanie oprogramowania
2. Problem specyfikacji wymagań i określenia celu projektu
3. Problemy zarządzania projektem
4. Problemy socjologii przedsięwzięcia (odpowiednia kadra, motywacja, komunikacja, struktury organizacyjne, zmiany w organizacji)
5. Problemy wynikające z pominięcia kluczowych elementów rozwoju oprogramowania
Czym jest inżynieria oprogramowania i jaki jest jej cel?
to odpowiedź na kryzys oprogramowania, ma ona dostarczyć sprawdzonych, praktycznych metod dla uniknięcia problemów w projektach informatycznych
Wymień główne obszary tematyczne inżynierii oprogramowania.
proces wytwarzania oprogramowania (różne modele rozwoju oprogramowania)
inżynieria wymagań względem systemów informatycznych
modelowanie i projektowanie systemów informatycznych (różne metodyki)
implementacja i testowanie systemów informatycznych
wdrożenie systemu informatycznego
utrzymanie i dalszy rozwój systemu informatycznego
zarządzanie projektami informatycznymi
Jakie są rodzaje projektów informatycznych?
konstrukcji
wdrożeniowe
Problemy wdrożeniowe dużych systemów (klasy ERP)
na ogół bardzo złożony system
przetwarzanie informacji opiera się na coraz trudniejszych modelach i teoriach
wdrożenie systemu niesie ze sobą zmianę sposobu funkcjonowania przedsiębiorstwa
specyfikacja projektów wdrożeniowych stawia wyzwania w aspekcie zarządzania projektem
Opisz kaskadowy model konstrukcji systemów informatycznych.
analiza->
projektowanie->
implementacja->
instalacja,testowanie,usuwanie błędów ->
pielęgnacja, dalszy rozwój
- każdy etap wykonujemy po kolei
- brak możliwości powrotu do poprzedniego etapu (w ostateczności tylko do poprzedniego, częściowy)
- nie nadaje się do dużych projektów
- brak możliwości modyfikacji wymagań w trakcie
Opisz pragmatyczny (realistyczny) model konstrukcji systemów informatycznych.
analiza->
projektowanie->
implementacja->
instalacja,testowanie,usuwanie błędów ->
pielęgnacja, dalszy rozwój
- można powracać do poszczególnych etapów, ale może to dużo kosztować przedsięwzięcie (gdy wracamy na początkowe etapy z późniejszych)
Opisz model konstrukcji prototypów prowizorycznych.
analiza->
projektowanie->
implementacja prototypu/
implementacja systemu->
instalacja,testowanie,usuwanie błędów ->
pielęgnacja, dalszy rozwój
- prototypy ubezpieczają proces analizy wymagań precyzując wymagania klienta i możliwości inżynierów
- pozwala ograniczyć koszty późniejszych niepotrzebnych powrotów do wcześniejszych etapów (po implementacji prototypu wracamy do analizy i tworzymy kolejny prototyp)
Opisz model ewolucyjny konstrukcji prototypów.
- jeśli prototyp spodoba się klientowi jest rozwijany dalej i dołączany do projektu jako pełnoprawny komponent
- "instalacja, testowanie, usuwanie błędów" występuje również po implementacji prototypu
Opisz realizację przyrostową.
określenie wymagań->
ogólny projekt->
[wybór podzbioru funkcji->
szczegółowy projekt, implementacja, testy->
dostarczenie zrealizowanej części systemu]
- projekt nie jest oddawany cały od razu
- dostarczamy elementy systemu sukcesywnie
- częsty kontakt z klientem i jego feedback
Opisz spiralny model konstrukcji systemów informatycznych.
Customer Communication->
Planning->
Risk Analysis->
Engineering->
Construction & Release->
Customer Evaluation->
Customer Communication...
- cyklicznie rozwijamy system
- zaczynamy od środka spirali
Opisz model RAD (Rapid Application Development).
- ustandaryzowane zasady projektowania do typowych zastosowań biznesowych
- ważne jest modelowanie dziedziny modelu (jak działa organizacja, wszystko w dokumentacji)
- korzystamy z gotowych komponentów zapewnionych przez organizację
- klient cały czas dostępny
- podział projektu na kilka zespołów
Co to metodyka UP (Unified Process)?
Miała na celu stworzenie zunifikowanego standardu w zakresie procesu wytwarzania oprogramowania obiektowego.
Jej “komercyjna wersja” to RUP.
Wymień i opisz fazy RUP/UP.
-> faza podjęcia: formułowany jest problem, kontekst, zwrot z inwestycji, prognoza finansowa, plan projektowy, analiza ryzyka, opis projektu
-> faza opracowania: projekt nabiera kształtów, analiza dziedziny zagadnienia, budowana jest podstawowa architektura systemu; w tej fazie mamy jeszcze możliwość zaniechania lub ponownego opracowania projektu
-> faza konstrukcji: większość prac programistycznych, pierwsza wersja oprogramowania do wglądu użytkowników zewnętrznych
-> faza przekazania systemu: przekazanie od programistów do użytkowników końcowych (start produkcyjny); trening użytkowników końcowych i administratorów, testy akceptacyjne, sprawdzana jest zgodność produktu z określeniami fazy pierwszej
Jakie są problemy RUP/UP?
ciężki i kosztowny proces, należy go dostosować do siebie (nie musi być ciężki)
nieograniczona dostosowalność stwarza problemy -> dowolne wybieranie elementów, brak metodyki prac
Na czym polega model zwinny Agile?
W modelu zwinnym odchodzi się od formalizacji, dokumentowania i ścisłego trzymania się planu, na rzecz elastycznej i ścisłej współpracy z klientem, reagowania na zmiany i szybkiej generacji działającego oprogramowania.
Niezależnie od wybranej metodyki, model zwinny ma zawsze w swoim założeniu pozwolić na zmniejszenie kosztów przedsięwzięcia oraz zapewnienie satysfakcji użytkowników.
Jakie są główne metodyki Agile?
programowanie ekstremalne (ang. extreme programming, XP)
Kanban
Scrum - najpopularniejsza metodyka
Jakie są problemy podejścia zwinnego Agile?
- wymaga dużego zaufania i zaangażowania zarówno klienta i wykonawcy
- ustalenie ścisłego budżetu prac i terminu ich zakończenia jest praktycznie niemożliwe
- brak precyzyjnego zdefiniowania wymagań użytkownika
- nie wiemy do końca co będzie finalnym efektem naszej pracy
Opisz elementy SCRUM.
Sprint - praca zespołu przez max miesiąc na wykonanie pewnej części oprogramowania
Backlog - Rejestr wymogów, które mamy zrealizować w trakcie tego miesiąca
Nikt nic nie narzuca - zespół deleguje się w pasujące sobie funkcje i zadania
Product Owner - osoba odpowiedzialna za rozwój produktu, wchodzi w interakcje z klientem
Jak dostarczać gotowe oprogramowanie?
jak najszybsze dostarczanie funkcji na środowisko produkcyjne (skracamy cykl rozwoju oprogramowania)
dostarczanie w małych “paczkach” (od razu, gdy funkcje są gotowe)
jak najszybszy feedback w procesie i zapewnienie jakości
procesy automatyczne (minimalizujemy zadania manualne)
jakie są dwie najbareziej uznane i powszechne modele/metodyki w projektach informatycznych?
PRINCE2 (głównie aspekt biznesowy, strategiczne zarządzanie projektem)
PMBOK (znacznie szersza metodyka, obejmuje temat zagadnień międzyludzkich i komunikacyjnych)
obie metody nie są ze sobą sprzeczne i mogą być łączone podczas zarządzania projektem
jakie są narzędzia i środowiska rozwoju oprogramowania?
systemy zarządzania wymaganiami względem systemu informatycznego → rejestr wymagań, kojarzenie ich z elementami projektu, testami i innymi wymaganiami
Computer Aided Software Engineering (CASE) → model analityczny wymagań, projekt systemu
środowisko implementacji i testów → kompilacja, testowanie, debugowanie
systemy do zarządzania wersjami i konfiguracjami oprogramowania
systemy do zarządzania projektami → definiowanie zadań projektowych, harmonogramu i budżetu