We present our ongoing work on requirements specification and analysis for the geographically distributed software and systems. Developing software and systems within for different countries or states or even within for different organisations means that the requirements to them can differ in each particular case. These aspects naturally impact on the software architecture and on the development process as a whole. The challenge is to deal with this diversity in a systematic way, avoiding contradictions and non-compliance. In this paper, we present a formal framework for the analysis of the requirements diversity, which comes from the differences in the regulations, laws and cultural aspects for different countries or organisations. The framework also provides the corresponding architectural view and the methods for requirements structuring and optimisation.
@cite_2 described a spiral model-like development cycle of requirements and architecture. @cite_7 went further and have provided methodical guidance for the co-design. An experience-based approach for integration architecture and RE is presented by @cite_8 . This approach that supports the elicitation, specification and design activity by providing in terms of questionnaires, checklists, architectural patterns and rationale that have been collected in earlier successful projects and that are presented to developers to support them in their task.
@cite_8 @cite_7 @cite_2
8477272 1539866868 2056134008
Deriving requirements and architecture in concert implies the joint elicitation and specification of the problem and the structure of the solution. In this paper we argue that such an integrated process should be fundamentally based on experience. We sketch an approach developed in the context of the EMPRESS project that shows how different kinds of experiencebased artifacts, such as questionnaires, checklists, architectural patterns, and rationale, can beneficially be applied. The need to co-develop requirements and architectural artefacts, especially for innovative solutions, is widely recognised and accepted. Surprisingly, no comprehensive approach exists to structure the co-design process and to support the stakeholders, requirements engineers, and system architects in co-developing innovative requirements and architectural artefacts. In this paper, we propose a method for the co-design of requirements and architectural artefacts based on two viewpoints, the system usage viewpoint and the system architecture viewpoint. Initially, the two viewpoints are nearly decoupled. The method consists of five sub-processes that support the development of each viewpoint, the comparison of the two viewpoints, the consolidation of the viewpoints, and the definition of detailed system requirements based on the two viewpoints. The consolidation of system usage and coarse-grained system architecture is driven by the refinement of system interaction scenarios into architectural scenarios and the refinement of the associated usage goals. Preliminary results of applying our method in industry are reported. Software development organizations often choose between alternative starting points-requirements or architectures. This invariably results in a waterfall development process that produces artificially frozen requirements documents for use in the next step in the development life cycle. Alternatively, this process creates systems with constrained architectures that restrict users and handicap developers by resisting inevitable and desirable changes in requirements. The spiral life-cycle model addresses many drawbacks of a waterfall model by providing an incremental development process, in which developers repeatedly evaluate changing project risks to manage unstable requirements and funding. An even finer-grain spiral life cycle reflects both the realities and necessities of modern software development. Such a life cycle acknowledges the need to develop software architectures that are stable, yet adaptable, in the presence of changing requirements. The cornerstone of this process is that developers craft a system's requirements and its architecture concurrently, and interleave their development.