Requirement collection and analysis is an important part of every development process. It is a leading indicator of a project's success or failure. In this presentation, I give a brief overview of the steps involved walking through an example.
• Project Manager, Business Analyst, Data Architect, Developer • Worked in many enterprise projects in ﬁnancial, retail, technology industries • 5 years as a founder and core developer in WP App Studio WordPress Design and Development Platform • B.S. in Mechanical Engineering (Military Academy - 1992) • Masters in Hotel, Restaurant and Institutional Management (Penn State - 1998) • Masters in Management Science and Information Technology (Penn State - 2000)
the criteria must be set to deﬁne what’s complete • Correct - accurate and represents fact or truth • Feasible - can be done without any contradiction to the other requirements • Needed - absolutely required for the system to its job • Prioritized - provides a blueprint for iteration plan
not prone to misinterpretations • Testable - can be veriﬁed once implemented • Unique - No dupes • Traceable - can be linked to a person or a group, use case, model, source code or other higher level requirement • Approved - someone or a group must approve
email and mailing address in order to get a free gift" • Uses shall statement - expressing an order or instruction • Deﬁnes who will do it - customers • Deﬁnes data needed to perform - ﬁrst name, last name, email and mailing address • Deﬁnes what needs to be done - in order to get a free gift
to send out gifts" • May - no clear instruction • Who will get the gift ? employees, customers or contractors • Whose ﬁrst name is it? • Who are we? • How do we send? Don’t we need address of the recipient?
, I gotta start coding otherwise I will not be able make my deadline • Should I ask this question to the client? She must be sick of hearing about requirements… • Let’s come out with something then we will talk about it • I hate documentation. I want a pizza party not another requirement collection session • I swear to Tom Cruise I will quit immediately if I get another invitation to the req meeting • It’s been sometime and still we do not have any code. Did I pay for this?
use case is a series of related interactions between a user (or more generally, an “actor”) and a system that enables the user to achieve a goal. • A use case describes the system's behavior as it responds to a series of related requests from an actor • A use case is a methodology used in system analysis to identify, clarify, and organize system requirements. • A use case is a list of actions or event steps, typically deﬁning the interactions between a user role and a system, to achieve a goal. • A use case is a software and system engineering term that describes how a user uses a system to accomplish a particular goal.
a Customer getting a free gift online • Notes - All major modern browsers must be supported • Actors - The user(Customer) who wants to get a free gift • Preconditions - Customer has access to internet and navigated to our site and Free Gift form page. • Scenarios - Shows step by step interaction between an actor and the system producing a software reaction
last name, email, and mailing address The system veriﬁes email and mailing addresses are correct and not already exist Gift Vendor get Customer information and sends out the gift The system send notiﬁcation to Customer that her gift has been shipped
or pay the price • Requirement collection is a process • Software development is a team sport • Think, ask questions, and document before jumping into code • Practice and read more to do better the next time • Ohh.. Use cases and all other stuff :-)