how to get a girlfriend in 10 days

5.0(1)
studied byStudied by 29 people
5.0(1)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/98

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

99 Terms

1
New cards

Software change is inevitable because:

A key problem is:

  • new requirements emerge

  • business environment changes

  • errors must be repaired

  • new computers and equipment are added to the system

  • performance/reliability of system may have to be improved

    -implementing/managing change to existing software systems

2
New cards

What is program evolution dynamics?

the study of the processes of system change

3
New cards

What are lehman’s laws

  • continuing change

  • increasing complexity

  • large program evolution

  • organisational stability

  • conservation of familiarity

  • continuing growth

  • declining quality

  • feedback system

4
New cards

Lehman’s law generally apply to what?

It is not clear how they should be modified for:

large, tailored systems

- shrink-wrapped products

- systems that incorporate a significant # of COTS (commercial off the shelf)

- small orgs

- med. sized systems

5
New cards

What is software maintenance? (EXAM)

Modifying a program after it has been put into use

6
New cards

Why is maintenance inevitable?

environment is changing

systems are tightly coupled with their environment

systems MUST be maintained if they want to stay useful

7
New cards

What are the types of maintenance? (EXAM)

  • repair software faults

  • adapt software to different operating enviornment

    • add/modify system’s functionality

8
New cards

Distribution of maintenance effort is:

65% functionality addition/modification

18% software adaptation

17% fault repair

9
New cards

Maintenance Cost Factors:

  • Team stability (cost reduce if same staff are present)

  • Contractual responsibility (no incentive to design for future change)

  • staff skills (staff often inexperienced and have limited knowledge)

  • program age and structure (programs age, structure degrades and become harder to understand and change)

10
New cards

Complexity depends on:

  • Complexity of control structures

  • complexity of data structures

    • object, method and module size

11
New cards

Process measurements used to assess maintainabilty:

  • number of requests for corrective maintenance

  • average time required for impact analysis

  • average time to implement change request

  • number of outstanding change requests

12
New cards

Evolution processes depend on:

  • the type of software being maintained

  • development processes used

  • skills and experience of the people involved

13
New cards

The system evolution process: (EXAM)

System release → change requests → impact analysis → release planning → change implementation → release planning or system release

release planning → change implementation or

fault repair, platform adaptation, system enehancement

<p>System release → change requests → impact analysis → release planning → change implementation → release planning or system release</p><p></p><p>release planning → change implementation or</p><p>fault repair, platform adaptation, system enehancement</p>
14
New cards

Urgent change requests happen when:

  • serious fault has to be repaired

  • changes to system’s environment have unexpected effects

  • if there are business changes that require a very rapid response

15
New cards

What is security engineering? (EXAM)

  • method to support development/maintenance of systems that resist malicious attacks that are intended to damage a computer-based system or its data

16
New cards

What are the security dimensions?

  • confidentiality: made accessible to unauthorized users

  • integrity: make data un-usable

  • availabilty: make accessible data unaccessible

17
New cards

Details of Security

  • security of system is a system property that reflects the system’s ability to protect itself from accidental or deliberate external attack

  • essential as most systems are networked

  • essential pre-requisite for availability, reliability, and safety

18
New cards

Asset (EXAM)

something of value which has to be protected

19
New cards

attack (EXAM)

exploitation of a system’s vulnerability

20
New cards

control (EXAM)

protective measure that reduces a system’s vulnerability

21
New cards

exposure (EXAM)

possible loss or harm to a computing system

22
New cards

threat (EXAM)

circumstances that have potential to cause loss or harm

23
New cards

vulnerability (EXAM)

weakness in a system that may be exploited to cause loss or harm

24
New cards

What are the threat types? (EXAM)

  • interception: allow attacker to gain access to asset

  • interruption: allow attacker to make part of system unavailable

  • modification: allow attacker to tamper with system asset

  • fabrication: allow attacker to insert false information into a system (MOST DANGEROUS)

25
New cards

What are types of security requirement?

  • identification

  • authentication

  • authorizaiton

  • immunity

  • integrity

  • intrusion

  • non-repudiation

  • privacy

  • security auditing

  • system maintenance

26
New cards

security requirement classificatoin

  • risk avoidance (set out the risks that should be avoided)

  • risk detection (define mechanisms that identify risk and neturalise)

  • risk mitigation (how system should be designed to recover from loss)

