Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Software Requirement
November 30, 2008 2
��������������������
�� ����������������������������� ����������������������������� ���������� ���!����������� ���!� �"��"� ��#$���� �%���#$���� �%������&��&&�����&��&&
�� �����'�&�(�)������������ �����'�&�(�)������������ ����#$��"������#$��"�� �"��"� ����#$�������#$���
�� �����'�&�(�*���#$���� �%������&+�,��������-�. �����'�&�(�*���#$���� �%������&+�,��������-�. �������������#���������������#�� ������&�����������/���(*�/� ������&�����������/���(*�/�
November 30, 2008 3
���0��#$���&��(�(��&#�$-���0��#$���&��(�(��&#�$-
�� ����������������#$��"������������������#$��"�� �"��"� ����#$�������#$���
�� ����������0� ���!���&&����������0� ���!���&& (user requirements)(user requirements)
�� ��#$���� �%������&��&&��#$���� �%������&��&& (system requirements)(system requirements)
�� ��(�� �$(�0���(�� �$(�0� InterfaceInterface
�� ������&��������������+�,������ ������&��������������+�,������
INDUSTRY TRENDS
� Defect Origination:
� 56% Requirements Phase
� 27% Design
� 7% Coding�Source 2002 Quality Assurance
Institute
The Activities of the Analysis Phase Activities of the Analysis Phase
and Their Key Questions
November 30, 2008 7
Requirements engineeringRequirements engineering
�� �%����&�����#$��������� �%����&�����#$��������� ���&�����#$�"�������������/����&������&�����#$�"�������������/����&�����&&+)��(�*1�(���0����������&&+)��(�*1�(���0�������� #�-��&&#$�#��������"�#$��!������&#�-��&&#$�#��������"�#$��!������&��2������$0)-���2������$0)-�
�� ������&�������������-�����("� �$(�0�&����������&& ������&�������������-�����("� �$(�0�&����������&& �"�0���������"�0�������� +)� ���0)-�������&���������������������+)� ���0)-�������&���������������������
What are requirements?
� Definition: capabilities and objectives
to which the software or system you
are building must conform.� Source: Terry Quatrani
� A requirement is defined as "a
condition or capability to which a
system must conform“� Source: IBM Rational Unified Process
November 30, 2008 9
What is a requirement?What is a requirement?
�� �����������$��("� �$(��*����/������������$��("� �$(��*����/� ������-��* �%� ����3&�&(*� ������-��* �%� ����3&�&(*� /�/����)"��("� �$(�������&���#���������4���)"��("� �$(�������&���#���������4
�� ��#$��"$� "$�(/�*/���������������#������#$���(*���#$��"$� "$�(/�*/���������������#������#$���(*��� �!� �%�5������������ �6������"�!� �%�5������������ �6������" –– ����-���� �%���� �6� (�*� ���$��������-���� �%���� �6� (�*� ���$����
�77��77�
�� �!� �%�5��������)���#���77��!� �%�5��������)���#���77� –– ����-��)��� �%������������("� �$(�����-��)��� �%������������("� �$(�
�� ��4�&���#�-���� �$(��*���4�&���#�-���� �$(��*� ������������������
November 30, 2008 10
Requirements abstraction Requirements abstraction
(Davis)(Davis)�� ��&������������(*�(*�8�(/�* 3"(�����&�"� "��#��(/��"*�������&������������(*�(*�8�(/�* 3"(�����&�"� "��#��(/��"*�����
�� ������� 0$(�0)-��� ��������$ �� 0�������"�"�(��( ������� 0$(�0)-��� ��������$ �� 0�������"�"�(��(
�� �����$ ��!�������"�"����� 0$(��������������0���&&8�(�$ �����$ ��!�������"�"����� 0$(��������������0���&&8�(�$��("� �$(����0)-� �������"����� 0�����"������(��(��/���*���/����("� �$(����0)-� �������"����� 0�����"������(��(��/���*���/����&��&+�,������#$������� ���� �"*���-� �$(��*�+�,������#$������� ���� �"*���-� �$(��*�
RequirementRequirement--documentsdocuments
Requirements:Things The Development Team Needs to Know
� Business requirements� Defined by BAs� The “What”:
� Detailed descriptions of the business data, business processes, business rules and interactions needed to accomplish the business mission.
� Functional requirements� Defined by BAs� The “How”:
� Functional requirements describe how software should work and what the software will “look like” to the end user. For business requirements that will not be automated, functional requirements document the manual procedures and employee guidelines.
� Technical requirements� Defined by IT� Detailed descriptions of how the software will be built and
where the data will be stored.
Categories of Requirements
Source : International Institute ofBusiness Analysis
Requirement Types by Quality Attributes
Grady, 1992
Components of FURPS+
FFunctionality Feature set capabilities, security,
generality
UU sability Human factors aesthetics, consistency,
documentation
RR eliabilityFrequency/severity of failure,
recoverability, predictability, accuracy,
MTBF
PPerformance Speed efficiency, resource usage,
throughput, response time
SSupportability
Testability Extensibility
Adaptability Maintainability
Compatibility Configurability
Serviceability Installability
Localizability Robustness
November 30, 2008 14
Types of requirementTypes of requirement
�� ����������0� ���!�����������0� ���!� User requirementsUser requirements
�� ��� ����#$��!�1�9������*����& ����1��0�&�����#$���&&���$����"��� ����#$��!�1�9������*����& ����1��0�&�����#$���&&���$����"��0���������������� ������0���������������� ������.. 0$(�0)-��� ����"����� 0$(�0)-��� ����"�����
�� ����� �%������&��&&����� �%������&��&& System requirementsSystem requirements
�� �%� ����#$��$8�����&*&����("� �$(����#����0���&& �%� ����#$��$8�����&*&����("� �$(����#����0���&&,, &�����&�����,, 0��������0������� ������0��������0������� ������.. 8�(��&��*���/����#����� �<�����77�8�(��&��*���/����#����� �<�����77�����*�"������"���*�77�����*�"������"���*�77�
Not Every Project Needs Every Requirement Type
Do I really have to
review a 60-page
requirements document
just to get one field
added to a screen?!!
Subject Matter Expert
November 30, 2008 16
Definitions and specificationsDefinitions and specifications
November 30, 2008 17
Requirements readersRequirements readers System Requirements
� New system capabilities and constraints
� Functional requirements are:
� Activities system must perform
� Based on procedures and business functions
� Documented in analysis models
� Nonfunctional requirements include:
� Operating environment or performance
objectives
� Usability, reliability, and security requirements
November 30, 2008 19
Functional and nonFunctional and non--functional requirementsfunctional requirements
�� Functional requirementsFunctional requirements�� ������������� �������������� ��������������� �������������� ��,, ��������������������������������
������������,, � ��������������������� ������� ��������������������� ������
�� NonNon--functional requirementsfunctional requirements�� !�"#��$%!�������&����#����!������ ��'��#���%(&���!�"#��$%!�������&����#����!������ ��'��#���%(&���
(�)�(�)�,, ��������������,, ���*�����*�� +)++)+
�� Domain requirementsDomain requirements�� ���������,-����"��!��(!�!��������,-��� .)������������,-����"��!��(!�!��������,-��� .)���
)$�/��!��!��(!�)$�/��!��!��(!�
November 30, 2008 20
Functional requirementsFunctional requirements
�� &*&�����#������#$��������&�����0���&&&*&�����#������#$��������&�����0���&&
�� 0)-��(�*��&!���0�+�,������0)-��(�*��&!���0�+�,������,, ���������0� ���!����������0� ���!� �"�!���0���&&�"�!���0���&&+)�+�,���������!�+)�+�,���������!�
�� ����#$��"��������#$��"���� User requirements User requirements ���(�*�����&#��������&�#$�&���*����(�*�����&#��������&�#$�&���*��(�������&&#����/�&���(�������&&#����/�&�� ��*����#$��"��0���*����#$��"��0� System requirements System requirements ����&*&������("� �$(�&*&������("� �$(�
Functional Requirements- Examples
� The system must have ability to
� check for valid customer order
� search for available inventory
� report actual and budgeted expenses
� issue purchase order automatically
� purchase order must be authorized by the head
of department
November 30, 2008 22
����(*�����(*� Functional Requirement : Functional Requirement :
(The LIBSYS system)(The LIBSYS system)
�� ��&&������+)��$��&&������+)��$ interface interface �$(��*�/����"�(.5��0����"#$� �$(��*�/����"�(.5��0����"#$���&���&#�����*�./����&���&#�����*�./��
�� ���!����������� ���!�����������,, �����8�"������8�"� �"��"� �������&#���� �"*��$- �����������&#���� �"*��$- �������I)�9����(�� �/�����I)�9����(�� �/��
November 30, 2008 23
Example of functional requirementsExample of functional requirements
�� ���!�����������0����" ���!�����������0����" ���5��0����"#�-������5��0����"#�-��� �������� ���!��(*�(0����!��(*�(0�5��0����"5��0����"
�� ��&&����$��&&����$ ““������”” #$� �����#$� ����� ��� ���!�/���*�� ����#$������/����� ���!�/���*�� ����#$������/��
�� �&��+�-�#�-�������$���( "0�����&/�*+-������&��+�-�#�-�������$���( "0�����&/�*+-����� +)� ���!���������"��+)� ���!���������"�� �<&/����&�7!$#$� �<&���� �<&/����&�7!$#$� �<&����
November 30, 2008 24
����������#$�/�*!�� ������������#$�/�*!�� ��
�� �J7�� ���0)-� ��������������/�*��&����!�� ���J7�� ���0)-� ��������������/�*��&����!�� ��
�� �����"�� ���������"�� ���� �������$����/���"�#��������$����/���"�#�
�� "������4�"������4� ““appropriate viewersappropriate viewers””
-- ���!��$���� ���!��$���� == !*������ I9�����&��*"�!���0� ����!*������ I9�����&��*"�!���0� ����-- developer developer �$�����$���� == !*����������9�#$��� ��-���0�!*����������9�#$��� ��-���0� ���� ����
November 30, 2008 25
�����&��4������&��4� �"��"� �������� ���������� ��
�� ����"���������"����� requirements requirements ������&��4�������&��4� �"��"� ���� ������ ��
�� �&��4��&��4� –– �������)��("� �$(�0������4�#$����!��������)��("� �$(�0������4�#$����!�
�� ���� ������ �� –– /�*���0���(�/�*���0���(� �������� ��#������&��#������& ��("� �$(�0���("� �$(�0������4�#$����!������4�#$����!�
�� ��#��M�&��� �%�/�/�*/��#$���#����#��M�&��� �%�/�/�*/��#$���#�� requirementsrequirements ����&��4�����&��4��"����� ���"����� ��
Nonfunctional Requirements- Examples
� The system must have ability to
� access the system using any Web browser
� integrate with the existing inventory system
� be available for use 24 hours per day, 365 days
per year
� allow customers see their order history during
business hours
� distinguish between United States and European
currency.
November 30, 2008 27
����#$�������#$��� (non(non--functional requirements)functional requirements)
�� ����#$�������#$��� �����������������4�&��������������������4�&��� �"��"� 0��������0���&&0��������0���&& �"*������"*����� /������/��/������/��,, ��(� �"�#$���&����(� �"�#$���&��,, ��-�#$� �<&0����" ��-�#$� �<&0����",, 0�����������0����������� �����4������4� input/outputinput/output ������������������,, �����(�������(�� N"NN"N
�� ���������������&��������������������&����� ����������&��*���� �%������&����������&��*���� �%������& CASECASE &���&&#$���&� ����8�( 3���&���&&#$���&� ����8�( 3���,, programming programming
language, development method.language, development method.
�� ����#$�������#$��� &�#$�� �%�0�����O������*�����#$��"��&�#$�� �%�0�����O������*�����#$��"�� �����&&/�*�����&&/�*�������&������#$����������&������#$��� ��&&�<���!�/�*/����&&�<���!�/�*/��
November 30, 2008 28
������"����&!�-�0�����#$���������"����&!�-�0�����#$���
�� Product requirementsProduct requirements (( "��1�4Q� "��1�4Q�)) :: !*� !*� �������������������������&&#����/�� �<������&&#����/�� �<�,, /������/��/������/�� N"NN"N
�� ����������0����������������0������ :: !*� !*� 0��������+)� �%��8(&�(0������0��������+)� �%��8(&�(0������ �"��"� �%���'$��� �%���'$��� !*� !*� ���&�����#����#$�/������5�����&�����#����#$�/������5��,, ������������0�����������!�������M�&���0�����������!�������M�&���
�� External: External: ���������������1�(������������������1�(��� !*����#�����*����& !*����#�����*����&��&&����/����&&����/��,, ���#��/�����#$��T���(���������#��/�����#$��T���(������,, etc.etc.
November 30, 2008 29
NonNon--functional requirement typesfunctional requirement types
November 30, 2008 30
����(*�0�����(*�0� ����������������#$�������������������#$���
�� Product requirements :Product requirements : the user interface the user interface 0�0� LIBSYSLIBSYS ���#�����&&���#�����&& HTMLHTML �&&*�(8�(/�*�$���&�&&*�(8�(/�*�$���& �������� Java appletsJava applets
�� ����������0����������������0������ :: ���&�������2����&&���&�������2����&& �"��"� ����* ����*��&��� �%�/������ &$(&+)���&�/������&��� �%�/������ &$(&+)���&�/���� XYZCoXYZCo--SPSP--
STANSTAN-- 9595
�� External requirement :External requirement : ��&&���/�* �6� (0����"��&&���/�* �6� (0����"*�����"��������/�*�����"��������/� !���!��� �"��"� "0����� "0����� �*� �������#$����"��&&�*� �������#$����"��&&
November 30, 2008 31
�U����( �U����( �"��"� ��������������������
�� ��������������#$�������� 0$(����!�� ��/��(����������������#$�������� 0$(����!�� ��/��(�� �"��"� ��������������#$�/�*!�� ���<�������&/��(��������#$�/�*!�� ���<�������&/��(��
�� Goal : Goal : 8�(#���/�8�(#���/� ������-��0� ���!�������-��0� ���!� �<����<��� �!�*�(�!�*�(
�� Verifiable nonVerifiable non--functional requirement functional requirement ������ 0������#$��!������� "0������#$��!������� " �&&����������&/���&&����������&/��
�� GoalGoal �%����8(!���*� �%����8(!���*� developerdeveloper �����*�/���*�(#������ �����*�/���*�(#������������0� ���!�������0� ���!�
November 30, 2008 32
����(*�����(*�
�� A system goal :A system goal : ��&&����!���/��*�(8�( ����&���#$��$��&&����!���/��*�(8�( ����&���#$��$���&���4����&���4� �"�����������"��94�#$��� ������� ���"�����(�"�����������"��94�#$��� ������� ���"�����(#$���#$���
�� A verifiable nonA verifiable non--functional requirementfunctional requirement �� ����&���#$��$���&���4����������!���&���#$��$���&���4����������!� function function 0���&&/��0���&&/��#�-���#�-��� �"����/����&���VW�����"����/����&���VW���� 22 !�!�.. �"��������VW��&���"���"��������VW��&���"��0�� ���"��#$� ������ ���!�#$��$���&���4�0�� ���"��#$� ������ ���!�#$��$���&���4� /�*��� ���/�*��� ��� 22 ���-8�( 3"$�(���-8�( 3"$�(�*�����*����
November 30, 2008 33
������ "���������������� "����������
���� �<����� �<� -- ��������(���#$�#��/���*�����#$��������(���#$�#��/���*�����#$-- ��(� �"���&���*� ���!���(� �"���&���*� ���!�-- �������� �"$�(��������������� �"$�(�������
0���0��� -- M ByteM Byte-- ������0�������0� ROM chipsROM chips
���������������� -- !���8�VW����!���8�VW����,, �������������������� helphelp
Reliability Reliability -- �*�����"�� �"� 3"$�(�*�����"�� �"� 3"$�(-- ���������-#$���&&�(��#�������������-#$���&&�(��#����
RobustnessRobustness -- �"�#$��� �������*�"����"�� �"� �"�#$��� �������*�"����"�� �"�PortabilityPortability -- ���/��!�/���$���&&���/��!�/���$���&&
November 30, 2008 34
Requirements interactionRequirements interaction
�� 0��0���(�����*�0��0���(�����*� ����������������#$�������������������#$��� �%�0�'�����#$��� �%�0�'�����#$��� ���0)-�/�� ���0)-�/�� ����&&#$�"�&+�&+�������&&#$�"�&+�&+���
�� ��&&(������I��&&(������I-- ����"��-������ ����"��-������,, ��� �%����"���������� �%����"�������!��!������&&����&&-- ����"�����!��"��� ����"�����!��"��� ����!�����!�!��!��#$����/,���(#$����/,���(-- �(*�/��<�������!��(*�/��<�������!�!��!��#$����/,���(�<����!�#$����/,���(�<����!�!��!�����������0)-����������0)-� +)�+)� �%����O����4�#�-��(*� �%����O����4�#�-��(*�
November 30, 2008 35
����������8� ������������8� ��
�� /�������8� ����&&��/�������8� ����&&�� &����("� �$(�&����("� �$(� ��4"��94�0���&&��4"��94�0���&& +)�+)�* "�#����)8� ��* "�#����)8� ��
�� ����������8� �� �%�,J��!������*����������8� �� �%�,J��!������*,, �%�0��������0����������� �%�0��������0����������� ��� ��� �������� �'�&�(��������" " 3����'�&�(��������" " 3���
�� �������*�����������8� ��(�/�* �%�#$������������*�����������8� ��(�/�* �%�#$����� ��&&�<������!�/�*/����&&�<������!�/�*/��
November 30, 2008 36
�J7��0�����������8� ���J7��0�����������8� ��
�� ����� 0����/������� 0����/��-- ��������������'�&�(���(1�9�0�8� ����&&����������������'�&�(���(1�9�0�8� ����&&��-- &*�(���-��I�����2����&&&*�(���-��I�����2����&& /�* 0����/�* 0����
�� ������ !��������� !��� �� !$�(�!�78� �� �� !$�(�!�78� �� 0������&&�(*��$����0���#$���#������������ 0������&&�(*��$����0���#$���#������������8� �����!�� �������8� �����!�� �������
Knowledge Areas
Requirements Planning & Management
Requirements
Gathering
Requirements
Implementation
Requirements
Analysis &
Documentation
Requirements
Communications
Enterprise
Analysis
Fundamentals
Identifies currently accepted best practices
Fundamentals� Ensuring an effective Business Analysis resource
� Defines the general competencies, skills,
techniques or knowledge needed to effectively perform business analysis but is not unique to
business analysis � Value
� Articulates non-specific professional skills that are necessary in order for a Business Analysis professional to be successful in performing his/her role
� Communications
� Leadership
� Problem Solving
� Business Knowledge
� IT Technical Knowledge
Knowledge Areas
Requirements Planning & Management
Requirements
Gathering
Requirements
Implementation
Requirements
Analysis &
Documentation
Requirements
Communications
Enterprise
Analysis
Fundamentals
Identifies currently accepted best practices
Enterprise Analysis
� Understanding the Big Picture
� Captures the view of the business to
provide context
� Supports initiatives & long-term planning
� Includes process, workflow & entity
relationship diagramming, cost / benefit
analysis, feasibility studies
� Value
� Provides a context / foundation on which to
evaluate all future issues & challenges
Knowledge Areas
Requirements Planning & Management
Requirements
Gathering
Requirements
Implementation
Requirements
Analysis &
Documentation
Requirements
Communications
Enterprise
Analysis
Fundamentals
Identifies currently accepted best practices
Requirements Planning & Management
� Defining the Plan� Specifies requirements activities to be performed
� Identifies the deliverables to be produced� Describes how changes will be controlled &
managed� Value
� Ensures a common understanding across the
requirements team� Specifies tools, resources & contributors &
ensures availability� Allows for monitoring & addressing of
requirements challenges
� Coordinates with other project work� Ensures changes are captured correctly and
consistently
Requirements Planning & Management
1. Understand team roles
2. Identify and describe stakeholders
3. Define BA work division strategy
4. Define requirements risk approach
5. Determine planning considerations
6. Select requirements activities
� Who to include, how to gather & document, what modeling & analysis techniques, identify other project roles, select tools
7. Estimate requirements activities
� Identify milestones, define work pieces, estimate time required, capture & review assumptions, identify requirements & project risks, determine how to manage change
Requirements Planning & Management
� Manage requirements scope
� Define how requirements changes will be handled
� Measure & report on requirements activity
� Manage requirements change
� Identify issues & changes
� Document changes
� Identify links to other requirements
� Analyze change requests
� Track changes
Requirements Gathering� Executing the plan
� Identifies the tasks, knowledge & techniques for capturing the requirements
� Value
� Defines the broad classifications of requirements (e.g., functional, usability, non-functional, constraints)
� Describes the various techniques used to gather requirements, for example:
� Discovery Session / Observation
� Interview
� Survey
� Prototyping
� Usage Scenarios
Requirements Gathering Goals.
� Manage the gathering process
� Manage requirements conflicts
� Identify approaches or techniques for gathering requirements
� Discovery / Observation session
� Interview
� Survey
� Prototyping
� Review existing systems & business documents
� Note taking / feedback to stakeholders
� Using Personas & usage scenarios
� Reverse engineering
� Test for completeness of the requirements
� Get consensus or sign-off
Methodologies & Technologies
� Joint Application Design (JAD) � Workshop approach� A high degree of user involvement� is based on communication through documentation, fixed
requirements and rules of work enforced through methods.� TEAMROOMS
� COLLABORATION OVER THE ELECTRONICWORKSPACE
� Requirements negotiation place� Brainstorming Room, used to record all "quick ideas"
generated throughout the meeting.� Scenarios Room, used to build scenarios of future
situations.� Wish List Room, used to store the initial list of
requirements.� Future Consideration Room, used to record the
intermediary results of the process.� Etc.
Requirements Analysis & Documentation
� Analyzing the data� Defines the methods, tools & techniques used to
structure the raw data collected during
requirements gathering� Identifies gaps in the information
� Defines the capabilities of the solution � Value
� Transforms the business need into clearly described capabilities
� Provides the foundation for selecting the best
alternative among the solution options
Requirements Analysis & Documentation Goals
� Categorize requirements
� Organize the requirements
� Categorize the requirements
� Identify & resolve inconsistencies & gaps
� Analyze requirements
� Decompose problems
� Select Modeling technique (e.g., usage model,
process/flow model, data & behaviour model)
� Organize models
� Determine requirements attributes
� Document requirements
� Structure requirements for traceability
� Verify requirements
Techniques for Documenting Requirements
Business
Requirements
Functional
Requirements
Broad,
high-level
Very
detailed
Business Use
Case Description
Data requirements (entities, attributes, relationships)
Essential Process Description
Glossary
Workflow diagram
Workflow diagram
Workflow diagram
Workflow diagram
Decomposition
diagram
Context-level
DFDUse Case diagram
System Use Case Description
Screen or report prototype
Database
design
Business Use
Case DescriptionScreen Storyboard prototype
Process Maps
Requirements Communications
� Communicating the outcome� Presents & communicates requirements to all
stakeholders & implementers of the project� Brings the group to consensus & gets
approval
� Value
� Presents the requirements in a format & structure that is appropriate for its in intended audience
� Brings the various stakeholders to a common understanding
� Formalizes agreement
Requirements Implementation
� Delivering the best solution� Ensures the solution meets the stakeholder
objectives while supporting the needs of the
developers� Guides detailed specifications & development of
the solution, testing & implementation� Value
� Articulates how the Business Analysis professional should work with the other project team members (e.g., developers, clients) to produce the solution design
� Identifies the approach to evaluating alternative solutions once requirements have been formally signed off
November 30, 2008 53
User requirementsUser requirements
�� ����'�&�(�)����#$��"������'�&�(�)����#$��"�� –– ����#$�������#$��� ���!�� �����!�� �� ��� ���!���&& 0������� ���!���&& 0����/��8�(/�*�����I�(�������#� #����/��8�(/�*�����I�(�������#� #����
�� ����������0� ���!���� �%�1�9�'���������������0� ���!���� �%�1�9�'�����,, �������� �"��"� � � �� � � ��������� ���!� 0����/��8�(*�(��� ���!� 0����/��8�(*�(
November 30, 2008 54
�J7�� �$�(���&1�9�#���/��J7�� �$�(���&1�9�#���/�
�� 0������!�� ��0������!�� ��::�� �����������("� �$(��(*�")�+)-�����������("� �$(��(*�")�+)- #����� �����*���"�� 0����(��#����� �����*���"�� 0����(��
�� �����&������&�::�� ����#$��"������#$��"�� –– ����#$�������#$��� ������&�������&� ����������
�� ������ ������::�� �����������"�(.�(*�#$��*���������������"�(.�(*�#$��*���� ������$�����&�/�� ������������$�����&�/�� ������
November 30, 2008 55
������������ 0$(������������� 0$(� requirementsrequirements
�� ������&&����5�����!���&#��.������&&����5�����!���&#��. requirementsrequirements
�� �!�1�9�������"������"���!�1�9�������"������"��,, �!��!� shallshall �����&����������#$������&����������#$���� �%���� �%�,, �!��!� should should �����&����������#$�������$�����&����������#$�������$
�� �!����9��!����9� HiHi--lightlight ���� ������ �<���������7 ���� ������ �<���������7
�� �"$� "$�(1�9� 3���#������� �����"$� "$�(1�9� 3���#������� ����
November 30, 2008 56
����� �%������&��&&����� �%������&��&&
�� ��&���("� �$(���&���("� �$(� 0�0� ����#$���&&����#$���&&,, &������"�0�������������*�&������"�0�������������*� �������������� ���!������� ���!�
�� �$/�� ���� �%�5�����������&&��&&�$/�� ���� �%�5�����������&&��&&
�� &����-����&/����&�77�&����-����&/����&�77�
�� ������������&&������������8�(�!�������������&&������������8�(�!� modelsmodels
Requirements Models for the Traditional and OO Approaches
November 30, 2008 58
�������������������� �"��"� �������&&�������&&
�� ���"������"�����"������"�� �����������������&��*���&&���#����/�/��&�������������������&��*���&&���#����/�/��&�� �"��"� �������&&��&���*�#���(*�/��������&&��&���*�#���(*�/�
�� ��#��M�&�����#��M�&��� �������������������� �"��"� �������&&���(����/�*����������&&���(����/�*���-- ���J�(������&&���J�(������&& ����� �%��������&&���8�����0������ �%��������&&���8�����0���������������������-- ��&&#$����#�����*�������&��&&������&&#$����#�����*�������&��&&���� �*���� ������������������*���� ������������������������&&�������&&
�� ����!��������&&!��� ��������!��������&&!��� ���� ����� �%�����������8� ������� �%�����������8� ��
November 30, 2008 59
�J7��0������&��������������(1�9�'���!����J7��0������&��������������(1�9�'���!���
�� ������������ :: ���*�� ���*�� �"��"� �� 0$(����������� �� 0$(����������� ����$����������9���#�����$����������9���#� �$(���� �$(����.. NL NL �$����������8�('���!����$����������8�('���!��� #����� 0����(��#����� 0����(��
�� �$�����"*�������/��$�����"*�������/� :: 0�!��� �$(������������ 0$(������/��0�!��� �$(������������ 0$(������/���"�(#��"�(#�
�� 0����� � ��0����� � �� :: 8�����0�8�����0� NLNL /�* �$(��/�* �$(�� #$����!�#������#$����!�#��������������&&��������&&
November 30, 2008 60
Alternatives to NL specification Alternatives to NL specification ((#� "�������������#� "������������� NLNL))
Notation Description
Structured natural
language
This approach depends on defining standard forms or templates to express the
requirements specification.
Design
description
languages
This approach uses a language like a programming language but with more abstract
features to specify the requirements by defining an operational model of the system.
This approach is not now widely used although it can be useful for interface
specifications.
Graphical
notations
A graphical language, supplemented by text annotations is used to define the
functional requirements for the system. An early example of such a graphical
language was SADT. Now, use-case descriptions and sequence diagrams are
commonly used .
Mathematical
specifications
These are notations based on mathematical concepts such as finite-state machines or
sets. These unambiguous specifications reduce the arguments between customer and
contractor about system functionality. However, most customers don’t understand
formal specifications and are reluctant to accept it as a system contract.
November 30, 2008 61
1�9�8�����1�9�8�����
�� #� "���0� �� 0$(��������������������8�(#� "���0� �� 0$(��������������������8�( templatestemplates 0�0���������������������
�� ��� 0$(��������������$����5����� 0$(��������������$����5��
�� ���I��#�#$��!���&���("� �$(����I��#�#$��!���&���("� �$(� ������$������������$������
�� 0��/�� ��$(&���0��/�� ��$(&��� ����������")�+)-����������")�+)- 0�0� 1�9�'���!���/��/��1�9�'���!���/��/�� ��*��*����&�������� ������&�������� �� (uniformity)(uniformity) �����8��/��(�*��&�����8��/��(�*��& specification.specification.
November 30, 2008 62
�%� �%� 8�(�!�,����8�(�!�,����
�� �������������0�,J!����������������0�,J!��� �������� �<�#��$- �<�#��$-
�� ����'�&�(����'�&�( �����#�����# �"��"� ��"*#$�����"*#$���
�� ����'�&�(����'�&�( �����# �����# �"��"� #$�/�#$�/�
�� ��&�����������0���&�����������0� �<�#��$- �<�#��$- ����.����.
�� ����/0 ����/0 �*���*�� �������� �"��"�
�� "0�� �$(0�,J!��� "0�� �$(0�,J!���
November 30, 2008 63
FormForm--based node specificationbased node specification
Insulin Pump/Control Software/SRS/3.3.2
Function Compute insulin dose: Safe sugar level
Description Computes the dose of insulin to be delivered when the current measured sugar level is in
the safe zone between 3 and 7 units.
Inputs Current sugar reading (r2), the previous two readings (r0 and r1)
Source Current sugar reading from sensor. Other readings from memory.
OutputsCompDose Ð the dose in insulin to be delivered
Destination Main control loop
Action: CompDose is zero if the sugar level is stable or falling or if the level is increasing but the rate of
increase is decreasing. If the level is increasing and the rate of increase is increasing, then CompDose is
computed by dividing the difference between the current sugar level and the previous level by 4 and
rounding the result. If the result, is rounded to zero then CompDose is set to the minimum dose that can
be delivered.
Requires Two previous readings so that the rate of change of sugar level can be computed.
Pre-condition The insulin reservoir contains at least the maximum allowed single dose of insulin..
Post-condition r0 is replaced by r1 then r1 is replaced by r2
Side-effects None
November 30, 2008 64
Tabular specificationTabular specification
�� �!� ���1�9�'���!����!� ���1�9�'���!���
�� �$���8(!����� ������������#� "���#$������ ���0)-�/������������$���8(!����� ������������#� "���#$������ ���0)-�/�����������
November 30, 2008 65
����(*�����(*�Tabular specificationTabular specification
Condition Action
Sugar level falling (r2 < r1) CompDose = 0
Sugar level stable (r2 = r1) CompDose = 0
Sugar level increasing and rate of
increase decreasing ((r2-r1)<(r1-r0))
CompDose = 0
Sugar level increasing and rate of
increase stable or increasing. ((r2-r1) �
(r1-r0))
CompDose = round ((r2-r1)/4)
If rounded result = 0 then
CompDose = MinimumDose
November 30, 2008 66
GraphicalGraphical 8� �"8� �"
�� �$���8(!����� ������������ �"$�(���"�����$���8(!����� ������������ �"$�(���"���� �������� "����&0�"����&0���������������
�� ���,���,,6��&&,6��&&�*��*� .. (System models)(System models)
November 30, 2008 67
� � � �$("����&� � � �$("����&
�� ��"����&0� ������4���"����&0� ������4� #$� ���0)-� ���� ���!���&8����&��&&#$� ���0)-� ���� ���!���&8����&��&&
�� ���*����-��*&�""*���#��&"����&0��������#$� ���0)-� ���*����-��*&�""*���#��&"����&0��������#$� ���0)-�
�� ������ �������������� �������� ATMATM
-- �������*� �%�&���#$��������������*� �%�&���#$������� ���!*&����"�����!*&����"��-- ������ ������������0������� ������������0�-- �6��6� transaction transaction
November 30, 2008 68
� � �"����&��0�� � �"����&��0� ������ ����������� ����� ATMATM
November 30, 2008 69
Interface specificationInterface specification
�� ��&&*��������#�����*����&��&&������&&*��������#�����*����&��&&���� ����-��������*�����*��������-��������*�����*���� �������&�/�� �%�*��0������������������&�/�� �%�*��0�����������
�� ������ �� �� , , 33 !���!��� #$�����$����'�&�(#$�����$����'�&�( ������ 1.1.������'$�*����#���(*�/�������'$�*����#���(*�/�2.2.8�����0����"#$��"� �"$�(����8�����0����"#$��"� �"$�(����3.3.������*�0����"������*�0����"
�� ����� ��������(����� ��������( 8�(�!��&&,����8�(�!��&&,���� �%� #����#$��$����#'�1�� �%� #����#$��$����#'�1�� �����&�����("� �$(������&�����("� �$(� ������ �� �� , ,
November 30, 2008 70
PDL interface descriptionPDL interface description
interface PrintServer {
// defines an abstract printer server
// requires: interface Printer, interface PrintDoc
// provides: initialize, print, displayPrintQueue, cancelPrintJob, switchPrinter
void initialize ( Printer p ) ;
void print ( Printer p, PrintDoc d ) ;
void displayPrintQueue ( Printer p ) ;
void cancelPrintJob (Printer p, PrintDoc d) ;
void switchPrinter (Printer p1, Printer p2, PrintDoc d) ;
} //PrintServer
November 30, 2008 71
���������������� ����������������
�� �%� ���������������� �%� ���������������� �*��*� ����2����&& ����2����&& �(*� �%�#�����(*� �%�#����
�� ����$�����������������$������������� 0�����������0����������� 0� ���!�0� ���!� �"��"� ��("� �$(��*���("� �$(��*���&&����$��/���&&����$��/�
�� /�*�!* �����������&&/�*�!* �����������&& ��* �%���� �����* �%���� ��� �*��*� ““#����/�#����/�”” �����*������*� ““#���(*�/�#���(*�/�””
November 30, 2008 72
Users of a requirements documentUsers of a requirements document
November 30, 2008 73
IEEE IEEE ����5����������������5������������
�� /��������8�����#���/�/���*�/��������8�����#���/�/���*� ����������������� ����������������������&���(�����&���(-- &#���&#���-- ����'�&�(#���/�����'�&�(#���/�-- �������������������� �%���("� �$(� �%���("� �$(�-- &#��&&#��& ((1�� ���1�� ���))-- ��!�$��!�$
November 30, 2008 74
8�����0� ��������������8�����0� ��������������
1.1. ������������2.2. &#���&#���3.3. �����"I��#������"I��#�4.4. �������������������������� ����������0� ���!�����������0� ���!�5.5. ���J�(������&&���J�(������&&6.6. ������������&&����("� �$(�������������&&����("� �$(�7.7. ��&&����&&��&&����&&8.8. ����2�����0���&&����2�����0���&&9.9. &#��&&#��& –– 1�� ���1�� ���10.10. ��!�$��!�$
November 30, 2008 75
Key pointsKey points
�� RequirementsRequirements ����&��*���&&����$��/�&������&��*���&&����$��/�&�� �"��"� ��/���/������� 0���������������� ������0���������������� ������
�� Functional requirements Functional requirements ��&�&�����#$���&&������$��&�&�����#$���&&������$������
�� NonNon--functional requirements functional requirements �%������������&&#$� �%������������&&#$����"���2�����"���2�� �������� ���&����������2�����&����������2��
�� ����������0� ���!���&&����������0� ���!���&& (User requirements(User requirements) ) �%� �%�&#��������&�&#��������&� &*&���*���&&���#����/�/��&*&���*���&&���#����/�/�� user user requirementsrequirements ��� 0$(����(1�9�'���!������ 0$(����(1�9�'���!��� �����&���(�����&���(�������� �"��"� ���� ����
November 30, 2008 76
�� ��#$���� �%������&��&&��#$���� �%������&��&& (System requirements(System requirements) ) �$�$���������� ����������*�,J!�����#$���&&������$������������� ����������*�,J!�����#$���&&������$���
�� Software requirements Software requirements �%� ����0����"#$���&� �%� ����0����"#$���&� ��#$���#$���� �%������&��&&��� �%������&��&&
�� ����5������5�� IEEEIEEE �$���8(!��������!� �%���� ��������$���8(!��������!� �%���� ������� �������&��������&�����5����������������("� �$(�����5����������������("� �$(