Q. What is
Software Engineering?
Ans:
Software
engineering is defined as the function of the systematic, disciplined,
quantified approach to the development, operations, and maintenance of
software.
Q. Define Framework.
Ans:
A framework is
the Code Skeleton that can be fleshed out with particular classes or
functionality and designed to address the specific problem at hand.
Q. What are
the characteristics of the software?
Ans:
Characteristics
of the software are:
Ø
Software is
engineered, not manufactured.
Ø
Software does
not wear out.
Ø
Most software
is custom-built rather than being assembled from components.
Q. What are the various categories of
software?
Ans:
The various
categories of software are:
Ø
System software
Application.
Ø
Software
Engineering / Scientific.
Ø
Software
Embedded software.
Ø
Web
Applications.
Ø
Artificial
Intelligence software.
Q. What are
the challenges in software?
Ans:
The challenges
in the software are:
Ø
Copying with
legacy systems.
Ø
Heterogeneity
challenge.
Ø
Delivery times
challenge.
Q. What are
the elements to be considered in the System Model Construction?
Ans:
Elements to be
considered in the System Model Construction are:
- Assumption
- Simplification
- Limitation
- Constraints
- Preferences
Q. What does a System Engineering Model
accomplish?
Ans:
System
Engineering Model accomplishes the following:
Ø
Define
Processes that serve needs of view
Ø
Represent
behavior of process and assumption
Ø
Explicitly
define Exogenous and Endogenous Input
Ø
It represents
all Linkages that enable an engineer to understand aspect better.
Q. Define
Software process.
Ans:
A software
process is defined as the structured set of activities that are required to
develop the software system.
Q. What are the internal milestones?
Ans:
They are the
significant and quantifiable attributes of progress. They are the standard
methods in the project which provide that we are on the right track. They are
under the authority of the project manager.
Q. What is the limitation of RAD Model?
Ans:
Limitation of
RAD Model are:
Ø
It requires a
sufficient number of Human Resources to create enough number of teams.
Ø
Developers and
Users are not committed,the system fails.
Ø
It is not
Properly Modularized building component may be Problematic.
Ø
It is not
applicable when there is more possibility for Technical Risk.
Q. What are
the disadvantages of classic life cycle model?
Ans:
Disadvantages
of the classic life cycle model are:
Ø
Real projects
rarely follow the sequential flow. Iteration always occurs and creates a
problem.
Ø
Challenging
for the customer to state all requirements.
Ø
The working
version of the program is not available. So the customer must have patience.
Q. What are the merits of the incremental
model?
Ans:
The merits of
the incremental model are:
Ø
The
incremental model can be accepted when there is less number of people include
in the project.
Ø
Technical
risks can be handle with each increment.
Ø
For a minimal
period, at least the core product can be delivered to the user.
Q. What is the disadvantage of the spiral
model?
Ans:
The
disadvantage of the spiral model are:
1. It is based on user communication. If the interface is
not proper, then the software product which gets created will not be the up to
the mark.
2. It demands a vast risk assessment. If the risk assessment
is completed correctly, then only the successful product can be obtained.
Q. Name the Evolutionary process Models.
Ans:
Evolutionary
powers models are:
Ø
Incremental
model
Ø
Spiral model
Ø
WIN-WIN spiral
model
Ø
Concurrent
Development
Q. Define Software Prototyping.
Ans:
Software
prototyping is represented as rapid software development for validating the
requirements.
Q. What are the benefits of prototyping?
Ans:
The benefits
of prototyping are:
- Prototype services as a basis
for developing system specification.
- Design quality can be revised.
- The system can be managed
easily.
- Development efforts may get
decreased.
- System usability can be
upgraded.
Q. What are the prototyping methods in
software process?
Ans:
The
prototyping methods in the software process are:
Ø
Evolutionary
prototyping: In this method of system development, the initial
prototype is arranged, and it is then precise through the number of phases to
the final stage.
Ø
Throw-away
prototyping: Using this method, a rough practical implementation
of the system is produced. The requirement issues can be identified from this
implementation. It is then rejected. System is then developed using some
various engineering paradigm.
Q. What are the advantages of evolutionary
prototyping?s
Ans:
The advantages
of evolutionary prototyping are:
- Fast delivery of the working
system.
- User is contained while
developing the system.
- The more useful system can be
delivered.
- Specification, design and
implementation work in equivalent manner.
Q. What are
the various Rapid prototyping techniques?
Ans:
The various
rapid prototyping techniques are:
- Dynamic high-level language
development.
- Database programming.
- Component and application
assembly.
Q. What are the uses of User-Interface
Prototyping?
Ans:
This
prototyping is used to pre-specify the looks and effectively feel of customer
interface.
Q. What is the principle of the prototype
model?
Ans:
A prototype is
built to quickly determine to the user what the product would look like. The
only minimal functionality of the actual product is supported during the
prototyping phase.
Q. Define System Context Diagram (SCD)?
Ans:
System Context
Diagram (SCD):
Ø
Establish data
boundary between System being implemented and Environment in which system
operates.
Ø
Describes all
external producers, external consumers, and entities that communicate through
the customer interface.
Q. Define Quality Function Deployment (QFD)?
Ans:
Quality
Function Deployment (QFD) is a method that translates the needs of the user
into a technical requirement. It concentrates on maximizing user satisfaction
from the software engineering process.
Q. What is Requirement Engineering?
Ans:
Requirement
engineering is the process of establishing services which the user required
from the system and constraint under which it operates and is developed.
Q. What is
ERD?
Ans:
Entity
Relationship Diagram is the graphical description of the object relationship
pair. It is primarily used in the database application.
Q. What is
DFD?
Ans:
Data Flow
Diagram depicts the data flow and the transforms which are applied to the data
as it moves from input to output.
Q. What is a state transition diagram?
Ans:
State
transition diagram is a collection of states and events. The events cause the
operation to change its state. It also describes what actions are to be taken
on the occurrence of particular events.
Q. What is Software Quality Assurance?
Ans:
Software
Quality Assurance is a set of auditing and documenting functions that assess
the effectiveness and completeness of quality control activities.
Q. What is the
use of CMM?
Ans:
Software
Quality means Conformance to state functional explicitly and performance
requirements, explicitly documented development standards, inherent
characteristics expected for professionally developed software.
Q. What is coupling?
Ans:
Coupling is
the significant measure of the degree to which classes are linked to one
another. Coupling should be kept as low as possible.
Q. What is cohesion?
Ans:
Cohesion is
the indication of the relative functional strength of a module. It is a natural
extension of Information Hiding and Performs a single task, requiring little
integration with other components.
Q. Define
Refactoring.
Ans:
Refactoring
means changing a software system in a way that does not alter the external
behavior of code.
Q. What is Software Architecture?
Ans:
Software
Architecture means the overall structure of the software and how that software
provides conceptual integrity for the system.
Q. Define
Stamp coupling.
Ans:
When a portion
of the data structure is passed via the module interface, then it is called as
stamp coupling.
Q. Define common coupling.
Ans:
When several
modules reference a global data area, then the coupling is called common
coupling.
Q. Define temporal cohesion.
Ans:
When a module
contains tasks that are related by the fact that all must be executed within
the same period, then it is termed as temporal cohesion.
Q. Define metrics.
Ans:
Metrics are
defined as the degree to which a system component or process possesses a given
attribute.
Q. What is COCOMO model?
Ans:
Constructive
Cost Model is a cost model, which gives the estimate of several staff-months it
will take to develop the software product.
Q. What is the
purpose of the timeline chart?
Ans:
The objective
of the timeline chart is to emphasize the scope of the individual task. Hence
set of functions are given as input to the timeline chart.
Q. Define Smoke Testing?
Ans:
Smoke testing
is Integration Testing and frequently used when software products are being
developed.
Q. What are the benefits of Smoke Testing?
Ans:
Benefits of
doing Smoke Testing are:
Ø
Integration
Risk is minimized.
Ø
Quality of
end-product is improved.
Ø
Error
diagnosis and Correction are simplified.
Ø
Progress is
easy to assess.
Q. What are the important categories of software?
Ans:
Ø System
software
Ø Application
software
Ø Embedded
software
Ø Web
Applications
Ø Artificial
Intelligence software
Ø Scientific
software.
Q.
What is the main difference between a computer program and computer software?
Ans:
A
computer program is a piece of programming code. It performs a well-defined
task. On the other hand, the software includes programming code, documentation
and user guide.
Q.
Name two tools which are used for keeping track of software requirements?
Ans:
There
many l ways to keep track of requirements.
Two
commonly used are:
- Make a
requirements specifications document to list all of the requirements.
- Create an
excel sheet the list down the requirement, type, dependency, priority,
etc.
Q.
What is the main difference between a stubs, a mock?
Ans:
A
stub is a minimal implementation of an interface which generally returns
hardcoded data while mock usually verifies outputs against expectations. Those
expectations are set in the test.
Q.
What language do you like to write programming algorithms?
Ans:
Every
developer has their views when it comes to the programming language choices.
Though, one should prefer high-level languages because they are dynamic. Like C
and C++ languages.
Q. What is computer software?
Ans:
Computer
software is a package which includes a software program, its documentation, and
user guide on how to use the software.
Q.
According to you which SDLC model is the best?
Ans:
There,
is no such ranking, as SDLC Models are adopted as per the need for the
development process. It may differ software-to-software.
Q.
Who is software project manager? What is his role?
Ans:
Ø
A software project manager is a
person responsible for managing the software development project.
Ø The
project manager is doing the project planning, monitoring the progress,
communication. He or she also manages risks and resources to deliver the
project within time, cost, and quality constraints.
Q.
What is mean by software scope?
Ans:
Ø
Software scope is a well-defined
boundary. It includes all kind of activities that are done to develop and
deliver the software product.
Ø
The software scope defines all
functionalities and artifacts to be delivered as a part of the software. The
scope also identifies what the product will do? What is not the part of the
project? What is project estimation?
Ø
This process is helpful to
estimate various aspects of the software product. This estimation can be
decided either consulting experts or by using pre-defined formulas.
Q.
How to find the size of a software product?
Ans:
The
size of software product can be calculated using by following two methods
- Counting
the lines of delivered code
- Counting
delivered function points
Q.
What are function points?
Ans:
Function
points are the features which are provided by the software product. It is
considered as a most important measurement for software size.
Q.
What are software project estimation techniques available?
Ans:
Most
widely used estimation techniques are:
- Decomposition
technique
- Empirical
technique
Q. What is Software configuration management?
Ans:
Ø
Software configuration management
is a process of tracking and controlling changes that happen in the software.
Ø
Change control is a function
which ensures that all changes made into the software system are consistent and
created using organizational rules and regulations.
Q.
How can you measure project execution?
Ans:
We
can measure project execution using Activity Monitoring, Status Reports, and
Milestone Checklists.
Q.
Tell me about some project management tools.
Ans:
There
are many types of management tools used as per the need for a software project.
Some of them are Pert Chart, Gantt Chart, Resource Histogram, Status Reports,
etc.
Q.
What are software requirements?
Ans:
Software
requirements are a functional description of a proposed software system. It is
assumed to be the description of the target system, its functionalities, and
features.
Q.
What is feasibility study?
Ans:
It
is a measure to find out how practical and beneficial the software project
development will prove to the organization. The software analyzer conducts a
study to know the economic, technical and operational feasibility of the
project.
1.
Economic: It includes the cost of training,
cost of additional and tools and overall estimation of costs and benefits of
the project.
2.
Technical: It evaluate technical aspect. Is
it possible to develop this system? Assessing the suitability of machine(s) and
OS on which software will execute, knowledge of the software development and
tools available for this project.
3.
Operational: Here the analyst need to assess
that the organization will able to adjust smoothly to the changes done as per
the demand for the project. Is the problem worth solving at the estimated cost?
After,
studying all this the final feasibility report is created.
Q.
What are functional and non-functional requirements?
Ans:
Functional
requirements are functional features which are expected by users from the
proposed software product.
Non-functional
requirements are related to security, performance, look, and feel of the user
interface.
Q.
What is software metric?
Ans:
Software
Metrics offers measures for various aspects of software process which are
divided into:
1.
Requirement metrics: Length
requirements, completeness
2.
Product metrics: Number of coding
Lines, Object-oriented metrics, design and test metrics.
Q.
What is modularization?
Ans:
Modularization
is a technique which is used for dividing a software system into various
discreet modules. That is expected to carry out the tasks independently.
Q.
What is cohesion?
Ans:
Cohesion
is a measure that defines the intra-dependability among the elements of the
module.
Q.
Mentions some software analysis & design tools?
Ans:
Some
of the most important software analysis and designing tools are:
Ø Data
Flow Diagrams
Ø Structured
Charts
Ø Structured
English
Ø Data
Dictionary
Ø Hierarchical
Input Process Output diagrams
Ø Entity
Relationship Diagrams and Decision tables
Q.
What is mean by level-0 Data flow diagram?
Ans:
Highest
abstraction level is called Level 0 of DFD. It is also called context level
DFD. It portrays the entire information system as one diagram.
Q.
What is the major difference between structured English and Pseudo Code?
Ans:
Structured
English is native English language. It is used to write the structure of a
program module. It uses programming language keywords. On the other hand,
Pseudo Code is more like to the programming language without syntax of any
specific language.
Q.
What is structured design?
Ans:
Structured
design is a conceptualization of problem. It also called solution design and
which is based on ‘divide and conquer’ strategy.
Q.
What is functional programming?
Ans:
It
is a programming method, which uses the concepts of a mathematical function. It
provides means of computation as mathematical functions, which also produces results
irrespective of program state.
Q.
What is Quality Assurance vs. Quality Control?
Ans:
Quality
Assurance checks if proper process is followed while developing the software
while Quality Control deals with maintaining the quality of software product.
Q.
What are CASE tools?
Ans:
CASE
means Computer Aided Software Engineering. They are set of automated software
application programs, which are used to support, enhance and strengthen the
SDLC activities.
Q.
Which process model removes defects before software get into trouble?
Ans:
Clean
room software engineering method removes defects before software gets into
trouble.
Q.
Solve this problem
Ans:
Ø
There are twenty different socks
of two types in a drawer in one dark room. What is the minimum number of socks
you need to take to ensure you have a matching pair?”
Ø If
you pick up three socks, they may be of the same type even if the odds are 50%.
Odds never an equal reality. Therefore, the only way to ‘ensure you have a
matching pair’ is to pick up at least 11 number of shocks.
Q.
How you can make sure that your written code which can handle various kinds of
error situation?
Ans:
I
can write tests that define the expected error situations.
Q.
Explain the differences between a Thread and a Process?
Ans:
A
process is instance of the computer program.In a single program it is possible
to have one or more threads.
Q.
Tell me the difference between an EXE and a DLL?
Ans:
An
exe is an executable program while a DLL is a file that can be loaded and
executed by programs dynamically. It is an external code repository for
programs. As both are different programs, reuse the same DLL instead of having
that code in their file. It also reduces required storage space.
Q.
What is strong-typing and weak-typing? Which is preferred? Why?
Ans:
Strong
typing checks the types of variables at compile time. On the other hand, weak
typing checks the types of the system at run-time. Among them, Strong typing is
always preferred because it minimizes the bugs.
Q.
Describe the difference between Interface-oriented, Object-oriented and
Aspect-oriented programming.
Ans:
Ø Interface
programming is contract based.
Ø Object-oriented
is a way to write granular objects which have a single purpose.
Ø Aspect
Oriented Programming is to segregate the code in such a manner that various
objects carry the main tasks, and the subsidiary tasks are carried by
independent objects.
Q.
Why using catch (exception) is always a bad idea?
Ans:
It
is a bad idea because:
- As there
is no variable defined, it is not possible to read the exception
- It’s good
to use an exception when you have known exception types.
Q.
What is software re-engineering?
Ans:
It
is a process of software development which is done to improve the
maintainability of a software system.
Q.
Describe the software development process in brief:
Ans:
The
software development is a life cycle is composed of the following stages:
Ø Requirement
analysis
Ø Specification
Ø Software
architecture
Ø Implementation
Ø Testing
Ø Documentation
Ø Training
and support
Ø Maintenance
Q.
What is verification and validation?
Ans:
Verification:
Verification
is a term that refers to the set of activities which ensure that software
implements a specific function.
Validation:
It
refers to the set of activities which ensure that software that has been built
according to the need of clients.
Q.
In software development process what is the meaning of debugging?
Ans:
Debugging
is the process that results in the removal of error. It is very important part
of the successful testing.
Q.
How can you make sure that your code is both safe and fast?
Ans:
In
the software, development security is always first. So if the execution of the
program is slow then, I will try to identify the reason out ways to its time
complexity.
Q.
What type of data is passed via HTTP Headers?
Ans:
Script
and metadata passed via HTTP headers.
Q.
How do you prioritize requirements?
Ans:
First,
you need to design a system by evaluating data structure. Then you should move
on to the code structure needed to support it.
Q.
Give me differences between object-oriented and component-based design?
Ans:
Object-oriented
design can easily be encapsulated to some degree in component-based design.
Q.
When do you use polymorphism?
Ans:
Polymorphism
is used when there is a need for override functionality when inheriting class.
It’s about shared classes and shared contracts.
Q.
What is the difference between stack and queue?
Ans:
- Queue is
always First In, First Out
- Stack is
always Last In, First Out
Q.
What is essential for testing the quality of the code?
Ans:
According
to me, the unit testing framework is essential for testing the quality of the
code.
Q.
Do you think that the maintenance of software is expensive?
Ans:
According
to me, maintenances of software will never be expensive if we are using proper
development process.
Q. What is Equivalence Partition?
Ans:
Equivalence
Partitions Derives an input domain of a program into classes of data from which
test cases are derived. It is a Set of Objects have linked by relationships as
Symmetric, Transitive, and Reflexive an equivalence class is present.
Q. What are the steps followed in testing?
Ans:
The steps
followed in testing are:
- Unit testing: The individual elements
are tested in this type of testing.
- Module testing: Related group of
independent items is tested.
- Sub-system testing: This is a type of
integration testing. Different modules are integrated into a sub-system,
and the entire subsystem is tested.
- System testing: The entire system is
tested in this system.
- Acceptance testing: This type of testing
contains testing of the system with user data if the system behaves as per
client need, then it is accepted.
Q. Distinguish
between Alpha and Beta testing.
Ans:
Alpha and Beta
testings are the two types of acceptance testing.
- Alpha test: The alpha testing is
attesting in which the customer tests the version of complete software
under the supervision of the developer. This testing is implement at the
developer's site.
- Beta test: The beta testing is a
testing in which the customer tests the version of the software without
the developer being present. This testing is performed at the customer's
site.
Q. What are
the types of Static Testing tools?
Ans:
There are the
three types of static testing tools.
- Code-based testing tools: These tools take source
code as input and generate test cases.
- Specialized testing tools: Using this language, the
detailed test specification can be written for each test case.
- Requirement-based testing
tools: These
tools help in designing as per user requirements.
Q. Define
maintenance.
Ans:
Maintenance is
described as the process in which changes are implemented by either modifying
the existing system’s architecture or by adding new components to the system.
Q. What are
the types of software maintenance?
Ans:
Types of
software maintenance are:
1. Corrective Maintenance: It means
the maintenance for correcting the software faults.
2. Adaptive maintenance: It means
maintenance for adapting the change in environment.
3. Perfective maintenance: It means
modifying or enhancing the system to meet the new requirements.
4. Preventive maintenance: It means
changes made to improve future maintainability.
Q. What is
CASE Tools?
Ans:
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.
Q. What is
Risk management?
Ans:
Risk
management is the phase of anticipating hurdles in carrying out the original
plan and providing alternate methods so that the impact on the anticipated
initially outcome is minimal.
1 Comments
Good Questions and Answers
ReplyDelete