Wymagania niefunkcjonalne i Diagram Hierarchii Funkcji

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Które z poniższych przykładów nie są przykładami wymagań niefunkcjonalnych?

  • Interfejs użytkownika ma spełniać założenia koncepcji omnichannel.
  • Projekt nie może przekroczyć 1 mln złotych.
  • Generacja potwierdzenia ma trwać maksymalnie 2 sekundy.
  • System musi umożliwiać przelew pieniędzy. (correct)

Który z poniższych przykładów nie jest przykładem ograniczenia, które może prowadzić do powstania wymagań niefunkcjonalnych?

  • Rynek docelowy dla oprogramowania. (correct)
  • Potrzeba użytkownika, aby system był prosty w obsłudze.
  • Konieczność współpracy systemu z istniejącymi systemami informatycznymi.
  • Ograniczenia budżetowe dotyczące kosztów rozwoju programu.

Która z poniższych kategorii nie jest zaliczana do klasyfikacji wymagań niefunkcjonalnych?

  • Wymagania zewnętrzne
  • Wymagania techniczne (correct)
  • Wymagania produktowe
  • Wymagania organizacyjne

Do jakiej kategorii wymagań niefunkcjonalnych należą wymagania dotyczące interfejsu użytkownika?

<p>Wymagania produktowe (C)</p> Signup and view all the answers

Jakie ograniczenie może prowadzić do powstania wymagania niefunkcjonalnego, które mówi, że system musi być zgodny ze standardem SWIFT?

<p>Konieczność współpracy z innymi systemami. (A)</p> Signup and view all the answers

Które z poniższych stwierdzeń odnoszących się do Diagramu Hierarchii Funkcji jest prawdziwe?

<p>Diagram Hierarchii Funkcji stosuje się do tworzenia struktury funkcjonalnej, od ogólnych celów organizacji do szczegółowych funkcji. (B)</p> Signup and view all the answers

Jaki jest główny cel tworzenia Diagramu Hierarchii Funkcji?

<p>Stworzenie struktury funkcjonalnej dla organizacji. (C)</p> Signup and view all the answers

Która z poniższych technik jest pomocna w tworzeniu Diagramu Hierarchii Funkcji?

<p>Analiza cyklu życia encji. (A)</p> Signup and view all the answers

Które z poniższych pytań jest odpowiednie do sprawdzenia Diagramu Hierarchii Funkcji?

<p>Czy każda funkcja w diagramie przyczynia się do realizacji jakiegoś celu organizacji? (B)</p> Signup and view all the answers

Na jakim etapie analizy systemu stosuje się Specyfikację Funkcji?

<p>Na etapie analizy. (D)</p> Signup and view all the answers

Które z poniższych stwierdzeń dotyczących Specyfikacji Funkcji jest nieprawdziwe?

<p>Specyfikacja funkcji musi zawierać wszystkie szczegóły dotyczące implementacji funkcji. (D)</p> Signup and view all the answers

Co oznacza F#1.1.1 w Specyfikacji Funkcji opisanej w tekście?

<p>Identyfikator funkcji. (A)</p> Signup and view all the answers

Który z poniższych przykładów jest najlepszym zastosowaniem Diagramu Hierarchii Funkcji?

<p>Określanie wymagań funkcjonalnych dla nowego systemu informatycznego. (D)</p> Signup and view all the answers

Które z poniższych stwierdzeń opisuje wady metodologii OMT?

<p>Ograniczona funkcjonalność w modelowaniu implementacji i aspektów użytkowania (B)</p> Signup and view all the answers

Jaka jest najnowsza wersja specyfikacji UML?

<p>UML 2.5 (A)</p> Signup and view all the answers

Co stanowiło podstawę do stworzenia UML?

<p>Metodyka OMT, OOSE i OOAD (B)</p> Signup and view all the answers

Co odróżnia UML od metodyki?

<p>UML jest standaryzowanym językiem, a metodyka jest zbiorem specyficznych zasad i instrukcji (A)</p> Signup and view all the answers

Jaki standard ISO dotyczy języka UML?

<p>ISO 19505 (C)</p> Signup and view all the answers

Co w UML stanowi podstawę do tworzenie diagramów?

<p>Symbole graficzne UML (C)</p> Signup and view all the answers

Do jakich celów można wykorzystać UML poza modelowaniem systemów informatycznych?

