Question 1) Explain Requirements Elicitation Techniques? Answer 1) Equirements Elicitation Is Perhaps The Most Difficult, Most Error-Prone and Most
Question 1) Explain Requirements Elicitation Techniques? Answer 1) Equirements Elicitation Is Perhaps The Most Difficult, Most Error-Prone and Most
Question 1) Explain Requirements Elicitation Techniques? Answer 1) Equirements Elicitation Is Perhaps The Most Difficult, Most Error-Prone and Most
Answer 1) equirements elicitation is perhaps the most difficult, most error-prone and most
communication intensive software development. It can be successful only through an effective
customer-developer partnership. It is needed to know what the users really need.
There are a number of requirements elicitation methods. Few of them are listed below –
Interviews
Brainstorming Sessions
Facilitated Application Specification Technique (FAST)
Quality Function Deployment (QFD)
Use Case Approach
The success of an elicitation technique used depends on the maturity of the analyst, developers,
users and the customer involved.
1. Interviews:
In open ended interviews there is no pre-set agenda. Context free questions may be asked to
understand the problem.
In structured interview, agenda of fairly open questions is prepared. Sometimes a proper
questionnaire is designed for the interview.
2. Brainstorming Sessions:
It is a group technique
It is intended to generate lots of new ideas hence providing a platform to share views
3. Facilitated Application Specification Technique:
It’s objective is to bridge the expectation gap – difference between what the developers think they
are supposed to build and what customers think they are going to get.
A Function Point (FP) is a unit of measurement to express the amount of business functionality, an
information system (as a product) provides to a user. FPs measure software size. They are widely
accepted as an industry standard for functional sizing.
For sizing software based on FP, several recognized standards and/or public specifications have
come into existence. As of 2013, these are −
ISO Standards
COSMIC
FiSMA
IFPUG
Mark-II
NESMA
Formal methods are techniques used to model complex systems as mathematical entities. By
building a mathematically rigorous model of a complex system, it is possible to verify the system's
properties in a more thorough fashion than empirical testing.
While Rigorous descriptions promise to improve system reliability, design time and
comprehensibility, they do so at the cost of an increased learning curve; the mathematical
disciplines used to formally describe computational systems are outside the domain of a traditional
engineering education. In addition, the metamodels used by most formal methods are often limited
in order to enhance provability. There is a notable tradeoff between the need for rigor and the
ability to model all behaviors.
High Level Design gives the overall System Design in terms of Functional Architecture details and
Database design. This is very important for the ETL developers to understand the flow of the
system with function and database design wise. In this phase the design team, testers and
customers are plays a major role. Also it should have projects standards, the functional design
documents and the database design document also
LLD -- Low Level Design (LLD) is like detailing the HLD. It defines the actual logic for each and every
component of the system. Class diagrams with all the methods and relation between classes
comes under LLD. Programs specs are covered under LLD.
Low - Level Design (LLD) - This document is need to do during the detailed phase, the view of the
application developed during the high level design is broken down into separate modules and
programs for every program and then documented by program specifications.
1. What are the different design principle in software engineering for designing any software application?
Explain in details.
Once the requirements document for the software to be developed is available, the
software design phase begins. While the requirement specification activity deals
entirely with the problem domain, design is the first phase of transforming the
problem into a solution. In the design phase, the customer and business
requirements and technical considerations all come together to formulate a product
or a system.
The design process comprises a set of principles, concepts and practices, which allow
a software engineer to model the system or product that is to be built. This model,
known as design model, is assessed for quality and reviewed before a code is
generated and tests are conducted. The design model provides details about software
data structures, architecture, interfaces and components which are required to
implement the system. This chapter discusses the design elements that are required
to develop a software design model. It also discusses the design patterns and various
software design notations used to represent a software design.
In other words, it is a document that maps and traces user requirement with
test cases. The main purpose of Requirement Traceability Matrix is to see
that all test cases are covered so that no functionality should miss while
doing Software testing
A test case in software engineering is a set of conditions or variables under which a tester will
determine whether an application or software system is working correctly or not. The mechanism for
determining whether a software program or system has passed or failed such a test is known as a
test oracle. In some settings, an oracle could be a requirement or use case, while in others it could be
a heuristic. It may take many test cases to determine that a software program or system is considered
sufficiently scrutinized to be released. Test cases are often referred to as test scripts, particularly
when written. Written test cases are usually collected into test suites.
"(1) A set of test inputs, execution conditions, and expected results developed for a particular
objective, such as to exercise a particular program path or to verify compliance with a specific
requirement.
"(2) (IEEE Std 829-1983) Documentation specifying inputs, predicted results, and a set of execution
conditions for a test item."
Defect
A Software DEFECT / BUG is a condition in a software product which
does not meet a software requirement (as stated in the requirement
specifications) or end-user expectation (which may not be specified but is
reasonable). In other words, a defect is an error in coding or logic that
causes a program to malfunction or to produce incorrect/unexpected
results.
Uses
Given such a specification, it is possible to use formal verification techniques to demonstrate that
a system design is correct with respect to its specification. This allows incorrect system designs
to be revised before any major investments have been made into an actual implementation.
Another approach is to use probably correct refinement steps to transform a specification into a
design, which is ultimately transformed into an implementation that is correct by construction.
It is important to note that a formal specification is not an implementation, but rather it may be
used to develop an implementation. Formal specifications describe what a system should do,
not how the system should do it.
A good specification must have some of the following attributes: adequate, internally consistent,
unambiguous, complete, satisfied, minimal[3]
A good specification will have:[3]
Time
o High initial start up cost with low measurable returns
Flexibility
o A lot of software companies use agile methodologies that focus on flexibility. Doing a
formal specification of the whole system up front is often perceived as being the opposite
of flexible. However, there is some research into the benefits of using formal
specifications with "agile" development[5]
Complexity
o They require a high level of mathematical expertise and the analytical skills to
understand and apply them effectively[5]
o A solution to this would be to develop tools and models that allow for these techniques to
be implemented but hide the underlying mathematics[2][5]
Limited scope[3]
o They do not capture properties of interest for all stakeholders in the project[3]
o They do not do a good job of specifying user interfaces and user interaction[4]
Not cost-effective
o This is not entirely true, by limiting their use to only core parts of critical systems they
have shown to be cost-effective[4]
Other limitations:[3]
Isolation
Low-level ontologies
Poor guidance
Poor separation of concerns
Poor tool feedback
1. We are bank industry, and very keen to opt the software application for the growth of
our business. The following are the main requirements: Account opening, Transactions,
Demand Draft, Loan and Fixed deposit Prepare SRS for above requirements in details.
1. Introduction
This document gives detailed functional and nonfunctional
requirements for the bank management system. This product will
support online banking transaction. The purpose of this document is
that the requirements mentioned in it should be utilized by software
developer to implement the system.
1.1 Purpose
1.2 Scope
This Product will automate of banking transaction process.This
Project investigates the entry threshold for providing a new
transaction service channel via the real options approach, where
the entry threshold is established by using an Internet banking
system designed for the use of normal users(individuals),
Industrialists, Entrepreneurs, Educational Institutions(Financial
sections), Organizations and Academicians under transaction rate
uncertainty.
1.3 Overview
The system provides easy solution to banks.
Overview: The SRS will include two sections, namely:
Overall Description: This section will describe major components of
the system, interconnections, and external interfaces.
Specific Requirements: This section will describe the functions of
actors, their roles in the system and the constraints faced by sys- tem.
2. General description
2.1 Product Perspective:
The client will have client interface in which he can interact with the
banking sys- tem. It is a web based interface which will be the web
page of the banking application. Starting a page is displayed asking
the type of customer he is whether ordinary or a corporate
customer. Then the page is redirected to login page where the user can
enter the login details. If the login particulars are valid then the user is
taken to a home page where he has the entire transaction list that he
can perform with the bank. All the above activities come under the
client interface.
The administrator will have an administrative in- terface which
is a GUI so that he can view the entire system. He will also have a
login page where he can enter the login particulars so that he
can perform all his actions. This administrative interface provides
different environment such that he can maintain data- base & provide
backups for the information in the database. He can register the users
by providing them with username, password & by creating account
in the database. He can view the cheque book request & perform
action to issue the cheque books to the clients.
2.2 Software Interface:
Front End Client:
The system is a web based application clients are requiring using
modern web browser such as Mozilla Firefox 1.5, PHP.
* Web Server:
The web application will be hosted on one of the apache server.
* Back End:
We use backend as MY SQL.
3. Functional Specifications
This section provides the functional overview of the product. The
project will require the PHP as a front end and at the back end the
database MYSQL will be running. Various functional modules that
can be implemented by the product will be
1. Login
2. Validation
3. Get balance information
4. Withdrawal of money
5. Transfer Money
6. Customer info.
3.1 Login:
Customer logins by entering customer name & a login pin.
3.2 Validation:
When a customer enters the ATM card, its validity must be ensured.
Then customer is allowed to enter the valid PIN. The validation can
be for following conditions
Validation for lost or stolen card
When card is already reported as lost or stolen
then the message “Lost/Stolen card!!!”.
Validation for card’s expiry date
If the card inserted by the customer has crossed the expiry date then
the system will prompt
“Expired Card”.
Validation for PIN
After validating the card, the validity of PIN must be ensured. If
he/she fails to enter valid code for three times then the card will not
be returned to him. That means the account can be locked. The
counter for number of logins must be maintained
Get balance information:
This system must be networked to the bank’s computer. The updated
database of every customer is maintained with bank. Hence the
balance information of every account is available in the database and
can be displayed to the customer.
3.3 Payment of Money:
A customer is allowed to enter the amount which he/she wishes to
withdraw. If the entered amount is less than the available balance and
if after withdraw if the minimum required balance is maintained then
allow the transaction.
3.4 Transfer of Money:
The customer can deposit or transfer the desired amount of money.
3.5 Transaction Report:
The bank statement showing credit and debit information
of corresponding account must be printed by the machine.
3.6 Technical Issues
This product will work on client-server architecture. It will require an
internet server and which will be able to run PHP applications. The
product should support some commonly used browsers such as
Internet Explorer, Mozilla Firefox.
4. Interface Requirements
4.1 GUI
This is interface must be highly intuitive or interactive because there
will not be an assistance for the user who is operating the System. At
most of the places help desk should be provided for users
convenience. The screens appearing should be designed in such a
manner that it can draw User attaraction towards the new plans for the
customers.
Also the pin and password confidentiality should be maintained,
This can be done by using asterisks at the password panel.
Proper security messages should be displayed at most of the places.