[Yugong Series] October 2023 Intelligent Manufacturing Theory – The Importance of Project Requirements Analysis

About the author, Yu Gong moves the code
“Title”: Huawei Cloud Special Editor, Huawei Cloud Cloud Enjoyment Expert, Huawei Developer Expert, Huawei Product Cloud Testing Expert, CSDN Blog Expert, Alibaba Cloud Expert Blogger, Alibaba Cloud Contracted Author, Tencent Cloud Outstanding Blogger, Tencent Cloud Content co-creation officer, Nuggets outstanding blogger, 51CTO blog expert, etc.
“Recent Honors”: CSDN Blog Star TOP2 in 2022, Huawei Cloud Top Ten Bloggers in 2022, etc.
“Blog Content”: .NET, Java, Python, Go, Node, front-end, IOS, Android, Hongmeng, Linux, Internet of Things, network security, big data, artificial intelligence, U3D games, small programs and other related field knowledge.
Welcome Like?Comment?Collect

Article directory

  • Foreword
  • 1. The Importance of Project Requirements Analysis
    • 1. Definition of requirements
    • 2.Level of needs
      • 1.1 Business requirements
      • 1.2 User needs
      • 1.3 System requirements
      • 1.4 Summary
    • 3. Classification of requirements
      • 3.1 Functional requirements
      • 3.2 Non-functional requirements
  • Thank you: a letter to readers

Foreword

In software projects, problems in the requirements analysis phase often account for 40% to 60% of the entire project. This means that if there are problems during the requirements analysis phase, it will have a huge impact on the entire project. However, many organizations still adopt substandard approaches to basic project functionality, resulting in a huge gap between the software developers create and user expectations.

To optimize and extend this problem, here are some suggestions:

  1. Emphasis on the importance of requirements analysis: Organizations should recognize that requirements analysis is critical to project success. Invest sufficient time and resources to ensure the accuracy and completeness of requirements.

  2. Work closely with users: The development team should maintain close communication and cooperation with users to ensure a deep understanding of user needs. This can be achieved through regular meetings, interviews and user testing.

  3. Use a formal requirements analysis approach: Adopting a formal requirements analysis approach can help reduce misunderstandings and discrepancies. For example, use methods such as use case analysis, user stories, and prototyping to clarify requirements.

  4. Conduct requirements verification and validation: After the requirements analysis phase, perform requirements verification and validation to ensure that developers and users have a consistent understanding of the requirements. This can be accomplished through requirements reviews, prototype demonstrations, and user acceptance testing.

  5. Continuous improvement: Continuously improve the methods and processes of requirements analysis during the project development process. Continuously optimize and expand demand analysis capabilities by summarizing experiences and lessons learned.

By taking the above measures, you can reduce problems in the requirements analysis stage and narrow the expectations gap between developers and users, thereby improving the success rate and user satisfaction of software projects.

1. The Importance of Project Requirements Analysis

1. Definition of requirements

Software engineering requirements refer to formal statements of various needs or requirements for software systems, including functional requirements, non-functional requirements, user needs, system requirements, etc. Requirements are an important part of the software development process, a bridge between developers and users, and the starting point for software product development.

Software engineering requirements Role and status
Functional requirements Describes the tasks that the software must perform or the services that it provides. They define the main behavior of the software system. A clear definition of a software product’s functionality helps ensure that the software product meets user needs.
Non-functional requirements Describe the performance, reliability, security, availability, maintainability, scalability, etc. that software products must meet requirements. They have an important impact on the performance and reliability of software systems.
User requirements Describe the user’s needs and expectations for the software system, including what the user wants, why they need it and how to use it. Provide important guidance for the design and development of software products.
System requirements Describe the overall performance, security, maintainability, scalability, portability and compatibility of the software system. Require. It plays an important role in guiding the overall design and development of software products.

Good requirements definition helps ensure the quality of software products, reduce development costs, improve user satisfaction and product competitiveness. Therefore, requirements analysis and definition are very important in the software development process.

2. Level of needs

Requirements are usually expressed at three levels: business requirements, user requirements and system requirements.

1.1 Business requirements

In the software development process, requirements engineers need to start from the business requirements with the highest abstract level. These business requirements are the strategic starting point for system establishment, expressed as high-level goals, and describe why the system should be developed.

