One of the primary challenges is the ability to elicit the correct and necessary system requirements from the stakeholders and specify them in a manner understandable to them so those requirements can be verified and validated.
The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is a difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. Fred Brooks
User-Centered Development and UseCase Modeling
User-centered development – a process of systems development based on understanding the needs of the stakeholders and the reasons why the system should be developed. Use-case modeling – the process of modeling a system’s functions in terms of business events, who initiated the events, and how the system responds to those events.
– Use-case modeling has roots in object-oriented modeling. – Gaining popularity in non-object development environments because of its usefulness in communicating with users. – Compliments traditional modeling tools.
Benefits of Use-Case Modeling
• Provides tool for capturing functional requirements. • Assists in decomposing system into manageable pieces (functional decomposition). • Provides means of communicating with users/stakeholders concerning system functionality in language they understand. • Provides means of identifying, assigning, tracking, controlling, and management system development activities. • Provides aid in estimating project scope, effort, and schedule.
Benefits of Use-Case Modeling (continued)
• • • • Aids in defining test plans and test cases. Provides baseline for user documentation. Provides tool for requirements traceability. Provides starting point for identification of data objects or entities.