Software Development Flashcards

1
Q

Why refactor code?

A
  • Improves design of software
  • Easier to understand
  • To find bugs
  • To program faster (gain greater understanding of the program)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is technical debt?

A

Technical debt is the cost of additional rework caused by choosing an easy option now instead of choosing a better approach that would take longer.

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

What are some impacts of technical debt?

A
  • Too much time maintaining existing system.
  • Latent defects found after delivery.
  • Takes more effort to add new functionality.
  • User dissatisfaction.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What type of maintenance are there?

A
  • Corrective maintenance (fix/repair)
  • Adaptive maintenance (changing needs)
  • Perfective maintenance (performance)
  • Preventative maintenance (fixing bugs before the activate)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is system re-engineering?

A

Where an old system may be re-structured and re-documented. You use automated tools to process and re-engineer a legacy system to create a new system that is more maintainable. Re-structuring or re-writing part or all of a legacy system without changing its functionality.

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

What are the two advantages of re-engineering?

A
  • Reduced risk

- Reduced cost

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

What are the four levels of software reuse?

A

The abstraction level:
- Don’t reuse software directly but use knowledge of successful abstractions.

The object level:

  • Directly reuse objects from a library.
  • Components that implement a single well-defined object or function may be reused.

The component level:
- Collections of objects and object classes that you reuse.

The system level:
- The whole of an application system may be reused either by incorporating it without change into other systems.

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

What are some advantages of software reuse?

A
  • Reduced development costs
  • Accelerated development
  • Effective use of specialist knowledge
  • Reduce margin of error in project estimation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are some disadvantages with software reuse?

A
  • Increased maintenance costs
  • Not-invented here syndrome
  • Finding, understanding, and adapting reusable components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are advantages of COTS?

A
  • More rapid deployment of a reliable system may be possible.
  • It is possible to see what functionality is provided by the applications.
  • Businesses can focus on their core activity without having to devote a lot of resources to IT systems development.
  • As operating platforms evolve, technology updates may be simplified as these are the responsibility of the vendor.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What risks are associated with using COTS?

A

Vendor risk – little support; vendor goes out of business

Product risk - Requirements may have to be adapted to reflect the functionality; poor performance when integrated.

Process risk – time required to understand how to integrate product is higher than expected

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