Unit - Ii
Unit - Ii
A software engineering analyst serves as a link between the software developers and
the users. They relay the user's needs to the developers and determine the program
requirements. Using their technical knowledge, they assist the developers in setting and
meeting the software specifications based on user information.
Software Analyst Job Duties
What is SRS
A software requirements specification (SRS) is a detailed description of
a software system to be developed with its functional and non-functional
requirements. The SRS is developed based the agreement between
customer and contractors. It may include the use cases of how user is
going to interact with software system. The software requirement
specification document consistent of all necessary requirements
required for project development. To develop the software system we
should have clear understanding of Software system. To achieve this we
need to continuous communication with customers to gather all
requirements.
Software requirement specification (SRS) is a document that completely
describes what the proposed software should do without describing how software
will do it. The basic goal of the requirement phase is to produce the SRS, Which
describes the complete behavior of the proposed software. SRS is also helping
the clients to understand their own needs.
2. Completeness: The SRS is complete if, and only if, it includes the following elements:
(2). Definition of their responses of the software to all realizable classes of input data in
all available categories of situations.
(3). Full labels and references to all figures, tables, and diagrams in the SRS and
definitions of all terms and units of measure.
3. Consistency: The SRS is consistent if, and only if, no subset of individual
requirements described in its conflict. There are three types of possible conflict in the
SRS:
(1). The specified characteristics of real-world objects may conflicts. For example,
(a) The format of an output report may be described in one requirement as tabular but
in another as textual.
(b) One condition may state that all lights shall be green while another states that all
lights shall be blue.
(2). There may be a reasonable or temporal conflict between the two specified actions.
For example,
(a) One requirement may determine that the program will add two inputs, and another
may determine that the program will multiply them.
(b) One condition may state that "A" must always follow "B," while other requires that "A
and B" co-occurs.
(3). Two or more requirements may define the same real-world object but use different
terms for that object. For example, a program's request for user input may be called a
"prompt" in one requirement's and a "cue" in another. The use of standard terminology
and descriptions promotes consistency.
4. Unambiguousness: SRS is unambiguous when every fixed requirement has only one
interpretation. This suggests that each element is uniquely interpreted. In case there is a
method used with multiple definitions, the requirements report should determine the
implications in the SRS so that it is clear and simple to understand.
5. Ranking for importance and stability: The SRS is ranked for importance and stability
if each requirement in it has an identifier to indicate either the significance or stability of
that particular requirement.
Typically, all requirements are not equally important. Some prerequisites may be
essential, especially for life-critical applications, while others may be desirable. Each
element should be identified to make these differences clear and explicit. Another way
to rank requirements is to distinguish classes of items as essential, conditional, and
optional.
7. Verifiability: SRS is correct when the specified requirements can be verified with a
cost-effective system to check whether the final software meets those requirements.
The requirements are verified with the help of reviews.
8. Traceability: The SRS is traceable if the origin of each of the requirements is clear
and if it facilitates the referencing of each condition in future development or
enhancement documentation.
1. Backward Traceability: This depends upon each requirement explicitly referencing its
source in earlier documents.
2. Forward Traceability: This depends upon each element in the SRS having a unique
name or reference number.
The forward traceability of the SRS is especially crucial when the software product
enters the operation and maintenance phase. As code and design document is
modified, it is necessary to be able to ascertain the complete set of requirements that
may be concerned by those modifications.
9. Design Independence: There should be an option to select from multiple design
alternatives for the final system. More specifically, the SRS should not contain any
implementation details.
10. Testability: An SRS should be written in such a method that it is simple to generate
test cases and test plans from the report.
11. Understandable by the customer: An end user may be an expert in his/her explicit
domain but might not be trained in computer science. Hence, the purpose of formal
notations and symbols should be avoided too as much extent as possible. The
language should be kept simple and clear.
12. The right level of abstraction: If the SRS is written for the requirements stage, the
details should be explained explicitly. Whereas,for a feasibility study, fewer analysis can
be used. Hence, the level of abstraction modifies according to the objective of the SRS.
Concise: The SRS report should be concise and at the same time, unambiguous,
consistent, and complete. Verbose and irrelevant descriptions decrease readability and
also increase error possibilities.
Black-box view: It should only define what the system should do and refrain from
stating how to do these. This means that the SRS document should define the external
behavior of the system and not discuss the implementation issues. The SRS report
should view the system to be developed as a black box and should define the externally
visible behavior of the system. For this reason, the SRS report is also known as the
black-box specification of a system.
Conceptual integrity: It should show conceptual integrity so that the reader can merely
understand it. Response to undesired events: It should characterize acceptable
responses to unwanted events. These are called system responses to exceptional
conditions.
Verifiable: All requirements of the system, as documented in the SRS document, should
be correct. This means that it should be possible to decide whether or not requirements
have been met in an implementation.
The below figure illustrates how this example can be drawn as a decision tree. In
drawing the tree.
Advantages of decision trees
● Decision trees represent the logic of If-Else in a pictorial form.
● Decision trees help the analyst to identify the actual decision to be made.
● Decision trees are useful for expressing the logic when the value is variable
or action depending on a nested decision.
● It is used to verify the problems that involve a limited number of actions.
Decision Table
A Decision Table is a tabular representation of inputs versus rules/cases/test conditions.
It is a very effective tool used for both complex software testing and requirements
management. A decision table helps to check all possible combinations of conditions
for testing and testers can also identify missed conditions easily. The conditions are
indicated as True(T) and False(F) values.
A decision table shows the decision making logic and the corresponding actions taken in
a tabular or a matrix form. The upper rows of the table specify the variables or
conditions to be evaluated and the lower rows specify the actions to be taken when an
evaluation test is satisfied. A column in the table says a rule. A rule implies that if a
certain condition combination is true, then the corresponding action executed.
Links are used for decisions, while Nodes represent goals. Decision trees simplify the
knowledge acquisition process and are more natural than frames and rule knowledge
representation techniques.
Conditions included the sale amount (under $50) and whether the customer paid by
cheque or credit card. The four steps possible were to:
· Complete the sale after verifying the signature.
· Complete the sale with no signature needed.
· Communicate electronically with the bank for credit card authorization.
· Call the supervisor for approval.
The condition is simple if the user provides the correct username and password the
user will be redirected to the homepage. If any of the input is wrong, an error message
will be displayed.
Username (T/F) F T F T
Password (T/F) F F T T
Output (E/H) E E E H
Legend:
● T – Correct username/password
● F – Wrong username/password
● E – Error message is displayed
● H – Home screen is displayed
Interpretation:
● Case 1 – Username and password both were wrong. The user is shown an error
message.
● Case 2 – Username was correct, but the password was wrong. The user is shown
an error message.
● Case 3 – Username was wrong, but the password was correct. The user is shown
an error message.
● Case 4 – Username and password both were correct, and the user navigated to
the homepage
● Enter the correct username and correct password and click on login, and the
expected result will be the user should be navigated to the homepage
● Enter wrong username and wrong password and click on login, and the expected
result will be the user should get an error message
● Enter correct username and wrong password and click on login, and the expected
result will be the user should get an error message
● Enter wrong username and correct password and click on login, and the expected
result will be the user should get an error message
● When the system behavior is different for different inputs and not the same for a
range of inputs, both equivalent partitioning, and boundary value analysis won’t
help, but a decision table can be used.
● The representation is simple so that it can be easily interpreted and is used for
development and business as well.
● This table will help to make effective combinations and can ensure better
coverage for testing
● Any complex business conditions can be easily turned into decision tables
● In a case we are going for 100% coverage typically when the input combinations
are low, this technique can ensure the coverage.
Disadvantages of Decision Table Testing
The main disadvantage is that when the number of inputs increases the table will
become more complex
The cost estimation is a tool to estimate the planning, budgeting and resource
utilization for the software projects. Before cost estimation for a software project, we
will have known that what are the actual requirements for a project, what is the
complexity of those requirements, and other cost driver factors that affect the
development (like, product factor, project factor, personal factor& hardware
factor).These are the input to the cost estimation process. So, in general, the process
provides three responses. Such as Effort, Development Duration, and Resources
But in actually the SCE process follows on cost driver factors i.e. it will affect the
cost of the software. These factors are such as design methodology, memory
management, experienced skills, hardware requirements, software tools, risk
analysis, project complexity, project delay, size of project database, performance
parameter, virtual memory environment, etc.
nature with dependent factors (single parameter or multi parameters). Such as:
COCOMO is one of the most widely used software estimation models in the world.
This model is developed in 1981 by Barry Boehm to give estimation of number of
COCOMO predicts the efforts and schedule of software product based on size of
software.
Basic Model
Intermediate Model
Detailed Model
Organic mode In this mode, relatively simple, small software projects with a small team
are handled. Such team should have good application experience to less rigid
requirements.
Semi-detached projects In this class intermediate project in which team with mixed
experience level are handled. Such project may have mix of rigid and less than rigid
requirements.
Embedded projects In this class, project with tight hardware, software and operational
1. Basic Model
The basic COCOMO model estimate the software development effort using only Lines
of code
D is the development time in chronological months and KLOC is the estimated number
applications, since it can promote the integration between methodologies and specific
the benefits of incorporating accessibility during the software development process are
greater than the costs involved, as there is an increase in the number of users and value
added to the final product. Additionally, maintenance activities, generally expensive, can