27
New cards

What is a bot?

Automated software app that performs repetitive tasks over a network

faster at these tasks than humans

can be malicious and come in the form of malware

28
New cards

Main cybersecurity threats

  • viruses

  • worms

  • trojan horses

  • social engineering

  • phishing

  • ransomware

  • pharming

  • zombie botnets

  • rootkits

  • mitm

29
New cards

What is a virus? (EXAM)

program that spreads by injecting files and then making copies of itself

  • some are harmelss, others may damage or destroy files

  • require some sort of user action

30
New cards

What are worms?

  • type of virus that can spread w/o human interaction

  • take up valuable memory and network bandwidth

  • allow attackers to gain access to your computer remotely

31
New cards

what are trojan horses?

  • computer program that hides a virus or other damaging programs.

  • masquerades as a benign program while quietly destroying data or damaging your system

32
New cards

What is social engineering?

tactic of manipulating, influencing, or deceiving a victim in order to gain control over a comptuer system, or to steal personal and financial information.

33
New cards

What is Phishing? (EXAM)

  • scam emails/texts that contain links to malicious websites

  • Spear Phishing: targets specific individuals through emails

  • Whaling: aimed at senior executives, designed to encourage victims to perform a secondary action, such as initating a wire transfer

  • Vishing (EXAM): defrauding people over the phone

  • Email Phishing: scam emails/texts that contain links to malicious websites (is this not the definition of phishing?)

34
New cards

What is ransomware?

  • prevents you from accessing your device and the data stored on it by encrypting your files

  • criminals will demand ransom in exchange for it back

  • Crypto-Ransomware: encrypts files in order to extort money.

  • Locker ransomware: prevents users from using their device for extortion

35
New cards

What is Pharming?

  • redirects internet users to fake websites to steal personal info

36
New cards

What is zomebie botnet?

  • botnet is # of compromised computers used to create and send spam viruses or flood network with messages as DoS attack.

  • compromised computers are called zombies

  • malware includes component that allow attacker to control infected computers remotely

37
New cards

What is a rootkit?

  • malware program that enables cyber criminals to gain access to machines without being detected

  • may enable keystroke logger, etc

  • it eliminates evidence of break-in

  • modifies the operating system

38
New cards

What is man in the middle attack?

  • cyber attack in which threat actor puts themselves between user and an application, to intercept their communications and data and use them for malicious purposes

39
New cards

Dependable programming guidelines are:

  • limit visibility of info in a program

  • check inputs for validity

  • provide handler for all exceptions

  • minimize use of error-prone constructs

  • provide restart capabilities

  • check array bounds

  • include timeouts when calling external components

  • name all constants that represent real world values

40
New cards

What are the System Types?

  • personal systems

  • embedded systems

  • distributed systems

41
New cards

Distributed system characteristics:

  • resource sharing

  • openness

  • concurrency

  • scalability

  • fault tolerance

42
New cards

Distributed System disadvantages:

  • complexity

  • security

  • manageability

  • unpredictability

43
New cards

Distributed Systems architectures: (EXAM)

  • Client-server architectures

    • called on by clients

    • servers that provde services treated differently from clients that use services

  • Distributed object architectures

    • no distinction b/w clients and servers. any object on system may provide and use services from other objects

44
New cards

Middleware:

  • software that manages and supports different components of a distributed system.

  • examples:

    • transaction processing monitors

    • data converters

    • communication controllers

45
New cards

Client-server architectures:

  • modelled by set of services provided by servers and set of clients that use these services

  • clients know of servers but servers need not know of clients

  • clients and servers are logical processes

  • mapping is not necessarily 1:1

46
New cards

Layered application architecture:

  • presentation layer

  • application processing layer

  • data management layer

47
New cards

Thin Client model

  • all of application processing and data management is carried out on the server

  • used when legacy systems are migrated to client server architectures

  • disadvantage: places heavy processing load on both server and network

48
New cards

Fat client model

  • server only responsible for data management

  • more processing delegated to client

  • most suitable for new C/S systems where capabilites are known in advance

  • more complex than thin client model

49
New cards

