Software engineering Flashcards

1
Q

Plan Driven WaterFall Model

A

Separate and distinct phases of specification and development
- used for large system engineering projects
and when safety is critical?

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

waterfall model issuess

A

-if outsoruced is used, hard for development team to check quailty of outsourced stage
-Only appropriate when the requirements are well understood and changes are limited. This is unlikely as few businesses have truly stable conditions

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

Why is plan driven less used like waterfall and when would they be still relevant

A

Difficult to handle unknown problems using a model that forces you to planeverything in advance
* Places a lot of emphasis on testing behaviour at the end
* Limits stakeholder interactions to beginning and end

Still relevant in large scale development where lots of coordination needed
Safety critical systems requiring certification

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

V-Model
Advantages and Disadvantages

A

Waterfall model with emphasis on testing(plan driven)

-Helps ensure legitamacy of testing leading to higher chance of success than waterfall

-Changes to specification midway require changes to past phases
-inefficient in ill-understood situations

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

Incremental development
ad dis

A

Develop systems in parts where each part provides a useful function to the customer

-Debugging is easier for each increment and easier to recieve feedback
-Rapid Delivery and development possible. Allows customers to gain value from software earlier
-Reduce cost of change for future incremenets from feedback.

Increased cost of change for past incremeents
More complex for manangement.

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

Iterative development
adv dis

A

Refining and improving the same functionality.

-Good for prototyping risky functions
-potential for ongoing feedback

-Not cost effective to proudce documents that reflect every version of system
-System Structure can degrade

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

Prototype advantage and disadvantage

A

Improved system usability
allows for improved design quality
closer match to users real needs

Costs of developing prototypes
Prototypes leave out many functionality

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

Specifying written requirements

A

Description - Short statement of purpose(system will provide print faacilitiy, website will support multiple languages)

ID- unique numerical number
Rationale- why is the requirement important(maximise users who can operate a website)

fit criteria- tells you how to go abt something. how to check it.
for example - a system supporting multiple file formats could have fit criteria system will be tested against pdf,jpeg

Owner- assigning an owner confers responsibility

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

Requirement classifications

A

Furps
Functionality
Usability
reliability
performance
supportability

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

Enduring vs volatile requirements

A

Enduring - Stable requirements derived from core activity(hospital will always have doctors)
Volatile requirements - requirements which change during development or when system is in use

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

Agile development applicability

A

Ensuring it isint a safety critical development
Ensuring it isint in a heavily regulated industry
If project contains uncertain elements at the time of starting
small medium size projects around 3-18 months

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

Agile development technique XP

A

takes extreme approach to iterative development
New software versions may be built several times per day
small increments are delivered to customers frequentyl
ALl test must be ran for every build

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

Key practices of XP

A

User stories- user requirements are expressed as scenarios then broken into task( AS A ? I WANT TO? , SO THAT I ?)

collective ownership- anyone can change it if bug spotted

refactoring - programming teeam look 4 possible software improvements. e.g renaming methods to make them more understandbable

Pair programming- developing code in pairs
More efficient as each line of code looked at by 2

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

Test Driven Development

A

Test are written before the code and code is developeed incrementally along with a test for that increment

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

how to go about running a TDD

A

identity functionality to test
write automated test for this functionality
Run the test(should fail as code not written yet)
implement the functionality and re-run test
Once successful, implement next chunk of functionality

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

Benefits of TDD > Poblems

A

Writing the tests before the code itself clarifies the
requirements to be implemented
Code Covereage as every code segment has at least one associated test
Test are simple so debugging should be simple

Testing emergent features is tricky such as security
Hard to determine when a set of test is complete

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

Agile development technique : SCrum

A

A daily meeting of the Scrum team that reviews progress and prioritizes work to be done that day.

nitial phase: outline planning phase (objective)
Sprints Phase: Where each sprint develops an increment of the system.(shippable piece of functionality)
Closure: Documentatin and lessons learned

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

Scrum Master
backlog

A

faciliator who arranges daily meetings
-Tracks the work to be done
-measures progress
communicates with customers and management outside the team

this is a list of ‘to do’ items which the Scrum team must tackle
A backlog is maintained containing the set of
user stories still to be implemented.

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

