unit 6 (1)
unit 6 (1)
Functional requirements in software engineering help you to capture the intended behavior of
the system. This behavior may be expressed as functions, services or tasks or which system is
required to perform.
The software automatically validates customers against the ABC Contact Management
System
The Sales system should allow users to record customers sales
The background color for all windows in the application will be blue and have a
hexadecimal RGB color value of 0x0000FF.
Only Managerial level employees have the right to view revenue data.
The software system should be integrated with banking API
The software system should pass Section 508 accessibility requirement.
Helps you to check whether the application is providing all the functionalities that were
mentioned in the functional requirement of that application
A functional requirement document helps you to define the functionality of a system or
one of its subsystems.
Functional requirements along with requirement analysis help identify missing
requirements. They help clearly define the expected system service and behavior.
Errors caught in the Functional requirement gathering stage are the cheapest to fix.
Support user goals, tasks, or activities for easy project management
Functional requirement can be expressed in Use Case form or user story as they exhibit
externally visible functional behavior.
Non-functional requirement
1. Users must change the initially assigned login password immediately after the first
successful login. Moreover, the initial should never be reused.
2. Employees never allowed to update their salary information. Such attempt should be
reported to the security administrator.
3. Every unsuccessful attempt by a user to access an item of data shall be recorded on an
audit trail.
4. A website should be capable enough to handle 20 million users with affecting its
performance
5. The software should be portable. So moving from one OS to other OS does not create
any problem.
6. Privacy of information, the export of restricted technologies, intellectual property rights,
etc. should be audited.
The nonfunctional requirements ensure the software system follow legal and
compliance rules.
They ensure the reliability, availability, and performance of the software system
They ensure good user experience and ease of operating the software.
They help in formulating security policy of the software system.
Difference between functional and non functional requirements
A functional requirement
defines a system or its A non-functional requirement defines the
component. quality attribute of a software system.
Helps you verify the Helps you to verify the performance of the
functionality of the software. software.
1) Requirement Gathering
To make sure that all the steps mentioned above are appropriately executed, clear, concise,
and correct requirements must be gathered from the customer. The customer should be able
to define their requirements properly and the business analyst should be able to collect them in
the same way the customer is intending it to convey them.
Many a time it is not possible that requirement gathering is done efficiently by business
analysts from the customer. This might be due to dependency on many people related to the
expected end product, tools, environment, etc. Thus, it is always a good idea to involve all the
stakeholders who could influence or could be influenced by the end product.
The possible stakeholder’s group could be Software Quality engineers (both QC and QA), any
third party vendor who could provide support in the project, end-user for whom the product is
intended, software programmers, and another team within the organization who might provide
a module or software platform, software libraries, etc. for product development.
2) Analyzing Gathered Requirements
Post requirement gathering, analysis of requirement starts. At this stage, various stakeholders
sit and do a brainstorming session. They analyze the requirements gathered and look for the
feasibility to implement them. They discuss it with each other and any ambiguity is sorted out.
This step is important in the requirement analysis process due to the following main reasons:
(i) Customer may provide some requirements which could be impossible to implement due to
various dependencies.
Example: Customers may ask to surround-view the camera system with a rearview camera
feature that will help in parking the car. The customer may also ask for the Trailer hitch feature
which also uses the rear camera to work.
If the customer states a requirement that the rearview camera for parking assistance should
work at all times without an exception, then the Trailer feature would never work and vice
versa.
Every BI project has its own life cycle. Let us look at a common life cycle:
The first step is Analyze Business requirements, which means that we should gather the
business requirements and transform them into functional and non-functional specifications,
create a template for reports, and so on.
The next step is Design the logical data model, where we build a logical data model based on
business requirements, which shows the business entities and the relationships between them.
The third step is Design the physical data model, where we transform the logical data model
into a physical data model which defines the structure of the data warehouse.
The fourth step is Build the data warehouse. In this step, we create the data warehouse, build
data marts, and load data.
On the fifth step, Create the Project, we start to work directly in MicroStrategy, where we
define schema, attributes, facts, hierarchies and so on. All this information is stored in
metadata, the core of MicroStrategy, in a relation database.
The sixth step is Develop Reports/Documents and of course dashboards. In addition, we share
our insights across the organization using various channels such as email, FTP, and so on.
Utilizing the DW/BI system is the final step before business users gain access to the
information. The first impression the business community gets is when introduced to
the BI frontend drives.
Because acceptance from users is important, the deployment must be thoughtfully planned to
ensure that the DW/BI system can perform and deliver the results it is designed to deliver. To
ensure that the implementation can perform and deliver it has to be exposed to extensive end-
to-end testing.
The process of testing is an ongoing activity along the development process, because defects
that should be correct later in the lifecycle are difficult to find and are associated with
exponentially increasing costs.
A way of securing that the testing is done through the development lifecycle is to follow a
methodology. Kimball prescribe that before adding the DW/BI system, it should have passed a
mock test that will cover the following procedures;
Testing procedures
Data quality
Operations process testing
Performance testing
Deployment testing
User desktop readiness.
Documentation and Training
Maintenance and Support
What is BI Testing?
Business Intelligence (BI) is the process of gathering, cleansing, analyzing, integrating and
sharing data to derive actional insights that drive business growth. Business Intelligence Testing
or BI testing verifies the staging data, ETL process, BI reports and ensures the implementation is
correct. BI Testing ensures data credibility and accuracy of insights derives from the BI process.
Sample Test Cases for BI
Following are generic test cases that need to be validated for any BI Testing Project
Verify all tables and their fields are copied from source to target
Insert a record which is not loaded into target table for given key
combination
Copy records, sending same records that are already loaded into
target tables-should not be loaded
Data Loading Check if the target and source data base are connected well and
there are no access issues.
in BI
For a full load, check the truncate option and ensure its working
fine.
While loading the data, check for the performance of the session
Verify you can fail the calling parent task if the child task fails.
Post-production support:
First, subject matter experts (SMEs) will need to provide ongoing support, and need to be
prepared to provide service to many people in their departments, as people will no doubt
encounter difficulties. Second, the support process is divided into tiers.
Tier 1: Is considered triage and is usually the Help Desk or Call Center. This group will attempt to
address very straightforward problems or questions, often related to password problems or
resets or general access issues.
Tier 2: The Help Desk will forward the question or problem to tier 2. Tier 2 support is where the
subject matter experts are used.
Tier 3: Tier 3 can be a combination of technical staff along with vendor or implementation
partner support. These are often complex problems that will require the technical support staff
to research and fix.
There are others ways of providing support to users, in addition to in-person support.
The user could access web based frequently asked questions (FAQs), job aids that are printable
that describe how to access and complete a function within the system, short videos on using
the system and complete training documentation that shows and describes step by step how to
use the system.