New Semester
Started
Get
50% OFF
Study Help!
--h --m --s
Claim Now
Question Answers
Textbooks
Find textbooks, questions and answers
Oops, something went wrong!
Change your search query and then try again
S
Books
FREE
Study Help
Expert Questions
Accounting
General Management
Mathematics
Finance
Organizational Behaviour
Law
Physics
Operating System
Management Leadership
Sociology
Programming
Marketing
Database
Computer Network
Economics
Textbooks Solutions
Accounting
Managerial Accounting
Management Leadership
Cost Accounting
Statistics
Business Law
Corporate Finance
Finance
Economics
Auditing
Tutors
Online Tutors
Find a Tutor
Hire a Tutor
Become a Tutor
AI Tutor
AI Study Planner
NEW
Sell Books
Search
Search
Sign In
Register
study help
business
software testing and quality assurance
Software Engineering 9th Edition Ian Sommerville - Solutions
Discuss the assessment of software quality according to the quality attributes shown in Figure 27.7. You should consider each attribute in turn and explain how it might be assessed
Design an electronic form that may be used to record review comments and that could be used to electronically mail comments to reviewers.
Briefly describe possible standards that might be used for:■ The use of control constructs in C, C++ or Java■ Reports which might be submitted for a term project in a university■ The process of making and approving changes to a program (see Chapter 29)■ The process of purchasing and
Assume you work for an organisation that develops database products for microcomputer systems. This organisation is interested in quantifying its software development. Write a report suggesting appropriate metrics and suggest how these can be collected.
In the development of large, embedded real-time systems, suggest five factors that are likely to have a significant effect on the productivity of the software development team.
Explain why consistency, respect, inclusion and honesty are factors that contribute to effective people management.
What factors should be taken into account when selecting staff to work on a software development project? Giving reasons for your answer, suggest which of these would be most important in choosing staff for an embedded real-time systems development project to develop a controller for an eye surgery
Develop the case study example on motivation in Figure
to include general activities that Alice could introduce to ensure that other members of the team remain motivated.
Explain why keeping all members of a group informed about progress and technical decisions in a project can improve group cohesiveness.
Explain what you understand by groupthink. Describe the dangers of this phenomenon and explain how it might be avoided.
What problems do you think might arise in extreme programming teams where many management decisions are devolved to the team members themselves?
Why are open-plan and communal offices sometimes less suitable for software development than individual offices? Under what circumstances do you think that open-plan environments might be better?
Why is the P-CMM an effective framework for improving the management of people in an organisation? Suggest how it may have to be modified if it is to be used in small companies.
Should managers become friendly and mix socially with more junior members of their group?
Is it ethical to provide the answers that you think the tester wants rather than saying what you really feel when taking psychological or aptitude tests?
Under what circumstance might a company charge a much higher price for a software system than that suggested by the cost estimate plus a normal profit margin?
Describe two metrics that have been used to measure programmer productivity. Comment briefly on the advantages and disadvantages of each of these metrics.
Explain why design metrics are, by themselves, an inadequate method of predicting design quality.
understand what software engineering is and why it is important;
understand that the development of different types of software systems may require different software engineering techniques;
understand some ethical and professional issues that are important for software engineers;
have been introduced to three systems, of different types, that will be used as examples throughout the book.
1.1. Explain why professional software is not just the programs that are developed for a customer.
1.2. What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products?
1.3. What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.
1.4. Apart from the challenges of heterogeneity, business and social change, and trust and security, identify other problems and challenges that software engineering is likely to face in the 21st century (Hint: think about the environment).
1.5. Based on your own knowledge of some of the application types discussed in section 1.1.2, explain, with examples, why different application types require specialized software engineering techniques to support their design and development.
1.6. Explain why there are fundamental ideas of software engineering that apply to all types of software systems.
1.7. Explain how the universal use of the Web has changed software systems.
1.8. Discuss whether professional engineers should be certified in the same way as doctors or lawyers.
1.9. For each of the clauses in the ACM/IEEE Code of Ethics shown in Figure 1.3, suggest an appropriate example that illustrates that clause.
1.10. To help counter terrorism, many countries are planning or have developed computer systems that track large numbers of their citizens and their actions. Clearly this has privacy implications. Discuss the ethics of working on the development of this type of system.
understand the concepts of software processes and software process models;
have been introduced to three generic software process models and when they might be used;
know about the fundamental process activities of software requirements engineering, software development, testing, and evolution;
understand why processes should be organized to cope with changes in the software requirements and design;
understand how the Rational Unified Process integrates good software engineering practice to create adaptable software processes.
2.1. Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:A system to control anti-lock braking in a car A virtual reality system to
2.2. Explain why incremental development is the most effective approach for developing business software systems. Why is this model less appropriate for real-time systems engineering?
2.3. Consider the reuse-based process model shown in Figure 2.3. Explain why it is essential to have two separate requirements engineering activities in the process.
2.4. Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.
2.5. Describe the main activities in the software design process and the outputs of these activities. Using a diagram, show possible relationships between the outputs of these activities.
2.6. Explain why change is inevitable in complex systems and give examples (apart from prototyping and incremental delivery) of software process activities that help predict changes and make the software being developed more resilient to change.
2.7. Explain why systems developed as prototypes should not normally be used as production systems.
2.8. Explain why Boehm’s spiral model is an adaptable model that can support both change avoidance and change tolerance activities. In practice, this model has not been widely used.Suggest why this might be the case.
2.9. What are the advantages of providing static and dynamic views of the software process as in the Rational Unified Process?
2.10. Historically, the introduction of technology has caused profound changes in the labor market and, temporarily at least, displaced people from jobs. Discuss whether the introduction of extensive process automation is likely to have the same consequences for software engineers. If you don’t
understand the rationale for agile software development methods, the agile manifesto, and the differences between agile and plandriven development;
know the key practices in extreme programming and how these relate to the general principles of agile methods;
understand the Scrum approach to agile project management;
be aware of the issues and problems of scaling agile development methods to the development of large software systems.
3.1. Explain why the rapid delivery and deployment of new systems is often more important to businesses than the detailed functionality of these systems.
3.2. Explain how the principles underlying agile methods lead to the accelerated development and deployment of software.
3.3. When would you recommend against the use of an agile method for developing a software system?
3.4. Extreme programming expresses user requirements as stories, with each story written on a card. Discuss the advantages and disadvantages of this approach to requirements description.78 Chapter 3 Agile software development Chapter 3 Exercises 79
3.5. Explain why test-first development helps the programmer to develop a better understanding of the system requirements. What are the potential difficulties with test-first development?
3.6. Suggest four reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually.
3.7. Compare and contrast the Scrum approach to project management with conventional plan-based approaches, as discussed in Chapter 23. The comparisons should be based on the effectiveness of each approach for planning the allocation of people to projects, estimating the cost of projects,
3.8. You are a software manager in a company that develops critical control software for aircraft. You are responsible for the development of a software design support system that supports the translation of software requirements to a formal software specification (discussed in Chapter 13). Comment
3.9. It has been suggested that one of the problems of having a user closely involved with a software development team is that they ‘go native’; that is, they adopt the outlook of the development team and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid
3.10. To reduce costs and the environmental impact of commuting, your company decides to close a number of offices and to provide support for staff to work from home. However, the senior management who introduce the policy are unaware that software is developed using agile methods, which rely on
understand the concepts of user and system requirements and why these requirements should be written in different ways;
understand the differences between functional and nonfunctional software requirements;
understand how requirements may be organized in a software requirements document;
understand the principal requirements engineering activities of elicitation, analysis and validation, and the relationships between these activities;
understand why requirements management is necessary and how it supports other requirements engineering activities.
4.1. Identify and briefly describe four types of requirement that may be defined for a computerbased system.
4.2. Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system:An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identification number. The rail ticket is issued and
4.3. Rewrite the above description using the structured approach described in this chapter.Resolve the identified ambiguities in an appropriate way.
4.4. Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.
4.5. Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the following functions: An unattended petrol (gas) pump system that includes a credit card reader. The customer swipes the card through the reader
4.6. Suggest how an engineer responsible for drawing up a system requirements specification might keep track of the relationships between functional and non-functional requirements.
4.7. Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system.
4.8. Who should be involved in a requirements review? Draw a process model showing how a requirements review might be organized.
4.9. When emergency changes have to be made to systems, the system software may have to be modified before changes to the requirements have been approved. Suggest a model of a process for making these modifications that will ensure that the requirements document and the system implementation do not
4.10. You have taken a job with a software user who has contracted your previous employer to develop a system for them. You discover that your company’s interpretation of the requirements is different from the interpretation taken by your previous employer. Discuss what you should do in such a
understand how graphical models can be used to represent software systems;
understand why different types of model are required and the fundamental system modeling perspectives of context, interaction, structure, and behavior;
have been introduced to some of the diagram types in the Unified Modeling Language (UML) and how these diagrams may be used in system modeling;
be aware of the ideas underlying model-driven engineering, where a system is automatically generated from structural and behavioral models.
5.1. Explain why it is important to model the context of a system that is being developed. Give two examples of possible errors that could arise if software engineers do not understand the system context.
5.2. How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system?Chapter 5 Exercises 143 144 Chapter 5 System modeling
5.3. You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, birthday parties, etc. Using an activity diagram, model the process context for such a system that shows the activities involved in planning a party
5.4. For the MHC-PMS, propose a set of use cases that illustrates the interactions between a doctor, who sees patients and prescribes medicine and treatments, and the MHC-PMS.
5.5. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrollment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to
5.6. Look carefully at how messages and mailboxes are represented in the e-mail system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an e-mail message.
5.7. Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.
5.8. Draw a sequence diagram for the same system. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system.
5.9. Draw state diagrams of the control software for: An automatic washing machine that has different programs for different types of clothes. The software for a DVD player. A telephone answering system that records incoming messages and displays the number of accepted messages on an LED. The
5.10. You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development?
understand why the architectural design of software is important;
understand the decisions that have to be made about the system architecture during the architectural design process;
have been introduced to the idea of architectural patterns, well-tried ways of organizing system architectures, which can be reused in system designs;
know the architectural patterns that are often used in different types of application system, including transaction processing systems and language processing systems.
6.1. When describing a system, explain why you may have to design the system architecture before the requirements specification is complete.
6.2. You have been asked to prepare and deliver a presentation to a non-technical manager to justify the hiring of a system architect for a new project. Write a list of bullet points setting out the key points in your presentation. Naturally, you have to explain what is meant by system architecture.
6.3. Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements.
6.4. Draw diagrams showing a conceptual view and a process view of the architectures of the following systems:An automated ticket-issuing system used by passengers at a railway station.A computer-controlled video conferencing system that allows video, audio, and computer data to be visible to
6.5. Explain why you normally use several architectural patterns when designing the architecture of a large system. Apart from the information about patterns that I have discussed in this chapter, what additional information might be useful when designing large systems?
Showing 2100 - 2200
of 3990
First
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Last
Step by Step Answers