====== 4.4.1 Functional Requirements Assessment ====== [[dido:public:ra:1.4_req:3_assessment |Return to Assessment]] ===== Things to Consider When Designing Distributed systems ===== * **Note:** Because these are [[dido:public:ra:xapend:xapend.a_glossary:f:funcreq|Functional Requirements]], they need to be written specifically for the system being specified in the proposal or solicitation. In DIDO, the following areas minimally cover Functional Requirements: ==== Hardware Architecture ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] The [[dido:public:ra:xapend:xapend.a_glossary:g:goal|goal]] of hardware functional requirements is to decide which hardware architectures are going to be supported and which, if any, will be left out. * [[dido:public:ra:1.4_req:1_func:platform|Which Platforms must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:1_embedded| Which Embedded Systems must be supported?]] \\ • [[dido:public:ra:xapend:xapend.c_hwarch:1_embedded:subsystems| Which Standalone Subystems must be supported?]] \\ • [[dido:public:ra:xapend:xapend.c_hwarch:1_embedded:standalone| Which Standalone Systems must be supported?]] \\ • [[dido:public:ra:xapend:xapend.c_hwarch:1_embedded:networked| Which Network Systems must be supported? ]] * [[dido:public:ra:xapend:xapend.c_hwarch:server | Which servers must be supported?]] \\ • [[dido:public:ra:xapend:xapend.c_hwarch:server:sw | Which software Servers must be supported?]] \\ • [[dido:public:ra:xapend:xapend.c_hwarch:server:hw | Which hardware Servers must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:desktop | Which desktop computers must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:handheld | Which handheld computers must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:super | Which supercomputers must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:network | Which network computers must be supported?]] ==== Operating System ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] [[dido:public:ra:xapend:xapend.a_glossary:n:node|Nodes]] on the distributed network must be designed specifically for the [[dido:public:ra:xapend:xapend.a_glossary:o:os|operating system]] that runs on the node. So the [[dido:public:ra:xapend:xapend.a_glossary:d:distsystem|distributed system]] must support more than one operating system. But too many OSs can cause the support and maintenance of the system to be more difficult and costly. * [[dido:public:ra:1.4_req:1_func:platform:os_arch | Which operating systems must be supported?]] ==== Network ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] A distributed system is a collection of networked nodes, that run on networking equipment all connected using wireless or USB connections. Network functional requirements is to decide which [[dido:public:ra:xapend:xapend.a_glossary:p:platform|platform]], devices, and permissions are used throughout the system. * [[dido:public:ra:1.4_req:1_func:platform:net_arch | Which network platforms must be supported?]] * [[dido:public:ra:xapend:xapend.c_hwarch:network | Which networking architectures must be supported?]] * [[dido:public:ra:1.4_req:1_func:access | Which networking access must be supported?]] ==== RunTime Libraries ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] RunTime functional requirements is to establish a RunTime Library that can communicate to with different operating/hardware platforms across the system. * [[dido:public:ra:1.4_req:1_func:platform:sw_arch | Which runtime environments must be supported?]] ==== Community/Development Tools ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] Tool functional requirements include making sure your system has all the necessary development, management, and operation tools for the project. * [[dido:public:ra:xapend:xapend.e_tools:start| Which support tools must be supported?]] **Note**: The tool list provided is not exhaustive. ==== Virtualized Nodes ==== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] Utilizing Virtual Nodes in a distributed system can provide flexibility because a virtual node can run on many hardware/operating system platforms. Virtual Node functional requirements entail determining which type of virtual node is necessary for the system. * [[dido:public:ra:1.4_req:1_func:platform:virtnodes | Which types of virtualization nodes must be supported?]] ==== Data ===== [[dido:public:ra:1.4_req:3_assessment:1_functional:start | Return to Top]] Every [[dido:public:ra:xapend:xapend.a_glossary:n:node|node]] based on its [[dido:public:ra:1.2_views:3_taxonomic:3_node_tax:start| roles]], manages and controls data. The data within the node is [[dido:public:ra:1.2_views:3_taxonomic:4_data_tax:start| classified]] as either: [[dido:public:ra:1.2_views:3_taxonomic:4_data_tax:03_digi_taxonomy:1_ledger| ledger data]], [[dido:public:ra:1.2_views:3_taxonomic:4_data_tax:03_digi_taxonomy:2_ancillary| ancillary data]], or [[dido:public:ra:1.2_views:3_taxonomic:4_data_tax:03_digi_taxonomy:3_external| external data]]. Regardless of the clas of data sotred on a node, it is often controlled by [[dido:public:ra:xapend:xapend.j_gov_model:start#regulation| regulatons]], [[dido:public:ra:1.3_gov:1_legaldocs:3_pp | Policies and Procedures]]. * [[dido:public:ra:xapend:xapend.a_glossary:h:hippa | Are there Health Insurance Portability and Accountability Act (HIPAA) restrictions?]] * [[dido:public:ra:xapend:xapend.a_glossary:g:dgpr | Are there General Data Protection Regulation (GDPR) restriction? ]] * [[dido:public:ra:xapend:xapend.a_glossary:d:dpa | Are there Data Protection Act 2018 restrictions? ]] * [[dido:public:ra:xapend:xapend.a_glossary:c:ccpa | Are there California Consumer Privacy Act (CCPA) restrictions?]] * [[dido:public:ra:xapend:xapend.a_glossary:d:dataretentionpolicy | Are there data Retention Policy restrictions?]] /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~