3-Tier architectures:

  • each application architecture layers may exectue on a separate processor

  • allows for better performance than thin-client approach and simpler to manage than fat-client approach

  • more scalable

50
New cards

Distributed Object architectures

  • no distinction b/w client and server

  • each entity is an object that provides services to other objects and receives from other objects

  • communicatoin is b/w middleware system called object request broker (important)

  • more complex to design

51
New cards

Distributed object architecture advantages:

  • allows designer to delay decisions

  • very open system

  • flexible and scalable

  • possible to reconfigure system dynamically

52
New cards

CORBA (EXAM) f

  • common object request broker architecture

  • middelware for distributed computing required at 2 levels

    • logical communication

    • component

53
New cards

CORBA application structure (EXAM)

gotta draw it for the exam

<p>gotta draw it for the exam</p>
54
New cards

CORBA services

  • naming and trading services

  • notification services

  • transaction services

55
New cards

Peer-toPeer architectures

  • decentralised systems where computations may be carried out by any node in network

  • designed to take advantage of coputational power and storage of large number or networked computers

56
New cards

Service-oriented architectures

  • based around notion of externally provided services

  • web service is standard approach to making reusable component available and accessible across the web

57
New cards

Web Services chart: (EXAM)

exam question

<p>exam question</p>
58
New cards

Services and distributed objects:

  • provider independence

  • public advertising

  • service binding

  • opportunistic construction of new services

  • pay for use of services

  • smaller applications

  • reactive and adaptive apps

59
New cards

services standards (EXAM)

  • SOAP - simple object access protocol

  • WSDL - web services description language

  • UDDI - universal description, discovery and integration

60
New cards

Agile methods

  • focus on code over design

  • based on iterative approach to software dev

  • intended to deliver working software fast

  • reduce overheads in software process (limiting documentation)

61
New cards

Agile manifesto (EXAM)

  • while (value in items on the right), value items on the left more

  • individuals/interactions > processes and tools

  • working software > documentation

  • customer collab > contract neogtiation

  • responding to change > following a plan

62
New cards

Principles of agile methods:

  • customer involvement

  • incremental delivery

  • people not process

  • embrace change

  • maintain simplicity

63
New cards

Plan-driven development

  • heavy weight approach

  • based around separate development stages with outputs produced at each stage planned in advance

  • example: waterfall

64
New cards

agile development

  • light weight approach

  • spec, design, implementation, testing are interleaved

  • outputs are decided through process of negotiation during development process

65
New cards

Extreme programming

  • extreme approach to iterative dev.

  • new versions built several times a day

  • increments delivered every 2 weeks

  • tests must be run for every build and build only accepted if tests run successfully

66
New cards

Refactoring:

  • programming team look for possible improvements and make these improvements

  • improves understandability of software

  • changes are easier to make b/c code is well structured and clear

  • some changes require architecture refatoring which is COSTLY

67
New cards

Test-First development:

  • writing tests b4 code clarifies requirements

  • tests written as programs rather than data so they can be executed automatically

  • prev and new tests run auto when new functionality is added to check for new errors

  • customer helps write tests as dev proceeds.

68
New cards

Test automation:

  • tests are written as executable components b4 task is implemented

69
New cards

Pair-Programming

  • work in pairs

  • helps dev common ownership of code and spreads knowledge across the team

  • serves as informal review process

  • encourages refactoring

70
New cards

Scrum: (most popular agile methodology) (EXAM)

  • most popular form of agile development

  • deliverables every 2-4 weeks

  • 3 phases

    • outline planning

    • sprint cycles

    • project closure phase

71
New cards

Scaling agile methods

  • successful for small and medium sized projects

  • improved communications

  • scaling up agile methods involves changing these to cope with larger, longer projects

72
New cards

scaling up vs scaling out

  • scaling up = using agile methods for large software that cannot be developed by small team

  • scaling out = how agile methods can be introduced to large orgs with many years of software experience (convincing people to use agile)

73
New cards

Software Cost Estimation (EXAM)

  • predicting resources required for software dev process

74
New cards

Software cost components (EXAM)

  • hardware and software costs

  • travel and training costs

  • effort costs (DOMINANT)

75
New cards

Productivity Measures

  • size related measures

  • function-related measures

76
New cards

Measurement Problems

  • estimating size of measure

  • estimation total # of programmer months which have elapsed

  • estimating contractor productivity

