0% found this document useful (0 votes)
22 views

Sen CHP 2

The document discusses software requirement engineering. It defines software requirement specification and states its need to provide an overview of the software product and its parameters, goals, target audience, and interface requirements. It also lists the characteristics of SRS and planning principles. Four core principles of software engineering are described, including keeping designs simple and maintaining a clear vision. Four communication principles are also stated.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Sen CHP 2

The document discusses software requirement engineering. It defines software requirement specification and states its need to provide an overview of the software product and its parameters, goals, target audience, and interface requirements. It also lists the characteristics of SRS and planning principles. Four core principles of software engineering are described, including keeping designs simple and maintaining a clear vision. Four communication principles are also stated.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

SEN CHP 2: Software Requirement Engineering

1. Define software requirement specification


Ans: Software requirement specification (SRS) forms the basis for
agreement between customers and development organization on what the
software product is expected to do. Complete descriptions of the functions
that are expected from the software are specified in the SRS. This will help
the end users to verify whether the software meets the specified needs or
not.
2. State need of software requirement specification (SRS).
Ans: The need of SRS document is to provide
 A detailed overview of software product, its parameters and goals.
 The description regarding the project's target audience and its user
interface hardware and software requirements.
 How client, team and audience see the product and its functionality.
3. State the characteristics of SRS.
Ans: Characteristics of SRS are :
• Correct
• Complete
• Unambiguous
• Verifiable
• Consistent
• Ranked for importance and/or stability
• Modifiable
• Traceable
4. List any four planning principles.
Ans: 1.Understanding the scope of the project
2. Involve stakeholders in the planning activity
3.Planning is iterative
4.Planning should be based on the information available
5. Consider the risk as the plan is defined
6. Being realistic
7. Adjust granularity as the plan is defined
8. Define how to ensure quality
9. Describe how to accommodate change
10. Track and monitor the plan frequently and make adjustments if
required
5. State and describe any four core principles.
Or
Enlist core principles of software engineering practice.
Or
List and explain any four principles of “Core Principles” of Software
Engineering.
Or
Describe any four core principles of software engineering practices.
Ans: The core principles are
1. The reason it all exists:
The software system exists in the organization for providing value to its
users with, the availability of hardware and software requirements.
Hence all the decisions should be made by keeping this in mind.
2. Keep it Simple, Stupid (KISS):
Software design is not a haphazard process. There are many factors
considered in the design effort. The design should be straight forward
and as simple as possible. This facilitates having a system which can be
easily understood and easy to maintain. Simple doesn‘t mean quick and
dirty. In fact, it requires lot of thought and effort to simplify multiple
iterations of a complex task. This results in the advantage that the
software is less error prone and easily maintainable.
3. Maintain the vision:
A clear vision is essential for the success of a software project. If the
vision is missing, the project may end up of two or more minds. The
team leader has a critical role to play for maintaining the vision and
enforce compliance with the help of the team members.
4. What you produce, others will consume:
The design and implementation should be done by keeping in mind the
user‘s requirements. The code should permit the system extension.
Some other programmers debugging the code should not have any
errors and satisfying all the user needs.
5. Be open to future:
The system with the long lifetime has more value. The industry standard
software systems induce for longer. The system should be ready to
accept and adapt to new changes. The systems which are designed by
keeping in mind the future needs will be more successful and acceptable
to the users.

6. Plan ahead for reuse:


Reuse saves time and efforts. The reuse of code and design is one of the
advantages of object oriented technologies. The reuse of parts of the
code helps in reducing the cost and time evolved, in the new software
development.
7. Think:
Placing clear and complete thought before action almost always
produces better results. With proper thinking, we are most likely to do it
right. We also gain knowledge about how to do it right again. It becomes
a valuable experience, even if something goes wrong, as there was
adequate thought process. Hence when clear thought has gone into the
system, value comes out, this provides potential rewards.

6. Describe four principles of good planning.


