Requisiti software

Description

Computer Science Mind Map on Requisiti software, created by Sebastiano De Toni on 22/03/2017.
Sebastiano De Toni
Mind Map by Sebastiano De Toni, updated more than 1 year ago
Sebastiano De Toni
Created by Sebastiano De Toni about 7 years ago
24
0

Resource summary

Requisiti software

Annotations:

  • I requisiti: ancora oggi un anello debole Da uno studio effettuato dalla Standish Group, dei fattori che portano al fallimento di un progetto software, 5 su 8 riguardano i requisiti. Molto spesso, il fallimento del sistema viene scoperto solo alla sua messa in opera. Quali sono le cause che determinano il RITARDO nella individuazione del problema: 1) insufficiente interazione tra gli attori coinvolti 2) insufficiente individuazione dei conflitti tra requisiti 3) mancato coinvolgimento degli utenti nella verifica dei requisiti individuati dagli analisti 4) mancato coinvolgimento degli utenti per esprimere feedback sulle ipotesi progettuali 5) insufficiente controllo sull’evoluzione dei requisiti durante l’intero ciclo di vita del sistema 6) rinvio della presa in carico del nuovo requisito sopraggiunto in corso d’opera ad una release successiva 7) mancato accordo sui contenuti e/o costi e/o tempi durante la rinegoziazione per l’aggiunta di un requisito sopraggiunto in corso d’opera
  1. Studio di fattibilità

    Annotations:

    • OUTPUT: preventivo o documento di fattibilità
    1. valutazione preliminare di costi e benefici
      1. valutazione di opzioni alternative
        1. stima delle risorse umane e finanziarie necessarie
        2. Specifica (raccolta e analisi) dei requisiti

          Annotations:

          • NB La specifica dei requisiti risponde alla domanda COSA DEVE FARE IL SISTEMA non come dovrà farlo!
          • L’insieme delle attività che si occupano dei requisiti → Ingegneria dei requisiti  - requirements engineering
          1. analisi del problema: cosa deve fare il sistema
            1. definizione delle funzionalità: vincoli aziendali interni/esterni, caratteristiche sistema
              1. redazione di un documento di Specifica dei Requisiti sw: SRS Software Requirements Specification - documento formale
                1. convalida da parte del committente del SRS
                2. Requisiti software e stakeholder
                  1. Requisito

                    Annotations:

                    • Def. ogni informazione circa le funzionalità, i servizi, le modalità operative e di gestione del sistema da sviluppare
                    • Def. Requisito IEEE Std 610.12 (1990) A) A condition or capability needed by a user to solve a problem or achieve an objective (B) A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. (C) A documented representation of a condition or capability as in definition (A) or (B)
                    1. La definizione dei requisiti
                      1. analizza i bisogni dell’utente
                        1. indaga il dominio del problema
                          1. coinvolge diverse persone
                            1. sia il team di sviluppo
                              1. sia l’azienda del cliente - engagement
                                1. consulenti esterni (legali, sviluppatori legacy system)
                                2. fattori esterni possono influenzare pesantemente i requisiti del sistema
                                  1. cambiamenti nell’organizzazione aziendale
                                    1. necessità di adeguamento a nuove politiche di mercato
                                      1. cambiamento a livello di obblighi legislativi
                                    2. La fase di analisi dei requisiti è molto delicata
                                      1. errori in questa fase → fallimento possibile dell’intero progetto
                                        1. rischi principali
                                          1. dimenticare o ignorare una funzionalità
                                            1. implementare in modo errato una richiesta
                                              1. realizzare interfacce utenti poco intuitive e difficili da usare
                                            2. Classificazione dei requisiti
                                              1. livello di dettaglio
                                                1. requisiti UTENTE
                                                  1. osservati - proposti - dal cliente
                                                    1. descritte con il linguaggio del cliente
                                                      1. equisiti aperti perché sottoposti successivamente al team di sviluppo che propone una soluzione
                                                      2. requisiti DI SISTEMA
                                                        1. imposti da vincoli esistenti
                                                          1. esistenza di apparecchiature esistenti all’interno dell’azienda
                                                            1. vincoli di natura fiscale e/o legislativa
                                                            2. molto strutturati e vincolanti
                                                              1. scritti in linguaggi tecnici e/o semi-formali
                                                                1. spesso non sono noti all’utente, ma solo al programmatore
                                                                  1. requisiti restrittivi o requisiti chiusi
                                                                2. tipo di requisito
                                                                  1. requisiti FUNZIONALI

                                                                    Annotations:

                                                                    • descrivono le funzionalità che il sistema deve avere e tutti i servizi che dovrà offrire agli utenti
                                                                    1. Devono essere COMPLETI: tutti i servizi richiesti dagli utenti
                                                                      1. Devono essere COERENTI: non devono esserci definizioni contraddittorie
                                                                      2. requisiti NON FUNZIONALI

                                                                        Annotations:

                                                                        • Tutti quei requisiti imposti: dalle modalità operative dal CICLO DI VITA del prodotto dal rispetto della normativa vigent
                                                                        • Sommerville: distingue 3 macro categorie di requisiti non funzionali
                                                                        1. Req. di prodotto
                                                                          1. affidabilità
                                                                            1. portabilità
                                                                              1. efficienza
                                                                                1. spazio
                                                                                  1. performance
                                                                                2. Req. organizzativi
                                                                                  1. req. di consegna
                                                                                    1. di implementazione
                                                                                      1. su standard
                                                                                      2. Req. esterni
                                                                                        1. interoperabilità
                                                                                          1. Req. etici
                                                                                            1. Req. legislativi
                                                                                          2. requisiti di DOMINIO

                                                                                            Annotations:

                                                                                            • dipendono dal DOMINIO in cui il sistema deve operare ES : - impianti industriali - riservatezza dati sensibili - accessi area riservata
                                                                                        2. Verifica dei requisiti

                                                                                          Annotations:

                                                                                          • req. funzionali - collaudo del sistema con gli utenti - verifica se le aspettative sono state soddisfatte
                                                                                          • req. di dominio - collaudo del sistema con il “resto del mondo” (software aziendale preesistente, terze parti) - verifica delle normative di settore
                                                                                          • req. non funzionali - spesso non quantificabili e difficili da verificare - grado di soddisfacimento del requisito
                                                                                        3. Stakeholder

                                                                                          Annotations:

                                                                                          • Le persone coinvolte sono chiamate STAKEHOLDER - portatori di interesse - e sono “persone o gruppi che influenzano e/o sono influenzati dalle attività di un’organizzazione, dai suoi prodotti o servizi e dai relativi risultati di performance (Freeman, 1984)
                                                                                          1. Problema
                                                                                            1. non hanno le idee chiare
                                                                                              1. parlano un proprio linguaggio tecnico
                                                                                                1. hanno poca dimestichezza nello sviluppo del software e idee confuse sulle funzionanlità da implementare
                                                                                                  1. possono effettuare richieste diverse tra loro, che vanno spesso in conflitto
                                                                                                    1. Compito dell’analista è ottenere una descrizione dettagliata (e il più possibile rigorosa) del sistema!
                                                                                                2. Classificazione FURPS (1987)
                                                                                                  1. Functionality

                                                                                                    Annotations:

                                                                                                    • le caratteristiche e le funzionalità fornite dal programma
                                                                                                    1. Usability - usabilità

                                                                                                      Annotations:

                                                                                                      • semplicità di apprendimento e utilizzo del sistema da parte degli utenti
                                                                                                      1. Reliability -affidabilità
                                                                                                        1. il sistema deve garantire le funzioni richieste nel tempo
                                                                                                          1. per un determinato insieme di situazioni
                                                                                                          2. Performance - prestazioni e tempi di risposta
                                                                                                            1. velocità nel fornire risultati
                                                                                                              1. quantità di risorse utilizzate
                                                                                                                1. throughput: efficienza / effettiva velocità di utilizzo
                                                                                                                2. Supportability - supportabilità
                                                                                                                  1. manutenibilità
                                                                                                                    1. estendibilità e adattabilità
                                                                                                                      1. compatibilità e configurabilità
                                                                                                                      2. Ulteriori pseudo-requisiti o VINCOLI

                                                                                                                        Annotations:

                                                                                                                        • - implementazione - interfacce - operazioni - packaging - legali
                                                                                                                      3. Tipi di raccolta dei requisiti
                                                                                                                        1. greenfield engineering
                                                                                                                          1. sviluppo da zero del sistema
                                                                                                                            1. la fonte dei requisiti è l’azienda committente
                                                                                                                              1. lo sviluppatore: deve valutare disponibilità sul mercato di un prodotto analogo da confrontare o proporre in alternativa allo sviluppo ex-novo
                                                                                                                              2. re-engineering

                                                                                                                                Annotations:

                                                                                                                                • esiste già in azienda un sistema
                                                                                                                                • analisi del sistema esistente → alla base del nuovo progetto
                                                                                                                                1. interface engineering

                                                                                                                                  Annotations:

                                                                                                                                  • non è possibile sostituire completamente il software esistente
                                                                                                                                  • MA si deve adeguare ALMENO l’interfaccia grafica
                                                                                                                                  • non è necessario raccogliere nuovi requisiti
                                                                                                                                  1. Elicitazione (scoperta) dei requisiti

                                                                                                                                    Annotations:

                                                                                                                                    • questa fase è detta fase di esplorazione in quanto il problema da risolvere va esplorato elicitazione → “scoperta” dei requisiti (sono difficili da individuare)
                                                                                                                                    1. è necessario raccogliere il maggior numero possibile di informazioni

                                                                                                                                      Annotations:

                                                                                                                                      • sugli obiettivi del sistema
                                                                                                                                      • sulle necessità riguardanti il sistema
                                                                                                                                      1. Passi da seguire
                                                                                                                                        1. esaminare le richieste del committente → il principale referente del cliente
                                                                                                                                          1. definizione degli stakeholder (attori)
                                                                                                                                            1. Stakeholder engagement

                                                                                                                                              Annotations:

                                                                                                                                              • partecipazione attiva degli attori che sono a tutti gli effetti parte del gruppo di lavoro
                                                                                                                                              1. Gli ingegneri del software devono

                                                                                                                                                Annotations:

                                                                                                                                                • dialogare con gli attori
                                                                                                                                                • integrare ciò che emerge da questo processo di dialogo (dipendenti vs direzione aziendale)
                                                                                                                                                1. Si rende necessario

                                                                                                                                                  Annotations:

                                                                                                                                                  • individuare criteri di selezione che garantiscano la rappresentatività degli stakeholder
                                                                                                                                                  • conoscere tutti i punti di vista (viewpoint) dei diversi utilizzatori del sistema
                                                                                                                                        Show full summary Hide full summary

                                                                                                                                        Similar

                                                                                                                                        Software Processes
                                                                                                                                        Nurul Aiman Abdu
                                                                                                                                        Computing Hardware - CPU and Memory
                                                                                                                                        ollietablet123
                                                                                                                                        SFDC App Builder 2
                                                                                                                                        Parker Webb-Mitchell
                                                                                                                                        Data Types
                                                                                                                                        Jacob Sedore
                                                                                                                                        Intake7 BIM L1
                                                                                                                                        Stanley Chia
                                                                                                                                        Design Patterns
                                                                                                                                        Erica Solum
                                                                                                                                        CCNA Answers – CCNA Exam
                                                                                                                                        Abdul Demir
                                                                                                                                        Abstraction
                                                                                                                                        Shannon Anderson-Rush
                                                                                                                                        Spyware
                                                                                                                                        Sam2
                                                                                                                                        HTTPS explained with Carrier Pigeons
                                                                                                                                        Shannon Anderson-Rush
                                                                                                                                        Data Analytics
                                                                                                                                        anelvr