Inżynieria Oprogramowania - Wykład 04.10.2024

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Jaki model SDLC wykorzystuje iteracje nazwane spiralami?

  • Model Big Bang
  • Model spiralny (correct)
  • Model V
  • Model klasyczny

Co charakteryzuje V-Model w procesie SDLC?

  • Bezpośrednie powiązanie faz rozwoju z fazami testowania (correct)
  • Brak faz testowania
  • Wielka elastyczność w planowaniu
  • Iteracje zwane spiralami

Która z poniższych opcji nie jest celem inżynierii oprogramowania?

  • Ograniczenie ilości kodu (correct)
  • Zwiększenie widoczności procesu rozwoju
  • Efektywne zarządzanie ryzykiem
  • Lepsze szacowanie kosztów

Która rola funkcyjna jest odpowiedzialna za analizę wymagań biznesowych?

<p>Analityk Biznesowy (D)</p> Signup and view all the answers

Jaką cechę posiada model Big Bang?

<p>Brak konkretnego procesu (C)</p> Signup and view all the answers

Co najlepiej opisuje metaforę huśtawki w kontekście inżynierii oprogramowania?

<p>Utrzymywanie równowagi między różnymi fazami cyklu (C)</p> Signup and view all the answers

Który z poniższych członków zespołu jest odpowiedzialny za finalizację projektu?

<p>Completer/Finisher (C)</p> Signup and view all the answers

Jakie są główne przewagi stosowania SDLC?

<p>Systematyczne dostarczanie oprogramowania (B)</p> Signup and view all the answers

Jakie są wymagania dotyczące zaliczenia wykładu i projektu?

<p>Min 50% z wykładu i projektu (D)</p> Signup and view all the answers

Jakie podejście należy stosować według definicji IEEE w inżynierii oprogramowania?

<p>Systematyczne, zdyscyplinowane i wymierne podejście (D)</p> Signup and view all the answers

Co jest jednym z powodów, dla których potrzebujemy inżynierii oprogramowania?

<p>Konieczność znoszenia chaotycznych placów deweloperskich (B)</p> Signup and view all the answers

Jakie fazy składają się na model spiralny?

<p>Identyfikacja, projekt, budowanie, ewaluacja i ocena ryzyka (B)</p> Signup and view all the answers

Które z poniższych punktów NIE jest aspektami inżynierii oprogramowania?

<p>Rozwój kodu bez dokumentacji (C)</p> Signup and view all the answers

Jak jest ustalona skala ocen dla wykładów?

<p>Od 90 i więcej - 5, 80-89 - 4.5... (D)</p> Signup and view all the answers

Co charakteryzuje model Waterfall w procesie tworzenia oprogramowania?

<p>Sekwencyjny podział na etapy (D)</p> Signup and view all the answers

Jak zdefiniować model Iterative w kontekście SDLC?

<p>Tworzenie oprogramowania w cyklach powtarzalnych (C)</p> Signup and view all the answers

Jakie są wyniki końcowego testu w wykładzie, a jakie w projekcie?

<p>Wykład 40 pkt, projekt 60 pkt (D)</p> Signup and view all the answers

Co jest celem stosowania ustandaryzowanej komunikacji w inżynierii oprogramowania?

<p>Ułatwienie pracy w dużych zespołach (D)</p> Signup and view all the answers

Jakie podejście zakłada model spiralny do oceny ryzyka?

<p>Ocena ryzyka w każdej fazie cyklu (C)</p> Signup and view all the answers

Co oznacza podejście skalowane i adaptowalne w inżynierii oprogramowania?

<p>Możliwość dostosowania procedur do różnych projektów (A)</p> Signup and view all the answers

Co jest główną cechą modelu Big Bang?

<p>Brak struktury i planowania w procesie (B)</p> Signup and view all the answers

Który z modeli zakłada realizację wymagań w przyrostowy sposób?

<p>Model Iterative (B)</p> Signup and view all the answers

Jakie podejście przyjmuje model V-Model?

<p>Każdy etap ma swój odpowiedni test (B)</p> Signup and view all the answers

Jakie są główne wyzwania związane z modelem Spiralnym?

<p>Złożoność planowania i oceny ryzyka (B)</p> Signup and view all the answers

Jakie jest główne zadanie etapu inicjacji projektu?

<p>Sformułowanie początkowego zakresu projektu (D)</p> Signup and view all the answers