Ans: Principle 1. Understand the scope of the project.
It’s impossible to use a road map if you don’t know where you‘re going.
Scope provides the software team with a destination.
Principle 2. Involve stakeholders in the planning activity.
Stakeholders define priorities and establish project constraints. To
accommodate these realities, software engineers must often negotiate
order of delivery, time lines, and other project-related issues.
Principle 3. Recognize that planning is iterative.
A project plan is never engraved in stone. As work begins, it is very likely
that things will change. As a consequence, the plan must be adjusted to
accommodate these changes. In addition, iterative, incremental process
models dictate replanning after the delivery of each software increment
based on feedback received from users.
Principle 4. Estimate based on what you know.
The intent of estimation is to provide an indication of effort, cost, and task
duration, based on the team‘s current understanding of the work to be
done. If information is vague or unreliable, estimates will be equally
unreliable.
Principle 5.Consider risk as you defines the plan.
If you have identified risks that have high impact and high probability,
contingency planning is necessary. In addition, the project plan (including
the schedule) should be adjusted to accommodate the likelihood that one
or more of these risks will occur.
Principle 6. Be realistic.
People don‘t work 100 percent of every day. Noise always enters into any
human communication. Omissions and ambiguity are facts of life. Change
will occur. Even the best software engineers make mistakes. These and
other realities should be considered as a project plan is established.
Principle 7.Adjust granularity as you defines the plan.
Granularity refers to the level of detail that is introduced as a project plan is
developed. A high-granularity plan provides significant work task detail that
is planned over relatively short time increments (so that tracking and
control occur frequently). A low-granularity plan provides broader work
tasks that are planned over longer time periods. In general, granularity
moves from high to low as the project time line moves away from the
current date. Over the next few weeks or months, the project can be
planned in significant detail. Activities that won‘t occur for many months do
not require high granularity (too much can change).
Principle 8. Define how you intend to ensure quality.
The plan should identify how the software team intends to ensure quality. If
technical reviews are to be conducted, they should be scheduled. If pair
programming is to be used during construction, it should be explicitly
defined within the plan.
Principle 9. Describe how you intend to accommodate change.
Even the best planning can be obviated by uncontrolled change. You should
identify how changes are to be accommodated as software engineering
work proceeds. For example, can the customer request a change at any
time? If a change is requested, is the team obliged to implement it
immediately? How is the impact and cost of the change assessed?
Principle 10.Track the plan frequently and make adjustments as required.
Software projects fall behind schedule one day at a time. Therefore, it
makes sense to track progress on a daily basis, looking for problem areas
and situations in which scheduled work does not conform to actual work
conducted. When slippage is encountered, the plan is adjusted accordingly.

7. Describe any four principles of communication for software engineering.


Or
State and describe any six communication principles.
Ans: Principle 1 Listen:
 Try to focus on the speaker‘s words, rather than formulating your
response to those words.
 Ask for clarification if something is unclear, but avoid constant
interruptions.
 Never become contentious in your words or actions (e.g., rolling your eyes
or shaking your head) as a person is talking.
Principle 2 Prepare before you communicate:
 Spend the time to understand the problem before you meet with others.
If necessary, perform some research to understand business domain.
 If you have responsibility for conducting a meeting, prepare an agenda in
advance of the meeting.
Principle 3 someone should facilitate the activity:
 Every communication meeting should have a leader (a facilitator)
 To keep the conversation moving in a productive direction,
 To mediate any conflict that does occur, and
 To ensure that other principles are followed.
Principle 4 Face-to-face communication is best:
 It usually works better when some other representation of the relevant
information is present.
 For example, a participant may create a drawing /document that serve as
a focus for discussion.
Principle 5 Take notes and document decisions:
 Someone participating in the communication should serve as a recorder
and write down all important points and decisions.
Principle 6 Strive for collaboration:
 Collaboration occurs when the collective knowledge of members of the
team is used to describe product or system functions or features.
 Each small collaboration builds trust among team members and creates a
common goal for the team.
Principle 7 Stay focused; modularize your discussion:
 The more people involved in any communication, the more likely that
discussion will bounce from one topic to the next.
 The facilitator should keep the conversation modular; leaving one topic
only after it has been resolved.
Principle 8 If something is unclear, draw a picture:
 Verbal communication goes only so far.
 A sketch or drawing can often provide clarity when words fail to do the
job.
Principle 9
(a) Once you agree to something, move on.
(b) If you can’t agree to something, move on.
(c) If a feature or function is unclear and cannot be clarified at the moment,
move on.
The people who participate in communication should recognize that many
topics require discussion and that moving on is sometimes the best way to
achieve communication agility.
Principle 10 Negotiation is not a contest or a game: It works best when both
parties win.
 There are many instances in which you and other stakeholders must
negotiate functions and features, priorities, and delivery dates.
 If the team has collaborated well, all parties have a common goal. Still,