<p>Do modelowania procesów biznesowych (C)</p> Signup and view all the answers

Która z wymienionych metod najlepiej opisuje metodykę OOSE?

<p>Skupia się na modelowaniu interakcji użytkownika i cyklu życia systemu (C)</p> Signup and view all the answers

Co oznacza pojęcie 'atrybut' w kontekście obiektowości?

<p>Właściwość obiektu, która opisuje jego stan. (C)</p> Signup and view all the answers

Które z poniższych stwierdzeń o klasie jest FAŁSZYWE?

<p>Klasa jest konkretnym, pojedynczym obiektem. (D)</p> Signup and view all the answers

Jakiego rodzaju relację przedstawia dziedziczenie w obiektowości?

<p>Relację hierarchiczną między klasami. (C)</p> Signup and view all the answers

Co oznacza stwierdzenie, że klasa A dziedziczy po klasie B?

<p>Klasa A ma wszystkie atrybuty i metody klasy B, ale może mieć również własne. (D)</p> Signup and view all the answers

Jaka jest główna zaleta korzystania z dziedziczenia w obiektowości?

<p>Zmniejszenie złożoności kodu poprzez ponowne wykorzystanie kodu istniejących klas. (A)</p> Signup and view all the answers

Które z poniższych stwierdzeń o obiektach jest prawdziwe?

<p>Obiekt może zawierać inne obiekty, co pozwala na tworzenie złożonych struktur. (D)</p> Signup and view all the answers

Które z poniższych metod analizy należą do metod strukturalnych?

<p>Analiza strukturalna (B)</p> Signup and view all the answers

Co oznacza pojęcie 'metoda' w kontekście obiektowości?

<p>Funkcja, która definiuje zachowanie obiektu. (B)</p> Signup and view all the answers

Które z poniższych elementów nie są wykorzystywane w fazie analizy?

<p>Prototyp systemu (A)</p> Signup and view all the answers

Jaki jest związek między klasą a obiektem?

<p>Klasa definiuje strukturę obiektu, a obiekt jest instancją klasy. (D)</p> Signup and view all the answers

Które z poniższych nie jest wadą analizy strukturalnej?

<p>Uproszczone modelowanie danych i funkcji (D)</p> Signup and view all the answers

W którym roku pojawiły się metody obiektowe?

<p>Lata 80-te (B)</p> Signup and view all the answers

Który z poniższych elementów nie jest częścią modelu danych w analizie strukturalnej?

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

Który diagram jest najczęściej wykorzystywany do opisu modelu logicznego danych?

<p>Diagram związków encji (B)</p> Signup and view all the answers

Które z poniższych nie jest wykorzystywane jako wynik analizy systemu?

<p>Kod źródłowy systemu (C)</p> Signup and view all the answers

Które z poniższych nie stanowi problemu związanego z analizą strukturalną?

<p>Niewystarczające wsparcie dla programowania obiektowego (C)</p> Signup and view all the answers

Która z poniższych opcji nie jest głównym obszarem zainteresowania informatyki ekonomicznej?

<p>Sztuczna inteligencja (C)</p> Signup and view all the answers

Która z wymienionych właściwości oprogramowania odnosi się do efektywnego wykorzystania zasobów systemowych, takich jak pamięć i czas procesora?

<p>Efektywność (B)</p> Signup and view all the answers

Która z poniższych dziedzin nie jest bezpośrednio związana z informatyką?

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

Co to jest inżynieria oprogramowania?

<p>Dziedzina inżynierii skupiająca się na tworzeniu i pielęgnacji oprogramowania (C)</p> Signup and view all the answers

Jaka jest główna różnica między inżynieria oprogramowania a informatyką?

<p>Inżynieria oprogramowania to poddziedzina informatyki. (A)</p> Signup and view all the answers

Która cecha dobrego oprogramowania jest najważniejsza dla zapewnienia, że oprogramowanie działa prawidłowo i zgodnie z oczekiwaniami?

<p>Niezawodność (D)</p> Signup and view all the answers

Która z poniższych cech nie jest cechą dobrego oprogramowania?

<p>Złożoność i bogactwo funkcji (C)</p> Signup and view all the answers

Który z wymienionych obszarów nie jest głównym zastosowaniem informatyki ekonomicznej?

<p>Zarządzanie zasobami ludzkimi (WFM) (B)</p> Signup and view all the answers

