On Non-Functional Requirements
软件工程复习题-问答题
QA1. What are the essential attributes of good software?Maintainability, dependability and security, efficiency and acceptability2. What is software engineering?An engineering discipline concerned with all aspects of software production from specification to system maintenance.3. What are the four fundamental activities in software processes?Software specification, software development, software validation and software evolution.4. What software engineering fundamentals apply to all types of software systems?a. Systems should be developed using a managed and understood development process.b. Dependability and performance are key system characteristicsc. Understanding and managing the software specification and requirements are important.d. Effective use should be made of available resources.5. List the 3 generic process models that are used in software engineering? The waterfall modelIncremental developmentReuse-oriented software engineering6.What are the three benefits of incremental development, compared to the waterfall model?(a) The cost of accommodating changes to customer requirements is reduced.(b) It is easier to get customer feedback on development work that has been done.(c) More rapid delivery and deployment of useful software to the customer is possible.7.What are the principal requirements engineering activities?Feasibility studyRequirements elicitation and analysis Requirements specification Requirements validation8.What are three important characteristics of extreme programming? Requirements expressed as scenarios,Pair programming,Test-first development.9. What is the distinction between functional and non-functional requirements? Functional requirements define what the system should do. Non-functional requirements are not directly concerned with specific system functions but specify required system properties or place constraints on the system or its development process.10. What is the software requirements document?The official document that defines the requirements that should be implemented by the system developers.11. What is a use-case?A use-case identifies a typical interaction with a system and the actors (human or computer) involved in that interaction.12. What is requirements management?The process of managing changes to requirements during requirements specification and after the system has gone into use.13. What are the 5 key activities in an object-oriented design process? Understand and define the context and use of the system. Design the system architectureIdentify the principal objects in the systemDevelop design modelsSpecify object interfaces14. What are the principal aims of software configuration management?To support system integration so that all developers can access the project code and documents in a controlled way, find out what components have been changed and compile and link components to create a system.15. What is the distinction between validation and verification?Validation: Are we building the right product?Verification: Are we building the product right?16. What are the advantages of inspections over testing?Inspections can discover many errors. In testing, one error may mask another. Incomplete versions of a system can be inspected.Inspections can consider broader quality attributes as well as program defects.17. What is an equivalence partition?A class of inputs or outputs where it is reasonable to expect that the system will behave the same way for all members of the class.18. What are the three types of user testing?Alpha testing, where users work with the development team to test the software as it is being developed.Beta testing where the software is released to selected users for testing before the formal system releaseAcceptance testing, where customers test a system to check that it is readyfor deployment.19. What are the three different types of software maintenance and how is effort distributed across these maintenance types?Maintenance to repair software faults (17%),Maintenance to adapt the software to a different environment (18%), Maintenance to add to or modify the systemʼs functionality (65%).20. What are the principal systems re-engineering activities?Source code translation,Reverse engineering,Program structure improvement,Program modularizationData re-engineering21. List four important factors used to assess applications for maintenance. Any four from:Understandability, Documentation, Data, Performance, Programming language, Configuration management, Test data, Personnel skills22. What are the four principal dependability properties?Reliability, availability, safety and security23. Explain the difference between a system fault and a system failure.A fault is an internal system condition that can lead to an erroneous system state. A failure is an externally observed deviation from expected system behaviour.24. List the main benefits of software reuse.Increased dependability, reduced process risk, effective use of specialists, Standards compliance, accelerated development.25. What are the main benefits of COTS reuse?More rapid deployment of a reliable system is possibleIt is easier to judge if an application is likely to be suitable because its functionality is visible.Some development risks are avoided by reusing complete products. Business can focus on their core activity without devoting resources to software development.As operating platforms evolve, the COTS supplier is responsible for updating the application.26. What is a workflow?A sequence of activities, ordered in time, that make up a coherent business processes with each activity carrying out some part of the work of that process.27. List 4 fundamental project management activities.Project planning, Reporting, Risk management, People management, Proposal writing28. Briefly describe two types of cost estimation techniques?Experience-based techniques where the estimate is based on a managerʼs experience of past projects and the application domain.Algorithmic cost modeling where a formulaic approach is used to estimate the development effort required, based on attributes of the software and the development team.29. What are the stages in the software inspection process?Planning, Overview, Individual preparation, Inspection meeting, Rework, Follow-up.30. What is a baseline?A controlled system (collection of component versions) where the component versions making up the system cannot be changed.31. What may be included in a system release?The executable code of a system, Configuration files,Data files,An installation programElectronic and paper documentation, packaging and publicity.32. What is the difference between a system version and a system release?A system version is an instance of a system that differs, in some ways, from other instances. A system release is a version that is released to customers.33.What are the main factors that affect software product quality? Development technology, People quality, Cost, time and schedule, Process quality.34. What are the identified levels in the CMMI staged model?Initial, Managed, Defined, Quantitatively managed, Optimizing.。
软件产品需求分析报告模板范文
软件产品需求分析报告模板范文英文回答:Software Product Requirements Analysis Report Template.Introduction:In this report, I will present a template for a software product requirements analysis report. This report is essential for software development projects as it helps to define and document the requirements of the software product. The template includes various sections that cover different aspects of the software requirements analysis process.1. Executive Summary:The executive summary provides a brief overview of the software product and its objectives. It highlights the key features and benefits of the software product.2. Background:The background section provides information about the context and purpose of the software product. It includes details about the target audience, market analysis, and any relevant industry trends.3. User Requirements:This section focuses on the user requirements of the software product. It includes a detailed description of the target users, their needs, and their goals. It also identifies any specific user interface or usability requirements.4. Functional Requirements:The functional requirements section defines thespecific features and functionalities of the software product. It includes a list of all the required functions and their respective descriptions. For example, if thesoftware product is a project management tool, some functional requirements may include task management, resource allocation, and reporting capabilities.5. Non-functional Requirements:The non-functional requirements section covers aspects such as performance, security, reliability, and scalability. It includes specific criteria and metrics to measure the software product's performance in these areas. For example, a non-functional requirement for a web-based software product may be to have a response time of less than 2 seconds for each user action.6. Constraints:The constraints section outlines any limitations or restrictions that may impact the development of thesoftware product. This can include technical constraints, budget constraints, or time constraints. For example, ifthe software product needs to be developed within aspecific budget, it would be mentioned in this section.7. Assumptions and Dependencies:This section identifies any assumptions made during the requirements analysis process and any dependencies on external factors. For example, if the software product requires integration with a third-party API, it would be mentioned here.8. Risks and Mitigation Strategies:The risks and mitigation strategies section identifies potential risks that may impact the successful development and implementation of the software product. It also provides strategies to mitigate or minimize these risks. For example, a risk could be the availability of skilled resources, and a mitigation strategy could be to hire additional developers or provide training to existing team members.9. Conclusion:The conclusion summarizes the key findings and recommendations from the requirements analysis process. It highlights any critical requirements or areas that need further attention.中文回答:软件产品需求分析报告模板范文。
TeAM方法培训PPT课件教程
Validated
Qualified
Implementation and Ensure Expectations are Met
Plan
Execute
Implement
Completed
Develop Solution with Customer
Refine Solution, Resolve Concerns. Close Sale
(GSMethod Work Products)
Implement
Monitor Solution Implementation, Ensure Expectations Are Met
Monitor Pilot(None)
• Updated Viability Assessment(Same name)
• Business Process Roadmap(Uses different notation)
Gain Sponsorship(none)
• Project Description(Project Goals, Project Estimates and Risk Assessment)
• Business Context Diagram(Same name) • Envisioned Goals and Issues(Envisioned TO-Be Business Goals)
Describe Current Organization(Describe Current Organization)
Phase/Activity/Task(GSMethod Task)/Work Products
(GSMethod Work Products)
USB Type-C 规范1.2(中文版)
知识产权声明
THIS SPECIFICATION IS PROVIDED TO YOU “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE AUTHORS OF THIS SPECIFICATION DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PROPRIETARY RIGHTS, RELATING TO USE OR IMPLEMENTATION OF INFORMATION IN THIS SPECIFICATION. THE PROVISION OF THIS SPECIFICATION TO YOU DOES NOT PROVIDE YOU WITH ANY LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS.
预发行行业审查公司提供反馈
Revision History.......................................................................................................................14
LIMITED COPYRIGHT LICENSE: The USB 3.0 Promoters grant a conditional copyright license under the copyrights embodied in the USB Type-C Cable and Connector Specification to use and reproduce the Specification for the sole purpose of, and solely to the extent necessary for, evaluating whether to implement the Specification in products that would comply with the specification.
Requirements
Requirements:A specification of what should be implemented. They are descriptions of how the system should behave, or a system property or attribute. They may be a constraint on the development process of the system.All stakeholders agree must be made true in order for the customer’s problem to be adequately solvedRequirements Engineering:1. Inception: Start the process (business need, market opportunity, great idea, ...), business case, feasibility study, system scope, risks, etc.2. Requirements elicitation: Requirements discovered through consultation with stakeholders3. Requirements analysis and negotiation: Requirements are analyzed and conflicts resolved through negotiation4. Requirements specification: A precise requirements document is produced5. Requirements validation: The requirements document is checked for consistency and completeness. Validation: checks that the right product is being built. Verification: checks that the product is being built right.6. Requirements management: Needs and contexts evolve, necessary to cope with changes to requirements.A goal is an objective or concern that guides the RE process. It can be used to discover and evaluate functional and nonfunctional requirementsA functional requirement is a requirement defining functions of the system under developmentA non-functional requirement is a requirement that is not functional. This includes many different kinds of requirements. – Therefore one often considers the following sub-categories:1. Performance requirements, characterizing system properties such as expected performance, capacity, reliability, robustness, usability, etc.2. Design constraints (also called process requirements), providing constraints on how the system should be designed and built –related to development process, documentation, programming language, maintainability, etc.3. Commercial constraints, such as development time frame and costs.A user requirement is a desired goal or function that a user and other stakeholders expect the system to achieveA business rule is a requirement derived from business practices within a given industrial sector, or in a given company, or defined by government regulations or standards.Problem domain requirements should be satisfied within the problem domain in order to satisfy some of the goalsSystem requirements are the requirements for the system to be built, as a wholeRequirements Documents: several versions with different levels of detailsVision and Scope DocumentElicitation notes: (Raw) requirements obtained through elicitation; often unstructured, incomplete, and inconsistent(Problem domain) Requirements documentSystem requirements documentSoftware requirements documentProblem Analysis: Goal: gain a better understanding of the problem being solved before development begins, Uses business requirements obtained from stakeholders, Results in Product Vision and Project Scope.Five Steps:1. Gain agreement on the problem definition2. Understand the root causes – the problem behind the problem3. Identify the stakeholders4. Define the solution system vision and boundary5. Identify the constraints to be imposed on the solutionProduct Vision: describes what the product is about and what it could eventually become Project Scope: identifies what portion of the ultimate long term product vision the current project will addressVision and Scope Document:Business requirementsVision of the solutionScope and limitation (for initial and subsequent releases)Business contextRequirements elicitation is “the process of discovering the requirements for a system by communicating with customers, system users and others who have a stake in the system development” (Mainly user requirements and elicitation notes)Elicitation TechniquesStakeholder analysisAnalysis of existing systems or documentation, background readingDiscourse analysisTask observation, ethnographyQuestionnairesInterviewingBrainstormingJoint Application Design (JAD)PrototypingPilot systemUse cases and scenariosRisk analysisRequirements Prioritization and Triage: need for trade-offs 80-20 RulePrioritization Scales: Urgency ImportanceWiegers’ Prioritization:Relative benefit (for having requirement)Relative penalty to stakeholder (if requirement is not included)Relative cost (to implement requirement)Relative risk (technical and other risks)Volere Prioritisation: pairwise comparisonAnalytic Hierarchy Process (AHP):Use cost-value diagrams to analyze and discuss candidate requirementsRequirements Analysis: The process of studying and analyzing the customer and the user needs to arrive at a definition of the problem domain and system requirementsFeaturesUse casesMode of operationUser classResponsible subsystemIEEE 830 (1993, revised 1998) : Software Requirements SpecificationContents of SRSIntroductionGeneral description of the software productSpecific requirements (detailed)Additional information such as appendixes and index, if necessaryStandard for Writing a Requirement: (Feasible Needed Testable)Each requirement must first form a complete sentenceEach requirement contains a subject and predicateThe whole requirement provides the specifics of a desired end goal or resultContains a success criterion or other measurable indication of the qualityLook for the following characteristics in each requirementRequirements Verification and Validation TechniquesSimple checksPrototypingFunctional test designUser manual developmentReviews and inspectionsModel-based (formal) Verification and ValidationRequirements ValidationCheck that the right product is being builtEnsures that the software being developed (or changed) will satisfy its stakeholdersChecks the software requirements specification against stakeholders goals and requirements Requirements VerificationCheck that product is being built rightEnsures that each step followed in the process of building the software yields the right products Checks consistency of the software requirements specification artefacts and other software development products (design, implementation, ...) against the specificationRequirements Management:A systematic approach to eliciting, organizing, and documenting the requirement of the system, and a process that establishes and maintains agreement between the customer and the project team on the changing requirements of the system.Manage changes to agreed requirementsManage changes to baseline (increments)Keep project plans synchronized with requirementsControl versions of individual requirements and versions of requirements documentsManage relationships between requirementsManaging the dependencies between the requirements document and other documents produced in the systems engineering processTrack requirements statusBaseline:Non-modifiable (read-only) version of a documentEnables document comparison and managementComes with a change history for the documentRequires access controlIt is advisable to establish a baseline for a new document that is imported into the document management system。
Natural Language Processing
Testing against natural language RequirementsHarry M. SneedAnecon GmbH, Vienna, AustriaEmail: Harry.Sneed@t-online.atAbstract:Testing against natural language requirements is the standard approach for system and acceptance testing. This test is often performed by an independent test organization unfamiliar with the application area. The only things the testers have to go by are the written requirements. So it is essential to be able to analyze those requirements and to extract test cases from them. In this paper an automated approach to requirements based testing is presented and illustrated on an industrial application.Keywords: Acceptance Testing, System Testing, Requirements Analysis, Test Case Generation, Natural Language ProcessingA test is always a test against something. According to the current test literature this something can be the code itself, the design documentation, the data interfaces, the requirements or the unwritten expectations of the users [1]. In the first case, one is speaking of code based testing where the test cases are actually extracted from an analysis of the code. In the second case, one is speaking of design based testing where test cases are taken from the design documents, e.g. the UML diagrams. In the third case, we speak of data based testing, where test cases are generated from the data structures, e.g. the SQL schema or the XML schema. In the fourth case, we speak of requirements based testing, where we extract the test cases from the requirements documents. This is also known as functional testing. In the fifth and final case, we speak of user based testing, in which a representative user invents test cases as he goes along. This is also referred to as creative testing [2].Another form of testing is regression testing in which a new version of a previous system is tested against the older version. Here the test cases are taken from the old data or from the behavior of the old system. In both cases one is comparing the new with the old, either entirely or selectively [3].1. Functional testingIn this paper the method of requirements based testing is being described, i.e. testing against the functional and non functional requirements as defined in an official document. This type of testing is used primarily as a final system test or as an acceptance test. Bill Howden referred to this as functional testing [4]. It assumes that other kinds of testing, such as code based unit testing and/or design based integration testing have already taken place so that the software is executable and fairly reliable. It is then the task of the requirements based test to demonstrate that the system does what it should do according to the written agreement between the user organization and the developing organization. Very often this test is performed by an independent test organization so as to eliminate any bias. The test organization is called upon not only to test, but also to interpret the meaning of the requirements. In this respect, the requirements are similar to laws and the testers are performing the roles of a judge, whose job it is to interpret the laws to apply to a particular case [5].What laws and requirements have in common is that they are both written in natural language and they are both fuzzy. Thus, they are subject to multiple interpretations. Judges are trained to interpret laws. Testers are not always prepared to interpret requirements. However, in practice this is the essence of their job. Having an automated tool to dissect the requirement texts and to distinguish between different types of requirement statements is a first step in the direction of automated requirements testing. The Text Analyzer is intended to be such a tool.2. Nature of natural language requirementsBefore examining the functions of a requirement analysis tool, it is first necessary to investigate the nature of requirement documents. There may be certain application areas where requirements are written in a formal notation. There are languages for this, such as VDM, SET and Z, and more recently OCL the object Constraint Language propagated by the OMG [6]. However, in the field of information technology such formal methods havenever really been accepted. There, the bulk of the requirements are still written in prose text.Christof Ebert distinguishes between unstructured text, structured text and semi formal text [7]. In a structured text the requirements are broken down into prescribed chapters and sections with specific meanings. A good example of this is the ANSI/IEEE-830: Guide to Requirements Specification. It prescribes a nested hierarchy of topics including the distinction between functional and non functional requirements [8]. Functional Requirements are defined in terms of their purpose, their sequence, their preconditions and post conditions as well as their inputs and outputs. Inputs are lists of individual arguments and outputs lists of results. Arguments and results may be even defined in respect to their value ranges. This brings the functional specification very close to a functional test case.Non functional requirements are to be defined in terms of their pass and fail criteria. Rather than depicting what flows in and out of a function, a measurable goal is set such as a response time of less than 3 seconds. Each non functional requirement may have one or more criteria which have to be fulfilled in order for the requirement to be fulfilled. In addition to the functional and non functional requirements of the product, the ANSI/IEEE standard also stipulates that constraints, risks and other properties of the projects be defined. The end result is a highly structured document with 7 sections. Provided that standard titles or standard numbering is used, a text analysis tool should easily recognize what is being described even if the description itself is not interpretable. By having such a structured document a tester has an easier job of extracting test cases. The job becomes even easier if the structured requirements are supplemented by acceptance criteria as proposed by Christiana Rupp and others [9]. After every functional and non functional requirement a rule is defined for determining whether the requirement is fulfilled or not. Such a rule could be that in case of a withdrawal from an account, the balance has to be less than the previous balance by the withdrawal amount. Account = Account@pre Withdrawal;An acceptance criterion is equivalent to a post condition assertion so that it can be readily copied into a test case definition.Semi formal requirements go one step further. They have their text content placed in a specific format, such as the use case format. Use cases are typical semi formal descriptions. They have standardized attributes which the requirement writer must fill out, attributes like trigger, rule, precondition, post condition, paths, steps and relations to other use cases. In the text these attributes will always have the same name so that a tool can readily recognize them. Most of the use cases are defined in standard frameworks or boxes which make it even easier to process them [10].A good semi formal requirements document will also have links between the use cases and the functional requirements. Each requirement will consist of a few sentences and will have some kind of number or mnemonic identifier to identify it. This identifier will then be referred to by the use case. One use case can fulfill one or more functional requirements. One attribute of the use case will be a list of such pointers to the requirements it fulfills [11].At the upper end of a semiformal requirement specification arithmetic expressions or logical conditions may be formulated. Within an informal document there can be scattered formal elements. These should be recognizable to an analysis tool.In the current world of information technology, the requirement documents range from structured to semi formal. Even the most backward users will have some form of structured requirements document in which it is possible to distinguish between individual functional requirements as well as between constraints and non functional requirements. More advanced users will have structured, semi formal documents in which individual requirements are numbered, use cases are specified with standardized attributes, and processing rules are defined in tables. Really sophisticated requirement documents such as can be found in requirements engineering tools like Doors and Rational Requisite Pro will also have links between requirements, rules, objects and processes, i.e. use cases [12].3. The Testing StrategyA software system tester in industry is responsible for demonstrating that a system does what it is supposed to do. To accomplish this, he must have an oracle to refer to. The concept of an automated oracle for functional testing was introduced by Howden in 1980 [13]. As foreseen by Howden then,the test oracle was to be a formal specification in terms of pre and post conditions. However the oracle could also be a natural language text provided the text is structured and has some degree of formality. In regression testing the oracle is the input and output data of the previous version. In unit testing it is the pre and post conditions of the methods and the invariant states of the objects. In integration testing it is the specification of the interfaces and in system testing it is the requirements document [14]. Thus, it is the task of the system tester to extract test cases from the functional and non functional requirements. Using this as a starting point, he then proceeds to carry out seven steps on the way to achieving confidence in the functionality of a software system. These seven steps are:identifying the test casescreating a test designspecifying the test casesgenerating the test casessetting up the test environmentexecuting the testevaluating the test.3.1 Identifying the test casesHaving established what it is to be tested against, i.e. the test oracle, it is first up to the tester to analyze that object and to identify the potential test cases. This is done by scanning through the document and selecting all statements about the behavior of the target system which need to be confirmed. These statements can imply actions or states, or they define conditions which have to be fulfilled if an action is to take place or a state is to hold [15].Producing a customer reminder is an action of the system. The fact that the customer account is overdrawn is a state. The rule that when a customer account is overdrawn the system should produce a customer reminder is a condition. All three are candidates for a test case. Testing whether the system produces a customer reminder is one test case. Testing if the customer account can be overdrawn is another test case, and testing whether the system produces a customer reminder when the customer account is overdrawn is a test case which combines the other two.In scanning the requirements document the tester must make sure to recognize each action to be performed, each state which may occur and each condition under which an action is performed or a state occurs. From these statements the functional test cases are extracted. But not only the functional test cases. Statements like the response time must be under 3 seconds and the system must recognize any erroneous input data are non functional requirements which must be tested. Every statement about the system, whether functional or non functional is a potential test case. The tester must recognize and record them [16].3.2. Creating a test designOf course, this is only the beginning of a system test. Once the test cases have been defined they must be ordered by time and place and grouped by test session. A test session encompasses a series of test cases performed within one dialog session or one batch process. In one session several requirements and several related use cases are executed. The test cases can be run sequentially or in parallel. The result of this test case ordering by execution sequence is part of the test design.3.3 Specifying the test casesFollowing the test design is the test case specification. This is where the attributes of the test cases are filled out in detail down to the level of the input and output data ranges. Each test case will already have an identifier, a purpose, a link to the requirements, objects and use cases it tests, as well as a source, a type and a status. It may even have a pre and post condition depending on how exact the requirements are. Now it is up to the tester to design the predecessor test cases, the physical interface or database being tested and to assign data values. Normally the general test case description will be in a master table whereas the input and output values will be in sub tables one for the test inputs and one for the expected outputs. In assigning the data, the tester will employ such techniques as equivalence classes, representative values, boundary values and progression or degression intervals. Which technique is used, depends on the type of data. In the end there will be for each test case a set of arguments and results [17].3.4 Generating the test dataProvided the test data definitions are made with a formal syntax, the test data itself can then be automatically generated. The tester may only have to oversee and guide the test data generation process. The basis for the test data generation will be the interface descriptions such as HTML forms, XML schemas, WSDL specifications and SQL database schemas. The values extracted from the test case, specifications are united with the structuralinformation provided by the data definition formats to create test objects, i.e. GUI instances, maps, records, database tables and other forms of test data [18].3.5 Setting up the test environmentIn the 5th step the test environment is prepared. Test databases must be allocated and filled with the generated data. Test work stations are loaded with the client software and the input test objects. The network is activated. The server software is initialized. The source code may be instrumented for tracing execution and test coverage.3.6 Execution the testNow the actual test can be started, one session at a time or several sessions in parallel depending on the type of system under test. The system tester will be either submitting the input data manually or operating a tool for submitting the data automatically. The latter approach is preferable since it is not only much faster, but also more reliable and above all repeatable. While the test is running the execution paths are being monitored and the test coverage of the code is being measured.3.7 Evaluating the testAfter each test session or test run the tester should perform an analysis of the test results. This entails several sub tasks. One sub task will be to report any incidents which may have occurred during the test session. Another task will be to record and document the functional test coverage. A third and vital task is to confirm the correctness of the data results, i.e. the post conditions. This can and should be done automatically by comparing the actual results with the expected results as specified in the test cases. Any deviations between the actual and the specified data results should be reported. Finally the tester will want to record various test metrics such as the number of test cases executed, the number of requirements tested, the number of data validated, the number of errors recorded and the degree of test coverage achieved [19].4. Automating the requirement analysisAs can be gathered from this summary of the system tester s tasks, there are many tasks which lend themselves to automation. Both test data generation and test data validation can be automated. Automated test execution has been going on for years and there are several tools for performing this. What are weakly automated are the test case specification and the test design. Not automated at all are the activities setting up the test environment and identifying the test cases [20].The focus of this paper is on the latter activity, i.e., identifying and extracting test cases. It is the first and most important task in functional system testing. Since the test we are discussing here is a requirements based test, the test cases must be identified in and extracted from the requirements document.The tool for doing that is the text analyzer developed by the author. The same tool goes on to create a test design, thus covering the first two steps of the system testing process. The Text Analyzer was conceived to do what a tester should do when he begins a requirements based system test. It scans through the requirements text to pick out potential test cases.4.1 Recognizing and selecting essential objects The key to requirements analysis is to have a natural language processor which extracts information from the text based on key words and sentence structure. This is referred to as text mining, a technique used by search engines on the internet. [21] The original purpose of text mining was to automatically index documents for classification and retrieval. The purpose here is to extract test cases from natural language text.Test cases relate to the objects of a system. Objects in a requirement document are either acted upon or their state is checked. Therefore, the first step of the text analysis is to identify the pertinent objects. For this all of the nouns must be identified. This is not an easy task, especially in the English language, since nouns can often be verbs or compound words such as master record. In this respect other languages such as German and Hungarian are more precise. In German nouns begin with a capital letter which makes the object recognition even easier.A pre scanner can examine the text to identify and record all nouns. However, only the human analyst can determine which nouns are potential objects based on the context in which they are used. To this end all of the nouns are displayed in a check box and the user can uncheck all nouns which he perceives to be irrelevant. The result is a list of pertinent nouns which can be recorded as the essential objects. Depending on the scope of the requirementsdocument their number can be anywhere from 100 to 1000.Besides that, object selection is apt to trigger a lengthy and tedious discussion among the potential users about which objects are relevant and which are not. In presenting the list of potential objects it becomes obvious, how arbitrary software systems are. In order to come up with an oracle to test against, the users must first come to a consensus on what the behavior of the system should be. Confronting them with the contradictions in their views helps to establish that consensus. [22]4.2 Defining key words in contextAs a prerequisite for the further text analysis, the user must identify the key words used in the requirement text. These key words can be any string of characters, but they must be assigned a predefined meaning. This is done through a key word table. There are currently some 20 predefined notions which can be assigned to a key word in the text. These are:SKIP= ignore lines beginning with this word REQU= this word indicates a requirementMASK= this word indicates a user interfaceINFA= this word indicates a system interface REPO = this word indicates a reportINPT = this word indicates a system inputOUTP = this word indicates a system outputSERV = this word indicates a web serviceDATA = this word indicates a data storeACT= this word indicates a system actorTRIG= this word indicates a triggerPRE= this word indicates a preconditionPOST= this word indicates a post condition PATH= this word indicates a logical path or sequence of stepsEXCP= this word indicates an exception condition ATTR = this word indicates any user assigned text attributeRULE= this word indicates a business rule PROC = this word indicates a business process GOAL = this word indicates a business goalOBJT= this word is the name of an object.By means of the key words, the analyzer is able to recognize certain requirement elements embedded in the prose text.4.3 Recognizing and extracting potential test cases The next step is for the tool to make a second scan of the document. This time only sentences in which an essential object occurs are processed, the others are skipped over. Each sentence selected is examined whether it is an action, a state query, or a condition. The sentence is an action when the object is the target of a verb. The sentences The customer account is updated daily and The system updates the customer account are both actions. The account is the object and updates is the action. The test case will be to test whether the system really updates the account.The sentence The account is overdrawn when the balance exceeds the credit limit is a state which needs to be tested and the sentence If an account is overdrawn, it should be frozen until a payment comes in is a condition combining an object state with an object action. The object is the account. The state is overdrawn. The action is should be frozen. There are actually two tests here. One is to confirm that an account can become overdrawn. The other is to confirm that an account is frozen when it is overdrawn.To qualify as a statement to be tested, a sentence must contain at least one relevant object. In the sentence If his credit rating is adequate, the customer can order a book. there are three relevant objects - credit, customer and book - so this qualifies the sentence to be processed further. The clause if his credit rating is adequate indicates that this is a condition which needs to be tested. There are many words which can be used to identify a condition. Besides the word if there are other words like should, provided, when, etc. there are also word patterns like in case of and as long as. When they occur the statement is assumed to be a condition.If the sentence is not a condition it may be a state declaration. A state declaration is when a relevant object is declared to be in a given state, i.e.The customer must be registered.The word customer is a selected object and the word pattern be registered indicates a state that the object is in. Predicate verbs such as be, is, are, were, etc denote that this is a state declaration.If the sentence is neither a condition nor a state, it may be an action. An action is indicated by a verb which acts upon a selected object e.g.The system checks the customer order.Here the order is a relevant object and checks is a verb which acts upon it. Normally these verbs will end with an s if they are in present tense and with ed if they are in past tense. So this makes it easier to recognize them. The advantage of requirement texts as opposed to texts in general is that they are almost always written in the third person, thus reducing the number of verb patterns to be checked. Sentences which qualify as a statement to be tested are extracted from the text and stored in the test case table. Assuming that all sentences are embedded in the text of a section,, a requirement or a use case, it is possible to assign test cases to individual requirements, use cases or simply to titled sections. If a test case originates from a requirement it receives the number or title of that requirement. If the test cases are created from a use case, then they bear the title of that use case. If these structural elements are missing the test case is simply assigned to the last text title. Relations are also established between test cases and objects. Test cases extracted from a particular sentence will have a reference to the objects referred to in that sentence.A generated test case will have an id, a purpose, a trigger, a pre-condition and a post-condition. The id of the test case is generated from the system name and a running number. The condition if the customer s credit rating is adequate, he can order a book implies two pre conditions1.the customer s credit rating is adequate2.the customer s credit rating is not adequate There are also two post conditions1.the customer has ordered a book2.the customer has not ordered a bookThis shows that for every conditional clause there should be two test casesone which fulfils the condition, andanother which does not fulfil the condition. They both have the same trigger, namely the customer orders a book.These are samples of functional test cases. Non functional test cases are all either states or conditions. The sentence The system should be able to process at least 2000 transactions per hour is a state denoted by the verb should be. The sentence In case of a system crash, the system has to be restarted within 2 minutes is a condition determined by the predicate In case of, followed by an action restarted. Both requirements must be tested. The tool itself can only distinguish between functional and non functional test cases based on the objects acted on or whose state is checked. Here again the user must interact by marking those objects such as system which are not part of the actual application.4.4 Storing the potential test casesThe result of the text analysis is a table of potential system test cases. If the requirements document is structured so that the individual requirements are recognizable, the test cases will be ordered by requirement. If there are use case definitions, the test cases extracted from a particular use case will be associated with that use case. Otherwise, the test cases will be grouped by subtitles.In the end every test case, whether functional or non-functional will have at least the following attributes:a test case Ida test case purpose = the sentence fromwhich the case was takena test case type = {action | state | condition }a preconditiona post conditiona triggera reference to the objects involveda reference to the requirements being testeda reference to the use case being tested5. Generating a test designIt is not enough to extract potential test cases. The test cases also need to be assigned to an overall test framework. The test framework is derived from the structure of the requirements document. Requirements should be enhanced by events. An event is something which occurs at one place at one time. Use cases are such events. An account withdrawal is an example of a use case event. A money transfer is another event. Printing out an account statement is yet another event. Events are triggered by a user, by the system itself or by some other system.In system testing it is essential to test every event, first independently of the other events and then in conjunction with them. An event will have at least two test cases - a positive and a negative outcome, but it may have many. In the case of an account withdrawal, the user may give in a bad PIN number, he may have an invalid card, the amount to be withdrawn may exceed the daily limit or his account may be frozen. There are usually 4 to 20 test cases for each use case.In generating a test design the text analyzer tool orders the test cases by event. The event is the focus of a testing session. Requirements and essential objects are assigned to an event so that it becomes clear which functions and which objects are tested within a session. If recognizable in the requirements text, the user or system interface for an event is also assigned. This grouping of all relevant information pertaining to an event is then presented in an XML document for viewing and editing by the tester. In so doing, the text analyzer has not only extracted the potential test cases from the requirements, it has also generated a test design based on the events specified.6. Experience with automated requirements analysisThe German language version of the text analyzer was first employed in a web application for the state of Saxony at the beginning of 2005. The requirements of that application were split up among 4 separate documents with 4556 lines of text. Some 677 essential objects were identified. Specified with these objects were 644 actions, 103 states and 114 rules. This led to 1103 potential test cases in 127 use cases. The generated test case table served as a basis for the test case specification. As might be expected, several test cases were added, so in the end there were 1495 test cases to be tested. These test cases revealed 452 errors in the system under test as opposed to the 96 errors discovered in production giving an error discovery rate of 89%. This demonstrated that the automatic extraction of test cases from requirements documents, complemented by manual test case enhancement is a much cheaper and more efficient way of exposing errors than a pure manual test case selection process [23]. Besides that it achieves higher functional test coverage. In this project over 95% of the potential functions were covered.Since this first trial in the Saxon e-Government project the German language version has been employed in no less than 12 projects to generate test cases from the requirements text including a project to automate the administration of the Austrian Game Commission, a project to introduce a standard software package for administering the German water ways, and a project to develop a university web site for employment opportunities.The English language version has only recently been completed, but has already been used in 3 projects once for analyzing the use cases of a mobile phone billing system, secondly for analyzing the requirements of an online betting system, and thirdly to generate test cases for a Coca Cola bottling and distribution system. In the case of the mobile billing system, a subsystem with 7 use cases was analyzed in which there were 78 actions and 71 rules for 68 objects rendering 185 test cases. The online betting system had 111 requirements of which 89 were functional and 22 were non-functional. There were 69 states, 126 actions and 112 rules for 116 specified objects from which 304 test cases were extracted. The specification of the Coca Cola distribution system is particularly interesting because it used neither a list of requirements nor a set of use cases, but instead a table of outputs to a relational database. In the first column of the table was the name of the output data, in the second the data description, in the third the algorithm for creating the data and in the fourth the condition for triggering the algorithm. A typical output specification is depicted in Table 1. Name Definition Source ConditionA400TotalNumber ofBottlesXX20QuantityfromMobileDeviceTranstype<5(Sampling)Transtype >7(Breakage)ARTIDF =1Aor1RTable 1: Output SpecificationFor this one output 6 test cases were generated Transtype <5 & ARTIDF = 1ATranstype <5 & ARTIDF = 1RTranstype <5 & ARTIDF ! = 1A & ARTIDF ! = 1RTranstype > 7 & ARTIDF = 1ATranstype > 7 & ARTIDF = 1ATranstype > 7 & ARTIDF = 1RTranstype > 7 & ARTIDF ! = 1A & ARTIDF ! = 1R。
Unit 3 Software Requirements
Activities which povide input into the requirement process:
Marketing, feasibility studies.
13
2. PROCESS ACTORS
The
roles of the people in the requirements process.
requirements :
the functions the software is to execute
Eg. : Formatting some text, modulating a signal
Non-Functional
requirement:
The ones that act to constrain the solution Constraints or quality requirements Classification :
软件需求
系统需求 需求获取 需求分析 需求验证
2
Requirement specification 需求定义
CONTENTS
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8
Requirements Fundamentals Requirements Process Requirements Elicitation Requirements Analysis Requirements Specification Requirements Validation Practical Consideration Example
UNIT 3
SOFTWARE
REQUIREMENTS
软考高级架构师系统设计40题
软考高级架构师系统设计40题1. In a system design, which of the following is the most important consideration for scalability?A. Hardware performanceB. Software architectureC. Network bandwidthD. User interface design答案:B。
解析:软件架构对于系统的可扩展性至关重要。
硬件性能在一定程度上影响,但不是最关键的。
网络带宽主要影响数据传输,对可扩展性的直接影响较小。
用户界面设计与系统的可扩展性关系不大。
2. When designing a system, which principle should be followed to ensure high availability?A. RedundancyB. Minimization of componentsC. Simple architectureD. Low cost答案:A。
解析:冗余是确保高可用性的重要原则。
减少组件可能会降低复杂性,但不一定能保证高可用性。
简单架构有助于理解和维护,但不是保证高可用性的关键。
低成本通常不是高可用性设计的首要考虑因素。
3. Which of the following is a key factor in determining theperformance of a system?A. The number of usersB. The algorithm usedC. The color scheme of the interfaceD. The brand of the hardware答案:B。
解析:算法的优劣直接决定了系统的性能。
用户数量会影响系统负载,但不是决定性能的根本因素。
界面的颜色方案与性能无关。
硬件品牌对性能有一定影响,但算法的影响更为关键。
质量管理体系术语(中英双语)
一组质量管理体系术语(中英双语)English Chinesereceipt (入厂)接受,验收,进货handling 搬运packaging 包装storage 保存protection 保护comparison 比较identification 标识replacement of identification mark 标识标志更换maintenance of identification 标识的保持records of identification control 标识控制记录tender 标书normative document 标准文件supplemental 补充nonconforming product 不合格品control of nonconforming product 不合格品控制control procedure of nonconforming products 不合格品控制程序tendency of nonconformance 不合格倾向purchasing 采购verification of purchased product 采购的产品验证purchasing process 采购过程purchasing control procedure 采购控制程序purchasing information 采购信息reference standard 参照标准reference instructions 参照细则stockhouse 仓库measurement, analysis and improvement 测量,分析和改进measurement result 测量结果control procedure of monitoring and measuring devices 测量设备控制程序planning 策划preservation of product 产品保护control procedure for maintenance, replacement and records of product identification 产品标识的保持, 更换及记录控制程序procedure for product identification and traceability 产品标识和可追溯性程序conformity of product 产品的符合性monitoring and measurement of product 产品的监督和测量product plan 产品方案control procedure for product preservation 产品防护控制程序method of product release 产品放行方法conformity of product, product conformity 产品符合性product realization 产品实现planning of product realization 产品实现策划product characteristics 产品特性input to product requirements 产品要求的输入product status 产品状态final acceptance of product 产品最后验收procedure 程序program documents 程序文件continual improvement 持续改进procedure for continual improvement of quality management system 持续改进质量体系程序adequacy 充分性storage location 存放地点agency personnel 代理人员submission of tenders 递交标书adjustment 调整,调节statutory and regulatory requirements 法律法规要求rework, vt 返工repair, vt 返修subcontractor 分承包方annex 附录improvement 改进improvement actions 改进措施on-the-job training 岗位技能培训responsibility of individual department and post 各部门, 各岗位职责change identification 更改标记change order number 更改单编号process sheets 工艺单process specification 工艺规程procedure(process card) 工艺规程(工艺卡)process characteristics 工艺特性Job Description Format 工种描述单work environment 工作环境impartiality 公正性functional requirements 功能要求supplier 供方supplier evaluation procedure 供方评价程序supplier provided special processes 供方提供的特殊过程verification at supplier's premises 供方现场验证supply chain 供应链criteria for supplier selection, evaluation and re-evaluation 供应商选择、评估和再评估准则communication 沟通customer 顾客customer property 顾客财产control procedure for customer property 顾客财产控制程序customer feedback 顾客反馈Customer Service Contact Form 顾客服务联系表customer cummunications 顾客沟通customer satisfaction 顾客满意statistical analysis of customer satisfaction 顾客满意度统计分析customer complaint 顾客投诉identificaion of customer requirements 顾客要求的识别management review 管理评审records from management review 管理评审记录management review control procedure 管理评审控制程序management representative 管理者代表management responsibility 管理职责specified limits of acceptability 规定的可接受界限specified use 规定的用途process 过程complexity of processes 过程的复杂性monitoring and measurement of processes 过程的监视和测量operation of process 过程的运行status of processes 过程的状态process approach 过程方法process controls 过程控制process control documents 过程控制文件process performance 过程业绩appropriateness 合适性changes to contractor 合同的更改contract review control procedure 合同评审控制程序internet sales 互联网销售environmental conditions 环境条件monogram pragram requirements 会标纲要要求type of activities 活动类型infrastructure 基础建设infrastructure 基础设施fundamentals and vocabulary 基础与词汇control of records 记录控制technical specificaion 技术规范process trace sheet 加工跟踪单monitoring and measurement 监视和测量monitoring and measuring device 监视和测量装置control of monitoring and measuring devices 监视和测量装置控制check method 检查方法frequency of checks 检查频次calibration status 检定状态inspection and test control procedure 检验和试验控制程序identification procedure for inspection and test status 检验和试验状态标识程序inspection witness point 检验见证点inspection hold point 检验停止点buildings 建筑物delivery 交付post-delivery activities 交付后的活动delivery activities 交付活动interface 接口acceptance of contract or orders 接受合同或定单type of medium 介质类型experience 经验correction action 纠正措施Corrective action response time 纠正措施答复时间,纠正措施响应时间management procedure for corrective actions 纠正措施管理程序corrective action response times 纠正措施响应时间development activity 开发活动traceability mark 可追溯性标志objectivity 客观性Customer Service Log 客户服务记录簿control feature 控制特性,控制细节control features 控制细则periodic assessment of stock 库存定期评估justification 理由routine 例程,惯例,常规质量职能分配表论证范围internal communication 内部沟通internal audit 内部审核internal audit procedure 内部审核程序internally controlled standard 内控标准internal audit 内审results of internal and external audits 内外部审核结果competence 能力training 培训training needs 培训需要evaluate 评价records of the results of the review 评审结果的记录review output 评审输出review input 评审输入Purchase Requisition 请购单authority 权限validation 确认concession 让步human resources 人力资源job training of personnel 人员岗位培训qualification of personnel 人员资格equipment control procedure 设备控制程序device type 设备类型order of design changes 设计更改通知单design and development control procedure 设计和开发控制程序design and development 设计开发design and development planning 设计开发策划control of design and development changes 设计开发更改控制design and development review 设计开发评审design and development validation 设计开发确认design and development outputs 设计开发输出design and development inputs 设计开发输入design and development verification 设计开发验证design validation 设计确认design documentation 设计文件编制design acceptance criteria 设计验收准则design verification 设计验证audit program 审核大纲conduct of audits 审核行为audit criteria 审核准则production process control 生产过程控制production process control procedure 生产过程控制程序production and service provision 生产和服务提供control of production and service provision 生产和服务提供的控制validation of processes for production and service provision 生产和服务提供过程的确认production order 生产令identification and traceability 识别和可追溯性identification and traceability maintenance and replacement 识别和可追溯性维护与替换invalidate 使失效market survey 市场调研suitability 适宜性scope 适用范围controlled condition 受控状态terms and definitions 术语与定义analysis of data 数据分析sequence 顺序transfer of ownership 所有权转移system document 体系文件statistical technique 统计方法outsource(vt) a process 外包过程external source 外部来源documents of external origin 外来文件outsource, vt 外协unique identification 唯一的标识maintenance 维护Document Change Control 文件更改控制Request For Document Change (RDC) 文件更改需求单control of documents 文件控制documentation requirements 文件要求enquiry 问询,询价field nonconformity analysis 现场不符合分析relevance 相关性interaction 相互作用detail design 详细设计,详图设计,零件设计,施工设计sales department 销售部sales contract 销售合同checklist 校验表,一览表,检查一览表calibration 校准submission of action plans 行动计划的递交documented procedures 形成文件的程序documented statement 形成文件的声明performance requirements 性能要求licensee responsibilities 许可证持有者责任acceptance criteria 验收准则verification arrangement 验证安排verification results 验证结果customer focus 以客户为关注点,以客户为焦点awareness 意识introduction 引言,概述,介绍normative references 引用标准application 应用visit to user 用户访问review of requirements related to the product 有关产品的要求评审competent 有能力的effectiveness 有效性determination of requirements related to the product 与产品有关的要求的确定customer-related processes 与顾客有关的过程preventive action 预防措施management procedure for preventive actions 预防措施管理程序planned results 预期的结果intended use 预期的用途procedure for competence, knowledge and training of personnel 员工能力, 知识和培训程序personnel training procedure 员工培训程序supporting services 支持性服务functions 职能部门responsibility 职责assignment of responsibility 职责分工workmanship 制造工艺manufacturing acceptance criteria 制造验收准则quality policy 质量方针quality programs 质量纲领quality management system 质量管理体系quality management system planning 质量管理体系策划performance of the quality management system 质量管理体系业绩quality plan 质量计划quality records 质量记录quality objectives 质量目标quality audit 质量审核quality manual 质量手册quality problem handling form 质量问题处理单quality requirements 质量要求allocation table of quality responsibilities 质量职能分配表availability of resources 资源的可获得性resource management 资源管理allocation of resources 资源配置provision of resources 资源提供general requirements 总要求,一般要求constituent part 组成部件organization 组织continual improvement of the organization 组织的持续改进size of organization 组织的规模Organizational Diagram 组织机构图final acceptance 最终验收work instructions 作业指导书。
非功能性需求
© Copyright Shanghai GM Corporation 2005
非功能性需求简介(续)
安全性需求(Security Requirements) :
1. 用户安全需求(User Security Requirements) 2. 数据安全需求(Data Security Requirements) 3. 其他安全需求(Others)
法务部门根据中国本地政策法规及知识产权及二次开发要求对相关内容进行审核 以合同方式确保上海通用的服务以及培训要求能得到充分满足
QA 文档评审
QA 团队根据前期非功能性需求报告描述,监督相关文档被正确、及时、恰当递交
技术方案评审 实施方案验收
测试方案评审 测试报告评审
验收测试
Operation 团队:参与技术方案评审和实施验收,保证系统维护性需求被正确贯彻 Info Structure 团队和 Dev. 团队:进行技术方案评审和实施方案验收,保证项目技 术方案能够囊括各类相关技术需求,并在项目中被正确贯彻实施
项目递交需求(Packaging Requirements)
© Copyright Shanghai GM Corporation 2005
Agenda
▪ 非功能性需求简介 ▪ 非功能性需求的验收策略 ▪ SGM非功能性需求的实施方案
© Copyright Shanghai GM Corporation 2005
test团队以及法务部门参与共同完成报告qaqa文档评审文档评审技术方案评审技术方案评审测试方案评审测试方案评审法务评审法务评审合同保证合同保证以合同方式确保上海通用的服务以及培训要求能得到充分满足法务评审法务评审合同保证合同保证服务服务培训培训验收测试验收测试测试报告评审测试报告评审qaqa文档评审文档评审qa团队根据前期非功能性需求报告描述监督相关文档被正确及时恰当递交测试方案评审测试方案评审测试报告评审测试报告评审验收测试验收测试test人员审核项目组提交的测试策略及测试方案test人员审核项目测试报告test人员进行有选择有针对的项目验收测试实施方案验收实施方案验收技术方案评审技术方案评审实施方案验收实施方案验收operation团队
软件测试词汇英文及解释
软件测试英语专业词汇1.Software life cycle———软件生命周期开始于一个软件产品的构思,结束于该产品不再被使用的这段期间。
2.Test ———测试执行软件以验证其满足指定的需求并检测错误的过程。
检测已有条件之间的不同,并评价软件项的特性软件项的分析过程。
软件工程过程的一个活动,它将软件在预定的条件下运行以判断软件是否符合预期结果。
3.Acceptance testing———验收测试,可接受性测试系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。
它让系统用户决定是否接收系统。
它是一项确定产品是否能够满足合同或用户所规定需求的测试。
这是管理性和防御性控制。
4.Ad hoc testing———随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。
主要是根据测试者的经验对软件进行功能和性能抽查。
随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
5.Alpha testing———α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
6.Automated Testing———自动化测试使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。
7.Beta testing———β测试测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
8.Black box testing———黑盒测试指测试人员不关心程序具体如何实现的一种测试方法。
根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。
9.White box testing ———白盒测试glass box testing ———玻璃盒测试根据软件内部的工作原理分析来进行测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
项目经理培训全套资料TeAM方法
Ensure Client Commitment(Same name)
•
�
Evaluate Integrated Solution(Evaluate Integrated Solution,Create Technical Prototype)
•
Phase/Activity/Task(GSMethod Task)/Work Products
�
Assess Initial Viability(Assess Initial Viability)
•
Phase/Activity/Task(GSMethod Task)/Work Products
(GSMethod Work Products)
�
Execute(part2)
�
Develop Solution with Customer
Signature Selling Method and TeAMethod
Evaluate Customers Business Environment Develop Plans Linked to Customer’s Business Initiatives Develop Customer Interest. Establish Buying Vision Demonstrate Business Benefits. Capabilities and Qualify Validated Qualified Implementation and Ensure Expectations are Met Completed Develop Solution with Customer Refine Solution, Resolve Concerns. Close Sale Identified
软件工程复习资料英文
Lecture 1 An Introduction to Software Engineering1 what does software engineering concern?1) Software engineering is concerned with theories, methods and tools for professionalsoftware development.2) Software engineering is concerned with cost-effective software development.2 What is software?Software includes:①computer programs②data structures③documents3 What is the two types of software productsGeneric software(通用软件) and custom software(定制软件)4 The three key elements of a successful software project are:on time, within budget, satisfies the user’s needs5 Generic activities in all software processes are:Specification(描述), Development(开发), Validation(有效性验证), Evolution(进化)6 The attributes of good software include:Maintainability(可维护性), Dependability(可依赖性), Efficiency(有效性), Acceptability(可接受性)Lecture 2 Software Processes1 What is a software process modelA software process model is an abstract representation of a software process. It presents a description of a process from some particular perspective.2 Draw the graphic presentation of Waterfall model and describe its character.1)这种模型把软件过程划分成几个顺序的阶段。
Project_Requirements
Software EngineeringLaboratory ProjectGrading PolicyYour laboratory project will be graded according to the points you gain from the following seven parts:1. 《Software Requirements Specification》Due: the 8th weekMinimum requirement of contents:● Introduction (2 points);● User Scenarios(8 points); Data Flow Diagram (7 points); State Diagrams(5 points); ClassDiagrams(5 points) and CRC Cards (5 points);●Validation Criteria (15 points).Concerned points:●The accuracy of the validation criteria: full marks can be obtained if more than 90% of thefunctions are covered. The acceptance testing of the subsystem version 1.0 will strictly go by the criteria.●The language and style of the document must be uniformed (3 points).Grading: The full mark = 50 points ⨯ number of participants2. 《Research on Design Patterns》Due: the 11th weekMinimum requirement of contents:●Review of latest research papers (10 points);●Analysis on the architecture of your subsystem (15 points);●Design pattern applied to your subsystem (20 points);●Discussions on other design patterns which may also support your subsystem (10 points);● References (3 points).Concerned points:●The pattern description must be complete.●The language and style of the document must be uniformed (2 points).Grading: The full mark = 60 points ⨯ number of participants3. 《System Design》( 5-minute presentation + 1-minute Q&A )Due: the 12th weekGrading Table:Group Name:Introduction(5)ACD(10)(20)Archetypes (10) HierarchyStyle(5) Total(50)CommentsGood points:Shortcomings:Grading Policy: Each group will evaluate the other groups’ performances and fill in the grading tables. For each group, let p1 be the average points given by the other groups with the maximum and minimum points taken off; and let p2 be the points given by the instructor, the final points obtained will be (p1 + p2) / 2. The full mark = 50 points number of participantsNote:The group(s) who miscalculate the points for other groups or hand in grading tables with comments missing will be penalized 1 ~ 10 points.4. 《Test Specification》Due: the 13th weekMinimum requirement of contents:● Overall Plan (10 points);●Functional Testing (10 points);●Boundary Testing (4 points);● Stress Testing (4 points);●Interface Communication Testing with Other Groups’ Modules (5 points).Each group is supposed to provide all the necessary testing databases and detailed test cases. (4 points)Concerned points:●The plan must be complete and operable.●The language and style of the document must be uniformed (3 points).Grading: The full mark = 40 points. Only partial participation is required. This part will be graded together with the subsystem version 1.0.5. 《Subsystem Version 1.0》( Release version required, NOT the one running under IDE )Due: the 15th weekMinimum requirement of acceptance:●Complete functionality – there must be NO defects which seriously affect the demonstration ofthe functions (30 points);●In your source code, all the classes, function declarations and implementations must besufficiently commented (10 points). Your code will be randomly inspected. Any source code file with less than 1/3 of the lines commented meaningfully will NOT be accepted ( and thus 10 points will be lost ). Redundant comments will not be counted;●The testing report must be filled in according to the testing plan. Each defect must correspondto a record of detection and correction. The testing results must be highly consistent with the source code (10 points);●The Help document must be highly consistent with the real subsystem (10 points).Grading: The full mark = 60 points. Only partial participation is required. Every one of the participants must attend the acceptance testing and report his or her work to the inspector. This part will be graded together with the testing plan document.The full mark of part 4 & 5 = 100 points ⨯ total number of participants in part 4 & 5.6. 《Subsystem Version 2.0》( Release version required, NOT the one running under IDE )Due: the 16th weekMinimum requirement of acceptance:●All the defects found in version 1.0 are corrected (10 points);●Pass the inspector’s regression testing with similar requirements as in version 1.0 (20 points);●The testing report and updated Help document (10 points).Grading: The full mark = 40 points ⨯ number of participants7. 《Final Integration of System》Due: within 3 working days after the Final ExamMinimum requirement of acceptance:All the functions and data communications among the groups are correct.Grading: The full mark = 100points ⨯ number of participants. The group leaders and the chief programmers must attend the acceptance testing and report to the inspector.Without other specifications, all the groups shall obtain the same average points for this part.However, you may e-mail your complains to the inspector about other group’s negative attitude toward integration. Any group that is sued by more than half of other groups will receive a penalty deduction or in the worst case, a zero grade. In case it is perfectly clear that some groups are fully responsible for the (partial) failure of the integration, the groups will take the consequences by their own.Rewards and Penalties:● A group leader who is sued by more than half of his team members must be replaced. The groupmust then select a new leader as soon as possible.● A group leader’s work for each project is graded as the average points of the group.● A group leader who can successfully manage the group development throughout the quarter will beawarded up to 5 bonus points added to his or her final grade.● A group leader who makes serious mistakes during development will receive a penalty deductionof up to 5 points from his or her final grade.●Each assignment is due on a specified date. After the due date, the penalty will be 10% for eachday they are late for at most 5 days ( each day is considered closed at 22:00 ). After the fifth day the assignment will be graded zero.Tip:Evenly distributed technical staff among all the groups might serve the final integration better.Bonus:Select one of the following three topics to write an essay, you will be awarded up to 5 bonus points added to your final grade.Topics:1. Please read sufficient references to understand the modeling methods for non-functionalrequirements. Develop analysis models for performance and reliability requirements ofyour project system.2. Please read sufficient references to understand the testing methods for non-functionalrequirements, and to learn automatic testing tools. Give a testing plan for performanceand reliability requirements of your project system.3. Please read sufficient references to understand the WebApp benchmark techniques andtools, especially the Cloudstone. Take your project system as an application and analyzethe measurements.Due: the last minute before the Final Exam.Note: This is NOT a team work assignment. You are supposed to complete your essay independently.。
non_functional_requirement_标准_概述说明
non functional requirement 标准概述说明1. 引言1.1 概述本文旨在介绍非功能性要求标准的概述,以及其定义、分类、重要性和关键特征。
同时,还将探讨非功能性测试与验证方法,并强调合理制定和遵守非功能需求标准的必要性。
最后,还会展望未来发展方向和趋势。
1.2 文章结构本文共包括五个部分。
引言部分(第一部分)主要对文章进行了概述,并介绍了各个章节的内容安排。
接下来的四个部分将详细探讨非功能性要求标准及其相关内容。
最后一部分是结论,总结了非功能性需求标准的作用与重要性,并展望了未来发展方向和趋势。
1.3 目的本文的目的是为读者提供一个全面而系统的非功能性要求标准概述。
通过对这些标准定义、分类、重要性以及关键特征的介绍,希望读者能够更好地理解和应用非功能性需求在软件开发中起到的重要作用。
同时,通过介绍相应的测试与验证方法,可以帮助读者有效评估和验证软件系统是否满足这些非功能性要求。
最后,通过对未来发展趋势的展望,希望能够引导行业对非功能性要求标准的持续关注和研究。
这样清晰明了的文章引言部分将为读者提供一个概述,并介绍接下来各个章节的内容安排,使读者能够有条理地阅读整篇长文。
2. 标准概述:2.1 非功能性要求定义:非功能性要求是指对系统功能之外的特定要求,用来衡量系统性能、可靠性、安全性等方面的标准。
它们描述了系统如何执行、响应用户操作以及处理异常情况的能力。
与功能性要求不同,非功能性要求关注的是系统的质量特征和约束条件。
2.2 非功能性要求分类:非功能性要求可以根据其属性和目标进行分类。
常见的分类包括但不限于以下几种:- 性能要求:涉及系统的响应时间、吞吐量、并发能力等。
- 可靠性要求:涉及系统在给定条件下的稳定性、可用性、容错能力等。
- 安全性要求:涉及系统防护机制、数据保密性和完整性等与安全相关的需求。
- 可维护性要求:涉及软件修改和维护过程中的管理能力和易读易维护程度。
项目方案 英文
Project ProposalIntroductionThis project proposal outlines a plan for the successful completion of a project. It includes an overview of the project, its objectives, deliverables, timeline, and resources required. The purpose of this document is to provide a comprehensive understanding of the project and serve as a guide for its execution.Project OverviewThe purpose of this project is to develop and implement a new software application that will streamline the internal processes of a company. The application will be designed to improve efficiency, enhance communication, and increase productivity within the organization. It will be built using the latest technologies and will be user-friendly, scalable, and customizable to meet the specific needs of the company.ObjectivesThe main objectives of this project are as follows:1.Develop a software application that fulfills the requirements of thecompany2.Improve internal processes and workflow efficiency3.Enhance communication and collaboration among employees4.Increase overall productivity and reduce manual work5.Provide a user-friendly interface that is easy to navigate andunderstand6.Deliver a scalable and customizable solution that can adapt to futureneedsDeliverablesThe following deliverables will be produced as part of this project:1.Requirements documentation - A comprehensive document outliningthe functional and non-functional requirements of the software application.2.Design specifications - Detailed design documents including softwarearchitecture, data models, and user interface design.3.Software application - A fully functional software application meetingthe specified requirements.er manual - A user-friendly guide explaining how to navigate andutilize the software application.5.Training materials - Training materials to facilitate the onboardingprocess for employees.6.Project documentation - A complete set of project documentsincluding project plan, status reports, and meeting minutes.TimelineThe project will be executed in several phases, with each phase having its specific goals and deliverables. The estimated timeline is as follows:1.Phase 1: Requirements gathering and analysis - 2 weeks2.Phase 2: Design and development - 6 weeks3.Phase 3: Testing and bug fixing - 2 weeks4.Phase 4: Deployment and training - 2 weeks5.Phase 5: Post-deployment support and maintenance - OngoingPlease note that the timeline is subject to change based on various factors such as resource availability and unforeseen challenges.Required ResourcesTo successfully complete this project, the following resources will be required:1.Project Manager - Responsible for overall project management andcoordination.2.Business Analyst - Responsible for requirements gathering andanalysis.3.UX/UI Designer - Responsible for designing the user interface.4.Software Developer/Engineer - Responsible for softwaredevelopment and coding.5.Quality Assurance Engineer - Responsible for testing and bug fixing.6.Technical Writer - Responsible for creating user manuals and trainingmaterials.7.Training Facilitator - Responsible for conducting training sessions.In addition to the above resources, adequate hardware, software, and infrastructure will be required to support the development and deployment of the software application.ConclusionThis project proposal provides an overview of the project, its objectives, deliverables, timeline, and required resources. It outlines the plan for successfully developing and implementing a software application that will improve efficiency, enhance communication, and increase productivity within the company. Byfollowing this proposal, the project can be executed effectively and achieve the desired outcomes.。
软件测试英语专业词汇
软件测试英语专业词汇1.Softwarelifecycle———软件生命周期开始于一个软件产品的构思,完毕于该产品不再被使用的这段期间。
2.Test———测试执行软件以验证其满足指定的需求并检测错误的过程。
检测已有条件之间的不同,并评价软件项的特性软件项的分析过程。
软件工程过程的一个活动,它将软件在预定的条件下运行以判断软件是否符合预期结果。
3.Aeptancetesting———验收测试,可承受性测试系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试方案和结果对系统进展测试和接收。
它让系统用户决定是否接收系统。
它是一项确定产品是否能够满足合同或用户所规定需求的测试。
这是管理性和防御性控制。
4.Adhoctesting———随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。
主要是根据测试者的经历对软件进展功能和性能抽查。
随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
5.Alphatesting———α测试是由一个用户在开发环境下进展的测试,也可以是公司内部的用户在模拟实际操作环境下进展的受控测试,Alpha测试不能由程序员或测试员完成。
6.AutomatedTesting———自动化测试使用自动化测试工具来进展测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。
7.Betatesting———β测试测试是软件的多个用户在一个或多个用户的实际使用环境下进展的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
8.Blackboxtesting———黑盒测试指测试人员不关心程序详细如何实现的一种测试方法。
根据软件的规格对软件进展各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。
9.Whiteboxtesting———白盒测试glassboxtesting———玻璃盒测试根据软件内部的工作原理分析来进展测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由工程经理在程序员开发中来实现。
需求分析报告翻译英文
需求分析报告翻译英文Requirements Analysis Report1. IntroductionThe purpose of this report is to provide a detailed analysis of the requirements for a new software system. This report will outline the goals and objectives of the system, as well as the functional and non-functional requirements that need to be met. The report will also include a discussion on the stakeholders involved and their needs, as well as any constraints or limitations that may impact the development of the system.2. Goals and ObjectivesThe main goal of the software system is to improve the efficiency and effectiveness of the company's operations. The system should streamline processes and automate manual tasks, allowing employees to focus on more strategic and value-added activities. The system should also provide accurate and real-time data, enabling management to make informed decisions.The objectives of the system include:- Increase productivity by reducing manual work and eliminating redundant tasks.- Improve data accuracy and integrity by minimizing human errors.- Enhance decision-making by providing timely and reliable information.- Ensure data security and privacy by implementing appropriate security measures.- Enhance customer satisfaction by improving response times and service quality.3. Functional RequirementsThe functional requirements describe the specific features and functionalities that the software system needs to have. These include:- User authentication and access control: Users should be able to securely login to the system and access only the information and functionalities that they are authorized to use.- Data management: The system should be able to effectively store, retrieve, and analyze large amounts of data.- Workflow management: The system should support the automation of predefined workflows and processes.- Reporting and analytics: The system should provide comprehensive reporting and analytics capabilities to support decision-making.- Integration with existing systems: The system should be able to integrate with and exchange data with existing systems, such as the company's CRM and ERP systems.4. Non-functional RequirementsThe non-functional requirements describe the qualities and characteristics of the system. These include:- Performance: The system should be responsive and perform efficiently, even during peak usage.- Reliability: The system should be reliable and available 24/7, with minimal downtime.- Usability: The system should be user-friendly and easy to navigate.- Security: The system should have robust security measures in place to protect sensitive data.- Scalability: The system should be able to handle increased usage and data volumes as the company grows.5. Stakeholders and ConstraintsThe stakeholders involved in the development and use of the software system include management, employees, customers, and external suppliers. Management needs a system that provides accurate and timely information for decision-making. Employees need a system that simplifies their workflow and reduces manual work. Customers expect a system that improves response times and provides better service quality. External suppliers will need to integrate their systems with the new system.There are several constraints and limitations that need to be considered during the development of the system. These include budget constraints, time constraints, and technological constraints. The system should be developed within the specified budget and timeline. It should also be compatible with the existing technological infrastructure of the company.6. ConclusionIn conclusion, this report has outlined the goals, objectives, and requirements for the new software system. It has identified the functional and non-functional requirements, as well as the stakeholders involved and any constraints or limitations. This report will serve as a guide for the development teamas they design, develop, and implement the new system.。
nonmaterial requirement的含义
nonmaterial requirement的含义摘要:non-material requirement的含义及其在产品开发中的应用一、non-material requirement的定义与重要性1.定义non-material requirement2.与material requirement的对比3.non-material requirement的重要性二、non-material requirement的分类与应用场景1.功能需求2.性能需求3.用户体验需求4.安全性需求5.兼容性需求6.维护性需求三、如何在产品开发中满足non-material requirement1.需求分析与收集2.制定需求文档3.设计阶段的考虑4.测试与验证5.迭代优化四、总结与展望1.non-material requirement在产品开发中的价值2.我国在non-material requirement方面的现状与挑战3.未来发展趋势与建议正文:on-material requirement的含义及其在产品开发中的应用一、non-material requirement的定义与重要性1.定义non-material requirementon-material requirement,即非物质需求,是指在产品或服务中,除了功能、性能等物质属性之外,还需要满足的一系列要求。
这些要求往往关系到产品的使用体验、用户满意度、安全性等方面,虽然难以直接观察和测量,但对产品的成功与否具有至关重要的影响。
2.与material requirement的对比与物质需求(material requirement)相比,非物质需求关注的是产品的品质、性能、安全性、易用性等方面。
物质需求主要涉及产品的功能、硬件、软件等技术指标,相对较为具体和明确。
而非物质需求则涉及产品的软性指标,如用户体验、情感设计、人性化服务等,往往难以量化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
On Non-Functional RequirementsMartin GlinzDepartment of Informatics, University of Zurich, Switzerlandglinz@ifi.uzh.chAbstractAlthough the term ‘non-functional requirement’ has been in use for mor e than 20 year s, ther e is still no consensus in the r equir ements engineer ing community what non-functional r equir ements ar e and how we should elicit, document, and validate them. On the other hand, ther e is a unanimous consensus that non-functional r equir ements ar e impor tant and can be critical for the success of a project.This paper sur veys the existing definitions of the ter m, highlights and discusses the pr oblems with the current definitions, and contributes concepts for over-coming these problems.1. IntroductionIf you want to trigger a hot debate among a group of requirements engineering people, just let them talk about non-functional requirements. Although this term has been in use for more than two decades, there is still no consensus about the nature of non-functional re-quirements and how to document them in requirements specifications.This paper is an attempt to work out and discuss the problems that we have with the notion of non-func-tional requirements and to contribute concepts for overcoming these problems. The focus is on system (or product) requirements; the role of non-functional re-quirements in the software process is not discussed [16].The paper is organized as follows. Section 2 sur-veys typical definitions for the terms ‘functional re-quirement’ and ‘non-functional requirement’. The problems with these definitions are discussed in Sec-tion 3. Section 4 presents concepts about how these problems can be overcome or at least alleviated. The paper ends with a discussion of these concepts.2. Defining the termIn every current requirements classification (for ex-ample [7], [11], [12]), we find a distinction between requirements concerning the functionality of a system and other requirements.There is a rather broad consensus about how to de-fine the term ‘functional r equir ements’. The existing definitions follow two threads that coincide to a large extent. In the first thread, the emphasis is on functions: a functional requirement specifies “a function that a system (...) must be able to perform” [6], “what the product must do” [18], “what the system should do”[20]. The second thread emphasizes behavior: func-tional requirements “describe the behavioral aspects of a system” [1]; behavioral requirements are “those re-quirements that specify the inputs (stimuli) to the sys-tem, the outputs (responses) from the system, and be-havioral relationships between them; also called func-tional or operational requirements.” [3].Wiegers as well as Jacobson, Rumbaugh and Booch try a synthesis: “A statement of a piece of required functionality or a behavior that a system will exhibit under specific conditions.” [21]; “A requirement that specifies an action that a system must be able to per-form, without considering physical constraints; a re-quirement that specifies input/output behavior of a system.” [10].There is only one semantic difference that may arise between the different definitions: timing requirements may be viewed as behavioral, while they are not func-tional. However, most publications in RE consider timing requirements to be performance requirements which in turn are classified as non-functional require-ments.On the other hand, there is no such consensus for non-functional r equir ements. Table 1 gives an over-view of selected definitions from the literature or the web, which – in my opinion – are representative of the definitions that exist.3. Where is the problem?The problems that we currently have with the notion of non-functional requirements can be divided into definition problems, classification problems and repre-sentation problems.Proceedings of the 15th IEEE International Requirements Engineering Conference, Delhi, India.Table 1. Definitions of the term non-functional requirement(s) (listed in alphabetical order of sources) Source DefinitionAntón [1] Describe the nonbehavioral aspects of a system, capturing the properties and constraints underwhich a system must operate.Davis [3] The required overall attributes of the system, including portability, reliability, efficiency, human engineering, testability, understandability, and modifiability.IEEE 610.12 [6] Term is not defined. The standard distinguishes design requirements, implementation requirements, interface requirements, performance requirements, and physical requirements.IEEE 830-1998 [7] Term is not defined. The standard defines the categories functionality, external interfaces,performance, attributes (portability, security, etc.), and design constraints. Project requirements(such as schedule, cost, or development requirements) are explicitly excluded.Jacobson, Booch and Rumbaugh [10] A requirement that specifies system properties, such as environmental and implementation constraints, performance, platform dependencies, maintainability, extensibility, and reliability. A requirement that specifies physical constraints on a functional requirement.Kotonya and Sommerville [11] Requirements which are not specifically concerned with the functionality of a system. They place restrictions on the product being developed and the development process, and they specify external constraints that the product must meet.Mylopoulos, Chung and Nixon [16] “... global requirements on its development or operational cost, performance, reliability, maintainability, portability, robustness, and the like. (...) There is not a formal definition or a complete list of nonfunctional requirements.”Ncube [17] The behavioral properties that the specified functions must have, such as performance, usability.Robertson and Robertson [18] A property, or quality, that the product must have, such as an appearance, or a speed or accuracy property.SCREEN Glossary [19] A requirement on a service that does not have a bearing on its functionality, but describes attributes, constraints, performance considerations, design, quality of service, environmental considerations,failure and recovery.Wiegers [21] A description of a property or characteristic that a software system must exhibit or a constraint that it must respect, other than an observable system behavior.Wikipedia: Non-Func-tional Requirements [22] Requirements which specify criteria that can be used to judge the operation of a system, rather than specific behaviors.Wikipedia: Requirements Analysis [23] Requirements which impose constraints on the design or implementation (such as performance requirements, quality standards, or design constraints).3.1. Definition problemsWhen analyzing the definitions in Table 1, we find not only terminological, but also major conceptual discrepancies. Basically, all definitions build on the following terms: property or characteristic, attribute, quality, constraint, and performance. However, there is no consensus about the concepts that these terms de-note. There are also cases where the meaning is not clear, because terms are used without a definition or a clarifying example.Property and characteristic seem to be used in their general meaning, i.e. they denote something that the system must have, which typically includes specific qualities such as usability or reliability, but excludes any functional quality. There is no consensus whether constraints also are properties: Jacobson, Booch and Rumbaugh [10] include them, others, e.g. Wiegers [21] and Antón [1] exclude them.Attribute is a term that is used both with a broad and a narrow meaning. In IEEE 830-1998 [7], attributes are a collection of specific qualities, excluding perform-ance and constraints. On the other hand, in the defini-tion by Davis [3], every non-functional requirement is an attribute of the system.Every requirement (including all functional ones) can be regarded as a quality, because, according to ISO 9000:2000 [8], quality is the “degree to which a set of inherent characteristics fulfils requirements”. S imi-larly, every requirement can be regarded as a con-straint, because it constrains the space of potential solutions to those that meet this requirement.Hence, in all definitions that mention the term qual-ity, its meaning is restricted to a set of specific qualities other than functionality: usability, reliability, security, etc.Correspondingly, it is clear that constraint in the context of non-functional requirements must have a restricted meaning. However, there is no consensus among the existing definitions what precisely this re-striction should be. For example, IEEE 830-1998 [7] or Jacobson, Booch and Rumbaugh [10] restrict the meaning of constraint to design constraints and physi-cal constraints. Others, for example the definition in the Wikipedia article on requirements analysis [23], do not treat constraints as a sub-category of non-func-tional requirements, but consider every non-functional requirement to be a constraint. Davis [3] does not mention constraints at all when discussing non-func-tional requirements. R obertson and R obertson [18] have a rather specific view of constraints: they con-sider operational, cultural, and legal constraints to be non-functional properties, whereas design constraints are regarded as a concept that is different from both functional and non-functional requirements.Performance is treated as a quality or attribute in many definitions. Others, e.g. IEEE 830-1998 [7] and Wikipedia [23] consider it as a separate category.Another discrepancy exists in the scope of non-functional requirements. Some definitions emphasize that non-functional requirements have, by definition, a global scope: “global requirements” (Mylopoulos, Chung and Nixon [16]), “overall attributes” (Davis [3]). Accordingly, proponents of this global view separate functional and non-functional requirements completely. For example, in the Volere template [18] they are documented in two separate top-level sections. On the other hand, Jacobson, Booch and R umbaugh [10] emphasize that there are both local non-functional requirements (e.g. most performance requirements) and global requirements such as security or reliability.Most definitions refer to system requirements (also called product requirements) only and exclude project and process requirements either explicitly [7] or im-plicitly. However, in the definition by Kotonya and Sommerville [11], project requirements are considered to be non-functional requirements.Finally, the variety and divergence of concepts used in the definitions of non-functional requirements also lead to definitions containing elements that are obvi-ously misconceived. For example, the SCR EEN glos-sary [19] lists failure and recovery as non-functional properties, while behavior in the case of failure and recovery from failures are clearly functional issues. Ncube [17] even defines non-functional requirements as “the behavioral properties...”. Although this is more likely a severe typo than a misconception, the fact that this error went unnoticed in a PhD thesis illustrates the fuzziness of the current notions of non-functional re-quirements and the need for a clear and concise defini-tion. The worst example is the definition in the Wiki-pedia article on non-functional requirements [22], which is so vague that it could mean almost anything. 3.2. Classification problemsWhen analyzing the definitions given in Table 1, we also find rather divergent concepts for sub-classifying non-functional requirements. Davis [3] regards them as qualities and uses Boehm’s quality tree [2] as a sub-classification for non-functional requirements. The IEEE standard 830-1998 on Software R equirements Specifications [7] sub-classifies non-functional re-quirements into external interface requirements, per-formance requirements, attributes and design con-straints, where the attributes are a set of qualities such as reliability, availability, security, etc. The IEEE Standard Glossary of Software Engineering Terminol-ogy [6] distinguishes functional requirements on the one hand and design requirements, implementation requirements, interface requirements, performance re-quirements, and physical requirements on the other. Sommerville [20] uses a sub-classification into product requirements, organizational requirements and external requirements.More classification problems arise due to mixing three concepts that should better be separated. These are the concepts of kind (should a given requirement be regarded as a function, a quality, a constraint, etc.), representation (see below), and satisfaction (hard vs. soft requirements). For an in-depth discussion of this problem, see [5].3.3. Representation problemsAs long as we regard any requirement that describes a function or behavior as a functional requirement, the notion of non-functional requirements is represen-tation-dependent. Consider the following example: A particular security requirement could be expressed as “The system shall prevent any unauthorized access to the customer data”, which, according to all definitions given in Table 1 is a non-functional requirement. If we represent this requirement in a more concrete form, for example as “The probability for successful access to the customer data by an unauthorized person shall be smaller than 10-5”, this is still a non-functional re-quirement. However, if we refine the original require-ment to “The database shall grant access to the cus-tomer data only to those users that have been author-ized by their user name and password”, we have a functional requirement, albeit it is still a security re-quirement. In a nutshell, the kind of a requirement depends on the way we represent it.A second representational problem is the lack of consensus where to document non-functional require-ments. As discussed above, some authors recommend the documentation of functional and non-functional requirements in separate chapters of the software re-quirements specification. The Volere template [18] is a prominent example for this documentation style. In IEEE 830-1998 [7], seven of the eight proposed SR S templates also separate the functional requirementscompletely from the non-functional ones. On the other hand, when documenting requirements in a use-case-oriented style according to the Rational Unified Proc-ess [10], non-functional requirements are attached to use case as far as possible. Only the remaining (global) non-functional requirements are documented sepa-rately as so-called supplementary requirements.However, there are also cases where a non-func-tional requirement affects neither a single functional requirement nor the system as a whole. Instead, it per-tains to a specific set of functional requirements. For example, some subset of the set of all use cases may need secure communication, while the other use cases do not. Such a case cannot be documented adequately with classic requirements specification templates and must be handled by setting explicit traceability links. As we will see in the next chapter, aspect-orientation provides a solution for this problem.4. Elements of a solution4.1. A faceted classificationIn [5], I have proposed that the classification prob-lems, and – in a radical sense – also the definition problems be overcome by introducing a faceted classi-fication for requirements (Fig. 1) where the terms ‘functional requirement’ and ‘non-functional require-ment’ no longer appear.Separating the concepts of kind , representation , satisfaction , and role has several advantages, for example: (i) It is the representation of a requirement (not its kind!) that determines the way in which we can verify that the system satisfies a requirement (Table 2). (ii) Decoupling the kind and satisfaction facets reflects the fact that functional requirements are not always hard and non-functional requirements not always soft. (iii) The role facet allows a clear distinction of (pre-scriptive) system requirements and (normative orassumptive) domain requirements.Figure 1. A faceted classification of requirements(from [5])However, when using this classification it turned out that the idea of getting rid of the terms ‘functionalrequirement’ and ‘non-functional requirement’ is too radical. W hen practicing requirements engineering, there is a need to distinguish functional concerns from other, “non-functional” concerns and there is also a need for a sub-classification of the “non-functional” concerns in a clear and comprehensible way. In the next section, such a definition is presented.Table 2. Representation determines verification [5]Representation Type of verificationOperational Review, test or formal verificationQuantitative Measurement (at least on an ordinal scale) QualitativeNo direct verification. May be done by subjective stakeholder judgment of de-ployed system, by prototypes or indirectly by goal refinement or derived metricsDeclarative Review4.2. A definition based on concernsWe define a taxonomy of terms that is based on the concept of concerns , which makes it independent of the chosen representation. W e assume a requirements engineering context, where system is the entity whose requirements have to be specified.Furthermore, the taxonomy concentrates on system requirements . As project and process requirements are conceptually different from system requirements, they should be distinguished at the root level and not in a sub-category such as non-functional requirements. D EFINITION . A concern is a matter of interest in a sys-tem. A concern is a functional or behavioral concern if its matter of interest is primarily the expected behavior of a system or system component in terms of its reac-tion to given input stimuli and the functions and data required for processing the stimuli and producing the reaction. A concern is a performance concern if its matter of interest is timing, speed, volume or through-put. A concern is a quality concern if its matter of in-terest is a quality of the kind enumerated in ISO/IEC 9126 [9].D EFINITION . The set of all requirements of a system is partitioned into functional requirements , performance requirements , specific quality requirements , and con-straints .A functional requirement is a requirement that per-tains to a functional concern.A performance requirement is a requirement that pertains to a performance concern.A specific quality requirement is a requirement that pertains to a quality concern other than the quality of meeting the functional requirements.A constraint is a requirement that constrains the solution space beyond what is necessary for meetingthe given functional, performance, and specific quality requirements.An attribute is a performance requirement or a spe-cific quality requirement.The taxonomy defined above is visualized in Figure 2. In my opinion, this structure is sufficient and useful both for theoretical and practical work. For persons who do not want to dispose of the term ‘non-functional requirement’, we can define this term additionally as follows.D EFINITION . A non-functional requirement is an attrib-ute of or a constraint on a system.Functionality and behavior:Functions Data Stimuli Reactions BehaviorTime and space bounds:Timing Speed Volume Throughput“-ilities”:Reliability Usability Security Availability Portability Maintainability Physical Legal CulturalEnvironmental Design&Im-plementation Interface ......Functional requirementrequirement AttributeConstraintPerformance requirementSpecific quality requirementrequirement requirementFigure 2. A concern-based taxonomy of require -mentsPerformance is a category of its own in our taxonomy (as well as in the IEEE standards [6] [7]) because per-formance requirements are typically treated separately in practice. This is probably due to the fact that meas-uring performance is not difficult a priori, while meas-uring other attributes is: there is a broad consensus to measure performance in terms of time, volume, and volume per unit of time. For any other attribute, there are no such generally agreed measures, which means that the task of eliciting specific qualities always im-plies finding an agreement among the stakeholders how to measure these qualities.Interfaces , which are a separate category in the IEEE standards [6] [7], no longer appear in the termi-nology defined above. An interface requirement is classified according to the concern it pertains to as functional, performance, specific quality, or constraint. Due to the systematic construction of our taxonomy, the task of classifying a given requirement becomes easier and less ambiguous. The often heard rule ‘Whatthe system does functional requirement; How the system behaves non-functional requirement’ [4] is too coarse and leads to mis-classifications when attrib-utes and constraints are represented functionally or when they are very important 1.Table 3 gives the classification rules for the taxon-omy laid out in Figure 2.Table 3. Classification rulesNo 1 QuestionResult Was this requirement stated because we need to specify...1 ... some of the system’s behavior, data,input, or reaction to input stimuli – re-gardless of the way how this is done? Functional2 ... restrictions about timing, processingor reaction speed, data volume, or throughput?Performance3 ... a specific quality that the system or acomponent shall have?Specific quality 4 ... any other restriction about what thesystem shall do, how it shall do it, or any prescribed solution or solution element? ConstraintQuestions must be applied in this order4.3. Aspect-oriented representationAs soon as we structure the functional requirements specification systematically (by using a text template or by modeling requirements), the question about structuring the non-functional requirements comes up. Structuring attributes and constraints into sub-kinds according to a documentation template is helpful here, but clearly this is not enough; in particular when we have attributes and constraints that are neither com-pletely local nor fully global, but pertain to some spe-cific parts of the system.An aspect-oriented representation of requirements, in particular of attributes and constraints, helps over-come this problem. A multi-dimensional separation of concerns [15] allows every concern to be modeled separately. Thus, all concerns are treated equally, which looks clean and elegant from an academic view-point. However, in practice, there is almost always a dominant concern, which is typically a functional one. This concern is crosscut by other concerns, both func-tional and non-functional ones.In my research group, we have developed an aspect-oriented-extension for a hierarchical modeling lan-1For example, in particle physics, the detectors of contemporary accelerators produce enormous amounts of data in real time. When asked a ‘what shall the system do’ question about the data processing software for such a detector, one of the first answers a physicist typi-cally would give would be that the system must be able to cope with the data volume. However, this is a performance requirement.guage [13], [14] where we identify a dominant func-tional concern and decompose the system model hier-archically according to the structure of this concern. All other concerns are modeled as aspects of this pri-mary model. Aspect composition is supported by for-mal model weaving semantics.Thus we can document attributes and constraints as separate entities, but, at the same time, attach them systematically to those elements in the primary model hierarchy where they apply. Global attributes and con-straints are attached to the root of the decomposition hierarchy, while an attribute or constraint that restricts only some parts of the model is attached exactly to these parts by modeling join relationship from the as-pect to the affected parts of the primary model.5. DiscussionThe analysis of the definitions given in Table 1 re-veals the deficiencies of the current terminology. The new definitions proposed in this paper• are more systematically constructed than any exist-ing definitions that I am aware of,• are representation-independent; i.e. the kind of a requirement is always the same, regardless of its rep-resentation,• make it easier to classify a given requirement: with the classification criteria given in Table 3, the clas-sification is much less ambiguous than with tradi-tional definitions,• better support the evolution of a requirements speci-fication, because the classification of a requirement remains invariant under refinement and change as long as the concern to which the requirements per-tains remains the same.With an aspect-oriented documentation of attributes and constraints, the documentation and traceability problems of non-functional requirements are allevi-ated.As this is mainly theoretical work, the validation of the theoretical soundness and usefulness of these ideas will be the extent to which other researchers find these ideas useful and adopt or build upon them.The systematic exploration of the practical useful-ness is a topic for further investigation. References[1] A. Antón (1997). Goal Identification and Refinement inthe Specification of Information Systems. PhD Thesis, Georgia Institute of Technology.[2] B. Boehm et al. (1976). Quantitative Evaluation ofSoftware Quality. Proc. 2nd IEEE International Con-ference on Software Engineering. 592-605.[3] A. Davis (1993). Software Requirements: Objects, Func-tions and States. Prentice Hall. [4] X. Franch (1998). Systematic Formulation of Non-Functional Characteristics of Software. Proc. 3rd Int'lConf. Requirements Engineering (ICRE’98). 174-181. [5] M. Glinz (2005). Rethinking the Notion of Non-Func-tional Requirements. Proc. T hird World Congress forSoftware Quality (3WCSQ 2005), Munich, Germany,Vol. II. 55-64.[6] IEEE (1990). Standard Glossary of Software Engineer-ing Terminology. IEEE Standard 610.12-1990.[7] IEEE (1998). IEEE Recommended Practice for Soft-ware Requirements Specifications. IEEE Std. 830-1998.[8] ISO 9000 (2000). Quality Management Systems – Fun-damentals and Vocabulary. International Organizationfor Standardization.[9] ISO/IEC 9126-1 (2001). Software Engineering – Prod-uct Quality – Part 1: Quality Model. International Or-ganization for Standardization.[10] I. Jacobson, G. Booch, and J. Rumbaugh (1999). TheUnified Software Development Process. Reading, Mass.: Addison Wesley.[11] G. Kotonya, I. Sommerville (1998). Requirements Engi-neering: Processes and Techniques. John Wiley & Sons.[12] A. van L amsweerde (2001). Goal-Oriented Require-ments Engineering: A Guided Tour. Proc. 5th Interna-tional Symposium on Requirements Engineering (RE’01), Toronto. 249-261.[13] S. Meier, T. Reinhard, C. Seybold, and M. Glinz(2006). Aspect-Oriented Modeling with Integrated Ob-ject Models. Proc. Modellierung 2006, Innsbruck, Austria. 129-144.[14] S. Meier, T. Reinhard, R. Stoiber, M. Glinz (2007).Modeling and Evolving Crosscutting Concerns inA DORA. Proc. Early Aspects at ICSE: Workshop in As-pect-Oriented Requirements Engineering and Archi-tecture Design.[15] A. Moreira, A. Rashid, and J. Araújo (2005). Multi-Dimensional Separation of Concerns in RequirementsEngineering. Proc. 13th IEEE International Require-ments Engineering Conference (RE’05). 285-296. [16] J. Mylopoulos, L. Chung, B. Nixon (1992). Represent-ing and Using Nonfunctional Requirements: A Process-Oriented Approach. IEEE T ransactions on SoftwareEngineering18, 6 (June 1992). 483-497.[17] C. Ncube (2000). A Requirements Engineering Methodfor COT S-Based Systems Development. PhD Thesis,City University London.[18] S. Robertson and J. Robertson (1999). Mastering theRequirements Process. ACM Press.[19] SCREEN (1999). Glossary of EU SCREEN Project.http://cordis.europa.eu/infowin/acts/rus/projects/screen/glossary/glossary.htm (visited 2007-07-05)[20] I. Sommerville (2004). Software Engineering, SeventhEdition. Pearson Education.[21] K. Wiegers (2003). Software Requirements, 2nd edition.Microsoft Press.[22] Wikipedia: Non-Functional Requirements/wiki/Non-functional_requirements(visited 2007-07-05)[23] Wikipedia: Requirements Analysis /wiki/Requirements_analysis (visited 2007-07-05)。