For example, for the manufacturing execution management system, a business requirement (BR1) can be to realize data collection of the production order processing process.

Business needs usually come from project investors, customers who purchase products, managers of actual users, sales departments or production departments, etc.

In order to meet business needs, requirements engineers need to describe the high-level solution of the system and define the characteristics that the system should have. These high-level solutions and system characteristics guide the direction in which the system is built, and all participants must agree on these solutions to ensure that stakeholders are working in the same direction. System characteristics describe the functions provided by the system to users and limit the scope of the system. Well-defined system characteristics help users and developers determine the boundaries of the system.

By clarifying the characteristics of the system and measuring it against meeting business requirements, it ensures consensus among all parties involved in the system development process and provides a clear goal and scope. This helps ensure that system development is successful and meets user expectations and needs.

1.2 User needs

In the software development process, high-level goals are usually proposed by specialized departments of the organization, but it is ordinary users who actually perform the tasks. They can only truly achieve these goals through a set of specific and reasonable business processes.

User requirements refer to the expectations of users who perform actual work for the specific tasks that the system can complete, and describe what users want the system to do for them.

These user needs mainly come from users of the system, that is, users who interact directly with the system. In some cases, the direct users of the system may not be directly identified, so user needs may also come from indirect channels, such as sales personnel or after-sales support personnel.

In the above-mentioned manufacturing execution management system, as far as the production process is concerned, user needs can be expressed through UR1:

UR1: In the production order manufacturing process, when a minimum unit of product production is completed, the user hopes to report work through the PDA device to transmit the order’s instant completion quantity, completion status and other information to the system.

User requirements not only express the user’s expectations, but also need to understand the background knowledge behind these expectations in order to fully understand the user’s true intentions. Often, when users express their expectations, they may not mention the problem domain knowledge involved in the requirements. Therefore, the task of the requirements engineer is to organize and obtain complete knowledge of the problem domain to ensure that user needs are accurately understood and met. This in-depth understanding will help build systems that better meet user expectations.

1.3 System Requirements

User requirements are described from the user’s perspective, usually expressed using natural language. However, natural language has ambiguities that can easily lead to confusion and misunderstanding. Therefore, the task of the requirements engineer is to further clarify and refine user requirements to convert them into system requirements.

System requirements are user expectations for system behavior. They define the functions that need to be implemented in the system to meet user needs and achieve business goals. System requirements are closely related to user requirements and can be directly mapped to specific behaviors of the system.

For example, user requirement UR1 can be converted into system requirement SR1, which specifically includes the following aspects:

SR1: The system needs to provide a production reporting interface that users can access through PDA devices.

① This interface needs to support multiple data collection methods, including QR code scanning, automatic collection of equipment and manual data entry.

② When the user completes data entry, the system should provide a pop-up reminder to notify the user whether the entry is successful or not.

③ The interface should be able to directly feedback the total amount of orders to meet the real-time needs of users.

By explicitly translating user needs into system requirements, development teams can more easily understand the functionality users expect and thus effectively build systems that meet those needs. This translation process helps ensure that system development is consistent with user needs to meet business needs.

1.4 Summary

User requirements are often abstract and require varying levels of detail for different readers. The audience for user requirements is usually management or business-related personnel. They may not care about the technical details of the system, but are more concerned about how the system meets business needs.

System requirements provide a specific and detailed explanation of the system’s functions and services, usually for those who need to understand how the system works to support business processes, such as technical teams involved in system implementation.

The following is an optimization and expansion of the above point of view:

User requirements usually express the user’s expectations for the system and are usually somewhat abstract. The audience for these requirements is mainly senior management and business-related personnel, who are more concerned about how the system meets business needs and less concerned about the specific technical details of the system. Therefore, the description of user needs should be based on a business perspective, focusing on how the system will improve business processes and services.

In contrast, system requirements provide a more detailed explanation of the system’s functionality and services. These requirements are typically directed at the teams that develop and implement the system, as well as those who need to understand the details of the system’s inner workings. The description of system requirements should include technical and functional details to ensure that the system meets user needs and supports business processes.

By establishing a clear relationship between user requirements and system requirements, you can ensure that the development team understands the functionality expected by users and provides corresponding technical and operational details in the system requirements to support the design and implementation of the system. This approach helps ensure that system development is consistent with user needs and ultimately meets business needs.

