CSCI 310 Midterm

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/92

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 1:51 AM on 10/12/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

93 Terms

1
New cards

Software Engineering Failures

​ Ariane 5 Rocket - overflow caused rocket to explode

Mars Climate Orbitor - did not use metric units so orbitor crashed

Therac 25 - gave 100x radiation due to lack of testing and user interface

World War III - soviet early warning system registered sun off of clouds as nukes

Hartford Coliseum Collapse - wet snow caused roof to collapse since there was an error in domain knowledge by the cad software

Patriot Fails - gulf war missle interception system had a rounding error that caused the missiles to be too slow and a barracks blew up

Disastrous Study - The New England Journal of Medicine reported increased suicide rates after severe natural disasters but were false since error doubled the suicides for one year

y2k - computer systems only used 2 numbers for date which would cause issues in 2000 cost billions

healthcare.gov - did not test with lots of users so only 1% of people could sign up

2
New cards

Challenges in Software Design

Scale: Larger = harder

Complexity: lots of APIs, web services

Uniqueness: no software is the same

Culture: requires a lot of planing of complex systems and maitnence

Speed: software expected to be faster which is hard

Legacy software: understanding and using past software

Changeability software must be flexible

3
New cards

Systematic

done according to a plan

4
New cards

diciplined

controlled behavior

5
New cards

Quatifiable

measuring how productive engineers are

6
New cards

development

creating software

7
New cards

Operation

creating good user interfaces

8
New cards

matenience

knowing how to fix bugs, update software, etc.

9
New cards

Software project

something that uses software development processes

10
New cards

Product

output of a software project

11
New cards

Waterfall lifecycle

​Requirements (RE)

Planning

Design

Implementation

Testing

Maintenance

12
New cards

Distribution of effort

Matenice 60%

Of the rest 40%

- Testing = 45%

- Implementation = 20%

- Design = 15%

- Requirements = 10%

- Specification = 10%

13
New cards

Functional Requirment

what the system should do/ how it should behave

14
New cards

Non-functional Requirement

how the system should preform

Product - Efficiency, Reliability, Portability, Usability

Organizational - Delivery, Implementation, Standards

​External - ​Interoperability, Ethical, Legislative

15
New cards

Software Requirement

A property that must be exhibited by some aspect of the system

16
New cards

Challenges with RE

Change - Requirements can change over time

Different words - language can be interpreted differently

Accuracy - hard to be accurate and avoid requirement conflicts

Assumptions - thinking something is obvious to everyone when it is not

17
New cards

RE Process

Elicitation - understanding the problem

Specification - describing the solution

Negotiation - agreeing upon the boundaries of the problem

Validation - agreeing on the nature of the problem

18
New cards

Elicitation

Interviews

Scenarios

19
New cards

Specification

writing the SRS

Use: Structured english, regular expressions, discussions tables, finite state automata, formal methods

20
New cards

Negotiation

​Feasibility studies

MoSCoW

21
New cards

Validation

Reviews, prototyping, test-case generation, ​

Automated consistency analysis, ​

Stakeholder verification

22
New cards

Good Requirement

Correct - does the right thing

Complete - cover all aspects of the requirement

Unambiguous - cannot be interpreted multiple ways

Verifiable - can write a test for it

consistent - does not contradict another requirement

Ranked - which requirement is more important

Modifiable - use variable in place of number

Traceable - ​Be able to show that a requirement is satisfied/ use unique ID

23
New cards

​Management of requirements change

Define process of change, define levels of change, communicate with stakeholders

24
New cards

Primary PMP Activities

Process Planning

Determine Deliverables

Estimate Costs

Scheduling

Resource Allocation

Risk Management

Quality Management

Configuration management​

Termination analysis

25
New cards

Metircs

​Quantifiable measures of characteristics of system or process

26
New cards

​Measurement

​Process of obtaining value for metrics (Direct/Indirect)

27
New cards

Modeling

Mechanism for estimating the metrics and measurements

Useful with metrics with no way to model

28
New cards

Effort Formulation