negotiation will demand compromise from all parties.
8. State and describe any four deployment principles.
Ans: Principle 1: Manage customer’s expectations.
It always happens that customer wants more than he has stated earlier as
his requirements. It may be the case that customer gets disappointed, even
after getting all his requirements satisfied. Hence at time of delivery
developer must have skills to manage customers’ expectations.
Principle 2: Assembly and test complete delivery package.
It is not the case that the deliverable package is only software. The
customer must get all supporting and essential help from developer’s side.
Principle 3: Record-keeping mechanism must be established for customer
support.
Customer support is important factor in deployment phase. If proper
support is not provided, customer will not be satisfied. Hence support
should be well planned and with record-keeping mechanism.
Principle 4: Provide essential instructions, documentations and manual.
Many times, developer thinks ―when project is successful deliverable part
is only working program. But realty is that working program is just part of
software product. Actual project delivery includes all documentations, help
files and guidance for handling the software by user.
Principle 5: Don’t deliver any defective or buggy software to the customer.
In incremental type of software, software organizations may deliver some
defective software to the customer by giving assurance that the defects will
be removed in next increment.

9. State software engineering practices and its importance.


Ans: Software Engineering practices and its importance:
Software Engineering Practices:
1. Understand the problem (communication and analysis).
2. Plan a solution (modeling and software design).
3. Carry out the plan (code generation).
4. Examine the result for accuracy (testing and quality assurance).
Understand the problem:
• Who has a stake in the solution to the problem? That is, who are the
stakeholders?
• What are the unknowns? What data, functions, features, and behavior
are required to properly solve the problem?
• Can the problem be compartmentalized? Is it possible to represent
smaller problems that may be easier to understand? Can the problem be
represented graphically? Can an analysis model be created?
Plan the solution:
• Have you seen similar problems before? Are there patterns that are
recognizable in a potential solution? Is there existing software that
implements the data, functions, features, and behavior that are required?
• Has a similar problem been solved? If so, are solutions readily apparent
for the subproblems?
• Can you represent a solution in a manner that leads to effective
implementation? Can a design model be created?
Carry out the plan:
• Does the solution confirm to the plan? IS source code traceable to the
design model?
• Is each component part of the solution probably correct? Have the design
and code been received, or better, has correctness proof been applied to
the algorithm?
Examine the result:
• Is it possible to test each component part of the solution? Has a
reasonable testing strategy been implemented?
• Does the solution produce results that confirm to the data? Functions,
features and behavior that are required? Has the software been validated
against all stakeholder requirements?
Importance of Software Engineering:
The importance of software engineering lies in the fact that a specific piece
of Software is required in almost every industry, every business, and
purpose. As time goes on, it becomes more important for the following
reasons.
1. Reduces Complexity:
Dealing with big Software is very complicated and challenging. Thus to
reduce the complications of projects, software engineering has great
solutions. It simplifies complex problems and solves those issues one by
one.
2. Handling Big Projects:
Big projects need lots of patience, planning, and management, which
you never get from any company. The company will invest its resources;
therefore, it should be completed within the deadline. It is only possible
if the company uses software engineering to deal with big projects
without problems.
3. To Minimize Software Costs:
Software engineers are paid highly as Software needs a lot of hard work
and workforce development. These are developed with the help of a
large number of codes. But programmers in software engineering
project all things and reduce the things which are not needed. As a result
of the production of Software, costs become less and more affordable
for Software that does not use this method.
4. To Decrease Time:
If things are not made according to the procedures, it becomes a huge
loss of time. Accordingly, complex Software must run much code to get
definitive running code. So it takes lots of time if not handled properly.
And if you follow the prescribed software engineering methods, it will
save your precious time by decreasing it.
5. Effectiveness:
Making standards decides the effectiveness of things. Therefore a
company always targets the software standard to make it more
effective. And Software becomes more effective only with the help of
software engineering.
6. Reliable Software:
The Software will be reliable if software engineering, testing, and
maintenance are given. As a software developer, you must ensure that
the Software is secure and will work for the period or subscription you
have agreed upon.
10.Enlist requirement Gathering and Analysis for web based project for
registering candidates for contest.
Ans: Requirement gathering includes suggestions and ideas for ways to best
capture the different types of requirement (functional, system, technical,
etc.) during the gathering process.
1. Functional requirements
The functional requirements are the requirements that will enable
solving the real world problem. The web based project must be able
to register the candidates for contest.
2. Non-functional requirements
These requirements aim at providing support, security and facilitate
user interaction segment of the website.
 The project must enable the candidates to safely enter their
