Tuesday 19 July 2011

module 3

PART 1


The best method to study this module is by drawing a mind map. In this module, it focus more on RE process. In RE process, there's 5 main tasks. So, by drawing mind map,we can easily remember all different types of requirements.


Lessons

Concept of Requirements



According to IEEE Standard Glossary of Software Engineering Terminology (IEEE, 1990), requirement means a condition or capability needed by a user to solve a problem or achieve an objective.


Two types of requirement:


1) Functional Requirements (FR)
Definition : A requirement that specifies a function that a system component must be able to perform.


Important points :

  • Describe services a system or component of a system should perform
  • MUST NOT include quality statement such as 'fast, 'efficient', 'usable', 'reliable' etc.



2) Non-Functional Requirement (NFR)
Definition : A requirement that specifies quality characteristic of the software and constraints of the software to be developed and/or process to develop the software.

Important points :

  • Example quality attributes:

- Reliability
- Security
- Performance
- Safety

  • Example constraints :

- Skill-set of the developers
- Target operating environment
- Programming language to develop the system
- Software process that should be followed


Requirement Engineering

What is Requirements Engineering (RE)?

  • "The process of developing a requirements specification" (Pohl, 1996)
  • "To cover all activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system. (Sommerville & Sawyer, 1997)



RE Process



Requirement Development
1) Requirement Elicitation
Meaning of Elicitation : A stimulation that bring forth a class of behavior


4 components of requirements elicitation:

  • Understanding application domain
  • Understanding problem to be solved
  • Understanding business processes in an organization
  • Understanding the needs and constraints of the stakeholders



2) Requirements Analysis and Negotiation


- Build analysis model
Generic elements common to most requirements models:

  • Scenario-based elements (Processing narrative of software function)
  • Class-based elements (Implied by scenario)
  • Behavioral elements (State diagram)
  • Flow-oriented elements (DFD)



- Prioritizing Requirements
Techniques of requirements prioritization

  1. Prioritization scale
  2. QFD
  3. Semi quantitative Analytical Approach



- Conflict & Conflict Resolution
Technique to identify conflicts and overlaps --> Interaction matrix

- Negotiating Requirements

Negotiating Guidelines :

  1. Recognize that it's not a competition
  2. Map out a strategy
  3. Listen actively
  4. Focus on the other party's
  5. Don't let it get personal
  6. Be creative
  7. Be ready to commit and move on


3) Requirements Specification


- To build the requirements document : SRS (Software Requirements Specification)
- Should involve technical writers


SRS
Attributes of a well-written SRS

  • Correct
  • Unambiguous
  • Complete
  • Consistent
  • Testable
  • Traceable

4) Requirements Verification and Validation


Definition : Requirements verification is a process of checking that a product meets its specifications
Requirements validation is a process of checking that a product meets the needs and expectation of the customer.

V & V Techniques


1. Revives the requirements specification
- Desk check
- Walk through
- Inspection
- Checklist
2. Prototyping
3. Acceptance Tests


Requirement Management

- Managing changes to requirements
- Managing configuration of requirements and requirements document
- Maintaining requirements traceability
- Tracking requirements status


Part 2


The purpose of

System Requirements Analysis is to obtain a thorough and detailed understanding of the business need as defined in Project Origination and captured in the Business Case, and to break it down into discrete requirements, which are then clearly defined, reviewed and agreed upon with the Customer Decision-Makers. During System Requirements Analysis, the framework for the application is developed, providing the foundation for all future design and development
efforts. System Requirements Analysis can be a challenging phase, because all of the major Customers and their interests are brought into the process of determining requirements. The
quality of the final product is highly dependent on the effectiveness of the requirements identification process. Since the requirements form the basis for all future work on the project, from design and development to testing and documentation, it is of the utmost importance that the Project Team create a complete and accurate representation of all requirements that
the system must accommodate. Accurately identified requirements result from effective communication and collaboration among all members of the Project Team, and provide the best chance of creating a system that fully satisfies the needs of the Customers.

This phase consists of the following processes:

_ Prepare for System Requirements Analysis, where steps are taken to ensure that the project environment and Project Team members are adequately prepared to both capture and analyze the system requirements;
_ Determine Business Requirements, where in-scope and
Out-of-scope business requirements are identified, business
Rules are defined and documented, and interfaces to and
From the new application are discussed;
_ Define Process Model, where a pictorial top-down
Representation of the major business processes that
Interact with the system is diagrammed and decomposed
Into manageable functions and sub-functions until no
Further breakdown is feasible;
_ Define Logical Data Model, where data that supports
the processes and business rules is logically modeled,
identifying entities and their relationships to other entities,
and defining attributes with their business definitions;
_ Reconcile Business Requirements With Models, where
the Project Team ensures that the Process and Logical
Data Models accommodate all requirements and business
rules;
_ Produce Functional Specification, where interfaces,
processes and data are merged to describe systematically
how the Consumer will use the application, and how data
will be retrieved, processed and stored.



No comments:

Post a Comment