Flashcards

Wymagania niefunkcjonalne

Ograniczenia, przy których system ma realizować swoje funkcje, zależne od różnych czynników.

Ograniczenia budżetowe

Wymagania wynikające z maksymalnego budżetu projektu, np. nieprzekraczanie 1 mln zł.

Wymagania produktowe

Określają zachowanie produktu, np. szybkość działania systemu i zapotrzebowanie na pamięć.

Wymagania organizacyjne

Wymagania wynikające ze strategii i procedur w firmie klienta oraz wytwórcy.

Signup and view all the flashcards

Wymagania zewnętrzne

Wymagania wynikające z czynników zewnętrznych, w tym współpracy z innymi systemami.

Signup and view all the flashcards

Diagram Hierarchii Funkcji

Narzedzie do gromadzenia wymagań funkcjonalnych w organizacji.

Signup and view all the flashcards

Podejście zstępujące

Technika opracowywania funkcji od ogółu do szczegółu.

Signup and view all the flashcards

Funkcja najwyższego poziomu

Najbardziej ogólny cel organizacji w diagramie hierarchii.

Signup and view all the flashcards

Funkcja nadrzędna

Funkcja, która definiuje cele i potrzebuje funkcji podrzędnych.

Signup and view all the flashcards

Funkcje podrzędne

Funkcje, które wspierają realizację funkcji nadrzędnej.

Signup and view all the flashcards

Sprawdzenie drzewa funkcji

Analiza, jeśli wszystkie funkcje wspierają cel nadrzędny.

Signup and view all the flashcards

Analiza cyklu życia encji

Technika stosowana do zrozumienia przebiegu życia funkcji.

Signup and view all the flashcards

Specyfikacja funkcji

Dokument opisujący funkcje systemu na etapie analizy.

Signup and view all the flashcards

Właściwości dobrego oprogramowania

Konkretny zbiór cech oprogramowania, który zależy od jego zastosowania.

Signup and view all the flashcards

Zdolność do pielęgnacji

Zdolność oprogramowania do ewolucji zgodnie z potrzebami klientów.

Signup and view all the flashcards

Niezawodność

Szerokie pojęcie dotyczące funkcjonowania oprogramowania w sposób niezakłócony i bezpieczny.

Signup and view all the flashcards

Efektywność

Oprogramowanie nie powinno marnować zasobów systemu, takich jak pamięć czy czas procesora.

Signup and view all the flashcards

Użyteczność

Oprogramowanie powinno być użyteczne, bez zbędnego wysiłku ze strony użytkownika.

Signup and view all the flashcards

Inżynieria oprogramowania

Dyscyplina zajmująca się tworzeniem oprogramowania od fazy inicialnej do pielęgnacji.

Signup and view all the flashcards

Informatyka

Ogół dziedzin naukowych zajmujących się informacją i jej komputerowym przetwarzaniem.

Signup and view all the flashcards

Informatyka ekonomiczna

Zajmuje się systemami informatycznymi w organizacjach, głównie gospodarczych i administracyjnych.

Signup and view all the flashcards

Faza analizy

Okres, w którym stosuje się język naturalny oraz notacje graficzne do określenia wymagań.

Signup and view all the flashcards

Metody analizy

Grupy technik, które służą do analizy systemów, w tym metody strukturalne i obiektowe.

Signup and view all the flashcards

Analiza strukturalna

Metoda analizy z lat 60-tych, skupiająca się na modelach danych i funkcji.

Signup and view all the flashcards

Model danych

Część analizy strukturalnej dotycząca pasywnej części systemu.

Signup and view all the flashcards

Model funkcji

Część analizy strukturalnej skupiająca się na aktywnej części systemu.

Signup and view all the flashcards

Wady analizy strukturalnej

Problemy związane z brakiem wsparcia w modelowaniu wymagań niefunkcjonalnych oraz trudności w ocenie modeli.

Signup and view all the flashcards

Diagram związków encji

Graficzne przedstawienie modelu logicznego danych, pokazujące encje i ich związki.

Signup and view all the flashcards

Atrybut encji

Cechy lub właściwości przypisane do encji w diagramie związków encji.

Signup and view all the flashcards

UML

Zunifikowany język modelowania, standard do modelowania systemów.

Signup and view all the flashcards

OMG

Object Management Group, organizacja rozwijająca UML.

Signup and view all the flashcards

