Symbol Structure

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 21474 Experts worldwide ranked by ideXlab platform

Yuan Bai - One of the best experts on this subject based on the ideXlab platform.

  • novel training Symbol Structure for transmitter iq mismatch compensation for coherent optical ofdm
    IEEE Photonics Technology Letters, 2013
    Co-Authors: Yuan Bai
    Abstract:

    The conventional compensation methods exist estimation error because of the sequential estimation process using pilot or training Symbols for transmitter in-phase and quadrature (Tx IQ) mismatch in a coherent optical orthogonal frequency division multiplexing system. In this letter, a novel training Symbol Structure is proposed to overcome the performance degradation in conventional methods. The proposed scheme is composed of two adjacent training Symbols. Each training Symbol has three subsets: 1) the zero-value subset; 2) its mirror image position subset; and 3) other nonzero-value subset. Then, two estimation processes about channel distortion and Tx IQ mismatch factor are independent. The advantages of the proposed Structure are displayed via channel mean square error (MSE) simulation and IQ mismatch factor MSE simulation, and the improvement of bit error rate is shown in simulations simultaneously.

Lawrence Chung - One of the best experts on this subject based on the ideXlab platform.

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. COMMUNICATIONS OF THE ACM Requirements Analysis Goal-oriented and object-oriented analysis should be seen as complementary, the former focusing on the early stages of requirements analysis … the latter on late stages. 32 January 1999/Vol. 42, No. 1 COMMUNICATIONS OF THE ACM tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. COMMUNICATIONS OF THE ACM Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

The Acm - One of the best experts on this subject based on the ideXlab platform.

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. COMMUNICATIONS OF THE ACM Requirements Analysis Goal-oriented and object-oriented analysis should be seen as complementary, the former focusing on the early stages of requirements analysis … the latter on late stages. 32 January 1999/Vol. 42, No. 1 COMMUNICATIONS OF THE ACM tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. COMMUNICATIONS OF THE ACM Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

