INF3705
EXAM
PACK
2023
QUESTIONS WITH
ANSWERS
,3|Page
Question 1
You are a software engineering manager and your team proposes that model-driven
engineering should be used to develop a new system. What factors should you take into
account when deciding whether or not to introduce this new approach to software
development?
Answer:
The factors that you have to consider when making this decision include:
1. The expertise of the team in using UML and MDA. (Is expertise already available or
will extensive training be required.)
2. The costs and functionality of the tools available to support MDA. (Are tools available
in house or will they have to be purchased. Are they good enough for the type of
software being developed)
3. The likely lifetime of the software that you are developing. (MDA is most suitable for
long-lifetime systems)
4. Requirements for high performance or throughput (MDA relies on code generation
that creates code which may be less efficient than hand written code)
5. The long term benefits of using MDA (are there real cost savings from this approach)
6. The enthusiasm of the software developers. (are all team members committed to this
new approach)
Question 2
Software specification
Software specification is the process of establishing what services are required and the
constraints on the system’s operation and development.√
Therefore, the requirements engineering process include the following:
3|Page
,4|Page
• Feasibility study: Is it technically and financially feasible to build the system? √
• Requirements elicitation and analysis: What do the system stakeholders require or
expect of the system? √
• Requirements specification: Defining the requirements in detail√
• Requirements validation: Checking the validity of the requirements√
Software validation
Verification and validation (V & V) is intended to show that a system conforms to its
specification and meets the requirements of the system customer. √
• It Involves checking and reviewing processes and system testing. √
• System testing involves executing the system with test cases that are derived
from the specification of the real data to be processed by the system. √
Software evolution
Software is inherently flexible and can change. As requirements change through
changing business circumstances, the software that supports the business must also
evolve and change√. Although there has been a demarcation between development and
evolution (maintenance), it is increasingly irrelevant as fewer and fewer systems are
completely new√
Question 3
4|Page
, 5|Page
. Explain how the principles underlying agile methods lead to the accelerated
development and deployment of software.
The principles underlying agile development are:
a) Individual and interactions over processes and tools. By taking advantages of
individual skills and ability and by ensuring that the development team knows what
each other are doing, the overheads of formal communication and process
assurance are avoided. This means that the team can focus on the development of
working software.
b) Working software over comprehensive documentation. This contributes to
accelerated development because time is not spent developing, checking and
managing documentation. Rather, the programmer’s time is focused on the
development and testing of code.
c) Customer collaboration over contract negotiation. Rather than spending time
developing, analyzing and negotiating requirements to be included in a system
contract, agile developers argue that it is more effective to get feedback from
customer’s directly during the development about what is required. This allows
useful functionality to be developed and delivered earlier than would be possible if
contracts were required.
d) Responding to change over following a plan. Agile developers argue (rightly) that
being responsive to change is more effective than following a plan-based process
because change is inevitable whatever process is used. There is significant
overhead in changing plans to accommodate change and the inflexibility of a plan
means that work may be done that is later discarded.
Question 4
a) The fundamental concepts of user and system requirements and why must
these requirements be written in different ways
5|Page
EXAM
PACK
2023
QUESTIONS WITH
ANSWERS
,3|Page
Question 1
You are a software engineering manager and your team proposes that model-driven
engineering should be used to develop a new system. What factors should you take into
account when deciding whether or not to introduce this new approach to software
development?
Answer:
The factors that you have to consider when making this decision include:
1. The expertise of the team in using UML and MDA. (Is expertise already available or
will extensive training be required.)
2. The costs and functionality of the tools available to support MDA. (Are tools available
in house or will they have to be purchased. Are they good enough for the type of
software being developed)
3. The likely lifetime of the software that you are developing. (MDA is most suitable for
long-lifetime systems)
4. Requirements for high performance or throughput (MDA relies on code generation
that creates code which may be less efficient than hand written code)
5. The long term benefits of using MDA (are there real cost savings from this approach)
6. The enthusiasm of the software developers. (are all team members committed to this
new approach)
Question 2
Software specification
Software specification is the process of establishing what services are required and the
constraints on the system’s operation and development.√
Therefore, the requirements engineering process include the following:
3|Page
,4|Page
• Feasibility study: Is it technically and financially feasible to build the system? √
• Requirements elicitation and analysis: What do the system stakeholders require or
expect of the system? √
• Requirements specification: Defining the requirements in detail√
• Requirements validation: Checking the validity of the requirements√
Software validation
Verification and validation (V & V) is intended to show that a system conforms to its
specification and meets the requirements of the system customer. √
• It Involves checking and reviewing processes and system testing. √
• System testing involves executing the system with test cases that are derived
from the specification of the real data to be processed by the system. √
Software evolution
Software is inherently flexible and can change. As requirements change through
changing business circumstances, the software that supports the business must also
evolve and change√. Although there has been a demarcation between development and
evolution (maintenance), it is increasingly irrelevant as fewer and fewer systems are
completely new√
Question 3
4|Page
, 5|Page
. Explain how the principles underlying agile methods lead to the accelerated
development and deployment of software.
The principles underlying agile development are:
a) Individual and interactions over processes and tools. By taking advantages of
individual skills and ability and by ensuring that the development team knows what
each other are doing, the overheads of formal communication and process
assurance are avoided. This means that the team can focus on the development of
working software.
b) Working software over comprehensive documentation. This contributes to
accelerated development because time is not spent developing, checking and
managing documentation. Rather, the programmer’s time is focused on the
development and testing of code.
c) Customer collaboration over contract negotiation. Rather than spending time
developing, analyzing and negotiating requirements to be included in a system
contract, agile developers argue that it is more effective to get feedback from
customer’s directly during the development about what is required. This allows
useful functionality to be developed and delivered earlier than would be possible if
contracts were required.
d) Responding to change over following a plan. Agile developers argue (rightly) that
being responsive to change is more effective than following a plan-based process
because change is inevitable whatever process is used. There is significant
overhead in changing plans to accommodate change and the inflexibility of a plan
means that work may be done that is later discarded.
Question 4
a) The fundamental concepts of user and system requirements and why must
these requirements be written in different ways
5|Page