Un Software Requirements Specification (SRS) è un documento che descrive la natura di un progetto, software o applicazione. In parole semplici, il documento SRS è un manuale di un progetto, a condizione che sia preparato prima di iniziare un progetto/applicazione. Questo documento è anche conosciuto con i nomi rapporto SRS, documento software. Un documento software è principalmente preparato per un progetto, un software o qualsiasi tipo di applicazione.
Ci sono una serie di linee guida da seguire mentre si prepara il documento di specifica dei requisiti software. Questo include lo scopo, l’ambito, i requisiti funzionali e non funzionali, i requisiti software e hardware del progetto. Oltre a questo, contiene anche le informazioni sulle condizioni ambientali richieste, i requisiti di sicurezza, gli attributi di qualità del software del progetto ecc.
What is a Software Requirements Specification document?
A Software requirements specification document describes the intended purpose, requirements and nature of a software to be developed. It also includes the yield and cost of the software.
In this document, flight management project is used as an example to explain few points.
Table of Contents
Suggested Read:
- SRS report for a Lab Administration project
INTRODUCTION
1.1 PURPOSE
The purpose of this document is to build an online system to manage flights and passengers to ease the flight management. <<Include the purpose as applicable to your project >>
1.2 DOCUMENT CONVENTIONS
This document uses the following conventions. <<Include the conventions as per your application >>
DB | Database |
DDB | Distributed Database |
ER | Entity Relationship |
1.3 INTENDED AUDIENCE AND READING SUGGESTIONS
This project is a prototype for the flight management system and it is restricted within the college premises. This has been implemented under the guidance of college professors. Questo progetto è utile per il team di gestione dei voli e per i passeggeri.
1.4 SCOPO DEL PROGETTO
Lo scopo del sistema di gestione dei voli online è quello di facilitare la gestione dei voli e di creare un’applicazione conveniente e facile da usare per i passeggeri che cercano di acquistare biglietti aerei. Il sistema è basato su un database relazionale con le sue funzioni di gestione dei voli e di prenotazione. Avremo un server di database che supporta centinaia di grandi città del mondo e migliaia di voli di varie compagnie aeree. Soprattutto, speriamo di fornire un’esperienza utente confortevole insieme ai migliori prezzi disponibili.
1.5 RIFERIMENTI
- Fondamenti di sistemi di database di ramez elmarsi e shamkant b.navathe
Descrizione generale
2.1 PROSPETTIVA DEL PRODOTTO
Un sistema di database distribuito per compagnie aeree memorizza le seguenti informazioni.
- Dettagli del volo:
Comprende il terminal di origine e quello di destinazione, insieme agli scali intermedi, il numero di posti prenotati/posti disponibili tra due destinazioni ecc. - Descrizione del cliente:
Comprende codice cliente, nome, indirizzo e numero di telefono. Queste informazioni possono essere utilizzate per tenere i registri del cliente per qualsiasi emergenza o per qualsiasi altro tipo di informazione. - Descrizione della prenotazione:
Comprende i dettagli del cliente, numero di codice, numero di volo, data della prenotazione, data del viaggio.
2.2 CARATTERISTICHE DEL PRODOTTO
Le caratteristiche principali del sistema di database delle compagnie aeree sono mostrate nel seguente modello entità-relazione (modello ER)
Il diagramma mostra il layout del sistema di database delle compagnie aeree – modello entità-relazione
2.3 USER CLASS e CHARACTERISTICS
Gli utenti del sistema dovrebbero essere in grado di recuperare dal database informazioni sui voli tra due date città con una data/ora di viaggio. Una rotta dalla città A alla città B è una sequenza di voli di collegamento da A a B tale che: a) ci siano al massimo due scali di collegamento, escludendo la città di partenza e quella di destinazione del viaggio, b) il tempo di collegamento sia compreso tra una e due ore. Il sistema supporterà due tipi di privilegi utente, Cliente e Dipendente. I clienti avranno accesso alle funzioni del cliente, e i dipendenti avranno accesso sia alle funzioni del cliente che alla gestione dei voli. Il cliente dovrebbe essere in grado di fare le seguenti funzioni:
- Fare una nuova prenotazione
– Solo andata
– Andata e ritorno
– Multi-città
– Data/ora flessibile
– Conferma
- Annulla una prenotazione esistente
- Visualizza il suo itinerario
Il dipendente dovrebbe avere le seguenti funzionalità di gestione:
- FUNZIONI CLIENTE.
– Ottenere tutti i clienti che hanno posti riservati su un dato volo.
– Ottenere tutti i voli per un dato aeroporto.
– Visualizzare gli orari dei voli.
– Ottenere tutti i voli i cui orari di arrivo e partenza sono in orario/ritardo.
– Calcolare le vendite totali per un dato volo.
- AMMINISTRATIVO
– Aggiungere/cancellare un volo
– Aggiungere un nuovo aeroporto
– Aggiornare la tariffa dei voli.
– Aggiungere una nuova istanza di tratta.
– Aggiornare gli orari di partenza/arrivo delle istanze di tratta.
Ogni volo ha un numero limitato di posti disponibili. Ci sono un certo numero di voli che partono o arrivano in città diverse in date e orari diversi.
2.4 AMBIENTE OPERATIVO
L’ambiente operativo per il sistema di gestione della compagnia aerea è quello elencato qui sotto. <<Includi i dettagli come da tua applicazione >>
- distribuito database
- sistema client/server
- Sistema operativo: Windows.
- database: database sql+
- piattaforma: vb.net/Java/PHP
2.5 CONSTINTI DI PROGETTAZIONE E ATTUAZIONE
- Lo schema globale, lo schema di frammentazione e lo schema di allocazione.
- Comandi SQL per le query/applicazioni di cui sopra
- Come verrà generata la risposta per le applicazioni 1 e 2. Supponendo che queste siano query globali. Spiegare come i vari frammenti saranno combinati per farlo.
- Implementare il database almeno usando un sistema centralizzato di gestione del database.
2.6 ASSUNZIONE DIPENDENZE
Assumiamo che questo sia un sistema distribuito di gestione delle compagnie aeree e che sia usato nella seguente applicazione:
- Richiesta di prenotazione/cancellazione di un volo da qualsiasi fonte a qualsiasi destinazione, dando voli collegati nel caso non esista un volo diretto tra la coppia Fonte-Destinazione specificata.
- Calcolo degli high fliers (i viaggiatori più assidui) e calcolo dei punti premio appropriati per questi viaggiatori.
Assumendo che entrambe le transazioni siano transazioni singole, abbiamo progettato un database distribuito che è geograficamente disperso in quattro città Delhi, Mumbai, Chennai, e Kolkatta come mostrato nella fig.
FUNZIONI DEL SISTEMA
- DESCRIZIONE e PRIORITÀ
Il sistema di prenotazione delle compagnie aeree mantiene informazioni sui voli, classi di posti, preferenze personali, prezzi e prenotazioni. Naturalmente, questo progetto ha un’alta priorità perché è molto difficile viaggiare attraverso i paesi senza una prenotazione preventiva.
- STIMULUS/RESPONSE SEQUENCES
- Cerca voli di linea per due città di viaggio
- Visualizza una lista dettagliata di voli disponibili ed effettua una “Prenotazione” o Prenota un biglietto su un particolare volo.
- Annulla una Prenotazione esistente.
- FUNCTIONAL REQUIREMENTS
Other system features include:
DISTRIBUTED DATABASE:
Distributed database implies that a single application should be able to operate transparently on data that is spread across a variety of different databases and connected by a communication network as shown in below figure.
Distributed database located in four different cities
CLIENT/SERVER SYSTEM
The term client/server refers primarily to an architecture or logical division of responsibilities, the client is the application (also known as the front-end), and the server is the DBMS (also known as the back-end).
A client/server system is a distributed system in which,
- Some sites are client sites and others are server sites.
- All the data resides at the server sites.
- All applications execute at the client sites.
EXTERNAL INTERFACE REQUIREMENTS
4.1 USER INTERFACES
- Front-end software: Vb.net version
- Back-end software: SQL+
4.2 HARDWARE INTERFACES
- Windows.
- A browser which supports CGI, HTML & Javascript.
4.3 SOFTWARE INTERFACES
Following are the software used for the flight management online application. <<Include the software details as per your project >>
Software used | Description |
Operating system | We have chosen Windows operating system for its best support and user-friendliness. |
Database | To save the flight records, passengers records we have chosen SQL+ database. |
VB.Net | To implement the project we have chosen Vb.Net language for its more interactive support. |
4.4 COMMUNICATION INTERFACES
This project supports all types of web browsers. Stiamo usando semplici moduli elettronici per i moduli di prenotazione, prenotazione dei biglietti ecc.
Requisiti non funzionali
5.1 REQUISITI DI PRESTAZIONE
Le fasi coinvolte per eseguire l’implementazione del database della compagnia aerea sono elencate di seguito.
A) DIAGRAMMA E-R
Il diagramma E-R costituisce una tecnica per rappresentare la struttura logica di un database in maniera pittorica. Questa analisi è poi usata per organizzare i dati come una relazione, normalizzando la relazione e infine ottenendo un database di relazioni.
- ENTITÀ: Che specificano elementi distinti del mondo reale in un’applicazione.
- PROPRIETÀ/ATTRIBUTI: Che specificano le proprietà di un’entità e delle relazioni.
- RELATIONSHIPS: Che collegano le entità e rappresentano dipendenze significative tra loro.
B) NORMALIZZAZIONE:
L’obiettivo fondamentale della normalizzazione è quello di ridurre la ridondanza, il che significa che le informazioni devono essere memorizzate solo una volta. Memorizzare le informazioni più volte porta allo spreco di spazio di memorizzazione e all’aumento della dimensione totale dei dati memorizzati.
Se un database non è progettato correttamente può dare origine ad anomalie di modifica. Le anomalie di modifica sorgono quando i dati vengono aggiunti, cambiati o cancellati da una tabella del database. Allo stesso modo, nei database tradizionali, così come nei database relazionali non correttamente progettati, la ridondanza dei dati può essere un problema. Questi possono essere eliminati normalizzando un database.
La normalizzazione è il processo di suddivisione di una tabella in tabelle più piccole. In modo che ogni tabella si occupi di un singolo tema. Ci sono tre diversi tipi di modifica delle anomalie e la formulazione della prima, seconda e terza forma normale (3NF) è considerata sufficiente per la maggior parte degli scopi pratici. Dovrebbe essere considerata solo dopo un’analisi approfondita e una completa comprensione delle sue implicazioni.
5.2 REQUISITI DI SICUREZZA
Se c’è un danno esteso ad un’ampia porzione del database a causa di un guasto catastrofico, come un crash del disco, il metodo di recupero ripristina una copia passata del database di cui è stato fatto il backup su una memoria di archivio (tipicamente nastro) e ricostruisce uno stato più attuale riapplicando o rifacendo le operazioni delle transazioni impegnate dal registro di backup, fino al momento del guasto.
5.3 REQUISITI DI SICUREZZA
I sistemi di sicurezza hanno bisogno di archiviazione su database proprio come molte altre applicazioni. Tuttavia, i requisiti speciali del mercato della sicurezza significano che i venditori devono scegliere il loro partner di database con attenzione.
5.4 ATTRIBUTI DI QUALITÀ DEL SOFTWARE
- DISPONIBILITÀ: Il volo dovrebbe essere disponibile alla data e all’ora specificata, poiché molti clienti stanno facendo prenotazioni anticipate.
- CORRETTEZZA: Il volo dovrebbe partire dal terminale di partenza corretto e raggiungere la destinazione corretta.
- MAGGIORNABILITÀ: Gli amministratori e i responsabili dei voli dovrebbero mantenere gli orari corretti dei voli.
- USABILITÀ: Gli orari dei voli dovrebbero soddisfare un numero massimo di esigenze dei clienti.