​Effort(person months) = A * (Size)^B * PI(i=1 -> # of cost drivers)[EM_i]

A: constant derived from historical project data

Size: KSLOC (thousand sources lines of code)

B: constant dependent on diseconomy of scale (5 scale drivers)

EM_i: the effort multiplier for the ith cost driver

29
New cards

​Schedule formulation

​

Schedule(months) = C (Effort)^(.33+.2(B-1.01)) x SCED%100

Schedule: calendar time in months from the requirements baseline to acceptance

C: constant derived from historical project data, 3.67

Effort: estimate person months excluding SCED effort multiplier

B: sum of project scale factors

SCED: compression/expansion percentage in the SCED cost drive

30
New cards

Cost Factors

Significant factors of cost development

31
New cards

Scale Drivers

​Sources of exponential effort variation

​Precedentedness (PREC): Degree to which system is new and past experience applies

Development Flexibility (FLEX): Need to conform with specified requirements

Architecture/Risk Resolution (RESL): Degree of design thoroughness and risk elimination

Team Cohesion (TEAM): Need to synchronize stakeholders and minimize conflict

Process Maturity (PMAT): SEI CMM process maturity rating

32
New cards

Cost Drivers

Sources of linear effort variation

Product Factors

Platform Factors

Personnel Factors

Project Factors

33
New cards

Product Factors

​Reliability (RELY): measures extent to which software must preform its intended function over time

Ask: what is the effect of a software failure?

Data (DATA): captures effect large data requirements have on development to generate test data that will be used to excersize the program

Complexity (CPLX): measures complexity of operations (control, computational, device-dependent, data, UI) done with the system

Reusability (RUSE): accounts for additional effort needed to construct component for reuse

Documentation (DOCU): what is the sustainability of the project's documentation to its lifecycle needs

34
New cards

Platform Factors

​Time constraint (TIME): percentage of available execution time expected to be used by the system

Storage constraint (STOR): percentage of available storage space expected to be used by the system

Platform volatility (PVOL): assesses the volatility of the platform (how ofter the software/hardware will have to change)

35
New cards

Personnel Factors

​Analyst capability (ACAP): analysts work on RE, high level design, and detailed design

Consider analysis and design ability, efficiency and thoroughness, and the ability to communicate and cooperate.

Programmer capability (PCAP): evaluation of programmers as a team

Consider ability, efficiency and thoroughness, and the ability to communicate and cooperate.

Applications experience (APEX): assess the team's equivalent level of experience with this type of application

Platform experience (PLEX): asses the team's equivalent level of experience with this platform including:

The OS, GUI, networking, database, and distributed malware

Language and tool experience (LTEX): measure the level of programming language and software tool experience of the team

Personnel continuity (PCON): measures the projects annual personnel turnover

36
New cards

Project Factors

​Software tools (TOOL): assesses the usage of software tools to develop the project in terms of capabilities and maturities

Multisite development (SITE): assesses and average two factors

Site collation: measures how close in proximity the company/product is contained

Communication support: measures complexity of communication network

Required schedule (SCED): measures the imposed schedule constraint in terms of the percentage of schedule stretch-out or acceleration with respect to nominal

37
New cards

Design Process

Feasibility Stage - Identify a set of feasible design concepts

Preliminary Design Stage - Selection and development of best design concept

Detailed design stage - development ad engineering descriptions of the concept

Planning stage - evaluating and altering concept to suit requirement of production

38
New cards

Different Methodlogies

Data Flow

Functional (de)composition

Object oriented

39
New cards

Data Flow

Structured analysis (SA): Logical design drawn as a set of data flow diagrams

Structured design (SD): transforming logical design into a program structure drawn as a set of structure charts

40
New cards

Functional (de)composition

Bottom-up or top-down

not used because clients do not know what they want

design has a yo-yo character

41
New cards

Object Oriented

Identify objects

Determine their attributes and service

Determine relationship between objects

42
New cards

What make a good design?

High cohesion, low coupling, information hiding, abstraction, simple complexity

43
New cards

View

representation of one or more aspects of an architecture that illustrates how the architecture addresses the concern held be one or more of the stakeholders

44
New cards

Viewpoint

collection of patterns, templates, and conventions for constructing one type of view

45
New cards

Logical View

Functionality that the system provides to the end user

46
New cards

Physical view

depicts system from an engineer's point of view (hardware)

47
New cards

Deployment View

system from programmer's point of view (combo of physical and logical)

48
New cards

Concurrency view

depicts parts of that system that can execute concurrently and those that execute serially

49
New cards

Entity

Distinguishable object of some typw

50
New cards

Entity type

category of entities (represented by box with entity inside)

51
New cards

Attribute value

piece of information describing an entity

52
New cards

Attribute

category of attibributes values (represented by oval with attribute value inside)

53
New cards

Relationship

association between 2 or more entities

54
New cards

State

set of attributes of an object (circle)

55
New cards

Class

set of objects of with the same attributes

56
New cards

Individual object

instance

57
New cards

behavior

set of resposiblities

58
New cards

service

invoked by sending a message

59
New cards

is-a

expressed in hierachy

60
New cards

whole-part, has

aggregation of parts into a whole

61
New cards

member-of, has

relationship between a set and its members

62
New cards

static diagrams

show static structure

Ex: class

63
New cards

Dynamic diagrams

shows execution of the program

Ex: State machine, Sequence, Communication, Use case

64
New cards

State machine

represents FSMs

Allows for local variables to states

Has external inputs/outputs

Hierarchical states

65
New cards

Sequence diagram

emphasizes orderings of events using a lifeline

66
New cards

Communication diagram

emphasizes orderings ordering of events using a lifeline

67
New cards

Use case

represents possible ways a user will interact with the system

shows high level activities organized by goals

68
New cards

Implementation goal

not to reduce implantation costs, but to reduce costs of later phases, easier for tester and maintainer

69
New cards

Readability

Most important thing

Naming conventions, information hiding, user defined types, reduce nesting, side effects, module size, number of paths

70
New cards

Naming coventions

consistent, useful names

71
New cards

Information hiding

makes code much easier to read

72
New cards

User defined types

in place of multiple complex data sturcutes

73
New cards

Nesting

can make things complex so be careful

74
New cards

side effects

code may have unexpected behavior

75
New cards

module size

easy to go overboard (cohesion) does not enhance readability

76
New cards

How to measure complexity

Cyclomatic complexity = number of pathes

Computes by E-n+2p (e = edges, n=nodes, p=connected components

Number of predicates +1 for structured programs

Max CC = 10

77
New cards

Verification

are we building the right system?

78
New cards

Test input

data passed into application

79
New cards

expected output

anticipate seeing some kind of output

80
New cards

test suite

multiple test cases

81
New cards

failure

symptom: expectaion message, no images found text

things that you see

82
New cards

faulr

reason for faliure

83
New cards

error

reason for fault

84
New cards

coincidental correctness

faults don't imply falure

85
New cards

goals of software testing

improve software quality by finding errors

providing confidence in the dependability of the software project

86
New cards

Testing process

1. When do we stop testing

2. test selection/prioritization

3. Test input generation

4. Check output of tests

5. Thoroughness of testing

87
New cards

When do we stop testing?

Satisfy the testing criterion

rate of finding faults decreases to an acceptable level

run out of resources

determine cost is not worth it

88
New cards

test selection/proritization

selecting the subset of inputs to use

we want an S that gives test suites that guarantee correctness but we settle fo an S that gives test suites that improve

89
New cards

Test input generation

given a testing requirement R, how do we generate test inputs to satisfy R

90
New cards

Check output of test

An oracle provides the expected reults of a test is succesfull or not

Human = tediuoes, error prone

Autmated = expensive

91
New cards

Thoroughness of testing

Adequacy score of a test suite is the percentage of coverable items that are covered by the test suite

92
New cards

Black box

testing specifically based on SRS

Testing based on how you write your SRS

Scales well

Cannot reveal error that depend on impentaion

93
New cards

White box

Based on the code, not based on the SRS requirements

Focuses on branches, loops, etc

does not scale, test cases increase exponential

cannot reveal errors due to unimplemented functionality