BcaStudy
SOFTWARE ENGINEERING

Solved Questions of previous year software engineering

Section -A

Define software engineering
(2016,2017,2018)

Software engineering is the process of developing, testing and deploying computer applications to solve real-world problems by adhering to a set of engineering principles and best practices.

Software engineering is the process of designing, developing, testing, and maintaining software. It is a systematic and disciplined approach to software development that aims to create high-quality, reliable, and maintainable software.Read more

What is software implementation
(2016)

Software implementation is the process of adopting and integrating a software application into your company’s systems and workflows.

What is software maintenance
(2016,2017,2018)

Software maintenance refers to the process of modifying and updating a software system after it has been delivered to the customer.

This can include fixing bugs, adding new features, improving performance, or updating the software to work with new hardware or software systems. The goal of software maintenance is to keep the software system working correctly, efficiently, and securely, and to ensure that it continues to meet the needs of the users. Read more

Explain design process
(2016)

Software Design is the process to transform the user requirements into some suitable form, which helps the programmer in software coding and implementation. During the software design phase, the design document is produced, based on the customer requirements as documented in the SRS document.Read more

Write about software change startegies
(2016)

The software change methods that could be applied separately or together are:

Software maintenance - The alters are made in the software due to requirements.

Architectural transformation - It is the method of changing single architecture into another form.

Software re-engineering - New types can be added to existing system and then the system is reconstructed for better use of it in future.

How can we derive the size of software product
(2017)

We can derive the size of the software product by counting the lines of code, included by a particular developer. Another method can be the “Functional Size Measurement”.Read more

What is srs
(2017)

A software requirements specification (SRS) is a document that captures complete description about how the system is expected to perform. It is usually signed off at the end of requirements engineering phase.

What is software metric

(2017)
A software metric is a measure of software characteristics which are measurable or countable. Software metrics are valuable for many reasons, including measuring software performance, planning work items, measuring productivity, and many other uses.

What is software process of software development life cycle(SLDC)?
(2018)

Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.

How do software product age?
(2018)

software aging is the tendency for software to fail or cause a system failure after running continuously for a certain time, or because of ongoing changes in systems surrounding the software.

What is software requirement specification?
(2018)

Software Requirement Specification (SRS) Format as name suggests, is complete specification and description of requirements of software that needs to be fulfilled for successful development of software system.Read more

Describe the three-phase of the generic view of software engineering
(2019)

The process of a software development has three Generic views which are:

image

01. Definition Phase:

The definition phase focuses on “what”. That is, during definition, the software engineer attempts to identify what information is to be processed, what function and performance are desired, what system behavior can be expected, what interfaces are to be established, what design constraints exist, and what validation criteria are required to define a successful system. During this, three major tasks will occur in some form: system or information engineering, software project planning and requirements analysis.

02. Development Phase:

The development phase focuses on “how”. That is, during development a software engineer attempts to define how data are to be structured, how function is to be implemented within a software architecture, how interfaces are to be characterized, how the design will be translated into a programming language, and how testing will be performed. During this, three specific technical tasks should always occur; software design, code generation, and software testing.

03. Support Phase:

The support phase focuses on “change” associated with error correction, adaptations required as the software’s environment evolves, and changes due to enhancements brought about by changing customer requirements. Four types of change are encountered during the support phase:

Resource-1

What are the differences between waterfall and Prototype models?
(2019)

1. Waterfall Model: Waterfall Model is also known as Classical or Traditional Model. It is also referred as linear-sequential life cycle model because all phases involve in this model completed one by one in linear fashion.

In this model, we get software after completion of all coding phase. This model is basically used for small projects. There exist only one cycle in waterfall model. 

2. Prototype Model: Prototype Model is a software development life cycle model which is used when the customer is not known completely about how the end product should be and its requirements.

So in this model, a prototype of the end product is first developed by the developers and then tested and changes were made as per customer feedback until the customer is satisfied with the prototype.Read-more

List various objectives of software Project Planning.
(2019)

Software project planning is the process of defining the scope, objectives, and requirements of a software project, as well as identifying the tasks, resources, and timelines required to complete the project successfully

Prevent Scope Creep

Scope creep can occur when the project requirements keep changing, leading to delays, cost overruns, and poor quality.

Manage Expectations


software project planning helps to manage expectations by setting realistic goals, timelines, and budgets.

Identify and Mitigate Risks

Software project planning helps to identify potential risks and challenges that may arise during the development process.

Enable Monitoring and Adjustment

Software project planning provides a clear roadmap for the project, which can be used to monitor progress and make necessary adjustments throughout the development process.

Read more

Briefly describe Forward Engineering.
(2019)

Forward Engineering is a method of creating or making an application with the help of the given requirements. Forward engineering is also known as Renovation and Reclamation. Forward engineering requires high proficiency skills. It takes more time to construct or develop an application.

Read more

what is feasibility study? what are the contents we should contain in the feasibility report?
(2022)

A feasibility study contains a detailed analysis of what's needed to complete the proposed project.

The report may include a description of the new product or venture, a market analysis, the technology and labor needed, as well as the sources of financing and capital.