John Mylopoulos - One of the best experts on this subject based on the ideXlab platform.

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. COMMUNICATIONS OF THE ACM Requirements Analysis Goal-oriented and object-oriented analysis should be seen as complementary, the former focusing on the early stages of requirements analysis … the latter on late stages. 32 January 1999/Vol. 42, No. 1 COMMUNICATIONS OF THE ACM tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

  • From object-oriented to goal-oriented requirements analysis
    2020
    Co-Authors: The Acm, John Mylopoulos, Lawrence Chung
    Abstract:

    The first object-oriented analysis techniques were proposed more than 10 years ago. The Object-Oriented Systems Analysis (OOSA) technique The growing influence of object-oriented programming on programming practice has led to the rise of a new paradigm for system and software requirements analysis, popularly known as object-oriented analysis (OOA). This paradigm adopts ideas from object-oriented programming and blends them with ideas from semantic data modeling and knowledge representation (notably semantic networks) into a modeling framework that is more powerful than traditional techniques such as data flow diagrams, Structured analysis, and the like. tice of systems analysis was characterized 10 years ago by a mixed bag of isolated modeling techniques (data flow diagrams, ER diagrams, state transition diagrams) that were used to capture the rich information that needs to be modeled, analyzed and understood before a software system is actually built. These techniques generally offered little help for structuring requirements models, to ensure that they were readily understandable, extensible and amenable to analysis. In contrast to this situation, OOA techniques offer a coherent framework which integrates a comprehensive set of modeling concepts for capturing declarative, behavioral, and interactive aspects of a system. 1 In addition, OOA techniques strongly support two structuring mechanisms, generalization and aggregation, in terms of which a modeler can organize and manage the immense amount of information captured by her models. A final important reason for the popularity of OOA techniques rests with the popularity of OO programming itself. Earlier requirements analysis techniques were inspired by, and founded on, Structured programming concepts. In a programming world that is increasingly turning to object orientation, such techniques seemed out of date and had to be replaced. COMMUNICATIONS OF THE ACM Since OOA techniques are intended for requirements analysis, 2 the models built in terms of these techniques comprise models of a real-world environment within which the new system will eventually operate, that is, an environment consisting of people, work processes, material things, software systems and the like. For example, Any modeling technique "colors" the view of its users because it offers only a limited number of primitive concepts for modeling its intended subject matter. The kinds of information that can be captured by the analyst are then characterized by precisely these concepts. The purpose of this article is to offer a sketch of the concept of the softgoal, for modeling and analyzing non-functional requirements, and to show how this can contribute toward a foun- Non-functional requirements (or quality attributes, qualities, or more colloquially "-ilities") are global qualities of a software system, such as flexibility, maintainability, usability, and so forth. Such requirements are usually stated only informally, are often controversial (for example, management wants a secure system but staff desires user-friendliness), are difficult to enforce during design and implementation, and are diffcult to validate. Not surprisingly, unmet quality requirements constitute an important failure factor for software development projects. Modeling the World Since computer applications must ultimately be useful in the real world, modeling a part of that world, the application domain, has been a major preoccupation in several areas of computer science, such as data modeling in databases, knowledge representation in artificial intelligence (AI) and requirements modeling in software engineering. Over the years, hundreds of notations, often referred to as conceptual or semantic models, have been proposed for such modeling tasks. In general, a conceptual model comprises a collection of: • Primitive terms, which specify a set of basic building blocks for constructing Symbol Structures; • Structuring mechanisms for assembling and organizing Symbol Structures; • Primitive operations, for constructing and querying Symbol Structures; • General integrity rules, which define the set of consistent Symbol Structure states, or changes of states. These are accompanied by interpretation rules and usage guidelines. For example, Peter Chen's original ER model offers Entity, Relationship and Attribute as primitive terms, supports a limited form of classification (because entities and relationships are instances of entity and relationship types), offers primitive operations for creating new entity or relationship types or instances thereof, and supports cardinality constraints for relationships, such as "every child has up to two parents." An important extension of the model, the Extended Entity-Relationship model, supports all the features of the ER model and also offers generalization and aggregation for structuring purposes. The ER model was proposed at the first Very Large Databases conference in 1975. The ER model is one of the first semantic data models because it assumes that the domain to be modeled consists of entities and relationships, unlike the relational model, which makes no assumptions at all about the domain. In the field of AI, semantic networks were proposed almost 10 years earlier by Ross Quillian's Ph. D. dissertation (completed in 1966), as suitable Symbolic models of human memory. Semantic networks are directed, labeled graphs whose nodes represent concepts while links represent binary relationships. Quillian's proposal actually supported generalization as a structuring mechanism, and also provided for inheritance of attributes. Semantic networks were upgraded with procedural attachments and other facilities to form frame-based knowledge representation languages. Along a different path, they were combined with a logical sublanguage for specifying formal properties of defined classes and/or tokens. Description logics, a popular form of knowledge representation language today, originated from this line of research. In software engineering, Douglas Ross proposed the Structured Analysis and Design Technique (SADT ™ ) in the mid-1970s as a "language for communicating ideas" Requirements engineering was born in the mid1970s, partly thanks to Ross and his SADT proposal, and partly thanks to others who established through empirical study that "the rumored 'requirements problems' are a reality." The case for world modeling during requirements analysis was eloquently articulated Satisficing Softgoals Imagine that you have been asked by your client to conduct a requirements analysis for a new system 3 intended to support various office functions within its organization, including scheduling meetings. Right from the start, the client is very clear that any new system should be highly usable, flexible and adaptable to the work patterns of individual users and that its introduction should create as little disruption as possible. You understand that your task calls for modeling the objects and activities in the operational environment of the new system, including people, office procedures, information items being created or used and the like. You also know that other stakeholders in the project need to be consulted, such as the office staff for whom the new --goal G is satisficed when all of G1,G2,…,Gn are satisficed and there is no negative evidence against it; --goal G is unsatisficed and there is one of G 1,G2,…,Gn is unsatisficed and there is no positive evidence for it. --goal G is satisficed when one of G 1,G2,…,Gn is satisficed and there is no negative evidence against it; --goal G is unsatisficeable if all of G 1,G2,…,Gn are unsatisfieceable and there is no positive evidence for it. --goal G 1 contributes positively to the satisficing of goal G2. --goal G 1 contributes negatively to the satisficing of goal G2. system is intended. But how are you going to deal with the client's objectives of having a usable and flexible system? You realize that these objectives are all-important, but unfortunately get little guidance from your favorite OOA technique on what to model and how to include these objectives in your analysis. To bring flexibility and usability into the requirements analysis process, we first need some way to represent them, along with their respective interrelationships. For purposes of illustration, we adopt the Non-Functional Requirements (NFR) framework, which centers around the notion of softgoal The concept of goal is used extensively in AI where a goal is satisfied absolutely when its subgoals are satisfied, and that satisfaction can be automatically established by an algorithm. To support the relative, ill-defined, tentative and contradictory nature of non-functional requirements, however, we need a looser notion of goal. Softgoals are goals that do not have a clear-cut criterion for their satisfaction. We will say that softgoals are satisficed 4 when there is sufficient positive and little negative evidence for this claim, and that they are unsatisficeable when there is sufficient negative evidence and little positive support for their satisficeability. Sometimes the evidence is sufficiently strong for the decision for softgoal satisficeability to be made automatically without human intervention. In other cases, when there is weak or conflicting evidence, the decision may have to be made interactively by the stakeholders in the requirements analysis process. In analyzing non-functional requirements, one does not analyze softgoals independently of one another, but rather in relation to each other. Two obvious types of relationships are the AND and OR goal relationships comparable to the ones traditionally used in AI planning. There can also be other, looser relationships in which one softgoal subsumes, prevents, or contributes to the fulfillment of another. For this discussion, we will only use the four relationships shown in Non-functional requirements analysis. This form of analysis begins with softgoals that represent non-functional requirements agreed upon by the stakeholders, say Usability, Flexibility, etc. Then one refines these by using decomposition methods. These methods may be generic, derived from general expertise about flexibility, security, and the like. They may also be domain-specific (specific to meeting scheduling), or even project-specific (decided upon jointly by the stakeholders of a project). Let's consider Flexibility (of the new system) for illustration purposes. This softgoal might be decomposed to two other softgoals: the first, FlexibleWorkPatterns[staff], calls for flexibility in the work patterns allowed by the new system for all staff, while the second, FutureGrowth, calls for a system architecture that can accommodate future growth. Along similar lines, the FlexibleWorkPatterns softgoal is further decomposed to SharingOfInformation, and TaskSwitching, among staff. Using such an analysis, the softgoal tree Structure for Flexibility is created, as shown in The goal tree Structure in the lower half of the Conclusion We have placed OOA techniques within the context of other notations and methods intended to model aspects of the real world. On that basis, we have argued that adoption of an alternative set of primitive modeling concepts, such as those of softgoal and goal, can lead to a rather different kind of analysis than those advocated by OOA techniques. Moreover, this kind of analysis is very important because it deals with non-functional requirements and relates them to functional ones. As readers may have already concluded, goal-oriented analysis focuses on the description and evaluation of alternatives and their relationship to the organizational objectives behind a software development project. As many within the requirements engineering research community have argued, capturing these interdependencies between organizational objectives and the detailed software requirements can facilitate the tracing of the origins of requirements, and can help make the requirements process more thorough, complete, and consistent. Preliminary empirical studies suggest that goal-oriented analysis can indeed lead to a more complete requirements definition than OOA techniques can. Moreover, our own experiences in analyzing the requirements and architectural design for a large (telecommunications) software system confirm that goal-oriented analysis can greatly facilitate and rationalize early phases of the software design process. Of course, OOA techniques still have a place within a requirements analysis process even if one adopts goal-oriented analysis. After all, OOA models define the objects and activities mentioned in the detailed requirements for the new system. So goaloriented analysis and OOA should be seen as complementary, the former focusing on the early stages of requirements analysis and on the rationalization of the development process, the latter on late stages of requirements analysis. The KAOS methodology gives an excellent sample of how the two types of analysis coexist and complement each other. Traditionally, requirements analysis practice has been driven by the programming paradigm of the day. Thus, in the days of Structured programming, Structured analysis ruled, whereas today interest is shifting to OOA. Given the importance of requirements analysis to the success of any large software development project, perhaps it is time to turn things around: suppose we let the concepts and techniques of goal-oriented analysis drive the design and implementation techniques that follow. What would such a software development methodology look like? Perhaps it will be based on software architectures that share some of the characteristics of human organizations and be grounded in the concepts of agent, goal, and of course softgoal. Actually, agent programming is gaining in popularity as the programming paradigm for network computing, so the possibility of a new development methodology grounded on goal-oriented analysis and agent-based design and implementation may not be as farfetched as it might seem. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Reference

Mohammad E Chikhbled - One of the best experts on this subject based on the ideXlab platform.

  • dual amplitude width pulse interval modulation for optical wireless communications
    2012
    Co-Authors: Mehdi Rouissa, Ahmed R Borsali, Mohammad E Chikhbled
    Abstract:

    In this paper, a new modified digital pulse interval modulation called Dual Amplitude-Width Pulse Interval Modulation (DAWPIM) is presented, on the basis of Pulse Amplitude Modulation (PAM) and Pulse Width Modulation (PWM), and its properties are presented. After introducing Symbol Structure, data rate improvement, average normalized power requirement and bandwidth efficiency are studied. The proposed concept showed to be well suited to use in Optical Wireless Communications links by virtue of its increased data rate, high spectral efficiency and the absence of receiver synchronization problems. We present theoretical expressions of spectral efficiency, power requirements, and the data rate improvement normalized to PPM, and we present comparison results to DPIM and the hybrid PAM-DPIM.