SWE 3310 Final Exam Review

studied byStudied by 19 people
5.0(1)
Get a hint
Hint

Software change is inevitable because:

A key problem is:

1 / 98

encourage image

There's no tags or description

Looks like no one added any tags here yet for you.

99 Terms

1

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

New cards
2

What is program evolution dynamics?

the study of the processes of system change

New cards
3

What are lehman’s laws

  • continuing change

  • increasing complexity

  • large program evolution

  • organisational stability

  • conservation of familiarity

  • continuing growth

  • declining quality

  • feedback system

New cards
4

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

New cards
5

What is software maintenance? (EXAM)

Modifying a program after it has been put into use

New cards
6

Why is maintenance inevitable?

environment is changing

systems are tightly coupled with their environment

systems MUST be maintained if they want to stay useful

New cards
7

What are the types of maintenance? (EXAM)

  • repair software faults

  • adapt software to different operating enviornment

    • add/modify system’s functionality

New cards
8

Distribution of maintenance effort is:

65% functionality addition/modification

18% software adaptation

17% fault repair

New cards
9

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)

New cards
10

Complexity depends on:

  • Complexity of control structures

  • complexity of data structures

    • object, method and module size

New cards
11

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

New cards
12

Evolution processes depend on:

  • the type of software being maintained

  • development processes used

  • skills and experience of the people involved

New cards
13

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>
New cards
14

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

New cards
15

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

New cards
16

What are the security dimensions?

  • confidentiality: made accessible to unauthorized users

  • integrity: make data un-usable

  • availabilty: make accessible data unaccessible

New cards
17

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

New cards
18

Asset (EXAM)

something of value which has to be protected

New cards
19

attack (EXAM)

exploitation of a system’s vulnerability

New cards
20

control (EXAM)

protective measure that reduces a system’s vulnerability

New cards
21

exposure (EXAM)

possible loss or harm to a computing system

New cards
22

threat (EXAM)

circumstances that have potential to cause loss or harm

New cards
23

vulnerability (EXAM)

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

New cards
24

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)

New cards
25

What are types of security requirement?

  • identification

  • authentication

  • authorizaiton

  • immunity

  • integrity

  • intrusion

  • non-repudiation

  • privacy

  • security auditing

  • system maintenance

New cards
26

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)

New cards
27

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

New cards
28

Main cybersecurity threats

  • viruses

  • worms

  • trojan horses

  • social engineering

  • phishing

  • ransomware

  • pharming

  • zombie botnets

  • rootkits

  • mitm

New cards
29

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

New cards
30

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

New cards
31

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

New cards
32

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.

New cards
33

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?)

New cards
34

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

New cards
35

What is Pharming?

  • redirects internet users to fake websites to steal personal info

New cards
36

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

New cards
37

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

New cards
38

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

New cards
39

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

New cards
40

What are the System Types?

  • personal systems

  • embedded systems

  • distributed systems

New cards
41

Distributed system characteristics:

  • resource sharing

  • openness

  • concurrency

  • scalability

  • fault tolerance

New cards
42

Distributed System disadvantages:

  • complexity

  • security

  • manageability

  • unpredictability

New cards
43

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

New cards
44

Middleware:

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

  • examples:

    • transaction processing monitors

    • data converters

    • communication controllers

New cards
45

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

New cards
46

Layered application architecture:

  • presentation layer

  • application processing layer

  • data management layer

New cards
47

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

New cards
48

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

New cards
49

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

New cards
50

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

New cards
51

Distributed object architecture advantages:

  • allows designer to delay decisions

  • very open system

  • flexible and scalable

  • possible to reconfigure system dynamically

New cards
52

CORBA (EXAM) f

  • common object request broker architecture

  • middelware for distributed computing required at 2 levels

    • logical communication

    • component

New cards
53

CORBA application structure (EXAM)

gotta draw it for the exam

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

CORBA services

  • naming and trading services

  • notification services

  • transaction services

New cards
55

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

New cards
56

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

New cards
57

Web Services chart: (EXAM)

exam question

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

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

New cards
59

services standards (EXAM)

  • SOAP - simple object access protocol

  • WSDL - web services description language

  • UDDI - universal description, discovery and integration