The report will also include financial projections, the likelihood of success, and ultimately, a go-or-no-go decision

Differentiate between verification and validation.
(2022)

Verification is the process of checking that a software achieves its goal without any bugs. It is the process to ensure whether the product that is developed is right or not.

It verifies whether the developed product fulfills the requirements that we have. Verification is static testing. 
Verification means Are we building the product right?

Validation is the process of checking whether the software product is up to the mark or in other words product has high level requirements. It is the process of checking the validation of product i.e.

it checks what we are developing is the right product. it is validation of actual and expected product.

Validation is the dynamic testing. 
Validation means Are we building the right product?

read more

Explain agile methodology in short.
(2022)

The Agile methodology is a way to manage a project by breaking it up into several phases. It involves constant collaboration with stakeholders and continuous improvement at every stage. Once the work begins, teams cycle through a process of planning, executing, and evaluating.

is it possible to estimate software size before coding ? Justify your answer with suitable example.
(2022)

Yes, it is possible to estimate software size before coding. Explanation: However, a correct estimate may not be possible based on (line of code) LOC. The size of the software can be estimated by comparing it with existing systems of the same type

Compare Development Testing with Regression Testing.
(2022)

. Regression Testing
It is the process of testing the modified parts of the code and the parts that might get affected due to the modifications to ensure that no new errors have been introduced in the software after the modifications have been made.

Regression means the return of something and in the software field, it refers to the return of a bug.

Development Testing :
It is a method of applying testing practices consistently throughout the software development life cycle process.

This testing ensures the detection of bugs or errors at the right time which further ensures delay of any kind of risk in terms of time and cost

Read more

Section -B


What do you mean by configuration management
(2016)

Configuration Management is the process of maintaining systems, such as computer hardware and software, in a desired state.

Configuration Management (CM) is also a method of ensuring that systems perform in a manner consistent with expectations over time.

Read more

Explain the various software engineering activities
(2016)

Software processes in software engineering refer to the methods and techniques used to develop and maintain software. Some examples of software processes include:

  • Waterfall: a linear, sequential approach to software development, with distinct phases such as requirements gathering, design, implementation, testing, and maintenance.
  • Agile: a flexible, iterative approach to software development, with an emphasis on rapid prototyping and continuous delivery.
  • Scrum: a popular Agile methodology that emphasizes teamwork, iterative development, and a flexible, adaptive approach to planning and management.
  • DevOps: a set of practices that aims to improve collaboration and communication between development and operations teams, with an emphasis on automating the software delivery process.

Read more

Define perceptive software maintenance
(2016)

1. Corrective Maintenance

Corrective maintenance aims to correct any remaining errors regardless of where they may cause specifications, design, coding, testing, and documentation, etc.

2. Adaptive Maintenance

It contains modifying the software to match changes in the ever-changing environment.

3. Preventive Maintenance

It is the process by which we prevent our system from being obsolete. It involves the concept of reengineering & reverse engineering in which an old system with old technology is re-engineered using new technology. This maintenance prevents the system from dying out.

4. Perfective Maintenance

It defines improving processing efficiency or performance or restricting the software to enhance changeability. This may contain enhancement of existing system functionality, improvement in computational efficiency, etc.

Explain the importance of configuration management in software engineering
(2017)
  1. Improved productivity and efficiency by reducing the time and effort required to manage software changes.
  2. Reduced risk of errors and defects by ensuring that all changes are properly tested and validated.
  3. Increased collaboration and communication among team members by providing a central repository for software artifacts.
  4. Improved quality and stability of software systems by ensuring that all changes are properly controlled and managed.

Read more

What is software re-engineering and why it is required
(2017,2018)

Re-engineering, also known as reverse engineering or software re-engineering, is the process of analyzing, designing, and modifying existing software systems to improve their quality, performance, and maintainability.

This can include updating the software to work with new hardware or software platforms, adding new features, or improving the software’s overall design and architecture. read more

What are the various elements of data design
(2017)

i. Data object - The data objects are identified and relationship between various data objects can be shown using ERD or data dictionaries.

ii. Databases - Using software design model, the data models are translated into data structures and data bases at the request level.

iii. Data warehouses - At the business level useful information is identified from several databases and the data warehouses are formed.

read more

What are the components of gathering the requirements?
(2018)

The key ingredients of the requirements gathering process are three overlapping subprocesses:

  • requirements elicitation,
  • requirements documentation,
  • requirements understanding.

Requirements elicitation is the process of asking for and collecting top-level requirements from all relevant stakeholders.

 Effort should be made to account for the needs of customers, their users, the internal stakeholders within your own company, and your key suppliers.

Requirements documentation organizes the input from the requirements elicitation process into whatever format is appropriate for your organization. This formatting may include:

  • User stories
  • Functional decompositions (especially for complex cyber-physical systems)
  • Feature descriptions

These will be collected in a top-level requirements specification like a product requirements document (PRD) or a system specification. The purpose of this top-level specification is to make those stories and descriptions available to all members of the project team.

Requirements confirmation is the process of making sure all stakeholders and team members have a common understanding of what you’re trying to build. This involves reviewing and refining the requirements. It will very likely require additional elicitation and revision of the documentation as well.source

