3. Espacio del problema Espacio de la solución
Idea
Historias de
usuario
Criterios de
éxito
Diseño Desarrollo
Despliegue
Criterios de
aceptación
Evaluación
7. Requerimientos
funcionales
“Como usuario registrado
quiero ingresar al sistema
para tener una experiencia
personalizada.”
Requerimientos
no funcionales
“Como usuario registrado
quiero ingresar de forma segura al
sistema
para tener una experiencia
personalizada.”
8. Requerimientos
funcionales
“Como personal de enfermería
quiero ver la información del
estado del paciente
para poder reaccionar a cualquier
anomalía.”
Requerimientos
no funcionales
“Como personal de enfermería
quiero ver la información en
tiempo real del estado del paciente
para poder reaccionar a cualquier
anomalía.”
11. Describir el
riesgo
Usar escenarios de fracaso que
sean medibles y accionables.
“En situaciones de carga pico,
los clientes experimentan
latencias mayores a cinco
segundos.”
“Un atacante podría obtener
información confidencial a
través de un Ataque de
intermediario (Man in the
Middle).”
12. Riesgos de
ingeniería
Relacionados con el análisis,
diseño e implementación del
producto.
Riesgos de
gestión del
proyecto
Relacionados con la planificación,
secuenciamiento de trabajo,
entregas, tamaño de equipo, etc.
17. “Una restricción limita las opciones de
diseño o implementación disponibles al
desarrollador.”
Software Requirements: 3rd Edition (Wiegers, Betty, 2013)
Business requirements describe why the organization is implementing the system—the business benefits the organization hopes to achieve. The focus is on the business objectives of the organization or the customer who requests the system. Suppose an airline wants to reduce airport counter staff costs by 25 percent. This goal might lead to the idea of building a kiosk that passengers can use to check in for their flights at the airport. Business requirements typically come from the funding sponsor for a project, the acquiring customer, the manager of the actual users, the marketing department, or a product visionary. We like to record the business requirements in a vision and scope document. Other strategic guiding documents sometimes used for this purpose include a project charter, business case, and market (or marketing) requirements document. Specifying business requirements is the subject of Chapter 5, “Establishing the business requirements.”
Business rules include corporate policies, government regulations, industry standards, and computational algorithms. Business rules are not themselves software requirements because they have an existence beyond the boundaries of any specific software application. However, they often dictate that the system must contain functionality to comply with the pertinent rules. Sometimes, as with corporate security policies, business rules are the origin of specific quality attributes that are then implemented in functionality. Therefore, you can trace the genesis of certain functional requirements back to a particular business rule.
User requirements describe goals or tasks the users must be able to perform with the product that will provide value to someone. The domain of user requirements also includes descriptions of product attributes or characteristics that are important to user satisfaction. Ways to represent user requirements include use cases (Kulak and Guiney 2004), user stories (Cohn 2004), and event-response tables. Ideally, actual user representatives will provide this information. User requirements describe what the userwill be able to do with the system. An example of a use case is “Check in for a flight” using an airline’s website or a kiosk at the airport. Written as a user story, the same user requirement might read: “As a passenger, I want to check in for a flight so I can board my airplane.” It’s important to rememberthat most projects have multiple user classes, as well as other stakeholders whose needs also must be elicited. Chapter 8, “Understanding user requirements,” addresses this level of the model. Some people use the broader term “stakeholder requirements,” to acknowledge the reality that various stakeholders other than direct users will provide requirements. That is certainly true, but we focus the attention at this level on understanding what actual users need to achieve with the help of the product.
Functional requirements specify the behaviors the product will exhibit under specific conditions. They describe what the developers must implement to enable users to accomplish their tasks (user requirements), thereby satisfying the business requirements. This alignment among the three levels of requirements is essential for project success. Functional requirements often are written in the form of the traditional “shall” statements: “The Passenger shall be able to print boarding passes for all flight segments for which he has checked in” or “If the Passenger’s pro le does not indicate a seating preference, the reservation system shall assign a seat.”
Los requerimientos no funcionales imponen restricciones al comportamiento de la solución
The requirement is associated with high business value and/or technical risk.
The requirement is a concern of a particularly important (influential, that is) stakeholder.
The requirement has a first-of-a-kind character, e.g. none of the responsibilities of already existing components in the architecture addresses it.
The requirement has QoS/SLA characteristics that deviate from all ones that are already satisfied by the evolving architecture.
The requirement has caused budget overruns or client dissatisfaction in a previous project with a similar context.
A constraint places restrictions on the design or implementation choices available to the developer. Constraints can be imposed by external stakeholders, by other systems that interact with the one you’re building or maintaining, or by other life cycle activities for your system, such as transition and maintenance. Other constraints result from existing agreements, management decisions, and technical decisions (ISO/IEC/IEEE 2011). Sources of constraints include:
Specific technologies, tools, languages, and databases that must be used or avoided.
Restrictions because of the product’s operating environment or platform, such as the types and versions of web browsers or operating systems that will be used.
Required development conventions or standards. (For instance, if the customer’s organization will be maintaining the software, the organization might specify design notations and coding standards that a subcontractor must follow.)
Backward compatibility with earlier products and potential forward compatibility, such as knowing which version of the software was used to create a specific data le.
Limitations or compliance requirements imposed by regulations or other business rules.
Hardware limitations such as timing requirements, memory or processor restrictions, size, weight, materials, or cost.
Physical restrictions because of the operating environment or because of characteristics or limitations of the users.
Existing interface conventions to be followed when enhancing an existing product.
Interfaces to other existing systems, such as data formats and communication protocols.
Restrictions because of the size of the display, as when running on a tablet or phone.
Standard data interchange formats used, such as XML, or RosettaNet for e-business.