Scrum benefits

A

Product broken down into a set of managable chunks
Unstable requirements do not hold up progress
Customers see benefits with every increment

Daily meetings take up valuable resources restricting team size
Scrum master is challeniging
Close ties depend on team co-location

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

Feasibility study

A

Decides whether or not the propsed system is worthwhile
-risk of project
how will system help

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

Why would personas be used

A

Personas are used to represent the interests of user
groups without identifying with real world individuals
Particularly useful when exploring negative character
traits

22
Q

Benefits of software reuse
Problems of reusye

A

Increased dependability- Tested software likely to be more dependable then new software
Lower development costs- lower cost than developing new software
accelerated development- speed up system production as development and validation time reduced.

Increased mainteneance costs- reused elements of system may become increasingly incompatible with system changes.

Finding,understanding and adapting reusable components- software components have to be understood and sometimes apdapted to work in new enviroments.

23
Q

Open source licensing models

A

General public license - ‘recipricol license’ meaning if you use open source spftware under GPI, you must make that software open source.

Lesser general public license- you can write components that link to open-source code without having to publish source of your component

Berkley standard distribution license- Non reciripocol license meaning not obligated to re-publish any changes made to open source code

24
Q

ERP , CRM , LCNC

A

ERP-costly, increases process speeds of business

CRM - customer niteraction and sales

For LCNC - low code no code ( point and click programming)
 Short lifespan systems
 Rapid deployment situations
 Limited functionality systems
 Non mission critical infrastructure

25
Q

Measurements for reliability

A

Mean time between failure = Mean time to failure + mean time to recover
Availability = MTTF / (MTTF + MTTR)

26
Q

Drawbacks of measurements for reliability

A

System load difficult to model as it may vary by time of day
Disasters may occur
Seasonality
Growing business

27
Q

Static Software inspection (testing)

A

No execution of code
used for verification and not validaiton.

AD-Incomplete versions of a system can be inspected without additional costs
An inspection can also consider some nonfunctional attributes of a program

D

28
Q

Dynamic testing

A

Development testing, where the system is tested during development to discover bugs
Release testing, where a separate testing team test a complete version of the system before it is released to users.
User testing, where users or potential users of a system test the system in their own environment.

29
Q

Testing strategies

A

Partition testing - where you identify groups of inputs that have common characteristics and should be processed in the same way.

Guideline-based testing, where you use testing guidelines to choose test cases.

30
Q

Development testing

A

Includes
Unit testing- Individual program units or objects classes are tested.
unit tested should be automated to make retesting easier.

Component testing- several indiviudal units are integrated to create composite component

System testing- some or all of the components in a system are integrated and the system is tested as a whole.

31
Q

Release testing

A

usually black box testing process so unit test wont help.
may involve testing the emergent properties, such as performance and reliability.

Load is steadily increased until the system
performance becomes unacceptable.

32
Q

User testing types

A

Alpha testing- Users of the software work with the development team to test the software at the developer’s site.

Beta testing -release of the software is made available to users to allow them to experiment and to raise problems that they discover with the system developers.

Acceptance testing- Customers test system to decide if its ready to be accepted from system developers and deployed in customer environment

33
Q

DevOps Practices

A

DevOps involves far deeper communication and cooperation between Development staff and Operations staff.

DevOps would be used where there is uncertain functionality, and potential for ongoing change

Automated Testing - TDD

Integrated software configuration- Systems allow staff to manage and share information about configuration and change

Continuous integration and deployment - integrate changes quickly and deploy quickly. – leads to far more responsive development but increase risk as it relies on programmers testing codes themself

real-time-monitoring- proactive monitoring canresolve issues before they become catastrophic( making logs available to developers)

34
Q

Devops drawbacks

A

Requires organisational culture change. Management, employee training.
Requires significant investment in software development tools such as docker
currently few studies to measure effectiveness

35
Q

DevSecOps

A

Similar to Devops but Centred on security engineering

36
Q

Key processes to support DevSecOps

A

Test Driven Security- Regression test to cover common security failures

SAST- used testing in relation to security without running the code.
-Analyse system based on static code
-Largely automated tool based checking
-Prone to false positives