New cards
60

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)

New cards
61

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

New cards
62

Principles of agile methods:

  • customer involvement

  • incremental delivery

  • people not process

  • embrace change

  • maintain simplicity

New cards
63

Plan-driven development

  • heavy weight approach

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

  • example: waterfall

New cards
64

agile development

  • light weight approach

  • spec, design, implementation, testing are interleaved

  • outputs are decided through process of negotiation during development process

New cards
65

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

New cards
66

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

New cards
67

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.

New cards
68

Test automation:

  • tests are written as executable components b4 task is implemented

New cards
69

Pair-Programming

  • work in pairs

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

  • serves as informal review process

  • encourages refactoring

New cards
70

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

New cards
71

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

New cards
72

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)

New cards
73

Software Cost Estimation (EXAM)

  • predicting resources required for software dev process

New cards
74

Software cost components (EXAM)

  • hardware and software costs

  • travel and training costs

  • effort costs (DOMINANT)

New cards
75

Productivity Measures

  • size related measures

  • function-related measures

New cards
76

Measurement Problems

  • estimating size of measure

  • estimation total # of programmer months which have elapsed

  • estimating contractor productivity

New cards
77

Factors affecting productivity:

  • application domain experience

  • process quality

  • project size

  • technology support

  • working environment

New cards
78

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.

New cards
79

Managing people:

  • managing people working as individuals and in groups

  • people = orgs most important asset

New cards
80

Motivation:

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

    • basic needs

    • personal needs

    • social needs

New cards
81

Human Needs Hierarchy:

  • Top to bottom

  • self-realization needs

  • > esteem needs

  • > social needs

  • > safety needs

  • > physiological needs

New cards
82

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

New cards
83

Group Working:

  • key determinant of group performance

New cards
84

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

New cards
85

Group leadership

  • depends on respect, not title or status

  • technical and managerial leader

  • career path based on technical competence should be supported

New cards
86

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

New cards
87

Group communications:

  • essentail for effective group working

  • info must be exchanged on status of work

  • good communications strengthen group cohesion

New cards
88

Group organization: (EXAM)

  • grop sizes should be < 8 members

  • break big projects into small ones

New cards
89

Staff selection factors:

  • personality,

  • attitude,

  • adaptability ,

  • communicatoin ability,

  • educational background,

  • programming language experience,

  • platform experience,

  • application domain experience

New cards
90

People Capability matruity model:

  • 5 stages

    • initial

    • repeatable

    • defined

    • managed

    • optimising

New cards
91

What does COCOMO stand for and when was it released?

Constructive Cost Model in 1981

New cards
92

SLOC stands for?

Source lines of code

New cards
93

5 scale drivers are:

  • precedence

  • development flexibility

  • architecture/risk resolution

  • team cohesion

  • process maturity

New cards
94

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

New cards
95

Duration Equation: ___________

SE = ________

duration = 3.67(Effort)^SE

schedule equation exponent from 5 scale drivers

New cards
96

Average staffing = ?

average staffing = effort / duration = people

New cards
97

what is cloud computing?

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

New cards
98

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

New cards
99

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

New cards

Explore top notes

note Note
studied byStudied by 37 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 23 people
Updated ... ago
4.7 Stars(3)
note Note
studied byStudied by 6 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 4 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 12 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 19 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 20 people
Updated ... ago
5.0 Stars(2)
note Note
studied byStudied by 15 people
Updated ... ago
5.0 Stars(1)

Explore top flashcards

flashcards Flashcard27 terms
studied byStudied by 65 people
Updated ... ago
5.0 Stars(2)
flashcards Flashcard20 terms
studied byStudied by 3 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard116 terms
studied byStudied by 17 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard27 terms
studied byStudied by 36 people
Updated ... ago
5.0 Stars(5)
flashcards Flashcard30 terms
studied byStudied by 14 people
Updated ... ago
5.0 Stars(2)
flashcards Flashcard37 terms
studied byStudied by 25 people
Updated ... ago
4.3 Stars(3)
flashcards Flashcard21 terms
studied byStudied by 2 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard83 terms
studied byStudied by 4 people
Updated ... ago
5.0 Stars(1)