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:

  1. Assumption
  2. Simplification
  3. Limitation
  4. Constraints
  5. 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:

  1. Prototype services as a basis for developing system specification.
  2. Design quality can be revised.
  3. The system can be managed easily.
  4. Development efforts may get decreased.
  5. 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:

  1. Fast delivery of the working system.
  2. User is contained while developing the system.
  3. The more useful system can be delivered.
  4. Specification, design and implementation work in equivalent manner.

Q. What are the various Rapid prototyping techniques?

Ans:

The various rapid prototyping techniques are:

  1. Dynamic high-level language development.
  2. Database programming.
  3. 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:

  1. Unit testing: The individual elements are tested in this type of testing.
  2. Module testing: Related group of independent items is tested.
  3. Sub-system testing: This is a type of integration testing. Different modules are integrated into a sub-system, and the entire subsystem is tested.
  4. System testing: The entire system is tested in this system.
  5. 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.

  1. 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.
  2. 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.

  1. Code-based testing tools: These tools take source code as input and generate test cases.
  2. Specialized testing tools: Using this language, the detailed test specification can be written for each test case.
  3. 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.