DAST - Attack a system while it is running to look for vulnerabilities.
-Largely automated
-Can still generate false positives despite use of IA
-blackbox in nature

IAST(interactive application)- Similar to DAST but whitebox in nature
- Only checks code being executed
-programming language dependent

Penetration testing
-Uses ethical hackers
- mix of automation and manual testing
-avoids false positives
-Expensive and requires expertise

37
Q

How to monitor for intrusion

A

Intrusion detection system- Alerts human or dsicovery of threat but takes no action

Intrusion prevention systems - Would take pro-active action and alert humans.

Logging Pipelines- Without logs, we cannot monitor, Without logging pipelines, logs will remain scattered
-Logs provide easy access to info.
-Provides audit trail for secuitry incidents.

38
Q

Professional responsibility

A

Confidentiality- respect the confidentiality of employers or clients whether or not agreement has been signed

Competence - Dont accept work outside their competence

Intellectual property right- Engineers should be aware of local laws governing the use of intellectual property(copyright)

Computer misuese- Software engineers should not use their technical skills to misuse other ppls computers

39
Q

8 ethical priniples of ACM/IEEE

A

Public interest, client and employers intrest, product standards, professional judgement, ethical management, professional integrity, support colleagues, self growth.

40
Q

Equality Act
DPA
GDPR

A

Unlawful Act- Unlawful for service to discriminate against a disabled person.

Data Protection Act-Data used fairly,lawfully and transparency
- used for explicit purposes
- Used in a way that is relevant and limited
-Accurate and kept up to date
-Kept for no longer than necessary
-Handled in a way that ensures appropriate Security

GDPR- .Strengthens ability to find where your data is held
Prevents sale of your personal data without consent

41
Q

GDPR issues

A
  1. infereed data. Say you are 80 years old living in london st 1 kenworth ==> The fact you are old and in kenworth is known
  2. Hidden information - you can ask a company where they got your info from. but they only have to give a rough idea
42
Q

Foi Act

A

FOI act 2000 gives individuals the right to
access information about certain public bodies
by two routes :

Publication scheme- MAny orgs provide much of the info that can be requested using websites.

General right of access –> to be told whether info exist.
requests must be in permanent form

decision to withold requires good reasons such as:
Excessive costs
Communications with the King
law enforcement
Vexatious- clearly has no purpose or value
Repeated

43
Q

Software process activity

A

software ( specification, development, validation, evolution)

software produces with bespoke (from scratch)
COts(from standard products)

44
Q

Behavioural driven development

A

uses structered english language and focuses on providing suitable unit and acceptance test which are executable

45
Q

BDD advantages and disadvantages

A

Allows a broader range of stakeholders to check acceptance test are approriate and accurate.
-Acts as a bridge between user storeis and code test

Requires training as writing gherkin is a little difficult.
Ensures code will work but not that it is good or efficient code.

46
Q

Architectual patterns

Anti patterns

A

peer to peer
event driven
clinet server

replicated, dead code, very long methods, poor method names

47
Q

role of defensive progrmaming

A

imrpoves progarm and robustness of software through,

error handling,
input handling
redudancys
making code easily understandable

48
Q

Purpose of usecase diagram notation

A

Shows how systems are linked at a high level.
It supports non-technical users in discussing design

49
Q

Purpose of class diagrams

A

shows the existence of Classes and is used to
represent the static structure of the system

Details of the relationships between classes

50
Q

Beneftis and disadvantages to globilisation

A

Allows outsourcing to the best organisation for a given area of development
Allows 24 hour development in theory at least making use of hand offs around the
world, saving money and time

Requires understanding of local laws etc in the deployment market
Limited in-person meetings can restrict communication opportunities

51
Q

Use Case Diagrams : To determine what functionality is required
and who interacts with it
 Class and Object Diagrams : To determine what objects there are
and what associations exist between them
 Sequence Diagrams : To determine the behaviour of objects as
they interact
 State Diagrams : To explore the state of a given system
 Activity Diagrams : To determine what an object does during
states of a state diagram, and what a collection of objects do
through a whole use case

A
52
Q
A