Co jest głównym celem etapu planowania w cyklu życia projektu?

<p>Opracowanie planu zarządzania projektem (D)</p> Signup and view all the answers

Który z poniższych kroków nie jest częścią etapu wdrożenia projektu?

<p>Zbieranie wymagań (C)</p> Signup and view all the answers

Co obejmuje proces monitorowania i kontrolowania w projekcie?

<p>Zapewnienie, że dostarczane elementy są zgodne z harmonogramem (A)</p> Signup and view all the answers

Które z poniższych pojęć odnoszą się do operacyjności oprogramowania?

<p>Interoperacyjność (B), Integralność (C)</p> Signup and view all the answers

Która cecha jest związana z przejściowością oprogramowania?

<p>Reuseability (D)</p> Signup and view all the answers

W jakim celu tworzy się dokumentację specyfikacji wymagań oprogramowania?

<p>Aby zdefiniować wymagania dotyczące oprogramowania (B)</p> Signup and view all the answers

Jakie działania są podejmowane podczas etapu utrzymania w projekcie?

<p>Zgłaszanie i śledzenie defektów (C)</p> Signup and view all the answers

Jakie z poniższych stwierdzeń najlepiej opisuje elastyczność w kontekście oprogramowania?

<p>Możliwość łatwego wprowadzania zmian w systemie. (B)</p> Signup and view all the answers

Jakie zagadnienie nie jest związane z najlepszymi praktykami w tworzeniu oprogramowania?

<p>Definiowanie niejasnych wymagań klientów (C)</p> Signup and view all the answers

Które z poniższych pojęć są związane z utrzymaniem oprogramowania?

<p>Skalowalność (A), Testowalność (B)</p> Signup and view all the answers

Jakie działania są najważniejsze w procesie zbierania wymagań?

<p>Organizacja spotkań z interesariuszami (A)</p> Signup and view all the answers

Co oznacza pojęcie 'integralność' w kontekście inżynierii oprogramowania?

<p>Zgodność danych z rzeczywistością. (C)</p> Signup and view all the answers

Co można określić jako kluczową cechę 'bezpieczeństwa' w oprogramowaniu?

<p>Ochrona danych przed utratą. (C)</p> Signup and view all the answers

Które z poniższych pojęć jest przykładem cechy, która może mieć różną wagę w różnych projektach IT?

<p>Usability (D)</p> Signup and view all the answers

Które z poniższych stwierdzeń najlepiej opisuje pojęcie 'adaptability' (zdolność adaptacji) w kontekście oprogramowania?

<p>Zdolność do rozwoju i zmiany w odpowiedzi na nowe wymagania. (B)</p> Signup and view all the answers

Flashcards

Funkcjonalność

Określa zdolność oprogramowania do spełniania określonych funkcji w sposób zgodny z wymaganiami.

Użyteczność

Określa łatwość, z jaką użytkownicy mogą nauczyć się korzystać z oprogramowania.

Wydajność

Określa zdolność oprogramowania do spełniania określonych wymagań wydajnościowych.

Bezpieczeństwo

Określa zdolność oprogramowania do zapewniania bezpieczeństwa danych i systemów.

Signup and view all the flashcards

Rozszerzalność

Określa zdolność oprogramowania do łatwej modyfikacji i rozszerzania.

Signup and view all the flashcards

Przenaszalność

Określa zdolność oprogramowania do łatwej adaptacji do różnych środowisk i konfiguracji.

Signup and view all the flashcards

Interoperacyjność

Określa zdolność oprogramowania do łatwej integracji z innymi systemami.

Signup and view all the flashcards

Skalowalność

Określa zdolność oprogramowania do skalowania w celu obsługi większej ilości danych lub użytkowników.

Signup and view all the flashcards

Inżynieria Oprogramowania (IO)

Dyscyplina skupiająca się na projektowaniu, rozwijaniu, testowaniu i utrzymywaniu oprogramowania, wykorzystująca zdefiniowane zasady, metody i procedury.

Signup and view all the flashcards

Rozwój Oprogramowania (Software Development)

Tworzenie oprogramowania bez formalnych zasad i struktur, często oparte na indywidualnych preferencjach.

Signup and view all the flashcards

Definicja IO wg IEEE

Zastosowanie zasad inżynierii do tworzenia, utrzymywania i obsługiwania oprogramowania - skupienie na efektywności i jakości.

Signup and view all the flashcards

