1/67
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
maintainability
software should be written in such a way that it can evolve to meet the changing needs of customers.
this is critical as software change is inevitable requirement of a changing business environment
dependability and security
should not cause physical or economic damage in the event of system failure.
malicious users should not be able to access or damage the system
efficiency
software should not make wasteful use of system resources such as memory and processor cycles
includes responsiveness, processing time, memory utilisation etc
acceptability
software must be acceptable to the type of users for which it is designed. this means it must be understandable, useable and compatible with other systems that they use.
progresses in software engineering
- increased ability to produce more complex systems
- effective methods to specify, design, implement software have been developed
- better understanding of the activities involved in software development
- novel software engineeering approaches
- standard notations and tools have been produced
who polices ethical behaviour?
many professional societies have codes of conduct
- BCS
- ACM
- IEE
but there is no requirement for a professional software engineer to be a member
what do all software processes involve
- specification
- design and implementation
- validation
- evolution
software process model
an abstract represenation of a process
it presents a description of a process from some particular perspective
main drawback of waterfall model
difficult to accommodate change
key feature from Boehm's Spiral Process Model
explicitly recognises risk
pros of incremental development
- cost of implementing changes is reduced
- easier to get customer feedback
- possible to delivery and deploy useful software before final product
cons of incremental development
- difficult for managers to measure progress
- system structure can degrade as new increments are added
pros of reuse-oriented software engineering
- reduced costs and risks
- faster delivery and deployment
cons of reuse-oriented software engineering
- compromises to accommodate limitations of existing solutions
- loss of control over evolution of reused components
pros of agile software engineering
- strong engagement with client
- focus is on working software
- encourages reflection on team performance and system design
cons of agile software engineering
- less predictable - specifications change, leading to scope creep
- less structured
- works best in small teams
confidentiality
information in a system may be disclosed or made accessible to people or programs that are not authorized to have access to that information
integrity
information in a system may be damaged or corrupted making it unusual or unreliable
availability
access to a system or its data that is normally available may not be possible
types of cyber attacks
- deliberately, for fun
- obstruct, block, deny your services
- steal info, impersonation
- modify, delete, damage data
- manipulate public opinion, fake news
backdoors
secret routes into software left by developers
later exploited by hackers, or developers
direct access
left or lost disks, flash drives
unsecured networks, laptops
eavesdropping
sniffing traffic going through routers
inferring data from EM waves, energy usage
spoofing
keyloggers used to detect password entry
steal and use another persons identity
trojans, viruses, worms
malware hiding inside regular software
worm viruses attached to end of data blocks
used for data tampering, keylogging
privilege escalation
enter system using end user privileges
get higher authorisation, up to root access
denial of service
overload machine, bandwidth, trigger a lockout
DDOS using a botnet
clickjacking
redirect web access, fake login pages, password sniffing
phishing
- attacker impersonates a trustworthy source
- tries to get user to input personal info
- often with URL link-shorteners to conceal redirection
- phone/email scams
pretexting
- plausible fabricated role play scenario to elicit information
- phone call offering to help fix a (non-existent) problem
- attacker asks user to confirm their identity
baiting
- infected disks, web pages with attractive content
- promise of free things if user gives identity
- leave infected flash drives around to see if you plus one in
sockpuppers
- robot accounts on social media
- adjusts balance of opinions, acts as a voice multiplier
troll armies
- organised teams of users on social media
- used to promote one side in a campaign, election or referendum
- form of state attack used by Russia, USA
astroturfing
- creates fake public opinion
- sometimes started by deliberately posting contrary arguments to trigger bigger desired counter response
authentication and authorisation
- secure user accounts with password protection
- access controls, privileged users may access specific data
multi factor authentication
- requires 3+ items; user ID, password, memorable info
- sometimes requires physical key / 'dongle'
firewalls
- shield internal network services from attacks
- perform packet filtering on external traffic
secure networking
- HTTPS: client server authentication using private/public key
- encrypted data transfer
- VPNs
physical separation
- physically separate networks, computers (no internet)
- secure room inside a Faraday cage (blocks EM)
cryptography
- message digests (proof of no tampering in transit)
- digital certificates (proof of origin of software, message)
- non repudiation (proof of bilateral transaction)
- confidentiality (encryption provides secrecy)
intrusion detection example
packet-logging systems for forensics
formal verification
- secure O/S or hypervisor (secure installer, service layer)
- blocks malware, installs only trusted modules
social countermeasures
- training in correct use of machines, networks, passwords
- training in anti-phishing, pretexting, baiting scams
subversion countermeasures
- education
- legislation
security engineering
tools, techniques and methods to support the development and maintenance of systems that can resist malicious attacks intended to damage a system or its data
a sub field of the broader field of computer security
Computer Misuse Act, 1990
prohibits hacking for malicious purposes
Human Rights Act, 1998
enshrines freedoms, especially to privacy
Data Protection Act, 1998
sets limits on the holding of personal data
Investigatory Powers Act, 2016
allows traffic monitoring for security reasons
General Data Protection Regulation, 2018
EU regulation on data protection and privacy.
Computer Misuse Act offenses
1. unauthorised access to computer material
2. unauthorised access with intent to commit or facilitate commission of further offences
3. unauthorised acts with intent to impair, or with such recklessness as to impair, operation of computer etc
4. unauthorised acts causing, or creating risk of, serious damage
5. making, supplying or obtaining articles for use in offence under 1, 3 or 4
Data Protection Act requirements
must make sure the information is:
- used fairly and lawfully
- used for limited, specifically stated purposes
- used in a way that is adequate, relevant and not excessive
- accurate
- kept no longer than necessary
- handled according to peoples's data protection rights
- safe and secure
- not transferred outside the european economic area without adequate protection
what does the Investigatory Powers Act allow UK intelligence / police to do
- targeted interceptions of communications
- bulk collection of communications data
- bulk interception of communications
- targeted hacking of devices for national security reasons
what does the Investigatory Powers Act require communication service providers to do
record all websites visited for 1 year
allow police access to such records without a warrant
investigatory powers comission
- panel of judges, who regulate application of law
- intended as a check and balance
UK GDPR key principles
- lawfulness, fairness and transparency
- purpose limitation
- data minimisation
- accuracy
- storage limitation
- integrity and confidentiality
- accountability
four 'p's of project management
people
product
process
project
key project management issues
- mitigate risks of failure
- satisfy customer expectations
- deliver on time and within budget
definition of 'customer'
your client, the person who commissions the system - you must meet his/her objectives
but he/she may not be the final end-user - may not understand all the operational issue
definition of 'stakeholders'
someone with a vested interest in how the system will work
sometimes conflicting interests in how the system works
need to balance interests of all these parties - deal with socio-political aspects
need to manage expectations - what is possible, desirable, impossible to deliver
basic idea of function point analysis
- identify main business functions
- score each on a scale based on how difficult to implement, and sum the function points
- pick a constant and multiply the function points by this constant, to yield the total size of the project
difficulties of function point analysis
- picking accurate size, time, cost constraints is a learned skill
- new devs typically under estimate by a factor of 3
risks to mitigate
- Misunderstand the customer's needs
- The project scope is poorly defined
- changes are poorly managed
- The supporting technology changes
- Business goals are changing
- Unrealistic deadlines are set
- Users resistant to new practices (power, control)
- Losing the sponsorship (funding, company champion)
- Unskilled/uncommunicative software team
- Poor management strategy (bid-to-win)
questions in systems development
- will the new system bring real benefits
- how to integrate with physical / legacy systems
- should physical / legacy systems be replaced?
coordination issues in large projects
- no one person understands the whole
- increased importance of modelling, abstract or partial views of the system, decomposition into subsystems
- increased reliance on documentation, designs, interfaces
- communication can be poor across the project as a whole
how can models help with communication
- offers a framework across/within teams
- clarify and documents structures and relationships
- reveals/generates new ideas and possibilities
how can models help with the product
- support decomposition, modular design
- support code generation using CASE tools
- support QA scenarios, test generation
Still learning (38)
You've begun learning these terms. Keep up the good work!