Midterm Material - Intro to SE Flashcards

1
Q

What is the goal of software engineering?

A

To produce fault free software that satisfies user needs, is delivered on time, and within budget

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

How is SE different from traditional engineering disciplines?

A

Other engineers work with physical products while SEs work with logical abstract objects. Maintaining said physical object is simple but maintaining software can be time consuming and costly. When software crashes, it doesn’t need to be completely redone unlike a bridge.

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

What proportion of software projects are successful?

A

About one-third

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

Why are economic factors important in SE

A

Need to consider the balance of costs and benefits related with a new piece of software. It may make things faster but it could cost a lot to build and then trains taff to use it proficiently.

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

What is a software development life-cycle?

A

A description of the steps that should be performed when building software.

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

What are the major steps in a SDLC?

A

Requirements, analysis, design, implementation, testing, maintenance

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

What is the most expensive phase of the SDLC and why?

A

Maintenance. (About 2/3rds of the cost). This is because the timeline of maintenance is many years compared to a few months to develop and integrate.

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

When is finding errors in software more costly and why?

A

Finding errors is more costly the further along in the SDLC it is found. This is because when an error is found early, it can be resolved without needing to change many things. However, if it is found in a late stage you usually need to fix it in your current stage and all preceding steps where the error was used.

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

What are some problems that arise when developing software with a team?

A

Interface problems among code components can occur as there may be a mismatch of parameters and data produced by different team members. There can also be communications problems with team members: the larger the team size, the higher probability of miscommunication.

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

How can software engineers act ethically?

A

Going beyond simply upholding the law. Also looking at moral standards and principles of society when developing.

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

What are some issues surrounding professional responsibility of software engineers?

A

Software engineers must respect confidentiality of employers and clients. They must accurately represent their level of competence. They must follow local laws governing use of intellectual property. They should not use their expertise to misuse computers.

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

Describe a situation where the client, developer, and user are the same person.

A

Anything you are developing by yourself that you will end up using afterwards (personal projects)

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

What problems can arise if the client, developer, and user are the same person? How can the problems be solved?

A

You are unable to get feedback from clients, documentation may become messy, you are less likely to follow ethical practices and security requirements. To resolve this you can have others looks over your work and also take personal responsibility to follow good SE practices.

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

What’s the difference between a client and a user?

A

The client is the person paying you to develop the software while the user is the literal end user of the product. They may be the same but not necessarily

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

What are some advantages if the client, developer, and user are the same person?

A

Communication is easier. There is a deep understanding of the requirements of the software. It is easier to budget and forecast development since you know exactly what you’re doing.

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