Dlaczego potrzebujemy IO? (powody)

Potrzeba większej skomplikowania systemów, integracji, interakcji i modułów.

Signup and view all the flashcards

Dlaczego potrzebujemy IO? (powody)

Zwiększenie liczby programistów w projektach i problemy ze strukturą zespołów.

Signup and view all the flashcards

Dlaczego potrzebujemy IO? (powody)

Unikanie chaosu i braku spójności w procesie tworzenia oprogramowania.

Signup and view all the flashcards

Dlaczego potrzebujemy IO? (powody)

Utrzymowanie i rozwój oprogramowania przez różne zespoły w czasie.

Signup and view all the flashcards

Czym jest dobre oprogramowanie?

Dobre oprogramowanie to takie, które jest: funkcjonalne (spełnia wymagania), niezawodne (działa poprawnie), użyteczne (łatwe w użyciu), efektywne (wykorzystuje zasoby efektywnie), przenośne (działa na różnych platformach), utrzymywalne (łatwe w modyfikacji) i bezpieczne (chronione przed zagrożeniami).

Signup and view all the flashcards

Model kaskadowy (Waterfall)

Proces tworzenia oprogramowania, gdzie etapy są wykonywane sekwencyjnie, a dane wyjściowe z jednego etapu stanowią wejście do następnego.

Signup and view all the flashcards

Model iteracyjny

Tworzenie oprogramowania w powtarzalnych cyklach, z krótszymi odstępem czasu, gdzie implementacja podzbioru wymagań odbywa się iteracyjnie, dopóki pełna funkcjonalność nie zostanie osiągnięta.

Signup and view all the flashcards

Model Spiralny

Model spiralny składa się z 4 faz: identyfikacja, projekt, budowanie, ewaluacja i ocena ryzyka. Faza ewaluacji i oceny ryzyka odgrywa kluczową rolę w każdym cyklu spiralnym.

Signup and view all the flashcards

Model V-Model

Model liniowy, gdzie każdy etap rozwoju jest ściśle zdefiniowany i musi być zakończony przed przejściem do następnego. Zastosowanie: projekty z dobrze zdefiniowanymi wymaganiami.

Signup and view all the flashcards

Model Big Bang

Model polegający na rozpoczęciu tworzenia oprogramowania bez jasnej definicji wymagań i bez planowania, tworzenie oprogramowania "od razu".

Signup and view all the flashcards

Model Spiralny SDLC

Model SDLC charakteryzujący się powtarzalnym przechodzeniem przez fazy w iteracjach nazywanych spiralami. Każda iteracja skupia się na konkretnym aspekcie projektu.

Signup and view all the flashcards

Model V SDLC

Model SDLC, w którym realizacja procesów odbywa się sekwencyjnie w kształcie litery V. Dla każdej fazy cyklu rozwojowego istnieje bezpośrednio powiązana faza testowania.

Signup and view all the flashcards

Model Big Bang SDLC

Model SDLC charakteryzujący się brakiem konkretnego procesu i minimalnym planowaniem. Wszystkie zasoby są skupione na rozwoju oprogramowania.

Signup and view all the flashcards

Benefity SDLC

Zbiór korzyści płynących z zastosowania SDLC, takich jak większa widoczność procesu rozwoju dla wszystkich interesariuszy, efektywne szacowanie, planowanie i harmonogramowanie, lepsze zarządzanie ryzykiem i szacowaniem kosztów, systematyczne dostarczanie oprogramowania i większa satysfakcja klienta.

Signup and view all the flashcards

Role Funkcyjne w SDLC

Różne role funkcyjne w projekcie tworzenia oprogramowania, każda z inną wiedzą, priorytetami i oczekiwaniami, np. Analityk Biznesowy, Architekt, Deweloper, Tester, Zespół wdrożeniowy, Administrator, Sponsor projektu, Menadżer projektu, Właściciel Produktu, Zespół sprzedaży i marketingu.

Signup and view all the flashcards

Metafora Huśtawki w inżynierii oprogramowania

Metafora omawiająca zastosowanie inżynierii oprogramowania w porównaniu do jazdy na huśtawce: im wyższy poziom złożoności projektu, tym większe ryzyko i potrzeba zastosowania inżynierii oprogramowania.

Signup and view all the flashcards

Cykl Życia Projektu