Diagramy UML

Graficzne reprezentacje systemów z użyciem elementów UML.

Signup and view all the flashcards

ISO 19505

Standard ISO dotyczący UML.

Signup and view all the flashcards

OMT

Metodyka modelowania dziedziny przedmiotowej, część tworzenia UML.

Signup and view all the flashcards

OOSE

Metodyka modelowania użytkowników i cyklu życia systemu.

Signup and view all the flashcards

OOAD

Metodyka projektowania i konstrukcji w UML.

Signup and view all the flashcards

Przeznaczenie UML

Modelowanie systemów, procesów biznesowych i struktur organizacyjnych.

Signup and view all the flashcards

Obiekt

Element składający się z atrybutów i metod.

Signup and view all the flashcards

Klasa

Abstrakcyjny zbiór obiektów z wspólnymi atrybutami i metodami.

Signup and view all the flashcards

Instancja

Konkretny obiekt utworzony na podstawie klasy.

Signup and view all the flashcards

Atrybut

Zmienne klasy, które przechowują stan obiektu.

Signup and view all the flashcards

Metoda

Funkcja klasy, która definiuje zachowanie obiektów.

Signup and view all the flashcards

Dziedziczenie

Mechanizm, gdzie klasy podrzędne przejmują cechy klas nadrzędnych.

Signup and view all the flashcards

Hierarchia klas

Struktura organizująca klasy w systemie z relacjami nadrzędności.

Signup and view all the flashcards

Obiekt-wzorzec

Wzorzec, na którym tworzone są różne obiekty z tej samej klasy.

Signup and view all the flashcards

Study Notes

Fakty o Oprogramowaniu

  • Gospodarki wszystkich rozwiniętych krajów zależą od oprogramowania.
  • Coraz więcej systemów wymaga niezawodnego oprogramowania.
  • Obecnie wytwarzanie oprogramowania jest poważną gałęzią gospodarki narodowej w rozwiniętych krajach.
  • W Polsce, według stanu na 2020 rok, sektor ICT wygenerował 8% PKB.

Inżynieria oprogramowania

  • Inżynieria oprogramowania zajmuje się teorią, metodami i narzędziami związanymi z wytwarzaniem oprogramowania.
  • Obejmuje wszystkie aspekty tworzenia oprogramowania, od początkowej fazy do pielęgnacji.

Koszty oprogramowania

  • Koszty oprogramowania często stanowią dominujący składnik kosztów całego systemu.
  • Koszt utrzymania i konserwacji oprogramowania jest wyższy niż koszt jego wytworzenia.
  • Długoterminowa konserwacja oprogramowania może wielokrotnie przekroczyć koszt jego zakupu.

Geneza inżynierii oprogramowania

  • Początki inżynierii oprogramowania sięgają połowy lat 60. XX wieku.
  • Powstała jako odpowiedź na kryzys oprogramowania.
  • Kryzys oprogramowania wiązał się z rosnąca złożonością systemów informatycznych i trudnościami w ich wytwarzaniu.
  • Niepowtarzalność poszczególnych przedsięwzięć, nieprzejrzystość procesu tworzenia oprogramowania oraz pozorna łatwość poprawek stanowiły istotne wyzwania.
  • Uważa się, że kryzys oprogramowania trwa do dziś.

Pojęcia podstawowe

  • Oprogramowanie to programy komputerowe, cała dokumentacja i dane konfiguracyjne związane z nimi.
  • Rodzaje produktów oprogramowania:
  • Powszechne (generic products) – kierowane do wielu odbiorców.
  • Dostosowane (customized products) – tworzone na zamówienie dla konkretnego odbiorcy.

Właściwości dobrego oprogramowania

  • Zdolność do pielęgnacji – zdolność do dostosowania do potrzeb klientów.
  • Niezawodność (dependability and security) – działanie zgodne z przeznaczeniem bez zakłóceń.
  • Efektywność – efektywne wykorzystanie zasobów systemu.
  • Użyteczność – łatwość i przyjemność w korzystaniu z oprogramowania.

Inżynieria oprogramowania – dziedzina wiedzy

  • Obejmuje wszystkie aspekty tworzenia i pielęgnacji oprogramowania.
  • Zajmuje się teorią, metodami i narzędziami związanymi z wytwarzaniem oprogramowania.
  • Praca inżynierów oprogramowania charakteryzuje się systematycznością i uporządkowaniem.