3. Classification of requirements

3.1 Functional requirements

Functional requirements are specific descriptions of the services a system should provide, including how it responds to input and how the system behaves under specific conditions. Sometimes functional requirements also need to specify what the system should not do.

For example, the manufacturing execution management system provides production order completion progress query services for the person in charge of the production department. The following are two example functional requirements (FR1):

FR1.1: Users should be able to query the production status of an order by entering the production order number. The query results should include relevant information such as the progress of the production order, remaining workload, quality inspection status, etc.

FR1.2: The query function must support conditional filtering based on different attributes to meet the flexibility of production managers for different needs. The system should support the selection of attribute names and execute queries based on the selected attributes. If the user does not explicitly specify query attributes, the system should provide query results of the production order completion quantity by default. This requirement ensures that the query functionality is versatile and user-friendly.

Requirements accuracy is critical as it helps reduce late changes and delays in system delivery. In software engineering, uncertainty and inconsistency in requirements can lead to increased project risk and cost. In theory, functional requirements should be comprehensive and consistent, that is, include the services required by all users and not be inconsistent. However, in actual projects, especially for large and complex systems, it is almost impossible to achieve a completely consistent and comprehensive requirements description. This is mainly because the complexity of the system and the different perspectives of project stakeholders may lead to conflicting requirements.

Discovering requirements issues often requires in-depth analysis and review, and as the project progresses, more issues may be revealed. Once problems are discovered, the requirements document must be corrected in time to ensure that the system can meet user needs and minimize later changes and risks. This process of iteration and improvement helps ensure successful delivery of the system.

3.2 Non-functional requirements

Non-functional requirements are constraints and requirements on system performance, availability, security, etc. They usually do not involve specific functions, but are limitations and specifications on how the system performs functions. These constraints and specifications are critical to ensuring the overall quality and performance of the system. The following is further optimization and expansion of non-functional requirements:

Non-functional requirements are constraints and specifications on system performance, usability, security and other key aspects that complement functional requirements and ensure that the system meets specific standards and limitations when performing its functions. Non-functional requirements typically include the following:

1. Performance Requirements: These requirements describe the performance standards of the system in terms of response time, throughput and load capacity. For example, NR1 stipulates that all user queries must be completed within 10 seconds to ensure system high performance and user experience.

2. Capacity Requirements: Capacity requirements focus on the data storage and processing capabilities of the system. NR2 requires the system to be able to store at least 1 million production records to ensure that the system can cope with large-scale data storage needs.

3. Availability Requirements: Availability requirements describe the reliability and availability standards of the system. This includes the system’s fault resilience and maintenance plans. For example, NR3 stipulates that the system should allow 100 users to perform normal work at the same time to ensure system availability.

4. Security Requirements: Security requirements focus on data and access protection of the system. They may include security measures such as authentication, authorization, data encryption, etc. to ensure that the system’s data and user information are protected.

5. Maintainability Requirements: These requirements focus on the maintainability of the system, including code readability, documentation, modularity, etc., so that system maintenance and upgrades become easier .

6. Compatibility Requirements: Compatibility requirements describe the compatibility of the system with different platforms, browsers or other systems to ensure that the system operates normally in various environments.

Non-functional requirements play an important role in the system design and development process. They help the development team clarify the performance standards and limitations of the system to ensure that the system can ultimately meet user expectations and operate stably under various conditions. These requirements typically need to be tracked and verified throughout the project lifecycle to ensure they are met. The definition and implementation of non-functional requirements is one of the key factors to ensure successful project delivery.

Thank you: a letter to readers

Dear readers,

I put a lot of thought and time into this article and hope to provide you with valuable content. This article contains in-depth research and personal experience, and I believe this information will be very helpful to you.

If you find this article helpful, I sincerely ask you to consider supporting it with a $1 donation. This amount will not be a burden on your finances, but it will have a positive impact on my ability to continue creating quality content.

I wrote this article because I love sharing useful knowledge and insights. Your support will help me continue this mission and also encourage me to spend more time and energy creating more valuable content.

If you would like to support my creation, please scan the QR code below, your support will be greatly appreciated. At the same time, if you have any feedback or suggestions, please share them with me.

Thank you again for reading and supporting!

Sincerest regards, “Yugong moves the code”