"Demand Engineering--software modeling and analysis" one of the Impressions
"Requirements Engineering-software modeling and Analysis" as a textbook, easy to understand, easily get started. Although the last semester has learned some of this knowledge, but not very systematic. I hope we can sort it out through this book.
Read Software requirements Analysis first identified three different levels of software requirements, business requirements are the organization or customer demand objectives, user needs that users must complete the task of the product, functional requirements that developers need to implement the software features. From the definition of requirements we can know that the need to focus on what to develop and design details to achieve the details of the project planning information or test information independent, do not pay attention to the requirements of the process will bring great risk to the project, so in the process of demand we should pay attention to avoid the following situations, not enough users to participate, the user needs are expanding User requirements are unclear or ambiguous, unnecessary features are the software superfluous, too thin specification, ignoring the user classification, inaccurate plans, and high-quality requirements process requires the product development process to fully understand its market, Therefore, in order to complete a good demand must have integrity (functional integrity), correctness (accurate statement of its function), feasibility, necessity (each requirement is hard to the customer really needs and the final system), Division of priority, no ambiguity (only a clear and unified interpretation), verifiable and other characteristics. The requirements specification also requires completeness, consistency, modification, traceability (i.e., a link chain between each software requirement and its source and design elements, source code, test cases).
So what is demand engineering? Demand engineering is the synthesis of all requirements processing activities, which collects information, analyzes problems, integrates hang points, records requirements and verifies their correctness, and ultimately responds to the desired effects of the software being applied and interacting with its environment. Requirements engineering is designed to require software engineers to understand and design a solution before software development. Because software engineers don't know all the fields. So more users need to communicate. Demand engineering is very important. Although it has long been recognized, it is not so important in time, manpower, material resources and financial resources. Afterwards, it will inevitably lead to low demand analysis level, low software development quality, and users complaining about many problems.
In order to solve such problems, demand analysts must have the following skills to make the needs analysis easy, clear and successful:
1. Need professional skills, understand the relevant knowledge of demand engineering, understanding the relevant theory of demand engineering, familiar with the activities of demand engineering, master the various methods and techniques of demand engineering is necessary;
2. To have analytical skills, you must be able to extract, analyze and integrate useful information from a large number of messages, understand the conflicts and omissions in the user's needs, and analyze the feasibility;
3. Need to exchange skills, it is necessary, to master the skills of conversation and questioning, otherwise it is difficult to understand the software customers have a gap, interlacing as Foster, we can not say each of the bar;
4. Observing skills, modeling skills, writing skills, creative skills, coordination skills, etc. The demand engineer should have a keen insight into the user's work environment and work process and discover important information that cannot be found through conversation and other methods. At the same time, we should master a variety of analytical tools, from traditional flowcharts to structured analysis models, to today's unified modeling language. Because of the need to negotiate with customers, managers, developers and other information, so need to write a written requirements specification. Writing skills are a must. A requirement engineer needs to articulate a complex concept through writing.
"Demand Engineering--software modeling and analysis" one of the Impressions