Informatyka

  • Obejmuje teorie informatyczne.
  • Budowę systemów informatycznych (w tym programowanie).
  • Budowę i działanie sprzętu komputerowego.
  • Zastosowanie metod informatycznych w różnych dziedzinach działalności ludzkiej.

Informatyka ekonomiczna

  • Zajmuje się systemami informatycznymi w organizacjach.
  • Obejmuje obszary inżynierii oprogramowania, systemy typu ERP, SCM, CRM, WFM, Business Intelligence oraz biznes elektroniczny.

Inżynieria oprogramowania vs Informatyka

  • Informatyka skupia się na teorii i podstawach działania komputerów.
  • Inżynieria oprogramowania koncentruje się na praktycznych problemach związanych z tworzeniem oprogramowania.

Inżynieria systemów vs inżynieria oprogramowania

  • Inżynieria systemów obejmuje wszystkie aspekty tworzenia systemów komputerowych, w tym sprzęt, oprogramowanie oraz procesy.
  • Inżynierowie systemów uczestniczą w specyfikacji systemu i definiowaniu jego ogólnej architektury.

Proces tworzenia oprogramowania

  • Niezależnie od metodyki, proces tworzenia oprogramowania obejmuje: specyfikację, tworzenie, zatwierdzenie i ewolucję oprogramowania.

Model procesu tworzenia oprogramowania

  • Niektóre modele procesu tworzenia oprogramowania obejmują: model kaskadowy, tworzenie ewolucyjne i formalne przekształcenia oraz składanie systemu z komponentów.
  • Modele te przedstawiają uproszczone reprezentacje procesu tworzenia oprogramowania.

Koszty inżynierii oprogramowania

  • Koszty wytworzenia oprogramowania mogą być zbliżone do kosztów jego testowania.
  • Ewolucja oprogramowania może przewyższyć koszty jego wytworzenia.
  • Koszty zmian oprogramowania użytkwanego przez długi okres czasu, mogą wielokrotnie przekroczyć koszty jego wytworzenia.
  • Koszty zależą od stosowanego modelu tworzenia oprogramowania.

CASE (Computer-Aided Software Engineering)

  • Obejmuje różne programy wspomagające proces tworzenia oprogramowania.
  • Wiele programów wspomagających (np. edytory kodów, generatory, programy CASE).

Wyzwania dla inżynierów oprogramowania

  • Pielęgnacja i modyfikacje dużych, istniejących systemów informatycznych.
  • Wspieranie pracy oprogramowania w zróżnicowanych systemach i typach komputerów.
  • Dostarczenie gotowego oprogramowania w krótkim czasie bez utraty jakości.
  • Dostosowanie oprogramowania do zmieniającej się otoczenia biznesowego i społecznego.
  • Tworzenie rozwiązań, którym użytkownicy mogą zaufać.
  • Skalowanie oprogramowania (od małych systemów lokanych do rozległych systemów w chmurze).

System

  • System jest strukturą komponentów powiązanych ze sobą, które współpracują, aby osiągnąć określony cel.
  • Przykłady prostych systemów – pióro, złożone – system kontroli lotu.
  • Funkcjonowanie i zachowanie systemów jest nierozerwalnie związane z właściwościami ich komponentów.

Właściwości systemu

  • Właściwości niefunkcjonalne, np. niezawodność, efektywność, bezpieczeństwo i zabezpieczenia.
  • Właściwości funkcjonalne, np. wydajność i użyteczność systemu.
  • Ważnym aspektem jest zależność komponentów od otoczenia i innych komponentów.

Niezawodność systemu

  • Niezawodność jest złożonym pojęciem, które należy badać na poziomie całości systemu, a nie jego poszczególnych elementów.
  • Komponenty systemowe są od siebie zależne, a awarie w jednym elemencie mogą mieć wpływ na działanie innych komponentów.

Czynniki wpływające na niezawodność systemu

  • Niezawodność sprzętu— prawdopodobieństwo awarii komponentów sprzętowych i czas naprawy.
  • Niezawodność oprogramowania— prawdopodobieństwo błędnych danych wyjściowych.
  • Niezawodność operatora— prawdopodobieństwo błędu operatora systemu.

