0% found this document useful (0 votes)
45 views

IT3030 - Programming Applications and Frameworks

The document discusses four questions related to software frameworks, version control systems, APIs, and DevOps. Question 1 defines frameworks and discusses inversion of control. Question 2 compares centralized and distributed version control systems, discussing Git. Question 3 covers REST APIs and statelessness. Question 4 discusses DevOps principles and Continuous Integration.

Uploaded by

jathurshanm3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

IT3030 - Programming Applications and Frameworks

The document discusses four questions related to software frameworks, version control systems, APIs, and DevOps. Question 1 defines frameworks and discusses inversion of control. Question 2 compares centralized and distributed version control systems, discussing Git. Question 3 covers REST APIs and statelessness. Question 4 discusses DevOps principles and Continuous Integration.

Uploaded by

jathurshanm3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

t- 00673

Sri Lanka Institute of Information Technology

B.Sc. Honours Degree in Information Technology


Specialized in Information Technology/ Data Science

Final Examination
Year 3, Semester 1 (2023)

IT3030 -Programming Applications and


Frameworks

Duration: 2 Hours

May/ June 2023

Instructions to Candidates:

• This paper has four questions.


• Answer all questions in the booklet given.
• The total marks for the paper is 100.
• This paper contains 4 pages, including the cover page.
• Electronic devices capable of storing and retrieving text, including
calculators and mobile phones are not allowed.
'r`j(i)gri

Question 1 (25 marks)


1. Define what a software framework is in your own words. (2 marks)

2. Name three (3) software frameworks that you have used and explain the reasons for
utilizing those rather than building a solution from scratch.

(5 marks)
3. A common habit among the software developers nowadays is to learn how to use a
software framework rather than leaming in-depth about the programming language the
frameworkisbasedon(e.g.,justleamingtousethefeaturesofaJavascriptframework
without an in-depth knowledge of Javascript). Do you think this practice is good?
Briefly discuss and justify your position with four (4) reasons.

( 1 0 marks)
4. "Inversion of Control" is a concept widely associated with software frameworks.
Explain with an example what this concept is and highlight how the flow of an
application is impacted by utilizing this concept within a framework.

(8 marks)

Question 2 (25 marks)


1. Version control systems ovcs) are an indispensable topic in modem software
development. Describe what version control systems are in your own words and
highlight why it is important in the modem software development context.

(2 marks)
2. Compare and contrast Distributed version control systems (DVCS) with Centralized
version control systems (CVCS). Clearly highlight the differences in approaches to
version controlling in each method.

(4 larks)
3. Git is a very popular Distributed VCS. Even though Git repositories can function fully
independently, users of related Git repositories tend to nominate one re-pository as the
upstream or the remote repository and use it as a single source for updates. Why do you
think this practice exists? Give reasons.

(6 marks)
4. Company X is a newly formed software company by five (5) developers. They just
received their first project to develop an online marketplace, and the company has
decided to use Git as the VCS for this project as it is very popular, even though none of
the developers are familiar with Git. As of now, the developers have decided to store
all their code on the main branch of both local as well as remote (upstream) git
repositories. However, you have .been asked to comment on their approach as an IT
undergraduate.
a. Do you see any issues with the approach they have decided to use? If so, briefly
explain what they are. (4 marks)
00673

b. One developer has read online that a git concept called "branching" can help
them to avoid facing those identified problems. However, the other developers
are quite skeptical of this, as it seems a bit complicated to use effectively.
Discuss with an example based on a real-world software development
envirorment, how you would convince the other developers of the benefits of
using branching.
(4 marks)
c. To avoid complications with branching and to help with keeping the flow of
daily development operations ruining smooth, the developers have thought to
adopt a practice called Git workflows along with branching. Out of the existing
Git work flows, GitFlow and GitHub flow have caught their attention as being
suitable for their operation. Since GitFlow seems very comprehensive, they are
thinking of using it for all their projects.

Considering the current status of the company, discuss and justify with reasons
''-i
if using GitFlow is a good idea or not in your view.

(5 marks)

Question 3 (25 marks)


1. Briefly explain what an Application Programming Interface (API) is, and its importance
in enabling communications and collaboration among different applications.
(3 marks)
2. Representational State Transfer (REST) is a very popular style of Apls nowadays.
Briefly explain what REST is, and clearly highlight what makes an API, a REST API.
(4 marks)
3. "Stateless" is an important constraint in REST. Briefly explain this constraint, and then
with an example clearly show how this constraint helps with scaling the backend
(server-side) of a web application.
(5 marks)
.j
4. Hypermedia as the engine of application state (HATEOAS) is an important constraint
in REST.
a. Briefly explain this concept in your own words. (2 marks)

b. What are the benefits gained if an API aligns with the above constraint? Discuss
briefly. (3 marks)

c. With an example, clearly show the difference between a response from a fully
REST compliant API vs. an API which is not REST compliant. You can assume
that it is the same endpoint in the same system responding in both instances -
in one instance, the system has a REST compliant API and in the other instance,
it does not. You can also assume that both systems respond with JSON
(Javascript Object Notation). Please provide a small description explaining
your example.
(4 marks)
J+
L=

ar:;{,73

5. "Keeping a REST API's endpoint naming consistent is a best practice." Do you agree
with this statemen`t? Justify your answer.

(4 marks)

Question 4 (25 marks)


1. Briefly explain the core Devops principles.

(4 marks)
2. "Devops is notjust a software development methodology, but it's a complete change
ofanITorganization'sculture."Doyouagreewiththisstatement?Justifyyouranswer.

(4 marks)
3. The upper management in a large-scale product-based software company is considering
introducing Continuous Integration (CI) and Continuous Delivery (CD) practices into
the existing software process of the company in hopes of addressing the current issues
it faces with delivery and deployment of software using the traditional waterfall model.
Currently the company has separate teams for Business Analysts, Developers, Quality
Assurance engineers and IT operations. As a senior engineer experienced in Devops
practices who recently joined the organization, you are asked to colrment on this.
a. What would be some common issues that they could be facing? Identify and
briefly discuss these issues.

(3 marks)
b. Do you think just the introduction of CI and CD would solve the issues they
cunently face? Critically discuss your views on the matter.

(4 marks)
c. If your view is thatjust introducing CI/ CD is not enough to overcome the issues
identified, what other changes do you propose to be made to the company's
process to solve the issues that you identified? Briefly discuss the changes with
reasons why each change is necessary.

(6 marks)
d. Some members of the organization also think that the technology stack that is
currently being used by the organization is outdated. Therefore, they suggest
that the organization should ditch their existing technology stack completely
and immediately adapt a cutting-edge suite of technologies to "future-proof" the
software produced by the company. Should the organization do this? State your
recommendations with reasons.

(4 marks)

End of the paper

You might also like