Hoofdstuk 12 - Conclusion Flashcards

1
Q

Name 3 items from the code of ethics and provide a one-line explanation

A

1) Public
–> software engineers shall act consistently with the public interest
2) Client and Employer
–> Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest
3) Product
–> Software engineers shall ensure that their products and related modifications meet the highest professional standards possible
7) Colleagues
–> software engineers shall be fair to and supportive of their colleagues

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

If you are an independent consultant. How can you ensure that you will not have to act against the code of ethics?

A
  • Include in contract a clause to cancel contract when against the code of ethics
  • alarm other institutions if you later hear that others accepted the contract
  • try to convince management that that act is not good
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What would be a possible metric for measuring the amount of innovation of a manufacturing company?

A

products in portfolio younger than 5 years
–> in ICT usually more than 1/2 the portfolio

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explain the 2 main steps of test amplification: input amplification and assertion amplification

A

Input Amplification = Transform the original test method, forcing previously untested paths
–> change the set-up of the object under test, providing parameters that represent boundary conditions; inject calls to state-changing methods
==> brute force but optimize via increase in code coverage

Assertion Amplification = (re)generate appropriate assertions to verify the actual state of the object under test by observing the run-time behaviour

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

“No Silver Bullet”
What’s the distinction between essential and accidental complexity?

A

The Essential Complexity
–> inherent to the problem and cannot be eliminated
example: if you are developing software for complex scientific simulations or for processing vast amounts of data, the inherent complexity of these tasks cannot be avoided

The accidental complexity
–> not inherent to the problem and can be eliminated
Example:
The complexities introduced by using certain programming languages or development methodologies that are not well-suited to the problem at hand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

“No Silver Bullet”
Name 3 reasons why the building of software is essentially a hard task? Provide a one-line explanation

A

+ Complexity of SoftwareV
–> software systems inherently involve complex interactions and dependencies among components, making it challenging to understand, desugn and manage them effectively

+ Conformity of Change:
–> software needs to adapt and evolve over time to meet changing requirements, and this requirement for constant adaptation adds to its inherent difficulty

+ Invisibility of Progress:
–> unlike physical engineering, much of the work in software development is not visible until it is fully implemented, making it hard to measure and manage progress effectively

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

“No Silver Bullet”
Why is ‘object-oriented programming’ no silver bullet?

A
  • complexity not eliminated
  • inherent complexity (does not address the fundamental complexities that arise from the nature of the problem)
  • learning curve

Main argument: There is no single magical solution that can eliminate the essential complexity of software development. While OOP is a valuable approach, it is not a panacea and cannot solve all the challenges and difficulties inherent in creating complex software systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

“No Silver Bullet”
Why is ‘program verification’ no silver bullet?

A

while program verification is a valuable tool for ensuring the correctness of software components, it is not a universal solution for all the challenges in software engineering.

+ inherent complexity
+ scale and cost
+ verification vs. validation
+ dynamic aspects
+ human factors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

“No Silver Bullet”
Why are components a potential silver bullet?

A

+ reuse of existing components
+ reduced accidental complexity
+ focus on essential complexity
+ potential for standardization
+ ecosystem growth

How well did you know this?
1
Not at all
2
3
4
5
Perfectly