Efektywność, użyteczność, bezpieczeństwo i zabezpieczenia systemu

  • Efektywność i użyteczność oceniane po uruchomieniu systemu.
  • Bezpieczeństwo i zabezpieczenia to wymagania dotyczące zachowania systemu.

Modelowanie systemu

  • Proces tworzenia, spisywania wymagań i projektowania systemów obejmuje konstruowanie modeli systemu.
  • Przy użyciu diagramów blokowych, przedstawia się najważniejsze podsystemy i połączenia między nimi.

Proces tworzenia oprogramowania

  • Obejmuje kolejne, zazwyczaj powiązane, etapy.
  • Przykładowe etapy: specyfikacja, projektowanie, implementacja, integracja oraz konserwacja.

Kontekst systemu

  • Stanowi opis otoczenia, z którym system będzie współpracował.
  • Opisuje wszystkie systemy, z którymi dany system ma kontaktu.

Komponenty funkcjonalne systemu

  • Detektorowe – zbierają informacje ze środowiska.
  • Efektorowe – powodują zmiany w środowisku.
  • Obliczeniowe – pobierają dane, wykonują obliczenia i tworzą wyniki.
  • Komunikacyjne - komunikują się z innymi komponenty.
  • Koordynujące – synchronizują działanie innych komponentów.
  • Interfejsu – przetwarzają dane w odpowiednim formacie.

Komponenty funkcjonalne systemu - kontynuacja

  • Są to elementy, które definiują w jaki sposób system obsługuje dane wejściowe, wykonuje procesy i generuje dane wyjściowe.

Proces inżynierii systemów

  • Obejmuje etapy: definicję wymagań, projektowanie, tworzenie podsystemów, integrację, instalację, ewolucję i likwidację systemu.

Modele cyklu życia oprogramowania

  • Upraszczają sposób prezentacji procesu tworzenia oprogramowania poprzez określanie faz i ich kolejności.
  • Przykłady ogólnych modeli (paradygmatów) tworzenia oprogramowania – model kaskadowy, model cyklu życia iteracyjnego, model formalnych przekształceń, model składania z komponentów.

Koszty inżynierii oprogramowania

  • Koszty w procesie tworzenia oprogramowania to nie tylko koszty bezpośrednio związane z tworzeniem, lecz także koszty testowania, konserwacji, adaptacji i dostosowania do nowych wymagań.
  • Koszty są związane z wytworzeniem, testowaniem, ewolucją oprogramowania.
  • Zależą od stosowanego modelu i zmienności otoczenia.

Wzorce architektury

  • Wzorce architektoniczne udostępnione dla wielokrotnego wykorzystania, dające strukturę i zasady tworzenia oprogramowania.
  • Niektóre wzorce takie jak klient-serwer, peer-to-peer czy SOA oferują zbiór rozwiązań dla konkretnej dziedziny.

Model repozytorium

  • W tym modelu dane wykorzystywane przez wiele podsystemów znajdują się w centralnym repozytorium.

Modele sterowania

  • Centralizowane – jeden podsystem zarządza uruchamianiem i zatrzymywaniem pozostałych podsystemów.
  • Zdarzeniowe – systemy komunikują się za pośrednictwem zdarzeń.

Rozkład na moduły

  • Rozkład systemu na moduły to podział podsystemów na mniejsze, niezależne elementy (moduły).
  • Zapewnia lepsza czytelność, łatwość utrzymania i modyfikacji.
  • Istnieją dwa główne modele podziału na moduły - przepływ danych i model obiektowy.

Modele przepływu danych

  • Przedstawiają sposób przepływu danych między komponentami, procesami i składnicami.
  • W miarę przepływu danych wykonywane są przekształcenia i działania.

Model obiektowy systemu fakturowania

  • Przedstawia podział całego systemu fakturowania na oddzielne obiekty (klienci, faktury, płatności), odpowiadające na konkretne funkcje systemu.
  • Znaczącym aspektem jest komunikacja pomiędzy tymi obiektami, określającą przepływ danych i transakcji.

Architektura charakterystyczna

  • Reprezentują cechy architektoniczne specyficzne dla określonego obszaru zastosowań oprogramowania (np. dziedziny).
  • Modele ogólne oparcie dla rozwiązań w tej samej dziedzinie, modele odniesienia opisujące ideały rozwiązań.

Model kompilatora

  • Przykładem ogólnego modelu architektonicznego.
  • Zbiór modułów: analizator leksykalny, tabela symboli, analizator składniowy, drzewo składni, analizator znaczeniowy, generator kodu.

