Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

SRE Assignment

Submitted by:- Amriti Gupta (2K21/SE/29)


Date: 11/09/2023
Q) .Explain Aspect oriented requirement engineering. Why do we need it?

Aspect-Oriented Requirements Engineering (AORE) is a methodology within software


engineering that draws inspiration from Aspect-Oriented Programming (AOP) principles. AORE
serves the purpose of addressing the intricate challenges associated with managing cross-cutting
concerns in the context of software requirements. Cross-cutting concerns are aspects of a
software system that have an impact on multiple modules or components, and they often
intertwine with the core functional and non-functional aspects of the system.
A bit of background on Aspect-Oriented Programming (AOP) is essential for understanding
AORE. AOP is a programming paradigm that allows developers to isolate cross-cutting concerns
from the main application code. In AOP, these concerns are encapsulated within aspects,
promoting improved code modularity, maintainability, and reusability.
The need for AORE becomes apparent due to certain challenges encountered in traditional
requirements engineering. Traditional approaches primarily focus on capturing and managing
functional and non-functional requirements. However, cross-cutting concerns, such as security,
logging, error handling, and performance, often prove to be problematic. These concerns tend to
span across multiple requirements, making the specifications complex and challenging to
maintain.
AORE applies AOP principles to the early stages of software development, particularly during
requirements engineering. Its main objectives include the identification and modularization of
cross-cutting concerns in requirements specifications. This process involves recognizing these
concerns within the requirements documentation, isolating them from the primary requirements,
creating separate aspects to encapsulate these cross-cutting concerns, and finally integrating
these aspects into the main requirements.
The advantages of AORE are noteworthy:

● Enhanced Modularity: AORE significantly improves the modularity of requirements


specifications by isolating cross-cutting concerns, simplifying their management.
● Improved Maintainability: By separating concerns into aspects, AORE facilitates easier
updates or modifications to specific aspects without affecting the entire system.
● Increased Reusability: Aspects developed through AORE can be reused across different
projects, reducing redundancy in requirements specification.
● Enhanced Traceability: AORE contributes to better traceability, offering a clearer
understanding of how cross-cutting concerns relate to primary requirements.

In recent years, research efforts in the field of AORE have explored various aspects, including
the development of requirements modeling languages, techniques for efficient aspect
identification, traceability improvements, and the creation of specialized tools. Contemporary
research papers and studies have delved into the application of AORE in diverse domains and
have introduced novel methods and tools to advance the field further.

References:-
● A. Rashid, "Aspect-Oriented Requirements Engineering: An Introduction," 2008 16th IEEE
International Requirements Engineering Conference, Barcelona, Spain, 2008, pp. 306-309,
doi: 10.1109/RE.2008.58.
● Alshareef, Sohil & Maatuk, Abdelsalam & Abdelaziz, Tawfig. (2018). Aspect-Oriented
Requirements Engineering: Approaches and Techniques. 10.1145/3279996.3280009.
● H. Sharif, S. Rehan and G. A. Farrukh, "Aspect-Oriented Requirements Engineering: A Use
Case Based Approach," 2005 Pakistan Section Multitopic Conference, Karachi, Pakistan,
2005, pp. 1-5, doi: 10.1109/INMIC.2005.334421.

Q). Explain agent based requirement engineering. What are its drawbacks?

Agent-Based Requirements Engineering (ABRE) is an innovative approach to software


requirements engineering that draws upon principles and concepts from multi-agent systems
(MAS). In ABRE, software systems are envisioned as assemblies of autonomous agents, each
representing a distinct entity with specific capabilities and responsibilities. These agents
collaborate and communicate with one another to fulfill the requirements of the software system.
Key Aspects of ABRE:

● Agent Concept: In ABRE, an "agent" signifies an independent computational entity


equipped with the ability to make decisions, execute actions, and communicate with
fellow agents. Each agent embodies a particular aspect or component of the system.
● Requirements as Interactions: ABRE characterizes requirements as interactions among
agents. Rather than delineating requirements in a monolithic document, ABRE models
requirements as a series of interactions and behaviors among agents. These interactions
elucidate how agents cooperate to accomplish specific objectives.
● Autonomy and Collaboration: Agents within the ABRE framework possess a degree of
autonomy, empowering them to make independent decisions within their designated
roles. They collaborate with other agents through well-defined communication protocols.
● Dynamic and Adaptive: ABRE is particularly suited for systems requiring adaptability
and responsiveness to changing circumstances. Agents can adjust their behavior based on
the current context and requirements.
● Illustrative Example: Let's consider a smart home system. Agents in this context could
encompass a thermostat agent, lighting control agent, and security agent. These agents
interact harmoniously to achieve overarching goals, such as maintaining a comfortable
temperature and ensuring security.
Drawbacks of Agent-Based Requirements Engineering:

● Complexity: ABRE may introduce complexity, especially when modeling and


overseeing interactions among a multitude of agents. Designing effective agent-based
systems can pose challenges, potentially resulting in increased development and
maintenance efforts.
● Scalability: Managing interactions and ensuring seamless collaboration among numerous
agents becomes more demanding as their numbers grow. Scalability is a pertinent
concern in expansive systems.
● Requirements Elicitation: Identifying and articulating the roles and responsibilities of
agents can be intricate during the requirements elicitation phase. Ensuring comprehensive
consideration of all relevant agents can be a complex undertaking.
● Lack of Standardization: In contrast to more conventional requirements engineering
methodologies, ABRE lacks standardized techniques and notations, possibly making it
less accessible to developers unfamiliar with agent-based concepts.
● Tool Support: Tools tailored for ABRE are not as mature or widely accessible as those
designed for traditional requirements engineering. This may pose challenges in practical
implementation.
● Verification and Validation: Validating and verifying agent-based systems can be more
intricate compared to traditional software systems due to the dynamic nature of agent
interactions.
● Cost and Resources: Implementing ABRE may necessitate additional resources,
including specialized skills in multi-agent systems, potentially increasing project costs.

In summary, Agent-Based Requirements Engineering offers a unique perspective on


requirements engineering, modeling software systems as assemblies of autonomous agents.
While it presents potential advantages in addressing complex and dynamic requirements
scenarios, it also introduces challenges related to complexity, scalability, standardization, tool
support, and verification and validation. Organizations considering ABRE should carefully
evaluate its benefits in light of these considerations and assess its suitability for their specific
project requirements and constraints.

References:-
● Bresciani, Paolo & Donzelli, Paolo. (2003). An agent-based requirements engineering
framework for complex socio-technical systems.
● Paolo Donzelli. 2004. A goal-driven and agent-based requirements engineering framework.
Requir. Eng. 9, 1 (February 2004), 16–39. https://doi.org/10.1007/s00766-003-0170-4
● Yu, Eric S. K.. “Why agent-oriented requirements engineering.” (1997).

You might also like