Połączenie działań prowadzących od początkowego pomysłu do ostatecznego dostarczenia produktu. Obejmuje m.in. planowanie, analizę wymagań, projektowanie, wdrażanie, testowanie i utrzymanie.

Signup and view all the flashcards

Inicjowanie

Faza, w której definiuje się zakres projektu, zbiera się wymagania i ocenia jego wykonalność. Należy określić budżet, zasoby i harmonogram.

Signup and view all the flashcards

Planowanie

Określanie szczegółowych etapów realizacji projektu, zdefiniowanie zadań, tworzenie harmonogramu i budżetu. W tej fazie tworzy się plan projektu.

Signup and view all the flashcards

Wykonywanie

Faza, w której realizowane są zadania projektu, tworzone są artefakty i zarządzane zasoby. Kluczowa jest współpraca w zespole i przestrzeganie ustalonego harmonogramu.

Signup and view all the flashcards

Monitorowanie i Kontrola

Ciągłe monitorowanie postępów projektu, identyfikowanie i zarządzanie ryzykiem, kontrola jakości i wprowadzanie ewentualnych korekt.

Signup and view all the flashcards

Zamykanie

Zakończenie projektu, podsumowanie wyników, dokumentacja, ocena realizacji i zamknięcie projekt.

Signup and view all the flashcards

Software Development Lifecycle (SDLC)

Zestaw najlepszych praktyk i standardów, które mają na celu zapewnienie wysokiej jakości oprogramowania. Określają specyfikację wymagań, projektowanie, kodowanie, testowanie i wdrażanie.

Signup and view all the flashcards

Software Requirements Specification (SRS)

Dokumentacja szczegółowo opisująca wymagania funkcjonalne i niefunkcjonalne oprogramowania. Zdefiniowane są cele, funkcjonalności, ograniczenia i inne ważne informacje.

Signup and view all the flashcards

Study Notes

Inżynieria Oprogramowania - Notatki ze Wykładu

  • Data wykładu: 04.10.2024
  • Wykładowca: Dr inż. Katarzyna Wasielewska-Michniewska
  • Kontakt: [email protected]
  • MS Teams: utworzony zespół, slajdy z wykładów będą udostępniane
  • Konsultacje: na MINT - piątki 10:00-18:00

Zasady Zaliczenia

  • Wykład: 40 punktów - końcowy test wielokrotnego wyboru
  • Projekt: 60 punktów - zasady zaliczenia zostaną przedstawione na zajęciach projektowych
  • Minimalny wymagany wynik: 50% z wykładu i projektu
  • Skala ocen:
    • 91 i więcej - 5
    • 81-90 - 4,5
    • 71-80 - 4
    • 61-70 - 3,5
    • 51-60- 3
    • 50 i mniej - 2

Czym jest Inżynieria Oprogramowania?

  • Proces projektowania, rozwijania, testowania i utrzymywania oprogramowania z użyciem zdefiniowanych zasad, metod i procedur

  • Definicja IEEE:

    • Systematyczne, zdyscyplinowane i wymierne podejście do tworzenia, obsługi i utrzymania oprogramowania
    • Zastosowanie inżynierii w kontekście oprogramowania / podejścia inżynierskiego do oprogramowania
    • Badanie podejść w tym kontekście
  • Różnica między inżynierią oprogramowania a rozwojem oprogramowania:

  • inżynieria oprogramowania to szersze podejście, obejmujące cały proces, w tym definicje i metody, a rozwój to skupienie na konkretnych etapach tworzenia. Inżynieria oprogramowania stosuje zasady i metody inżynierskie do rozwoju oprogramowania.

Model Paradigmatów Oprogramowania

  • Najbardziej podstawowym standardem jest "programming", które obejmuje tworzenie instrukcji dla komputera, aby wykonał zadanie.
  • Kolejnym standardem jest "software design", który opiera się na definiowaniu, sposobie komunikacji oraz architekturze interfejsu, które pozwalają na zbudowanie pełnego i funkcjonalnego software produktu.
  • Najbardziej kompleksowym standardem jest "software development", który włącza w siebie wszystkie wcześniej wymienione aspekty, a ponadto skupia się na zarządzaniu cyklem życia produktu oraz komunikacji i współpracy z "interesariuszami".

