Test1 Flashcards

1
Q

What is the software crisis?

A

Only 30% of software projects are successful.

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

Definitions of successful, challenged, and failed/impaired software projects.

A

Successful - project completed on time & on budget with most desired features & functions.
Challenged - over-budget, over-time, fewer features & functions.
Failed/Impaired - project cancelled or unused.

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

Causes of the software crisis.

A

A large amount of completely different applications of software. Initially developed software changes very frequently. Large time lag & cost incurred from conception to implementation. It’s a new field, so there wasn’t much managerial experience.

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

Failure factors. Stupid mnemonic device: Computer User Interfaces Lack Life

A
C - changing requirements & specifications.
U - Unclear objectives
I - Incomplete requirements & specs.
L - Lack of user input
L - Lack of planning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Waterfall method. RADIIM

A
  • Requirement specifications.
  • Analysis
  • Design
  • Implementation & unit testing
  • Integration
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Phases of software development process. (RSITM)

A
  • Requirements analysis.
  • System design.
  • Implementation and prototyping
  • Testing, verification, and validations
  • Maintenance.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Requirement specification (waterfall method step # and definition)

A

Step #1. Talking to the customer.

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

Analysis (waterfall method step # and definition)

A

Step #2. Focus on the “what” of the system.

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

Design (waterfall method step # and definition)

A

Step #3. Focus on the “how” of the system.

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

Implementation & unit testing (waterfall method step # and definition)

A

Step #4. Code the “how” and make sure the individual code pieces work.

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

Integration (waterfall method step # and definition)

A

Step #5. Put it all together and make it work.

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

Maintenance (waterfall method step # and definition)

A

Final phase. All “follow-up” stuff after shipping (dangerous phase apparently).

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

Problem with waterfall method.

A

Doesn’t allow iteration since each level must be completed & “signed off” on by managers higher in the organization.

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

Functional approach to programming definition.

A

Focuses on what to do & how to do it (assignment statements, expressions, if-statements, loop, subprograms, etc).

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

Problem with functional approach.

A

Functions work on data but the data is kept separate from them (no inherent connection between them.

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

How does OOP address the problems with the functional approach?

A

You never think of what is done without considering who does it, and to whom (function & data are kept together).

17
Q

How does OOP model the real world?

A

We have classes, from which objects are created. These objects represent real-world entities. In the real world, everything that is done has a doer, and the action is done to something (object).

18
Q

The set of actions that an object of a class may be requested to perform are called ____

A

Responsibilities.

19
Q

Definition of cohesion.

A

How natural to the class are the entire set of responsibilities that are assigned to that class.

20
Q

Definition of coupling.

A

Which classes interact (talk) to each other and how much they need to know about each other.

21
Q

Ideally, we’d have (high/low) cohesion & (high/low) coupling.

A

High cohesion & low coupling.

22
Q

Most important tasks in OOP.

A

Finding the objects, defining their operations, how they interact, their internal structure, and organizing them.

23
Q

5 attributes of a complex system.

A
  • Hierarchy
  • Few objects with many instances
  • Intra-component linkages are stronger than inter-component linkages
  • Evolves from a simpler system
  • The level of detail is arbitrary (Booch model)
24
Q

Spiral model

A

Allows iteration. Basically you go through the waterfall method over & over, each iteration results in a new release/version of the product.

25
Q

Booch model macro process

A
  • Conceptualization
  • Analysis
  • Design
  • Evolution
  • Maintenance
26
Q

Booch model micro process

A
  • Identify classes & objects
  • Identify semantics of classes & objects
  • Identify relationships among classes & objects
  • Implement classes
  • Test class methods
27
Q

What does RUP stand for?

A

Rational Unified Process

28
Q

4 main phases of RUP

A

Inception, Elaboration, Construction, Translation

29
Q

Inception (RUP) definition

A

Requirements capture & some analysis

30
Q

Elaboration (RUP) definition

A

Mostly analysis & some design

31
Q

Construction (RUP) definition

A

Detailed design, coding, & some testing

32
Q

Translation (RUP) definition

A

Integration testing, shipping, gathering customer feedback.

33
Q

Steps of our process (to use in class)

A
  1. Focus on the problem to be solved.
  2. Always maintain full & complete traceability.
  3. Don’t be afraid to go back & re-do.
34
Q

________ is used to bring an old persistable object into existence.

A

Instantiate.

35
Q

________ is used to bring a new persistable object into existence.

A

Create.

36
Q

Old persistable object definition.

A

Object that is created with data which is already there (in a data repository).

37
Q

New persistable object definition.

A

An object created with new data coming from the front end.