77
New cards

Factors affecting productivity:

  • application domain experience

  • process quality

  • project size

  • technology support

  • working environment

78
New cards

Estimation Techniques (EXAM)

  • alogrithmic cost modelling

    • cost estimation is code size

  • expert judgement

    • 1+ experts use experience to predict software costs

    • Pros: relatively cheap estimation, can be accurate

    • Cons: inaccurate if there are no experts

  • estimation by analogy

    • cost computed by comoparing project to similar projects

    • accurate if project data is available

    • Impossible if no project found

  • pricing to win

    • costs whatever customer has to spend on it

    • pro: you get contract

    • con: probability customer gets system they want is small.

79
New cards

Managing people:

  • managing people working as individuals and in groups

  • people = orgs most important asset

80
New cards

Motivation:

  • complex issue but appears there are different types of motivation based on

    • basic needs

    • personal needs

    • social needs

81
New cards

Human Needs Hierarchy:

  • Top to bottom

  • self-realization needs

  • > esteem needs

  • > social needs

  • > safety needs

  • > physiological needs

82
New cards

Personality types

  • task oriented

    • motivation for doing the work is the work itself

  • self oriented

    • work is a means to an end which is the achievementof individual goals

  • interaction oriented

    • presence and actions of co-workers. people go to work b/c they like to go

83
New cards

Group Working:

  • key determinant of group performance

84
New cards

Group Composition:

  • an effective group has balance of all types

  • can be difficult to ahcieve because most are task-oriented

  • need for all members to be involved In decisions which affect the group

85
New cards

Group leadership

  • depends on respect, not title or status

  • technical and managerial leader

  • career path based on technical competence should be supported

86
New cards

Group cohesiveness:

  • members consider the group to be more improtant than any individual in it

  • Pros:

    • group quality standards develop

    • inhibitions caused by ignorance reduced

    • memberes learn from each other

    • egoless programming can be practiced

87
New cards

Group communications:

  • essentail for effective group working

  • info must be exchanged on status of work

  • good communications strengthen group cohesion

88
New cards

Group organization: (EXAM)

  • grop sizes should be < 8 members

  • break big projects into small ones

89
New cards

Staff selection factors:

  • personality,

  • attitude,

  • adaptability ,

  • communicatoin ability,

  • educational background,

  • programming language experience,

  • platform experience,

  • application domain experience

90
New cards

People Capability matruity model:

  • 5 stages

    • initial

    • repeatable

    • defined

    • managed

    • optimising

91
New cards

What does COCOMO stand for and when was it released?

Constructive Cost Model in 1981

92
New cards

SLOC stands for?

Source lines of code

93
New cards

5 scale drivers are:

  • precedence

  • development flexibility

  • architecture/risk resolution

  • team cohesion

  • process maturity

94
New cards

Effort Equation:
_________________

EAF = _____________
E = ______________
KSLOC = ______________

effort = 2.94 x EAF x (KSLOC)^E PERSON MONTHS

effort adjustment factor from cost drivers = all cost factors multiplied together
exponent derived from 5 scale drivers
Kilo source lines of code

95
New cards

Duration Equation: ___________

SE = ________

duration = 3.67(Effort)^SE

schedule equation exponent from 5 scale drivers

96
New cards

Average staffing = ?

average staffing = effort / duration = people

97
New cards

what is cloud computing?

INTERNET BASED COMPUTING where software and information are provided ON DEMAND. PAY-FOR-WHAT-YOU-USE.

98
New cards

Cloud Computing Service Models:

  • Infrastructure-as-a-service: storage, memory, networks

    • Pro: revenue less volatile, fast to setup

    • Con: fierce competition, privacy concerns

  • Platform-as-a-service: middleware, dev tools

    • Pro: revenue less volatile, software licenses cost avoidance

    • Con: customers are heavy users, security breach concerns

  • Software-as-a-service: netflix, google doc

    • Pro: increased profit, lower up-front costs

    • Con: difficult integration with legacy software, connectivity requirements

99
New cards

Hybrid Cloud Platforms are:

  • big data - large volume of data to by analyzed

  • machine learning - use of AI to auto learn

  • IoT - collect/transfer data over network

  • Fog - structure between cloud and devices that produce data