Modele odniesienia

  • Reprezentują wyidealizowane architektury obejmujące wszystkie udogodnienia, które system mógłby oferować.
  • Służą jako punkty odniesienia do oceny i porównania istniejących systemów z perspektywy idealnego wzorca.

Projektowanie architektoniczne

  • Skupione na tworzeniu struktury wysokiego poziomu oprogramowania.
  • Obejmuje podział systemu na moduły, określenie ich wzajemnych relacji oraz sposób sterowania między nimi.

Środowisko implementacyjne

  • Języki programowania, system operacyjny, baza danych (relacyjna/nierekcyjna) to elementy środowiska programistycznego używane w procesie implementacji oprogramowania.

IDE (Zintegrowane środowisko programistyczne)

  • Zintegrowany pakiet programów służący do obsługi różnych faz tworzenia oprogramowania.
  • Obejmuje edytory tekstu, kompilatory, debbueger, edytory interfejsu użytkownika, narzędzia do tworzenia baz danych itp.

Narzędzia RAD (Rapid Application Development)

  • Narzędzia wspierające zwalidowany sposób tworzenia oprogramowania, zazwyczaj z wykorzystaniem komponentów.
  • Często wykorzystywane przy tworzeniu prototypu.
  • Zapewniają wsparcie w różnych etapach tworzenia oprogramowania.

Testowanie

  • Proces weryfikacji i walidacji oprogramowania
  • Wykorzystuje się różne testy jednostkowe, komponentów, integracyjne i systemowe, akceptacyjne.

Testowanie- kontynuacja

  • Część testów przeprowadza się przed, a część po implementacji
  • Ważne jest uwzględnienie różnych przypadków użycia i specyfikacji wymagań.

Błędy w kodzie

  • Rodzaje błędów w kodzie, z przykładami.

Klasyfikacja testów

  • Statyczne (analiza kodu bez uruchamiania).
  • Dynamiczne (wykonanie kodu).
  • Strukturalne (bazujące na strukturze kodu).
  • Funkcjonalne (bazujące na wymaganiach).
  • Statystyczne (służą do określania niezawodności poprzez symulację dużej ilości operacji).
  • Wydajnościowe (pozwala ocenić wydajność systemu dla większego obciążenia).

Testy wydajnościowe

  • Testy obciążeniowe i przeciążeniowe.

Skalowalność

  • Zdolność systemu do efektywnie przetwarzania informacji przy rosnącym obciążeniu.

Model V

  • Model cyklu życia oprogramowania skupiający się na testoaniu.
  • Przykłady powiązano poszczególne etapy testowania z fazami implementacji oprogramowania. -Testowanie akceptacyjne -Testowanie systemowe -Testowanie integracyjne -Testowanie komponentu -Testowanie jednostkowe

Specyfikacja testów

  • Definicja warunków testowych.
  • Opis przypadków testowych.
  • Opis sposobów przeprowadzenia testów w formie kroków (Given, When, Then).

Automatyzacja testów

  • Zautomatyzowane narzędzie do testowania kodu.

Testy regresyjne

  • Testy mają na celu sprawdzenie czy system nadal działa prawidłowo po modyfikacji.

Test Driven Development (TDD)

  • Technika programowania w oparciu o testy jednostkowe.

Dokumentacja

  • Dokumentacja musi opisywać system i jego sposób funkcjonowania.
  • Powinna być aktualizowana na bieżąco.

Dokumentacja techniczna

  • Dokumentacja przeznaczona dla osób, które będą rozwijać lub modyfikować system.

Dokumentacja użytkownika

  • Dokumentacja przeznaczona dla użytkowników, którzy będą korzystać z systemu.

Instalacja

  • Obejmuje szkolenie, instalację sprzętu, instalację oprogramowania, zasilenie danymi, rozruch, nadzór pracy i przekazanie systemu klientowi.

DevOps

  • Zbiór praktyk i narzędzi wspomagających współpracę pomiędzy zespołami programistów i administratorów.
  • Wsparciem dla ciągłego ulepszania i rozwoju oprogramowania.

Inne pojęcia

  • Terminy z zakresu testowania oprogramowania, takie jak błędy, powiązania, techniki oceny oraz aspekty związane z testowaniem COTS oraz narzędzi wspierających, tj. CASE.

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