SE Processes (WK1&2) Flashcards

1
Q

Why do we care about software costs?

A

Software costs dominate computer system costs. Software costs more to maintain than it does to develop. Often software engineering is concerned with cost-effective development.

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

What are 4 general issues that affect software?

A
  • Heterogeneity (need to be able to evolve across different devices)
  • Business and social change
  • Security and trust ( we need to be able to trust software)
  • Scale (software is developed across a massive range of scales, need to be able to scale up)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the two types of software products?

A

Generic products (stand-alone systems put out on the market for the public)

Customised products ( specially commissioned software)

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

What are the four attributes of good software?

A
  • Maintainability
  • Dependability and security
  • Efficiency
  • Acceptability (for users of the software, this includes compatibility)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is software reuse?

A

A dominant method for web-based systems, is when you think about using pre-existing technologies and software

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

What are the professional responsibilities (ethics)?

A
  • Confidentiality
  • Competence
  • Intellectual property rights
  • computer misuse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Discuss plan driven vs Agile processes

A

Plan driven processes are where every activity is planned in advance - lots of documentation

Agile processes are incremental and iterative, and focus on faster delivery - less focus on planning and documentation

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

What is a software process?

A
  • process is the activities involved in producing a system, can be agile or plan-driven
  • process models are abstract representation of these processes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the software specification process?

A

Figuring out what services are required and the constraints on the systems development and operation. Involves: feasibility, requirements analysis/specification/validation

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

What is the software design and implementation process activity?

A

This is where the system specification is converted into an executable system. Involves software design and implementation.

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

What is the software validation process activity?

A

This is where the system is checked and reviewed! Verification (does it work) and validation (does it meet expectations) check the specification and requirements against the result. Testing is the most common v&v activity

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

What is the software evolution process activity?

A

As requirements change through circumstances, this is the software keeping up with changes.

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

Describe the waterfall model

A

Plan-driven software model. Seperate and distinct phases of specification and development.

  • Can be difficult to respond to change due to the inflexible nature of this model.
  • Mostly used on large system engineering projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the benefits and problems of incremental development?

A

Benefits:
- more rapid delivery of useful software
- easier to get feedback on the development work that has been done
- lower cost of accomodating changes
Problems:
- The process is not visible (more adhoc)
- system structure tends to degrade, as the regular software change tends to not be as well managed and over time these changes can corrupt the structure

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

What is the integration and configuration process model?

A

Based on software reuse, where systems are integrated from existing components or application systems (COTS parts). Will generally require some configuration/adaptation.

  • Has reduced costs and risks.
  • Faster deployed
  • BUT, less control over the outcome and evolution of the components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What the fuck is up with Boehm’s spiral model!?

A

It is an incremental, risk driven process framework
Circles around the stages:
- setting objectives for that phase of the project
- assessing and reducing risks
- developing and validating
- planning
Advantages:
- lots of risk management
- Involves the customer before completion
- easy monitoring and management of the project
Disadvantages:
- long (an iteration can be 6-24 months)
- lots of documentation and rules
- high process cost

17
Q

What is agile development?

A

Fast-paced, incremental development.
Points: reduce overheads, limiting documentation, interleaved processes, developed in a series of versions, frequent delivery, extensive tool support (automated testing tools for ex.)

17
Q

What are the 5 principles of agile methods?

A
  • Customer involvement
  • Incremental delivery
  • people not process (exploit the skills of the team, don’t make them do particular things)
  • embrace change (expect things will change)
  • maintain simplicity (in the system being developed and also the development process)
18
Q

How do you write a user story?

A

“As a … , I want… , so that … .”

19
Q

How do you write a task card?

A

Task cards are technical in nature, implementing one aspect of the user story. They answer the question of how should it be done? Tasks represent the actual development steps necessary to implement a user story. Tasks for the example Ferris wheel story might include “Create a FerrisWheel class,” “Add the Ferris wheel to the park,” and “Add an Employee to run the Ferris wheel.”

20
Q

What is refactoring?

A

Improving code structure without changing the behaviour. Could involve: removing bad smells, re-organisation, increasing readability, etc.

21
Q

What is test driven development?

A
  • tests are written before code
  • clarifies requirements
  • tests done like this so they can be executed automatically
22
Q

What is scrum?

A
  • managing iterative development
  • uses ‘sprints’: 2-4 week long cycles of work
  • have a scrum master who is the facilitator
  • short daily meetings (scrums) where everyone shares information and progress
    Benefits: manageable tasks, visibility or what work has been completed, on-time delivery for customers, positive culture created