Wymagania niefunkcjonalne i Diagram Hierarchii Funkcji
45 Questions
0 Views

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

    Description

    Quiz ten dotyczy wymagań niefunkcjonalnych oraz Diagramu Hierarchii Funkcji. Uczestnicy będą oceniani na podstawie swojej wiedzy na temat klasyfikacji wymagań oraz technik ich analizy. Sprawdź, ile wiesz o tych kluczowych elementach inżynierii oprogramowania!

    More Like This

    Use Quizgecko on...
    Browser
    Browser