Unit 14 Flashcards
How can a consideration of human factors improve the relationship between people and technology in the software development process?
First, by making the process of developing software more efficient and effective (that is, by analysing process-related factors). Second, by improving the interface between people and the final software product (that is, by analysing product-related factors).
Imagine that the task of the software engineer in Figure 1 was to test, rather than to implement, the code module. How would the two task-related human factors listed below change?
Task-related human factors
The following factors relate to the tasks the engineer is undertaking:
- the number of other tasks the engineer has to do;
- the similarity between this code module and others the engineer has implemented.
The factors would change to reflect the specific task. For example, the number of other tasks the engineer has to do might remain as a factor, but the second factor would have to change to reflect the characteristics of the new testing task, as follows:
the similarity between this test and others the engineer has run.
How would you classify the factor ‘the engineer’s experience of the application domain’?
It is a person-related human factor.
Describe the three cornerstones of professionalism.
- Having up to date knowledge of the field that is relevant to the intended application.
- Being competent to make technical and non-technical decisions in situations arising from the application of that knowledge.
- Being prepared to take responsibility for the consequences of any advice given or action taken.
Jargon may be used inadvertently and result in confusion; that is regrettable, and a professional should adopt practices to reduce this, for example by having some independent person read and comment on jargon in all documents. However, sometimes jargon may be used deliberately. Suggest one reason for an unprofessional person deliberately using jargon.
Jargon is one way to hide lack of knowledge or uncertainty. A professional should feel comfortable about saying when they are unsure, and be willing to go away and investigatefurther.
A software engineer is developing the requirements specification for a control system for an oil refinery. How could the engineer’s competence in the application domain be enhanced to ensure that non-functional requirements are captured?
By exposing the engineer to the way the software will actually be used: for example, by letting them see how the end-user works with the current software or manual system to perform the task.
Suppose that the oil refinery software has reached the design stage. The software controls a potentially dangerous process and interacts with a number of mechanical devices to ensure that the system works safely. How can the engineer’s system domain competence be enhanced to ensure that safety features are properly considered?
As becoming a petroleum engineer is impractical, the software engineer should interact effectively with those responsible for other system components: for example, the refinery system engineers should review the software design. In addition, because the system is safety-critical the software engineer should use formal methods, such as VDM (Vienna Development Method).
What factors affect the functioning of a team?
Team structure,
team goals,
team leadership and
team building.
Identify two ways in which the functioning of a team can be supported.
Two out of the following:
- letting the team structure mirror the system structure;
- letting the team set its own goals;
- appointing an appropriate team leader;
- recruiting staff with an appropriate balance of skills.
What type of communication media would be most suitable for:
(a) reviewing the detailed design?
Formal interpersonal media.
What type of communication media would be most suitable for:
(b) informing the team about changes to the requirements?
(b) Formal impersonal media.
Which task-related factors might affect performance of the following tasks:
(a) modelling the time-dependent characteristics of a large real-time system?
(a) Task complexity – the task complexity is likely to be too high.
Which task-related factors might affect performance of the following tasks:
(b) formatting a program listing?
(b) Task variability – there is likely to be a lack of task variability.
Which environmental factors can affect the speed and quality of the performance of a software engineer?
Physical workspace, methods and tools.
What are the advantages and disadvantages of an open-plan office as an environment for software development?
- Advantages: development team members can be located in close physical proximity and so benefit from opportunities for informal contact and communication.
- Disadvantages: unless designed with care, this environment does not provide sufficient privacy for tasks that require high levels of concentration.