Chapter 19 – Systems engineering
Chapter 22 – Project management
Systems that include software fall into two categories. Technical computer based systems, and Sociotechnical systems.
Which of stage is not part of the lifetime of large, complex systems
The involvement of a range of professional disciplines is essential because of the different types of components in complex systems
Large, complex systems usually have a short lifetime
During systems you take the independently developed subsystems and put them together to make up a complete system.
Project Managers should regularly assess each of the identified project risks to decide whether or not that risk is becoming more or less probable.
People are motivated by interaction with other people, by the recognition of management and their peers, and by being given opportunities for personal development.
The best size for a software engineering group is 10 to 12 members, and they should never have more than 20 members.
It is not expensive to recruit and retain good people. If someone is good, they should be happy with their job and not require more.
“to maintain a coherent and well-functioning development team” is one of the common important goals for projects
Give two examples of government functions that are supported by complex sociotechnical systems and explain why, in the foreseeable future, these functions cannot be completely automated.
The systems which are very complex and not understandable as a whole are known as sociotechnical systems. These systems are divided into layers for better understanding. Most of the systems used in government organizations are sociotechnical systems.
Examples of socio-technical systems, and the reasons why they cannot be automated in the future are as follows:
- The weather system used by government organizations is a best example of sociotechnical systems. This system is dependent to satellite communication and practical knowledge of individual about weather. This system can’t be fully automated because sometimes application program can’t read proper conditions to input data and require expert knowledge about weather.
- The security system used to secure border of any country is also an example of sociotechnical systems. This system can’t be fully automated because; some border areas are in dispute conditions and government is not able to apply these systems over there due to some conditions.
Explain briefly why the involvement of a range of professional disciplines is essential in systems engineering.
An important difference between systems and software engineering is the involvement of a range of professionals throughout the lifetime of the system. These include engineers who may be involved in hardware and software design, system end-users, managers who are concerned with organizational issues, and experts in the system’s application domain.
The involvement of a range of professional disciplines is essential because of the different types of components in complex systems. However, differences and misunderstandings between disciplines can lead to inappropriate design decisions. These poor decisions can delay the system’s development or make it less suitable for its intended purpose. Interdisciplinary working can be successful only if enough time is available for these issues to be discussed and resolved. This requires regular face-to-face discussions and a flexible approach from everyone involved in the systems engineering process.
Complex sociotechnical systems lead to three important characteristics. What are they? Explain each in brief
The complexity leads to three important characteristics of sociotechnical systems:
- They have emergent properties that are properties of the system as a whole, rather than associated with individual parts of the system. Emergent properties depend on both the system components and the relationships between them. Some of these relationships only come into existence when the system is integrated from its components, so the emergent properties can only be evaluated at that time. Security and dependability are examples of important emergent system properties.
- They are nondeterministic, so that when presented with a specific input, they may not always produce the same output. The system’s behavior depends on the human operators, and people do not always react in the same way. Furthermore, use of the system may create new relationships between the system components and hence change its emergent behavior.
- The system’s success criteria are subjective rather than objective. The extent to which the system supports organizational objectives does not just depend on the system itself. It also depends on the stability of these objectives, the relationships and conflicts between organizational objectives, and how people in the organization interpret these objectives. New management may reinterpret the organizational objectives that a system was designed to support so that a “successful” system may then be seen as no longer fit for its intended purpose.
Why is system integration a particularly critical part of the systems development process? Suggest three sociotechnical issues that may cause difficulties in the system integration process.
System integration is particularly critical because it is at the integration stage that incompatibilities between the different sub-systems or components may come to light. Generally, the first view that a customer has of a system is after integration.
Sociotechnical difficulties that may arise are:
- Refusal of parts of the team to recognize problems. Some developers may refuse to recognize that their software is faulty and may try to pass the blame for integration problems to people in different organizations. Different organizations in the integration team are, essentially, trying to transfer the costs to other organizations.
- Cultural problems due to different organizational approaches to integration. Integration is perhaps the first time that teams have had to work closely together and their organizations may use different processes for system integration. Reconciling these processes can be difficult.
- Organizations may be at different stages in their project involvement. For some organizations, integration may be their last project activity and their objective is simply to complete and sign off the process as quickly as possible. For other organizations, there may be later work to be done so they may have a longer-term perspective and wish to spend more time on the integration process.
Why is system evolution inherently costly?
System evolution is inherently costly for several reasons:
- Proposed changes have to be analyzed very carefully from a business and a technical perspective. Changes have to contribute to the goals of the system and should not simply be technically motivated.
- Because subsystems are never completely independent, changes to one subsystem may have side-effects that adversely affect the performance or behavior of other subsystems. Consequent changes to these subsystems may therefore be needed.
- The reasons for original design decisions are often unrecorded. Those responsible for the system evolution have to work out why particular design decisions were made.
- As systems age, their structure becomes corrupted by change, so the costs of making further changes increases.
Explain why the intangibility of software systems poses special problems for software project management.
Software cannot be inspected like a shipbuilding or civil engineering project where it is possible to see which parts of the structure are unfinished. Software is invisible. This means that it cannot be seen or touched.
Some important goals of software management are to deliver the software within the specified time and budget and to meet all the requirements of the customer. However, because software is intangible, it is difficult for software project managers to say exactly what the state of development is. They can't get a sense of progress simply by looking at the artifacts being built. Instead, they rely on the evidence provided by others to review the progress of the work.
Explain how company size and software size are factors that affect software project management.
Small companies can operate with informal management and team communications and do not need formal policies and management structures. They have less management overhead than larger organizations. In larger organizations, management hierarchies, formal reporting and budgeting, and approval processes must be followed.
Small systems can be developed by a small team, which can get together in the same room to discuss progress and other management issues. Large systems usually need multiple development teams that may be geographically distributed and in different companies. The project manager has to coordinate the activities of these teams and arrange for them to communicate with each other.
What is risk monitoring? How can risks be monitored? List a few examples of types of risks and their potential indicators.
Risk monitoring is the process of checking that your assumptions about the product, process, and business risks have not changed. You should regularly assess each of the identified risks to decide whether or not that risk is becoming more or less probable. You should also think about whether or not the effects of the risk have changed. To do this, you have to look at other factors, such as the number of requirements change requests, which give you clues about the risk probability and its effects. These factors are obviously dependent on the types of risk. Some examples of factors that may be helpful in assessing these risk types are shown as bellow.
Risk type & Potential indicators
- Estimation - Failure to meet agreed schedule; failure to clear reported defects.
- Organizational - Organizational gossip; lack of action by senior management.
- People - Poor staff morale; poor relationships among team members; high staff turnover.
- Requirements - Many requirements change requests; customer complaints.
- Technology - Late delivery of hardware or support software; many reported technology problems.
- Tools - Reluctance by team members to use tools; complaints about software tools; requests for faster computers/more memory, and so on.
Explain why keeping all members of a group informed about progress and technical decisions in a project can improve group cohesiveness.
The benefits of creating a cohesive group are:
- The group can establish its own quality standards Because these standards are established by consensus, they are more likely to be observed than external standards imposed on the group.
- Individuals learn from and support each other Group members learn by working together. Inhibitions caused by ignorance are minimized as mutual learning is encouraged.
- Knowledge is shared Continuity can be maintained if a group member leaves. Others in the group can take over critical tasks and ensure that the project is not unduly disrupted.
- Refactoring and continual improvement is encouraged Group members work collectively to deliver high-quality results and fix problems, irrespective of the individuals who originally created the design or program.
Your manager asks you to deliver software to a schedule that you know can only be met by asking your project team to work unpaid overtime. All team members have young children. Discuss whether you should accept this demand from your manager or whether you should persuade your team to give their time to the organization rather than to their families. What factors might be significant in your decision?
The factor we should consider is the time available for all team members in a project. As a working team, we should make a decision that is right and the same. It has to be everyone's decision, not just mine. Because I can't take all the responsibility for completing this project. If that happens, I will be the one taking the risk if I know it will turn out for the worst. If all the effort and ideas were mine, it wouldn't be called a collective project.