terns in the context of P2P systems (Amoretti and
Zanichelli, 2018; Grolimund and M
¨
uller, 2006). The
resulting pattern catalogs support the design and im-
plementation phases of the software engineering pro-
cess, while our work focuses on the requirements en-
gineering phase. By mapping our frames to appro-
priate design and architectural patterns, we can also
assist the design phase during software development.
Haley suggests to use cardinalities to problem dia-
grams to specify interfaces between domains in a dis-
tributed system in more detail (Haley, 2003). Adding
cardinality notation to P2P frame diagrams would al-
low us to specify the communication between differ-
ent subsystems in more detail.
There are also improvements for P2P techniques
in general, such as combining peer caches with a me-
diator (Knoll et al., 2008). Such proposals attempt
to combine the advantages of both approaches. With
the help of our two bootstrapping frames, which now
serve as a basis for refinement in addition to the basic
frames for distributed systems, hybrid bootstrapping
variants that combine these approaches can be mod-
eled more easily.
Finally, a literature review discusses the current
status of requirements engineering for distributed
computing (Ramachandran and Mahmood, 2017).
The authors focus on cloud computing, which has be-
come increasingly popular in recent years. While we
have limited ourselves to P2P systems in this paper,
their work can serve as input for further analysis of
frames for distributed systems in the context of cloud
computing. Our frame library could be extended to
include special cloud frames.
7 CONCLUSION AND FUTURE
WORK
Summary. The main contribution of our paper are
P2P frames, which capture typical functional require-
ments in P2P systems. These patterns are an exten-
sion of Jackson’s problem frames and the frames for
distributed systems. We restricted ourselves to boot-
strapping, query routing in unstructured networks,
and direct data transfer between peers. Since we use
a consistent description format, the set of frames can
easily be extended. In addition, we proposed a frame
library system that supports the process of require-
ments engineering and that also incorporates our new
P2P frames. This library system helps software de-
velopers to systematically identify suitable frames for
their functional requirements. They can instantiate a
selected frame for their specific problems. Each frame
for distributed systems can be further refined to cap-
ture specific aspects of distributed systems, thereby
establishing new categories of frames (e.g., our P2P
frames). Our library can be integrated into require-
ments engineering processes and supports the selec-
tion of suitable frames to document functional re-
quirements.
Outlook. In future work, we plan to extend our frame
library system with new categories (e.g., frames for
cloud computing). Our created P2P frames currently
represent a basic set of typical requirements in P2P
systems. We will continue to extend our library to
incorporate a growing set of frames. To make our
system publicly available, we plan to implement it as
a web service. Requirements engineers can look up
suitable frames. Furthermore, they can contribute to
the library by adding their own identified frames. It
would also be interesting to extend the idea of P2P
frames to the analysis of security-relevant require-
ments for P2P systems to address security concerns
from the beginning of the development process.
In summary, we believe that patterns should be
part of a software analyst’s standard toolkit and that a
comprehensive and extensible catalog helps both ex-
perienced developers as well as those with no P2P
systems experience.
REFERENCES
Amoretti, M. and Zanichelli, F. (2018). P2P-PL: A pat-
tern language to design efficient and robust peer-to-
peer systems. Peer Peer Netw. Appl., 11(3):518–547.
Beckers, K., Faßbender, S., and Heisel, M. (2013). A meta-
model approach to the fundamentals for a pattern lan-
guage for context elicitation. In Proceedings of the
18th European Conference on Pattern Languages of
Programs (Europlop).
Boldt, D., Felix, K., and Fischer, S. (2017). Decentralized
Bootstrapping for WebRTC-based P2P Networks. The
Fifth International Conference on Building and Ex-
ploring Web Based Environments (WEB2017), pages
17–23.
Buford, J., Yu, H., and Lua, E. K. (2008). P2P Networking
and Applications. Morgan Kaufmann Publishers Inc.,
San Francisco, CA, USA.
Choppy, C. and Heisel, M. (2004). Une approache
`
a base
de patrons pour la sp
´
ecification et le d
´
eveloppement
de syst
`
emes d’information. Approches Formelles dans
l’Assistance au D
´
eveloppement de Logiciels - AFADL.
Dinger, J. (2009). Das Potential von Peer-to-Peer-
Netzen und -Systemen : Architekturen, Robustheit und
rechtliche Verortung. Universit
¨
atsverlag Karlsruhe,
Karlsruhe.
FIRST.org (2019). Common vulnerability scoring system
v3.1: Specification document.
Grolimund, D. and M
¨
uller, P. (2006). A pattern language for
overlay networks in peer-to-peer systems. In Zdun,
P2P Frames: Pattern-based Characterization of Functional Requirements for Peer-to-peer Systems
249