Discuss the importance of agile Process
(2018)

1. Superior quality product

In Agile project management, testing is an integrated part of the project execution phase which means that the overall quality of the final product is greater.

2. Customer satisfaction

In the Agile, the customer is always involved in the decision-making process which leads to greater customer retention.

In the traditional framework, the customer is only involved in the planning phase and does not influence execution which affects the flexibility and adaptability.

3. Better control

Agile allows managers to have better control over the project due to its transparency, feedback integration, and quality-control features.

4. Improved project predictability

With increased visibility, predicting risks, and coming up with effective mitigation plans becomes easier.

5. Continuous improvement

Working on self-reflection and striving for continuous improvement is one of the 12 core principles of the Agile manifesto.+

source

Discuss the components of object-oriented design
(2018)

In the object-oriented design method, the system is viewed as a collection of objects (i.e., entities). The state is distributed among the objects, and each object handles its state data.

  1. Objects: All entities involved in the solution design are known as objects. For example, person, banks, company, and users are considered as objects. Every entity has some attributes associated with it and has some methods to perform on the attributes.
  2. Classes: A class is a generalized description of an object. An object is an instance of a class. A class defines all the attributes, which an object can have and methods, which represents the functionality of the object.
  3. Messages: Objects communicate by message passing. Messages consist of the integrity of the target object, the name of the requested operation, and any other action needed to perform the function. Messages are often implemented as procedure or function calls.
  4. Abstraction In object-oriented design, complexity is handled using abstraction. Abstraction is the removal of the irrelevant and the amplification of the essentials.
  5. Encapsulation: Encapsulation is also called an information hiding concept. The data and operations are linked to a single unit. Encapsulation not only bundles essential information of an object together but also restricts access to the data and methods from the outside world.
  6. Inheritance: OOD allows similar classes to stack up in a hierarchical manner where the lower or sub-classes can import, implement, and re-use allowed variables and functions from their immediate superclasses.This property of OOD is called an inheritance. This makes it easier to define a specific class and to create generalized classes from specific ones.
  7. Polymorphism: OOD languages provide a mechanism where methods performing similar tasks but vary in arguments, can be assigned the same name. This is known as polymorphism, which allows a single interface is performing functions for different types. Depending upon how the service is invoked, the respective portion of the code gets executed.

source

Describe various Decomposition Techniques? Explain COCOMO model with example.
(2019)

Software project estimation is a form of problem solving, and in most cases,

the problem to be solved (i.e., developing a cost and effort estimate for a softwareproject) is too complex to be considered in one piece. For this reason, wedecompose the problem, re-characterizing it as a set of smaller (and hopefully,more manageable) problems

Software Sizing

size refers to a quantifiable outcome of thesoftware project. If a direct approach is taken, size can be measured in LOC. If an indirect approach is chosen, size is represented as FP.Source1,Source2

What are the various factors associated with cost estimation of project? Explain cost estimation technique in detail.
(2019)
Differentiate between the top down and the bottom up approach in designing software.
(2019)
How does "Project Risk " factor affect the spiral model of software development?
(2022)
What is the difference between SRS document and design document? What are the contents of both the documents?
(2022)
What are the characterstics to be considered for the selection of life cycle model? Explain clearly
(2022)

Section c


Describe the procedural design techniques in design methodology
(2016)
Explain the various techniques for software maintenance
(2016)
Explain the various requirements engineering activities in details
(2016)
Give the fundamental design application related to software engineering
(2016)
Write some design principles for maintainablity
(2016)
Explain the iterative waterfall and spiral model for software lifecycle and various activities in each phase
(2017)
Draw and explain the framework for sequential maintenance process activities
(2017)
How good design helps in efficient implementation
(2017)
Explain the various building blocks for CASE
(2017)
Explain the type of maintenance in detail
(2017)
Explain software process
(2018)
Explain the factors considering while deciding the maintenance cost
(2018)
What is software re-engineering?Explain its process
(2018)
What are the CASE tools and their usage in software enginerring? Discuss.
(2018)
Discuss the maintenace activities in detail
(2018)

What is agile methodology? Discuss the principle of agile method.
(2019,short-2022)
Discuss cyclomatic complexity used to define the complexity of source code.
(2019)
What is software design? Explain it with the help of principles and concepts.
(2019)
How is the cost of software estimated? Discuss in detail.
(2019)
What is the role of modularity ? Explain the role of coupling and cohesion in software design
(2019)
Define module coupling and explain different types of coupling in detail.
(2022)
Describe in detail the complete software maintenance process.
(2022)
Explain all levels of COCOMO model. Assume that the size of an organic software product has been estimated to be 32000 lines of code. Determine the effort required to develop the software product and the nominal development time.
(2022)
Describe 'Rapid Application Development' (RAD) model in detail.
(2022)
Q : (i) What are the limitations of waterfall model?
(2022)
(ii) How some of the limitations of waterfall model are overcome by iterative methods?
(2022)
Comments

Comments take few seconds to update

Resource to learn

Message
If you want your notes and pdf on website send me google drive link