Dlaczego potrzebujemy Inżynierii Oprogramowania?

  • Skomplikowane systemy: integracje, interakcje, modularność, procesy
  • Większe zespoły: skomplikowana struktura
  • Unikanie chaosu: w placu deweloperskim
  • Trudne śledzenie postępu: zakresu prac, oceny ryzyka
  • Rotacja deweloperów: praca nad „cudzym” kodem
  • Długie cykle życia projektów: zespoły żyją krócej niż projekty
  • Potrzeby: standaryzacja komunikacji, procedury, praktyki, skalowane i elastyczne podejście

Czym jest dobre oprogramowanie?

  • Operacyjność:
    • Niezawodność, integralność, poprawność, użyteczność, wydajność, funkcjonalność, bezpieczeństwo, bezpieczeństwo
  • Utrzymanie:
    • Skalowalność, elastyczność, możliwość testowania, rozszerzalność, modularność
  • Przejściowość:
    • Interoperacyjność, możliwość ponownego użycia, przenośność, adaptacyjność

Kto może zyskać na stosowaniu inżynierii oprogramowania?

  • różni zainteresowani, w tym osoby zarządzające, projektanci i deweloperzy oprogramowania

Plan wykładów

  • Wprowadzenie, zasady
  • Cykl życia projektu IT, powiązane procesy i role funkcyjne
  • Zbieranie i analiza wymagań
  • Narzędzia i techniki do wsparcia analizy systemu: UML, User stories, FURPS, BPMN
  • Software Development Frameworks
  • Narzędzia i techniki do zarządzania kodem
  • Zasady tworzenia dobrego oprogramowania
  • Architektury oprogramowania
  • Wzorce projektowe
  • Zarządzanie jakością oprogramowania
  • Testowanie
  • Narzędzia – git, gitflow, CI, bugtracking, profiling
  • Utrzymanie oprogramowania

Literatura Dodatkowa

  • Dostarcza listy materiałów odniesienia dla studentów

Cele

  • Poznanie metod i narzędzi
  • Rozumienie procesu tworzenia oprogramowania
  • Nauki najlepszych praktyk
  • Wiedza w razie przyszłych problemów

Cykl Życia Projektu

  • Initiating: definiowanie projektu, analiza wykonalności, analiza finansowa, definiowanie zakresu pracy
  • Planning: tworzenie planu zarządzania projektem obejmującego wszystkie aspekty realizacji
  • Executing: realizacja zadań zgodnie z założeniami i planem
  • Monitoring and Controlling: śledzenie postępu, analiza ryzyka, zarządzanie kosztami i czasem
  • Closing: ukończenie projektu, ewaluacja, analiza efektywności

Modele SDLC (Software Development Life Cycle)

  • Waterfall: kolejne sekwencyjne etapy, wyjścia jednego etapu wejściem na kolejny etapie
  • Iterative: realizacja oprogramowania w powtarzalnych cyklach, uwzględnianie kolejnych aktualizacji
  • Spiral: iteracyjne etapy z analizą ryzyka i ewaluacją na każdym kolejnym etapie
  • V-Model: fazy rozwoju i testowania, dla każdej fazy rozwoju występuje powiązana faza testowania
  • Big Bang: minimalne planowanie, wszystkie zasoby skupione na rozwoju oprogramowania

Korzyści SDLC

  • Większa widoczność: procesu rozwoju dla wszystkich
  • Efektywne szacowanie, planowanie i harmonogramowanie
  • Zarządzanie ryzykiem i kosztami
  • Systematyczne dostarczanie oprogramowania
  • Satysfakcja klientów

Role Funkcyjne

  • Analityk biznesowy, Architekt, Deweloper, Tester, Zespół wdrożeniowy, Administrator, Sponsor projektu, Menadżer projektu, Właściciel Produktu, Zespół sprzedaży i marketingu

Gdzie zastosować inżynierię oprogramowania

  • w różnych dziedzinach

Metafora huśtawki

  • przedstawiająca proces rozwoju oprogramowania z różnych perspektyw

9 ról w zespole Belbina

  • opis ról w zespole, pogrupowanych ze względu na ich nastawienie:
    • kierunkowane na myślenie, kierunkowane na działanie, kierunkowane na ludzi

Jak używać teorii Belbina

  • Zespół składający się z członków o podobnych stylach zachowań i tendencjach może utracić równowagę.
  • Warto wykorzystać różnorodne umiejętności i osobowości w zespole.
  • Maksymalizacja wydajności zespołów poprzez rozważenie mocnych i słabych stron każdej osoby.
  • Rozwijanie i ulepszanie zespołów.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser