04 - Ingeniería de requerimientos - Análisis
Understanding Complex Systems in Software Development
Overview of System Requirements
- The speaker emphasizes the complexity of the system being developed, indicating that there is extensive documentation but uncertainty on how to begin.
Analyzing Requirement Information
- During requirement gathering, a large amount of data is collected which needs analysis to understand four key aspects: context, information usage, processing locations, and expected system behavior.
Contextualizing the System
- The system interacts with various actors including applications, hardware, networks, and remote locations; this interaction defines the system's context.
- Important factors for defining context include identifying other software in use and their versions as well as geographical user locations and communication infrastructure.
Hardware and User Interaction
- Understanding the specialized hardware used alongside the software is crucial; this includes knowing device types, operating systems, user access methods, and potential upgrades.
Importance of Contextual Analysis
- The system must be adaptable to its context rather than forcing users to adjust; thorough analysis time is essential for accurate contextual understanding.
Defining Information Domains
Domain-Specific Concepts
- Different domains interpret concepts like "client" differently; in business it refers to consumers while in IT it refers to devices or programs interacting with servers.
Data Dictionary Creation
- A data dictionary should be created during domain analysis to clarify meanings of terms used within the specific domain without delving into database specifics yet.
Relationships Between Concepts
Concept Interrelations
- Identifying relationships between concepts (e.g., client and invoice creation upon purchase completion) helps define processes involving these entities.
Processing Information Within Systems
Defining Processing Activities
- Clearly outline how and where information processing occurs within the software; consider multiple entities involved at different stages (e.g., user authentication via external services).
Expected System Behavior
Behavior Under Stimuli
Understanding System Behavior and User Interaction
Error Handling and State Management
- The system must transition to a success state when complete information is provided by the user. If the information is incomplete, it should remain in the same state and not allow saving.
- Define system behavior under high demand or limited bandwidth; for instance, if a server takes more than 20 seconds to respond, the client should cancel the request and initiate a new one.
User Interaction Analysis
- Analyze how users interact with your application, considering various entities such as people, hardware, and software. This includes actions like text requests, graphical interface interactions, file uploads/downloads, and automated processes.
- Avoid assumptions about user understanding; clarity in user behavior analysis is crucial. Always confirm insights with users to ensure accurate interpretations.
Requirement Analysis Tools
- Requirement analysis provides a high-level understanding of the system rather than detailed descriptions. It models participants within the system along with their activities and behaviors.
- Utilize various modeling tools: context diagrams for overall structure, class diagrams for data representation, sequence diagrams for behavior depiction, and activity diagrams for processing locations.
Effective Documentation Practices
- Aim for concise documentation that describes system interactions without excessive detail. A clear model can effectively communicate how different actors process information based on specific stimuli.