Software Engineering Flashcards

1
Q

How would you design and write a UML diagram?

A

Break down the project into classes, then define the fields and methods for each class, with arrows to link and on these show the relationships, are they many to many, one to many

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

What is the difference between static and dynamic UML diagrams?

A

Static diagrams emphasise structure and dynamic emphasises behaviour and interaction.

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

What is a collaboration diagram?

A

They emphasise the structural organisation of the objects that send and receive messages

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

What is a sequence diagram?

A

They are explicit sequences of communications for complex scenarios.

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

In a sequence diagram, please list the elements in the diagram

A
  • Life line: dashed line representing objects life during interaction
  • Self call: message sent to itself
  • Condition syntax: [some condition] method
  • Iteration marker: message sent many times
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

In a sequence diagram, the arrows have two names, what are they?

A
  • Synchronous calls: It must wait until the message is done, such as invoking a subroutine
  • Asynchronous calls: It can continue processing and does not have to wait for a response
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In project management, what is the triple constraint triangle?

A

It is time, cost and scope.

Increase scope, increase cost and time
Reduce time, increase and or reduce scope
Reduce cost, increase time and or reduce scope

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

Define agile methodology vs waterfall methodology

A

Agile
- Iterative development, flexibility, collaboration
- Projects are broken down into smaller more manageable periods ‘sprints’
- Continuous feedback, continuous deployment

Waterfall
- Through planning and execution in stages
- Projects follow a linear, sequential flow with distinct phases (design, implementation, testing, deployment)

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

What is the scope of a project?

A

The estimation of the work and the boundaries of what is possible in a given time window. Remember time, cost, scope

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

What is WBS?

A

Work breakdown structure, a diagram that takes levels of work and breaks them down to their smallest tasks.

Event
Food, Drink, Entertainment
- Find caterer - Buy drinks - Find entertainers
- Buy food

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

What is a task table?

A

A table that contains tasks, with fields for start, duration, end, and dependant on.
- The dependant on, is the dependency on other tasks

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

What is a GANTT chart?

A

A chart that shows the time vs the tasks.
The tasks are shown as blocks, with the completion status, that will help to show whether a project was successful or not.

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

List some cost factors

A
  • Hardware/software costs
  • Travelling
  • Training
  • Salaries
  • Overheads
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Compare time and effort in a project

A

Time is from the beginning to the end of the project, usually in months.
Effort is the sum of times for all tasks.

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

List some estimation techniques

A
  • Algorithmic cost modelling: Based on historical cost information that relates some software metric to the project cost
  • Expert judgement: Several experts estimate the project cost
  • Estimation by analogy: The cost of a project is estimated by comparing it to other projects completed in the same application domain.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Parkinson’s law?

A

It states that work expands to fill the time available.

If the software needs to be delivered in 12 months and 5 people are working, the effort required will 60 person months

17
Q

What is the COCO model?

A

Effort = a * size^ β * M

a is an organisation dependent constant
β reflects the disproportionate effort for large projects
M is a multiplier reflecting product, process and people attributes

18
Q

List Software Engineering principles

A
  • DRY: don’t repeat yourself
  • No silver bullet: There is no single technique for a problem
  • KISS and YAGNI: Keep it simple stupid, You ain’t gonna need it
  • Premature Optimisation: Optimising code too early
  • Occam’s Razor: The simplest explanation is usually the best
  • S.O.L.I.D. principles: Single responsibility, open/closed, Liskov substitution, Interface segregation and Dependancy
19
Q

Define software architecture

A

A high level overview of a software project, the system components and their interactions.

20
Q

What are design patterns?

A
  • Some problems are similar to others
  • Similar problems can be solved in similar ways
  • Common patterns can be discovered that work well for particular types of problems
21
Q

Give some examples of design patterns

A
  • Builder: A class for constructing specific objects
  • Adapter: A wrapper that allows incompatible interfaces to work together
  • Decorator: A utility that dynamically alters behaviour of objects
  • Observer: A class that allows objects to see certain events in the system
22
Q

Define component architecture

A

To use reusable components to build large and complex systems

  • The problem needs to be broken down into components
  • Communication needs to be established between components
  • Development teams should be allocated to work on different components
  • Architecture needs to be well documented
23
Q

What is layered architecture?

A

Components that are grouped into layers, with communication between adjacent layers.

  • Presentation layer
  • Application layer
  • Domain layer
  • Infrastructure layer

Use cases
- OS, kernel, system, user processes
- Web app, web page, server, database

24
Q

Define service oriented architecture

A
  • Consists of a number of services that call each other
  • Different services implement different functionality
  • Services may vary in size and functionality
25
Define microservices
A more modern take on service-orientation - Simpler communication via REST - Each service can use different languages - Can use auto-scaling in cloud(Kubernetes)
26
Define pipeline architecture
- Data processed in a sequence of steps - Input > Operation > Operation> Operation > Output
27
Define blackboard architecture
- Data shared globally - Many different processes running independently - Central process/service orchestrates everything - Scaleable, more workers can easily be added
28
29