passwords and other biometric information.
 There must be no repetition in registration of candidates i.e the
candidates must be registered only once.
3. Business requirements:
They are high-level requirements that are taken from the business
case from the projects. For eg:-

4. Architectural and Design requirements:


These requirements are more detailed than business requirements. It
determines the overall design required to implement the business
requirement.
 The web based project must be supported by different operating
systems , PC and mobile compatibility etc.
 The hardware must be integrated so as to accept the fingerprint
details of a candidate and register him in the system.
 The database of the project must be updated.
5. System and Integration requirements:
At the lowest level, we have system and integration requirements. It
is detailed description of each and every requirement. It can be in
form of user stories which is really describing everyday business
language. The requirements are in abundant details so that
developers can begin coding.
6. Documenting the requirement using traceability matrix
A Traceability Matrix is a document that co-relates any two baseline
documents that require a many-to-many relationship to check the
completeness of the relationship. It is used to track the requirements
and to check the current project requirements are met.

11.Explain six function of requirement engineering process.


Ans: Requirements engineering (RE):
Requirements engineering (RE) is the process of defining, documenting, and
maintaining requirements in the engineering design process.
The process of collecting the software requirement from the client then
understand, evaluate and document it is called as requirement engineering.
Requirement engineering constructs a bridge for design and construction.

Requirement engineering consists of seven different tasks as follow:

1. Inception
 Inception is a task where the requirement engineering asks a set of
questions to establish a software process.
 In this task, it understands the problem and evaluates with the proper
solution.
 It collaborates with the relationship between the customer and the
developer.
 The developer and customer decide the overall scope and the nature of
the question.
2. Elicitation
Elicitation means to find the requirements from anybody.
The requirements are difficult because the following problems occur in
elicitation.
Problem of scope: The customer give the unnecessary technical detail
rather than clarity of the overall system objective.
Problem of understanding: Poor understanding between the customer and
the developer regarding various aspect of the project like capability,
limitation of the computing environment.
3. Elaboration
 In this task, the information taken from user during inception and
Elicitation are expanded and modified in elaboration.
 Its main task is developing pure model of software using functions,
feature and constraints of a software.
4. Negotiation
 It is discussion on financial and other commercial issues.
 In negotiation task, a software engineer decides the how will the project
be achieved with limited business resources.
 To create rough guesses of development and access the impact of the
requirement on the project cost and delivery time.
5. Specification
 In this task, the requirement engineer constructs a final work product.
 The work product is in the form of software requirement specification.
 The requirement are formalize in both graphical and textual formats.
6. Validation
 The work product is built as an output of the requirement engineering
and that is accessed for the quality through a validation step.
 The formal technical reviews from the software engineer, customer and
other stakeholders helps for the primary requirements validation
mechanism.
7. Requirement management
 It is a set of activities that help the project team to identify, control and
track the requirements and changes can be made to the requirements at
any time of the on-going project.
 These tasks start with the identification and assign a unique identifier to
each of the requirement.
 After finalizing the requirement traceability table is developed.

12.Identify and enlist requirement for given modules of employee


management software.
Or
Identify and enlist requirement for given modules of employee
management software : i) Employee detail ii) Employee salary iii)
Employee performance.
Ans: i. Employee detail
ii. Employee salary
iii.Employee performance
This is with perspective of employee management software. Requirements
for following modules will be as
i. Employee details:
a. Getting information about the customer
b. Updation of employee details (department, change of address, emp_code
etc)
c. Assignment of tasks , duties and responsibilities.
d. Recording of employee attendance.
ii. Employee salary:
a. Salary calculation
b. Allowances, special bonus calculation and approval
c. Tax statement/certificate
d. Apply loan/approvals
iii. Performance:
a. Recording annual performance
b. Details about parameters for performance appraisal
c. Analysis performance and determining hike in payment.
13.State requirements for given modules of online shopping system.
i) Order module
ii) Accountant module
iii) Categories module
Ans: This is with perspective of online shopping system. Requirements for
following modules will be as
i) Order module :
a. Getting name of Item
b. Getting the Item id
c. Getting information of item price
d. Getting information of quantity of item
e. Information of availability of Item
ii) Accountant module :
a. Getting the information of list of items purchased
b. Bill generation
c. Bill calculation
d. Getting information of item price
e. Generating the bill identification numbers
iii) Categories module :
a. Getting information of number of categories
b. Information of sub-categories of product
c. Getting information on brands of various categories
d. Information about the sizes in categories

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy