Software Evolution ,Reengineering and Refactoring Flashcards

1
Q

Why is the evolution of software important for an organization

A

-For the business value of the software to be maintained
-The majority of the software budget is allotted to the changing and evolving of existing software

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

Can Urgent changes be implemented without going through all stages

A

Urgent changes may be implemented without going through all stages

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

How does evolution happen when agile methods are used?

A

Agile methods are based on incremental development so the transition from development to evolution is seamless

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

What kind of testing is particularly valuable when changes are made to a system?

A

Automated regression testing is particularly valuable when changes are made to a system

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

What is automated regression testing?

A

is a form of testing that makes sure that new software upgrades do not break the existing software application

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

Can additional user stories be created to reflect changes?

A

Changes may be expressed as additional user stories

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

What are legacy systems?

A

These are older systems that rely on languages and technologies that are no longer used for the development of new systems

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

What is the problem with legacy systems

A

They may be very dependent on older hardware ,software ,libraries, business processes

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

What are the layers of a legacy system

A

hardware,platform and infrastructure software,application software, business processes

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

Why is it hard to replace legacy systems

A

It is risky and expensive ,the legacy system does not have complete system system specification,Everything is tighly coupled(that is the system and business processes,Some business rules are undocumented,new software may be late and /or over budget

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

What is business value assessment

A

is a detailed planning process to assess the product will provide whether its value to its users, company, or financial values as well

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

What is system quality assessment

A

process to determine whether a product meets quality standards

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

What professional field does system quality assessment

A

Quality Assurance

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

What are some issues we may find when we conduct a business value assessment?

A

The system is not used as much, the system does not support useful business processes, The system does not work when the users need it(not dependable),and system has high business value

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

What are some things that are assessed when assessing the quality of a system?

A

-Assessing the the business processes to see how it supports the current goals of the business.
-How effective is the systems environment (.e.g. AWS servers) and how expensive is it it to maintain?
-Application assessment
what is the quality of the application software

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

What is software maintenance and what does it involve?

A

Maintenance does not normally involve major changes, it is modifying a program after it has been put into use

17
Q

What kind of products does maintenance refer to?

A

Maintenance is used to refer mostly to changing custom software(modify existing components and add new components ). Generic software products are said to evolve

18
Q

What are the types of maintenance

A

-Repairs faults(fix bugs0
-Environmental adaptation: So it operates in different environment(computer ,OS)
-Functionality addition and modification: Modify the system to satisfy new requirements

19
Q

How is the maintenance costs compared to development costs?

A

Usually greater than development costs(1 times to 100 times depending on the application)

20
Q

What is software reengineering

A

restructuring or rewriting part of all of a legacy system without changing its functionality to make it easier to maintain

21
Q

Advantages of software reengineering?

A

-It is often cheaper to reengineer than to create new software.
-There is reduced risk in reengineering compared to creating completely new software.

22
Q

What are some reengineering process activities?

A

-Convert code to new language,
- reverse engineering(analyze the program to understand it)
-Restructure program and make it more modular and open to modification
-Restructure and clean up data

23
Q

What is refactoring

A

make improvements to the program so that its not easy for it to break if a change is made (preventative maintenance)
-improve structure, reduce complexity
-refactoring should not involve the addition of new functionality

24
Q

What’s the difference between Refactoring and reengineering

A

-Reengineering happens after a system has been maintained for some time and maintenance costs are increasing
-Refactoring is a continuous process of improvement throughout the development and evolution progress

25
Q

What are some bad smells in program code

A

duplicate code, long methods, switch(case) statements,Data Clumping(different data found together), Speculative generality(developers include generality in case it is required)

26
Q

What is the process of software evolution driven by?

A

The process of software evolution is driven by requests for changes

27
Q

What is software re-engineering concerned with /

A

Software reengineering is concerned with re-structuring ad re-documenting software