# What are SRS?
Ans- SRS is a document created by system analyst after the requirements are
collected from various stakeholders.
SRS defines how the intended software will interact with hardware, external interfaces,
speed of operation, response time of system, portability of software across various
platforms, maintainability, speed of recovery after crashing, Security, Quality, Limitations
etc.
SRS should come up with following features:
• User Requirements are expressed in natural language.
• Technical requirements are expressed in structured language, which is used
inside the organization.
• Design description should be written in Pseudo code.
• Format of Forms and GUI screen prints.
• Conditional and mathematical notations for DFDs etc.
# What are the different types of SRS?
Ans-
Functional Requirements
Requirements, which are related to functional aspect of software fall into this category.
They define functions and functionality within and from the software system.
EXAMPLES -
• Search option given to user to search from various invoices.
• User should be able to mail any report to management.
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into this
category. They are implicit or expected characteristics of software, which users make
assumption of.
Non-functional requirements include -
• Security
• Logging
• Storage
• Configuration
• Performance
• Cost
• Interoperability
• Flexibility
• Disaster recovery
• Accessibility
User Interface requirements
UI is an important part of any software or hardware or hybrid system. A software is widely
accepted if it is -
• easy to operate
• quick in response
• effectively handling operational errors
• providing simple yet consistent user interface
A system is said be good if it provides means to use it efficiently. User interface
requirements are briefly mentioned below -
• Content presentation
• Easy Navigation
• Simple interface
• Responsive
• Consistent UI elements
# What are the characteristics of SRS?
Ans- Gathering software requirements is the foundation of the entire software
development project. Hence they must be clear, correct and well-defined.
A complete Software Requirement Specifications must be:
• Clear
• Correct
• Consistent
• Coherent
• Comprehensible
• Modifiable
• Verifiable
• Prioritized
• Unambiguous
• Traceable
• Credible source
# What are the major responsibilities of a software project manager?
Ans- A software project manager is a person who undertakes the responsibility of
executing the software project. A project manager closely monitors the development
process, prepares and executes various plans, arranges necessary and adequate
resources, maintains communication among all team members in order to address issues
of cost, budget, resources, time, quality and customer satisfaction.
Let us see few responsibilities that a project manager shoulders –
Managing People
• Act as project leader
• Liaison with stakeholders
• Managing human resources
• Setting up reporting hierarchy etc.
Managing Project
• Defining and setting up project scope
• Managing project management activities
• Monitoring progress and performance
• Risk analysis at every phase
• Take necessary step to avoid or come out of problems
• Act as project spokesperson
# Difference between black box testing Vs white box testing
Ans-
Criteria Black Box Testing White Box Testing
Black Box Testing is a software White Box Testing is a software
testing method in which the testing method in which the
internal structure/ design/ internal structure/ design/
Definition
implementation of the item implementation of the item
being tested is NOT known to being tested is known to the
the tester tester.
Mainly applicable to higher
Mainly applicable to lower
Levels levels of testing: Acceptance
levels of testing: Unit Testing
Applicable To Testing
Integration Testing
System Testing
Generally, independent Generally, Software
Responsibility
Software Testers Developers
Programming
Not Required Required
Knowledge
Implementation
Not Required Required
Knowledge
Basis for Test
Requirement Specifications Detail Design
Cases
# What is the difference between quality control and quality
assurance?
Ans-
Parameters Quality Assurance (QA) Quality Control (QC)
QA focuses on providing assurance
QC focuses on fulfilling the
Objective that the quality requested will be
quality requested.
achieved.
QA is the technique of managing QC is the technique to
Technique
quality. verify quality.
Involved in which QA is involved during the QC is not included during
phase? development phase. the development phase.
Program execution QA does not include the execution of QC always includes the
is included? the program. execution of the program.
Type of tool QA is a managerial tool. QC is a corrective tool.
Process/ Product-
QA is process oriented. QC is product oriented.
oriented
# What are the types of software maintenance?
Ans-
Following are some types of maintenance based on their characteristics:
• Corrective Maintenance - This includes modifications and updations done in
order to correct or fix problems, which are either discovered by user or concluded
by user error reports.
• Adaptive Maintenance - This includes modifications and updations applied to
keep the software product up-to date and tuned to the ever changing world of
technology and business environment.
• Perfective Maintenance - This includes modifications and updates done in order
to keep the software usable over long period of time. It includes new features,
new user requirements for refining the software and improve its reliability and
performance.
Preventive Maintenance - This includes modifications and updations to prevent future
problems of the software. It aims to attend problems, which are not significant at this
moment but may cause serious issues in future.
# What is CASE Tools?
CASE Tools stands for Computer-Aided Software Engineering. It is system software
that provides automated support for software process activities. It contains program
used to support software process operations such as Requirement Analysis, System
Modeling. Debugging and Testing.
# What are the 5 key roles as a project manager?
Ans-
Five key roles of a project manager are:
• Risk management
Identifying potential threats to the project and preparing strategies to minimize their
impact
• Project planning
Evaluating the problem and brainstorming solutions
• Stakeholder management
Forming good relationships with internal and external stakeholders through
communication and listening
• Budget management
Ensuring the project is given sufficient resources and stays within the established
budget
• Monitoring progress
Controlling various aspects of the project's progress, such as the team, pace of work,
and risks
Other roles and responsibilities of a project manager include: communication
management, quality management, and time management.
# What are eliciting requirements in software engineering?
Ans- The process of investigating and learning about a system’s requirements from
users, clients, and other stakeholders is known as requirements elicitation.
Requirements elicitation in software engineering is perhaps the most difficult, most
error-prone, and most communication-intensive software development.
1. Requirement Elicitation can be successful only through an effective customer-
developer partnership. It is needed to know what the users require.
2. Requirements elicitation involves the identification, collection, analysis, and
refinement of the requirements for a software system.
3. Requirement Elicitation is a critical part of the software development life cycle and
is typically performed at the beginning of the project.
4. Requirements elicitation involves stakeholders from different areas of the
organization, including business owners, end-users, and technical experts.
Software Engineering
Mid Term Suggestion Solution
# Definition of Software Engineering by IEEE?
Ans:-IEEE defines software engineering as: The application of a systematic, disciplined,
quantifiable approach to the development, operation and maintenance of software.
# Software Evolution Laws?
Ans:- There are 3 types of Software Evolution Laws
• S-type (static-type) - This is a software, which works strictly according to defined
specifications and solutions. The solution and the method to achieve it, both are
immediately understood before coding. For example, calculator program for
mathematical computation.
• P-type (practical-type) - This is a software with a collection of procedures. In this
software, the specifications can be described but the solution is not obvious instantly.
For example, gaming software.
• E-type (embedded-type) - This software has a high degree of evolution as there are
various changes in laws, taxes etc. in the real world situations. For example, Online
trading software.
# Characteristics of good software.
Ans:-A software product can be judged by what it offers and how well it can be used.
This software must satisfy on the following grounds:
• Operational • Transitional • Maintenance
Operational :
This tells us how well software works in operations. It can be measured on:
• Budget • Usability • Efficiency • Correctness • Functionality • Dependability • Security •
Safety
Transitional :
This aspect is important when the software is moved from one platform to another:
• Portability • Interoperability • Reusability • Adaptability.
Maintenance:
This aspect briefs about how well a software has the capabilities to maintain itself in the
ever-changing environment:
• Modularity • Maintainability • Flexibility • Scalability.
# Features of Water Fall Model.
Ans:-
1) A Water Fall Model is easy to flow.
2)It can be implemented for any size of project.
3)Every stage has to be done separately at the right time so you cannot jump stages.
4)Documentation is produced at every stage of a waterfall model allowing people to
understand what has been done.
5)Testing is done at every stage.
# Chart of Water Fall Model
Ans:-
# Advantages of Water Fall Model.
Ans:-
The water fall model is easy to implementation.
➢ For implementation of small systems water fall model is use full.
➢ The project requires the fulfillment of one phase, before proceeding to the next.
➢ It is easier to develop various software through this method in short span of time.
# Difference between verification and validation.
Ans-
Software Validation
Validation is process of examining whether or not the software satisfies the user
requirements. It is carried out at the end of the SDLC. If the software matches
requirements for which it was made, it is validated.
• Validation ensures the product under development is as per the user
requirements.
• Validation emphasizes on user requirements.
Software Verification
Verification is the process of confirming if the software is meeting the business
requirements, and is developed adhering to the proper specifications and
methodologies.
• Verification ensures the product being developed is according to design
specifications.
• Verifications concentrates on the design and system specifications.