0% found this document useful (0 votes)
41 views2 pages

Advanced Software Engineering Exam Guide

qp

Uploaded by

Haf hafeefa
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)
41 views2 pages

Advanced Software Engineering Exam Guide

qp

Uploaded by

Haf hafeefa
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

Reg No.

:
0520MCA10712200T
APJ ABDUL KALAM TECHNOLOGICAL UNIVERSITY
First Semester MCA (2 Years) Degree Examination December 2020 (2020 Scheme)

Course Code: 20MCA107


Course Name: ADVANCED SOFTWARE ENGINEERING
Marks:60 Duration: 3 Hours
PART A
Answer all questions, each carries 3 marks. Marks
What is the need for software (3)
engineering?
Write a short note on project estimation methods in software development. (3)
3 What are the basic concepts of version control system? (3)
How software quality is measured? (3)
Define the concept of antipatterns. (3)
What are assertions? 3)
Define product backlog (3)
What is the relevance of software testing? (3)
9 What is the purpose of software configuration? (3)
10 What is test automation? (3)
PART B
Answer any one question from each module. Each question carries 6 marks.
Module I
11 Explain predictive and adaptive waterfall models. How is it different from (6)
model in which development phases overlap each other?
OR
12 With an example, explain requirement specification. (6)
Module II
13 Explain the core operations in Git Version Control System to manage a (6)
software project. Clone a repository using Git

OR
14 Explain the differences between "git fetch" and "git pull". How can conflicts be (6)
resolved in git?

Page 1 of 2
0520MCA107122001

Module III
15 Write a short note on creational design pattern. (6)
OR
16 Tllustrate the importance of writing tests with assertions. (6)
Module IV
17 With a neat diagram, explain the scrum framework. (6)
OR
18 Explain the relevance of bug life cycle with a neat diagrarn (6)
Module V
19 Write a short note on the strategies involved in continuous integration. (6)
OR
20 What is C/CD pipeline? Write the principles of software delivery. (6)
****

Page 2 of 2

Common questions

Powered by AI

Project estimation methods critically impact the planning stage of software development by providing a framework for predicting the resources, time, and budget required to complete the project. Accurate estimations influence decision-making and risk management, allowing teams to align with stakeholder expectations and navigate technology constraints. Methods like expert judgment, analogy-based estimations, and parametric models enable early identification of potential project hurdles and resource allocation, enhancing project feasibility and success rates.

Challenges with predictive waterfall models include inflexibility in accommodating changes after initial planning, leading to cost overruns and project delays if requirements evolve. They are less suited for environments where customer feedback is crucial during development. Adaptive waterfall models attempt to mitigate these issues by allowing some overlap of phases and early feedback integration, but they may still struggle with iterative improvements and fast-paced requirement shifts, potentially impacting delivery schedules and quality.

Software engineering is essential in modern technology industries as it provides systematic methodologies and principles for developing software of high quality efficiently and effectively. This is crucial as software systems grow in complexity and size, requiring efforts to maintain reliability, scalability, safety, and performance. The discipline also helps in managing the development processes to deliver projects on time and within budget, addressing challenges like requirement ambiguity, changing technologies, and market demands.

Software configuration management (SCM) supports large-scale projects by systematically managing code, documents, and configurations throughout the lifecycle. SCM ensures consistency and traceability of codebases, allows version tracking, and facilitates collaborative development across distributed teams. It helps manage change control processes, reducing integration issues and ensuring project alignment with evolving requirements. SCM tools automate routine tasks, increase efficiency, and reduce errors associated with manual configurations.

Software quality is measured using methodologies that assess various aspects such as functionality, reliability, usability, efficiency, maintainability, and portability, based on standards like ISO/IEC 9126. Techniques include code reviews, static analysis, and formal verification to evaluate internal code quality, while functional testing and user feedback assess the external features and user satisfaction. Automated testing and performance profiling further ensure non-functional requirements like security and performance are met.

Version control systems maintain software integrity and facilitate collaboration by tracking changes to the codebase, enabling multiple developers to work concurrently without conflict. They provide capabilities like branching, merging, and revision history, ensuring every modification is documented and reversible. This system allows for parallel development branches, easy rollback of changes, and efficient conflict resolution. Decentralized systems like Git also support distributed workflows, enhancing team collaboration and project scalability.

Test automation is crucial for modern software development as it enhances efficiency, accuracy, and consistency in testing practices. Automated tests provide quick feedback loops, reducing the time needed for iterative testing in Agile and DevOps environments. By executing repetitive tests, they free up resources for exploratory testing, improve coverage, and support continuous integration and deployment (CI/CD) workflows. This leads to faster release cycles and higher quality software products.

Assertions are a critical component in software testing as they validate assumptions made during code execution. By confirming that the software behaves as expected, assertions help detect and isolate errors early in the development process, ensuring robust and reliable software. They facilitate automated test execution, improving testing efficiency and enabling continuous integration practices. Properly utilized assertions lead to more maintainable and bug-resistant codebases.

Antipatterns negatively impact software development and maintenance by providing ineffective solutions to recurrent design problems, often resulting in technical debt, increased complexity, and reduced code maintainability. They can lead to inefficient processes, poor system architecture, and hindered scalability. Addressing antipatterns through refactoring and rethinking design approaches enhances the overall software quality, reducing defects and facilitating easier future maintenance.

In agile project management, the product backlog serves as a dynamic and prioritized list of project tasks and requirements that guides development efforts. It reflects the customer's needs and project scope, allowing teams to adapt to changes and manage progress incrementally. The backlog enables planning sprints in Scrum, ensuring the team focuses on high-value features, optimizing product delivery against business goals.

You might also like