Week 2 Flashcards

1
Q

The analyst observes the order-entry clerks to determine how a work order is currently processed

A

Planning/Systems engineering/Requirements gathering phase

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

The analyst develops the internal structure for a database to support work order processing

A

Design phase

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

An analyst is teaching the plant supervisor how to inquire about work orders using the new PC

A

Installation/Maintenance phase

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

A plant supervisor is describing the content of a new work order progress report that would simplify tracking

A

Planning/Systems engineering/Requirements gathering phase OR alternatively Maintenance phase

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

The analyst is reading a question concerning whether or not a computer system might solve the current problems in work order tracking

A

Planning/Systems engineering/Requirements gathering phase

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

The analyst is installing the PC and the database management system needed to run work order processing programs

A

Installation/Maintenance phase

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

The analyst is reviewing the company’s organisational chart to identify who becomes involved in work order processing and despatch

A

Planning/Systems engineering/Requirements gathering phase

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

The analyst is comparing the pros and cons of a software package versus writing the programs for a new work order system

A

Planning/Systems engineering/feasibility phase

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

An analyst is testing a computer program for entering work orders to the system

A

Testing Phase

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

The analyst is correcting a program to more accurately summarize weekly progress

A

Maintenance Phase

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

Information system management and top business executives are identifying and prioritising business area applications that should be developed

A

Planning/Systems engineering/Requirements gathering phase

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

What are the generic phases of software engineering? Is there ever a case when the generic phases of the software engineering process does not apply? If so, describe it.

A

The three phases are the definition phase, development phase and the maintenance phase. In reality all projects would pass through these three phases, however it may sometimes occur that small projects have a very limited maintenance lifespan. This could be the case where a specialized application is developed and then only used a few times. In these cases it could be considered that the maintenance phase was almost non-existent.

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

Provide two or three examples of software development projects that would be amenable to prototyping. Name two or three applications that would be more difficult to prototype. What are the basic characteristics that would make it more likely for you to use prototyping for a particular project?

A

Mission-critical applications are in general not amenable to prototyping. For example, the control systems of nuclear reactors and the space shuttle are systems that are better suited to a more rigorous engineering approach, such as development by formal methods. Systems for which the requirements are particularly well understood and stable, such as COBOL control-break reporting systems, do not in general benefit from a prototyping approach. Systems where the requirements are ambiguous, unstable or are not initially well understood often benefit from prototyping; Webface is an example. Systems that may be generated quickly and easily using high-level languages, such as GUI applications using Tcl/TK, also lend themselves to prototyping [Pressman, p. 289].

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

As you move outward along the process flow path of the spiral model, what can you say about the software that is being developed or maintained?

A

The software becomes a more sophisticated, engineered product which has had significant user evaluation and feedback. So hopefully is also more likely to be suitable for the purpose.

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

What is meant by the term “fourth generation technique”? Provide some examples of fourth generation techniques.

A

In general 4GT are those that allow high level specification of requirements to be automatically converted into software products. This includes such things as:
- the generation of event driven windowing sub-systems from user level specifications and interactive manipulation

- database query and report generation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Which is more important - the product or the process?

A

In the long run the thing that really matters is the product, BUT it is highly unlikely that a project team can produce a continuous run of high quality products without having good processes in place. So in general it is important that equal emphasis is placed on both product and process issues.

17
Q

Discuss the main shortcomings of the traditional waterfall model of software development.

A

The waterfall, or linear sequential model, suffers from a number of drawbacks, including :

  • Real projects rarely follow the sequential flow that the model proposes
  • The linear model does not accommodate iteration well
  • The linear model has difficulty accommodating the natural uncertainty that exists at the beginning of a project
  • A working model of the system is not available until late in the project time-span.
18
Q

What is a direct measure and why are such measures common in software engineering work?

A

Direct measures are quantitative measures; a measure provides a quantitative indication of the dimensions of some attribute of a product or process. For example, lines of code produced, execution speed, memory size. They may be contrasted with indirect measures, which are qualitative measures. Indirect measures include functionality, efficiency, reliability, and maintainability.

Because one of the aims of software engineering is to place the development of software on a firm mathematical foundation, direct measures are generally preferred over indirect measures.

19
Q

Team A found 342 errors during the software engineering process prior to release. Team B found 184 errors. What additional measures would have to be made for projects A and B to determine which of the teams eliminated errors most efficiently? What metrics would you propose to help make the determination? What historical data might be helpful?

A

It is not enough just to know Team A found 342 errors and Team B found 184 errors if we wish to determine which software team eliminated errors more efficiently. We need to take into account factors like size and complexity of the respective projects in order to be able to make an accurate determination.

To this end we can employ size-oriented metrics, such as:

* errors/KLOC
* defects/KLOC
* $/KLOC
* pages of documentation/KLOC
* function-oriented metrics such as function points.

It is also necessary to take into account the expertise of the teams. Possible one team finds errors more efficiently as it put more simple errors in the product in the first place.

20
Q

Present an argument against lines of code as a measure for software productivity. Will your case hold up when dozens or hundreds of projects are considered?

A

Arguments for using LOC measures:

  • LOC is an “artefact” of all software development
  • LOC can be easily counted
  • Many existing models of software estimation use LOC as a key input
  • A large body of literature and data predicated on LOC already exists

Arguments against using LOC measures:
* LOC measures are programming language dependent

  • LOC measures penalise well-designed but shorter programs
  • LOC measures cannot easily accommodate non-procedural languages
  • Use of LOC measures in estimation requires a level of detail that may be difficult to achieve.
21
Q

Spoilage is defined as “a cost-oriented metric for maintainability; namely, it is the cost of correcting defects encountered after the software has been released to its end users” Is it possible for spoilage to increase while defects/KLOC decreases? Explain.

A

Spoilage is a cost-oriented metric for maintainability; namely, it is the cost of correcting defects encountered after the software has been released to its end users. A defect is a flaw in a software engineering product that is uncovered after delivery to the end user. It is possible for spoilage to increase whilst defects/KLOC decreases. Compare the situation where release 1.0 of a product has 30 defects that cost an average of $10,000 each to fix, and release 1.1 of the same product contains 5 defects each of which costs an average of $100,000 to correct. In other words we may be finding the simpler basic errors first and leaving the less encountered but more difficult errors to later.

22
Q

What is a “fourth generation programming language”? Does the LOC measure make any sense when fourth generation languages are used? Explain.

A

Since 4GLs are high-level programming languages, the lines of code measure does not really make sense. For example, a 4GL program that generates a report may be only a few lines of code; the program functionality is out of all proportion to the lines of code contained in the program. Thus LOC as a measure cannot act as a sensible indicator of a program’s size or complexity.

23
Q

Software requirements analysis is unquestionably the most communication intensive step in the software engineering process. Why does the communication path frequently break down?

A

The communication process can break down for a number of reasons, including [Whitten and Bentley, Appendix E]:

� requirements uncertainty - the client is unsure of their requirements, and so is unable to communicate their needs to the engineer

� poor listening skills - people may listen but they don't always hear

� language differences - the system's owners and users have their own language to describe forms, methods, procedures and such like; whilst the engineer has their own terms and acronyms for the same things.

� poor language skills - the client or the analyst is 
unable to be clear, coherent, concise and to the point in their discussion of requirements

� knowing the audience - effective oral communication can only occur if the right audience has been targeted