SE Revision Flashcards

1
Q

What are the four phases of SE?

A
  1. Specification - What the system should do and its development constraints
  2. Development - production of the software system
  3. Validation - checking that the software is what the customer wants
  4. Evolution - Changing code in response to demands
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Software Engineering?

A

Software engineering is the process of planning, designing, developing, testing, and maintaining software using systematic and disciplined approaches.

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

What are a few examples where SE was not used to perfection

A

US Prison Bug, bad software lead this to happen.

Hawaii Incident -> A test of the “incoming nuclear bomb” message was accidentally distributed as a live message, although there was also human error, but software was easy to be messed up with due to it being similar to other screens and easy faulty.

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

Top 10 SE Mistakes

A

1.Presume ‘good code is only thing matters’
2. Aim to finish at the delivery deadline
3. Don’t design a data model, let the code produce data it needs
4. Use a Technical lead that has never built a similar system rather than someone who has
5. Hire forty developers to make the coding go faster
6. Build the system in the language you know best, rather than ‘the best tool for the job’
7. Hire a junior developer to handle the migration
8. Skip the testing phase because the project is behind schedule
9. Change code, without planning to meet newly discovered requirements
10. Buy a package and customise it … a lot

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

Dorsey’s Conclusion

A
  1. Don’t cut corners
  2. Audit each deliverable and step along the way for accuracy and correctness
  3. Carefully monitor top management support.
  4. Secure the correct technical lead for the project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

DON’T DO IN SE

A
  1. Keeping costs low
  2. Hurrying the project - Will led to quality being low and risk of failure high
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain the waterfall Model

A

The waterfall model goes like a literal waterfall, e.g. -> Requirements Definition -> <- System and Software Design -> <- Implementation and Unit Testing -> <- Integration and system testing -> <- Operation and maintenance

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

Explain the V-Model

A

The V-Model is an extension of the traditional waterfall model, It is called the V-model because the development process is represented as a V-shaped diagram where the left side of the V represents the planning and analysis phases and the right side representing the testing and validation phases.

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

Problems with waterfall and V

A
  1. Needs Stable and ‘perfect’ requirements
  2. Can’t always anticipate what you’ll have to do
  3. Does not account for revision or refactoring
  4. Too inflexible and static
  5. Depends on getting each stage exactly right (changes can have many knock-on effects.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explain the Agile Model

A

The agile model is an iterative and incremental approach to software dev, Agile is divided into sprints (short dev cycles) (last 1-4 weeks), Allows for continous testing, integration and feedback. Agile looks like a loop, it goes from requirements -> design -> development -> testing -> deployment -> review -> requirements -> …. (it keeps looping until validation of user req. and everything is done)

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

Problems with Agile Models

A
  1. Lack of process visibility (Systems are often poorly structured)
  2. Too much doing and not enough planning
  3. Special skills (e.g. in language for rapid prototyping) may be required
  4. Lightweight documentation taken to mean no documentation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the most expensive phase of an SE project?

A

The maintaining/evolving software often costs more than producing it in the first place (due to unexpected issues,bugs,updates,support from team.)

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

Explain the Spiral Model

A

Spiral model is also iterative but different from agile it goes in a spiral loop starting from the top left which is usually (Planning / Determine objectives, alternatives and constraints), then goes to Risk analysis (Evaluate alternatives, identify, resolve risks), then to Evaluation (Customer feedback) and lastly development phase (coding,testing,design,etc..)

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

When to use waterfall

A
  1. Fixed, unchanging requirements
  2. Require specific documentation
  3. Use well understood technology
  4. Must work on the first try.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What causes failure in SE projects?

A

Incomplete Requirements and lack of user involvement.

Not Understanding product requirement.

Coding or programming is not a major problem

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

Initial Requirements elicitation (What does the customer want?) (identify needs) methods

A

Personas & User Profiles
Requirements Gathering (Interviews, etc.. )
Task Analysis
Contextual enquiry / ethnography

17
Q

What is a StakeHolder Analysis

A

Is to determine all the types of people that will be use the system/ will be involved with the project

Can analyse potential stakeholders by looking at initial brief, problem analysis or even interviews/discussion

Sort of ways of classifying/analysing them:
(excluding, primary, secondary, tertiary)
1.Importance priority
2. Impact of their needs
etc.

18
Q

What is a persona?

A

It represents a real type of user (not real person) from your stakeholders, personas can be seen as an overall information based of audience, it contains motivation, expectations, goals, knowledge, we can use persona to differentiate stakeholders clearly

19
Q

What is a use case diagram?

A

Is a diagram which elaborates what tasks each person who uses the system will do and we call these people ‘actors’

20
Q

What is test-driven development?

A

Is where you take specifications and start by writing tests for a class, every time you run your code it auto-runs the tests too. (White Box testing)

21
Q

What are the 4 agile manifesto principles?

A

Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a project plan.

22
Q

What is release testing?

A

Release testing is testing practices to ensure that the software application is ready for end-users

23
Q

What is Acceptance testing?

A

It’s a testing phase which takes place after release testing, [Acceptance testing] continues until the system
developer and client agree that the delivered system is
an acceptable implementation of the requirements

24
Q

What are the 3 main strategies to handling project risks

A

Avoidance strategies - actions taken to reduce the risk of happening
Minimisation strategies - actions taken to reduce the impact if it does happen
Contingency plans - what you’ll do/change if it happens.

25
Q

What are the 3 types of prototypes?

A

Low-fidelity - simple, easy to make, to show design ideas.
Mid-Fidelity - simple, a prototype with limitations in functionality however is still has interactions and on its way to being the last prototype
High-fidelity - a bit complex, takes more time to make, provides great insight what the final product will look like.

26
Q

What are the agile methods?

A

Spiral, Scrum, TDD, paired programming, User stories, persona

27
Q

What are the 2 traditional methods?

A

Waterfall and V-Model, they include requirements tables, detailed UML/specs