Book Answers
Book Answers
Book Answers
2.1 Suggest the most appropriate generic software process model that might be used as a basis for
managing the development of the following systems:
2.2 Incremental software development could be very effectively used for customers who did not have a
clear idea about the systems needed for their operations. Discuss
• Based on the idea of developing initial implementation, getting user feedback and evolving
software through several versions.
• Either plan driven, agile or mixture.
• Customer can evaluate systems at a relatively early stage.
2.3 Consider the integration and configuration process model shown in Figure 2.3. Explain why it is
essential to repeat the requirements engineering activity in the process.
• Firstly requirements spec involve proposing initial requirements for the system
o Brief descriptions
• Refinement stage, reusable components and applications discovered for refinement.
o Modified to reflect available components and system spec is redefined.
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
1) User Requirements describe the system functions and features from the perspective of a user. These are
usually abstract. System requirements provide a more detailed explanation of the procedure.
2) User requirements are written in plain and natural language. System requirements are more detailed
with specific specifications that could be part of a contract.
3) User requirements start with gathering information, identifying important aspects, and understanding
them.
System Requirements can only be implemented after the user requirements are understood and finalised.
2.5 Using an example, explain why the design activities of architectural design, database design, interface
design and component design are interdependent
Design of architecture:
• System overall structure is defined.
• Discuss reason for interdependency
Design of Database:
• Define structure of database as representation.
Design of interface:
• Interface defined here.
• Ease of use
All design activities above should be followed and integrated. Therefore these work together and can be
called interdependent
2.6 Explain why software testing should always be incremental, staged activity. Are programmers the best
people to test the programs that they have developed?
Software testing:
• Each program is tested for correct functionality
• Complete program divided into small modules, tested individually. (UNIT TESTING)
• Then whole system is tested with the programs tested above. (SYSTEM TESTING)
• Beta version released and end user checks (CUSTOMER TESTING)
2.7 Imagine that a government wants a software program that helps to keep track of the utilization of the
country’s vast mineral resources. Although the requirements put forward by the government were not
very clear, a software company was tasked with the development of a prototype. The government found
the prototype impressive, and asked it be extended to be the actual system that would be used. Discuss
the pros and cons of taking this approach
Pros:
• Allows changes to prototype
• Customer sees prototype and modifications made before design is created
• Better implementation
• Satisfied customer
Cons:
• Additional cost for prototype creation
• Delays due to extra time creating prototypes
2.8 You have developed a prototype of a software system and your manager is very impressed by it. She
proposes that it should be put into use as a production system, with new features added as required. This
avoids the expense of system development and makes the systems immediately useful. Write a short
report for your manager explaining why prototype systems should not normally be used as production
systems
2.9 Suggest two advantages and two disadvantages of the approach to process assessment and
improvement that is embodied in the SEI’s Capability Maturity framework
Adv:
• Focused on software engineering processes and practices used
• Led to significant improvements in capabilities
Disadv:
• Too much overhead in formal process improvement in small companies
• Maturity estimation with agile processes is difficult
2.10 Historically, the introduction of technology has caused profound changes in the labour 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 think it will,
explain why not. If you think that it will reduce job opportunities, is it ethical for the engineers affected to
passively or actively resist the introduction of this technology?
• Standardised components used, increasing software reliability and cost reduction in future
maintenance
• Automation assists software to address primary issues in the development process. (complexity,
reliability, and productivity)
Chapter 3
3.1 At the end of their study program, students in a software engineering course are typically expected to
complete a major project. Explain how the agile methodology may be very useful for the students to use
in this case
3.2 Explain how the principles underlying agile methods lead to the accelerated development and
deployment of software.
3.3 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
Adv of stories:
• Represent real situations arising so systems support common user operations
• Easy for users to understand and critique stories
• Represent increments of functionality
Disadv:
• Liable to be incomplete
• Focus on functional requirements
• Representing system requirements such as performance and reliability are impossible
• Relationship between architecture and user stories is unclear.
3.4 In test-first development, tests are written before the code. Explain how the test suite may
compromise the quality of the software system being developed.
• The test suite could become outdated by the time the actual code is written and not test every
vulnerability that the code may have.
• If tests aren’t reviewed, and further tests written, undetected bugs may be in system release.
3.5 Suggest four reasons why the productivity rate of programmers working as a pair might be more
than half that of two programmers working individually
• Pair programming leads to continuous informal reviewing. Discovers bug quicker than individual
testing.
• Informal sharing is implicit. Reducing need for documentation and time required for another’s work
load.
• Encourages refactoring – reducing costs of subsequent development and changes in the future can
be done quicker
• People are likely to spend less time in fine-grain optimization. Both focus on essential features
which are produced quicker.
3.6 Compare and contrast the Scrum approach to project management with conventional plan –based
approaches. Your comparison should be based on the effectiveness of each approach for planning the
allocation of people to projects, estimating the cost of projects, maintaining team cohesion, and managing
changes in project team membership
3.7 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 Scrum. Explain how you could use
technology to support Scrum in a distributed environment to make this possible. What problems are you
likely to encounter using this approach?
Use of technology:
• Video conferencing
• Scrummaster should be located with development team to be aware of everyday problems
• Product owner should visit developers to establish good relationships with them
• Real time communication through informal communication, I.E. instant message and video calls.
• Continuous integration, all team members can be aware of state of product at any time
• Common development environment for all teams
Problems:
• Development requirement daily meetings but not possible in distributed environment
• Communication gap can occur between members
• Changes lead to slow the entire development of project
• Pair programming benefits detection and evaluation of errors.
3.8 Why is it necessary to introduce some methods and documentation from plan-based approaches
when scaling agile methods to larger projects that are developed by distributed development teams?
1. Project Planning:
a. Essential when developing software with larger teams to ensure right people are available
when needed
b. Ensure delivery schedules are aligned
2. Requirements analysis
a. Important to decide how to distribute work across teams and ensure each team has some
understanding of other teams’ work
3. Design documentation:
a. Import so teams develop independently with having access to software under development.
4. Risk management:
a. Required to ensure all teams understand risks faced and organize their work to minimize
these risks.
b. Useful to cope with different delivery schedules.
3.9 Explain why agile methods may not work well in organizations that have teams with a wide range of
skills and abilities and well-established processes.
Having to switch from their well-established process to a new process might set them back on time that
they could use to develop.
3.10 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 this problem, and discuss the advantages and
disadvantages of each approach.
4.1 Identify and briefly describe the four types of requirements that may be defined for a computer-based
system
1. User Requirements: which is the requirements that are statements in natural language plus diagrams
of the services the system provides and its operational constraints.
2. System Requirements: A structured document setting out detailed description of the systems
functions, services and operational constraints. Define what should be implemented. It may be part of
a contract between client and contractor.
3. Functional Requirements: these are the statement of the services the system should provide, how the
system should react to particular input and how the system should behave in particular situations.
4. Non-functional requirements: Constraints on the services or functions offered by the system such as
timing constraints, constraints on the development process, standards etc often these are applied to
the system as a whole rather than individual features or services.
4.2 Discover ambiguities or omissions in the following statement of the requirements for part of a drone
system intended for search and recovery:
The drone, a quad chopper, will be very useful in search and recovery operations, especially in remote
areas or in extreme weather conditions. It will click high-resolution images. It will fly according to a path
preset by a ground operator, but will be able to avoid obstacles on its own, returning to its original path
whenever possible. The drone will also be able to identify various objects and match them to the target it
is looking for
4.3 Rewrite the above description using the structured approach described in this chapter. Resolve the
identified ambiguities in a sensible way
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.
1. An unattended petrol pump system that includes a credit card reader. The customer swipes the
card through the reader, then specifies the amount of fuel required. The fuel is delivered and the
customer’s account debited.
In an internet banking system, a facility that allows customers to transfer funds from one account held with
the bank to another account with the same bank
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
• Keeping track is difficult because non functional are sometimes system level requirements rather
than requirements specific to a single function(s).
Functional requirement Related non-functional Non-functional requirement
system requirement
The system shall provide an Safety requirement: No Timing requirement: the
operation which allows release of steam shall be valve must open completely
operators to open the permitted if maintenance within 2 seconds of the
release valve to vent steam work is being carried out on operator initiating the action
into the atmosphere any steam generation plan
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
Withdraw cash:
Actors Customer, ATM, accounting system
Inputs Customer’s card, PIN, Bank account details
Outputs Customer’s card, Receipt, bank account details
Normal operation Customer inputs his card into the machine
He is prompted for a pin which is entered on the keypad
If correct, he is presented with a menu of options
The withdraw cash option is selected
The customer is prompted with a request for the amount of cash
required and enters the amount
If there is sufficient funds in the account, the cash is dispensed, a receipt
is printed and the account balance is updated.
The card is returned to the customer who is prompted by the machine to
take the card
Exception Invalid card: Card is retained by machine. Customer is advised to seek
advise
Incorrect pin: customer is requested to rekey Pin. If incorrect after 3
attempts, card is retained by machine and customer is advised to seek
advise
Insufficient balance: Available balance is displayed to customer and
allow customer to renter a valid amount
Display balance:
Actors Customer, ATM, Accounting system
Inputs Customer’s card, PIN, Bank account details
Outputs Customer’s card, Receipt, bank account details
Normal operation The customer authenticates using his card and associated PIN
Customer select Display balance option
The Current balance of their account is displayed on the screen
Option is given to print the balance on a receipt
Other menu options displayed to customer or terminate the transaction
The card is returned to the customer
Exception Invalid card: Card is retained by machine. Customer is advised to seek
advise
Incorrect pin: customer is requested to rekey Pin. If incorrect after 3
attempts, card is retained by machine and customer is advised to seek
advise
Print statement:
Change PIN
Deposit cash:
Actors Customer, ATM, accounting system
Inputs Customer’s card, PIN, Bank account details
Outputs Customer’s card, Receipt, bank account details
Normal operation Customer inputs his card into the machine
He is prompted for a pin which is entered on the keypad
If correct, he is presented with a menu of options
The Cash Deposit option is selected
The customer is prompted for the amount of cash to be deposited and
inputs the amount.
He is issued with a deposit envelope in which he should put the cash
then return it back into the machine
The account balance is updated with the amount deposited but marked
as uncleared funds. Once the bank has verified the amount the funds are
released as cleared funds.
A receipt is issued
The card is returned to the customer who is prompted by the machine to
take the card
Exception Invalid card: Card is retained by machine. Customer is advised to seek
advise
Incorrect pin: customer is requested to rekey Pin. If incorrect after 3
attempts, card is retained by machine and customer is advised to seek
advise
No cash deposited within 1 minute of envelope being issued, the
transaction is terminated and card returned to the customer
4.8 To minimise mistakes during a requirements review, an organisation decides to allocate two scribes to
document the review session. Explain how this can be done
• Record each defect mentioned and any suggestions for process improvement.
• Often the author plays this role, ensuring log is readable and understandable.
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
become inconsistent
4.10 You have taken a job with a software user who has contacted 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 situation. You
know that the costs to your current employer will increase if the ambiguities are not resolved. However,
you also have a responsibility of confidentiality to your previous employer
5.1 Scope creep can be defined as a continuous increase in the scope of a project that can significantly
increase project cost. Explain how a proper model of the system context can help prevent scope creep
• Early Stage:
o Define system boundaries
o Decide what functionality should be included with processing and operations in mind.
o Check possible overlaps in functionality with existing systems and decide where new
functionality should be implemented.
• Later on:
o Definition of context and dependencies that a system has on its environment.
o Producing simple architectural model is first step in this activity.
• Context model
o Shows that the environment includes several other automated systems.
o UML activity diagrams may be used to show business processes in which systems are used.
5.2 The way in which a system boundary is defined and an appropriate context model is created may have
serious implications on the complexity and cost of a project. Give two examples where this may be
applicable
• Social and organizational concerns mean the position of a system boundary may be determined by
non technical factors
• For example, a system boundary may be deliberately positioned so that the complete analysis
process can be carried out on one site
• In developing the specifications you have to decide whether the system should focus exclusively on
collecting information about consultations or whether it should also collect personal patient
information (Mentcare example)
• The cost and complexity for the system to integrate to various other system will increase if this
becomes an integrated Healthcare system reading data from various other systems and also
providing data to those systems.
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 and birthday parties. Using an activity diagram, model the
process context for such a system that shows the activities involved in planning a party and the system
elements that might be used at each stage.
5.4 For the Mentcare system, propose a set of use cases that illustrates the interactions between a doctor,
who sees patients and prescribes medicine and treatments, and the Mentcare system.
5.6 Look carefully at how messages and mailboxes are represented in the email system that you use.
Model the object classes that might be used in the system implementation to represent a mailbox and an
email 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 modelling the behaviour of a system.
The models are used to explain the system in different perspectives
• An external perspective
• An interaction perspective
• A structural perspective
• A Behavioural perspective
1. An automatic washing machine that has different programs for different types of clothes
5.10 In principle, it is possible to generate working programs from a high-level model without manual
intervention when using model-driven architectures. Discuss some of the current challenges that stand in
the way of the existence of completely automated translation tools.
• A particularly difficult problem for automated model transformation is the need to link the
concepts used in different CIMS.
• Off-the-shelf tool support is not availabe, so when MDA is introduced into an organisation, special-
purpose translators may have to be created to make use of the facilities available in the local
environment. Companies do not want to develop or maintain their own tools or to rely on small
software companies for tool development.
• It doesn not always follow tha the abstractions that are useful for discussions are the right
abstractions for implementation. You may decide to use a completely different implementation
approach that is based on the reuse of off-the-shelf applciation systems.
• For most complex systems, implementation is not the major problem – requirements engineering,
security and dependability, integration with legacy systems and testing are all more significant.
Consequently the gains from the use of MDA are limited.
• The arguments for platform indepence are only valid for large, long-lifetime systems, where the
platforms become obsolete during a system’s lifetime. For software products and information
systems that are developed fo rstandard platforms, such as Windows and Linux, the savings from
the use of MDA are likely to be outweighed by the costs of its introduciton and tooling
• The widespread adoption of agile methods over the same period that MDA was evolving has
diverted attention away from model-driven approaches.
Chapter 6
6.1 When describing a system, explain why you may have to start the design of the system architecture
before the requirements specification is complete
• Architecture has an impact on the nonfunctional requirements and can influence the functional
requirements too.
• Early stage of agile development:
o Focus on designing an overall system architecture.
o Incremental development is not usually successful.
o Refactoring components in response to changes is relatively easy
o Refactoring architecture is expensive because most system components will need to be
modified.
• Architecture designed before requirements spec is complete because:
o Allow manufacture of hardware by subcontractors and provide models for system costing.
o you need to model the architecture to identify subsystems and associate the requirements
with these subsystems.
• Main reasons for the above:
o Means for structuring
o Model for estimating system costing
o Allow manufacture of hardware by subcontractors.
6.2 You have been asked to prepare and deliver a presentation to a nontechnical 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 in which you explain the importance of software architecture
Advantages:
• Stakeholder communication
• System analysis
• Large-scale reuse
6.3 Performance and security may pose to be conflicting non-functional requirements when architecting
software systems. Make an argument in support of this statement
Security means using a layered architecture, which required more than one component to implement
security validation.
6.4 Draw diagrams showing a conceptual view and a process view of the architectures of the following
systems:
2. A computer-controlled video conferencing system that allows video, audio and computer data
to be visible to several participants at the same time
3. A robot floor-cleaner that is intended to clean relatively clear spaces such as corridors. The
cleaner must be able to sense walls and other obstructions.
6.5 A software sysem will be built to allow drones to autonomously herd cattle in farms. These drones can
be remotely controlled by human operators. Explain how multiple architectural patterns can fit together
to help build this kind of system
• The view provides the UI element, rendering data from the model into a form suitable for UI
• Controller receives input and makes calls to model objects and view to perform various actions.
• These work together to create the 3 components of MVC
6.6 Suggest an architecture for a system (such as iTunes) that is used to sell and distribute music on the
internet. What architectural patterns are the basis for your proposed architecture?
Client-server model.
• iTunes store music in a database where clients can search these tracks by music details via a web
based interface.
• Music can be purchased and downloaded via a web based interface.
6.7 An information system is to be developed to maintain information about assets owned by a utility
company such as buildings, vehicles, and equipment. It is intended that this will be updatable by staff
working in the field using mobile device as new asset information becomes available. The company has
several existing asset databases that should be integrated through this system. Design a layered
architecture for this asset management system based on the generic information system architecture
shown in figure 6.18
There are three types of layers for architecture of an asset management system:
• User interface layer: user can access web services using the browser
• Business logic layer: user has some options. User goes to the business logic layer and access the
data on the data access layer
• Database layer: user sees the stored procedures, different views, table and SQL server
6.8 Using the generic model of a language processing system presented here design the architecture of a
system that accepts natural language commands and translates these into database queries in a language
such as SQL.
6.9 Using the basic model of an information system, as presented in Figure 6.18, suggest the components
that might be part of an information system that allows users to view box office events, available tickets
and prices, and so eventually buy tickets.
Web browser
Transaction management
Event database
First layer: UI
6.10 Should there be a separate profession of ‘software architect’ whose role is to work independently
with a customer to design the software system architecture? A separate software company would then
implement the system. What might be the difficulties of establishing such a profession?
The difficulties that may arise by the establishment of such a profession are:
1. Difficulty in the implementation
2. The company that would implement the system may find difficulty in understanding the
architecture
3. Incompatibility of the architecture with the developing system
4. Architecture may not satisfy all the technical requirements
5. Re-work or redesign is needed sometimes, due to incompatibility or change in technical
requirements
Chapter 7
7.1 Using the structured notation shown in Figure 7.3, specify the weather station use cases for Report
status and Reconfigure. You should make reasonable assumptions about the functionality that is required
here.
7.2 Assume that the mentcare system is being developed using an object-oriented approach. Draw a use
case diagram showing at least six possible use cases for this system
7.3 Using the UML graphical notation for object classes, design the following object classes, identifying
attributes and operations. Use your own experience to decide on the attributes and operations that should
be associated with these objects.
1. a telephone
2. a printer for a personal computer
3. a personal stereo system
4. a bank account
5. a library catalogue
7.4 A shape can be classified into 2-D and 3-D. Design an inheritance hierarchy that will include different
kinds of 2-D and 3-D shapes. Make sure you identify at least five other classes of shapes.
7.5 Develop the design of the weather station to show the interaction between the data collection
subsystem and the instruments that collect weather data. Use sequence diagrams to show this interaction
7.6 Identify possible object in the following systems and develop an object-oriented design for them. You
may make any reasonable assumptions about the systems when deriving the design.
1. A group diary and time management system is intended to support the timetabling of meetings
and appointments across a group of co-workers. When an appointment is to be made that
involves a number of people, the system finds a common slot in each of their diaries and
arranges the appointment for that time. If no common slots are available, it interacts with the
user to rearrange his personal diary to make room for the appointment
2. A filling station is to be set up for fully automated operation. Drivers swipe their credit card
through a reader connected to the pump; the card is verified by communication with a credit
company computer, and a fuel limit is established. The driver may then take the fuel required.
When fuel delivery is complete and the pump hose is returned to its holster, the driver’s credit
card account is debited with the cost of the fuel taken. The credit card is returned after
debiting. If the card is invalid, the pump returns it before fuel is dispensed.
7.7 Draw a sequence diagram showing the interactions of objects in a group dairy system when a group of
people are arranging a meeting
7.8 Draw a UML state diagram showing the possible state changes in either the group diary or the filling
station system
7.9 When code is integrated into a larger system, problems may surface. Explain how configuration
management can be useful when handling such problems
Without it, it’s easy to lose track of changes each dev. Makes to code and for changes made by one
programmer.
Essentially CM tracks and keep changes made to ensure previous changes are kept and not overwritten.
7.10 A small company has developed a specialized product that it configures specially for each customer.
New customers usually have specific requirements to be incorporated into their system, and they pay for
these to be developed. The company has an opportunity to bid for a new contract, which would more than
double its customer base. The new customer also wishes to have some involvement in the configuration of
the system. Explain why, in these circumstances, it might be a good idea for the company owning the
software to make it open source.
The key benefits of open source are is that it opens up development to a wide range of developers and so
accelerates the development and debugging of the product. This reduces cost of expansion when customer
base increases. The company can then make the money back from providing “free” software can be made
back by charging for the specialisation of the software for it’s customers. Thereafter any developer can
make changes to said system, reducing the load on the original developers.
Chapter 8
8.1 Explain how the number of defects remaining in a program at the time of delivery affect product
support
Testing - program does what is intended to do? program defects? Testing cannot completely validate a
system one needs detailed knowledge of its purpose and use.
It is practically impossible for all except trivial system to have a complete test set that covers all possible
ways that the system is likely to be used.
8.2 Testing is meant to show that a program does what it is intended to do. Why may testers not always
know what a program is intended for?
When the requirements of a product are not specified properly to accommodate for special cases or, for
example, it may contain omissions, testers may observe a behavior of a product and not be able to know
whether it conforms to requirements or not
8.3 Some people argue that developers should not be involved in testing their own code but that all
testing should be the responsibility of a separate team. Give arguments for and against testing by the
developers themselves.
Pro for Inside Team:
• The team understands the problems that their program is tackling, and thus understands the
problems that it might run into.
• They can write tests that accurately reflect the programs' future challenges.
• An outsider team may try to verify the code, without fully understanding the initial problem.
• Testing becomes easy as they know the areas of code which need testing
• Saves time, as they need not learn about the code
The main concern of developer testing is – misunderstanding of requirements. No matter at what depth
developer test the application, he will never find the error.
Developer always wants to see his code working properly. But tester will test the application to make it fail
in any way.
8.4. You have been asked to test a method called ‘catWhiteSpace’in a ‘Paragraph’object that, within the
paragraph, replaces sequences of blank characters with a single blank character. Identify testing partitions
for this example and derive a set of tests for the ‘catWhiteSpace’ method.
Testing partitions are
• Strings with only single blank characters
• Strings with sequences of blank characters in the middle of the string
• Strings with sequences of blank characters at the beginning/end of string
Examples of tests
8.5. What is regression testing? Explain how the use of automated tests and a testing framework such
asJUnit simplifies regression testing.
Regression testing is the process of running tests for functionality that has already been implemented
when new functionality is developed or the system is changed.
Regression tests check that system changes have not introduced problems into the previously
implemented code.
Automated tests and a testing framework, such as JUnit, radically simplify regression testing
The automated tests include their own checks that the test has been successful or otherwise so costs are
low.
8.6. The Mentcare system is constructed by adapting an off-the-shelf information system. What do you
think are the differences between testing such a system and testing software that is developed using an
object-oriented language such as Java?
Differences between testing an off-the-shelf information system and object oriented software exists in
their testing methodologies and various tests applied
• An application systems such as Mentcare must be tested by considering each requirement and
every requirement carefully and by developing test cases. It should be tested that the applications
works well in all the cases
• Object oriented software is tested in the perspective of classes, objects, their binding, dependency
etc. whereas off-the-shelf information system applications must be tested in various perspectives
such as requirements satisfaction, user acceptance, fault tolerance etc.
• The applications adapting an off-the –shelf information system are to be tested from
environmental perspectives. For example if drug dosage is given as a wrong input, it affect the
patient. All such conditions are to be tested thoroughly, whereas object oriented software may not
result in such harmful effects.
• These testing process of the off-the-shelf systems must concentrate more on scenario testing,
performance testing and stress testing. All these tests are to be performed because any error in
the applications may affect more and may cause loss.
8.7. Write a scenario that could be used to help design tests for the wilderness weather station system.
- John is a meteorologist responsible for producing weather maps.
- These maps are produced from automatically collected data using a weather mapping system
-John selects the area on the map, the time period of the map and requests the map.
- While the map is being created, John runs a weather station check that examines the data and looks for
gaps in that
-The weather station composed of independent subsystem that broad casts messages on a conman
infrastructure.
-Weather stations collect data from a set of instruments that measure temperature and pressure,
sunshine, rainfall, wind speed and wind direction.
-Each of these instruments is controlled by a software system that takes parameter readings and manages
the data collected from the instruments
-In this objects, attributes and methods are identified.
- For designing a test, it is necessary to understand about the interactions between the system and its
environment.
-Testing is performed by checking the data processing and transmits ground thermometers, an
anemometer, a wind vane, a barometer and a rain gauge.
8.8. What do you understand by the term ‘stress testing’? Suggest how you might stress test the Mentcare
system.
Stress testing is where you deliberately increase the load on a system beyond its design limit to see how it
copes with high loads. The system should degrade gracefully rather than collapse.
The Mentcare system has been designed as a client-server system with the possibility of downloading to a
client. To stress test the system, you need to arrange for
(a) many different clinics to try and access the system at the same time and
(b)Large numbers of records to be added to the system.
This may involve using a simulation system to simulate multiple users.
8.9. What are the benefits of involving users in release testing at an early stage in the testing process? Are
there disadvantages in user involvement?
8.10. A common approach to system testing is to test the system until the testing budget is exhausted and
then deliver the system to customers. Discuss the ethics of this approach for systems that are delivered to
external customers.
Ethics of testing the system until the testing budget is exhausted are:
• The testing may not be done satisfactorily
• Only few methods of testing are covered with the available budget
• Only few areas of code may be tested because of the running budget. So there may be some
uncovered errors.
• The testing may not be completed in a satisfactory way by the time the budget exhausts
• Due to improper testing, errors may occur after delivering the project
• It increases the costs of error correction and maintenance
• Affect the reputation and goodwill of the product and vendor
• The customer may not be satisfied with the product as he may not get a quality product
Chapter 9
9.1 Explain how advances in technology can force a software subsystem to undergo change or run the risk
of becoming useless
New widespread technological advancements need not always be backward compatible with all types of
older systems. √ Newly designed usage interfaces data volume exchanges, √ and formats may all require
existing systems to undergo updates√, or risk becoming obsolete: √
• Example 1: With the introduction of widespread cloud-based services, software systems need to adapt to
be able to use the cloud infrastructure for their operations similar to what competitive products may be
doing. √√
• Example 2: An application that allowed mobile applications to connect in an ad-hoc manner needs to
adapt as newer communication technology is introduced to new releases of mobile devices. √√ If the
applications do not adapt, they risk being obsolete√√
9.2 From figure 9.4 you can see that impact analysis is an important sub-process in the software evolution
process. Using a diagram, suggest what activities might be involved in change impact analysis
9.3 Explain why legacy systems should be thought of as socio-technical systems rather than simply
software systems that were developed using old technology
Socio-technical systems – Systems that include technical systems but also operational processes and
people who use and interact with the technical system. Socio-technical systems are governed by
organisational policies and rules.
Sociotechnical systems include hardware, software, libraries and other supporting software and business
processes
1. System hardware.
2. Support software:
3. Application software:
4. Application data:
5. Business processes:
6. Business policies and rules:
9.4 Some software subsystems are seen as “low quality, high business value”. Discuss how those
subsystems can be re-engineered with minimal impact on the operations of the organisation
9.5 What are the strategic options for legacy system evolution? When would you normally replace all or
part of a system rather than continue maintenance of the software
You would normally choose the replacement option in situations where the hardware platform for the
system is being replaced, √√where the company wishes to standardize on some approach to development
that is not consistent with the current system, √√ where some major sub-system is being replaced (e.g. a
database system) or where the technical quality of the existing system is low and there are no current tools
for re-engineering. √
9.6 Explain why problems with support software might mean that an organisation has to replace its legacy
systems:
-Problems with the support software may mean that the functioning or performance of the legacy systems
is not as expected.
-Organisations which depend on many legacy systems have a limited budget for maintaining and upgrading
have to decide how to get the best return on their investment.
-This means that they should make a realistic assessment of their legacy systems. when problems with
support software are found, the organisation thinks of replacing their legacy systems so as to improve their
quality.
9.7 As a software project manager in a company that specializes in the development of software for the
offshore oil industry, you have been given the task of discovering the factors that affect the maintainability
of the systems developed by your company. Suggest how you might set up a program to analyze the
maintenance process and discover appropriate maintainability metrics for your company.
-The software project manager go for at least one offshore industry to develop the software for.
- Various issues like the location, environment, people in the industry, users of the software ect are to be
noticed personally by going there.
- By knowing all these issues, the organisation can identify various metrics like time, cost of maintenance,
reachability, understandability and usability of the users etc, can be identified.
- Also some ideas and suggestions from the users are to be known to assess their way usage of the
software.
-By assessing the cost and time to reach to the off-shore industry, the maintenance cost can be assessed.
9.8 Briefly describe the three main types of software maintenance. Why is it sometimes difficult to
distinguish between them?
Refactoring is the process of changing a software system in such a way that it does not alter the external
behavior of the code, yet improves its internal structure.
- It makes a software system easier to understand and cheaper to modify without changing its observable
behavior by changing its internal structure.
When to re-engineer:
• When system changes are mostly confined to part of the system then re-engineer that part
• When hardware or software support becomes obsolete
• When tools to support re-structuring are available
Re-engineering Refactoring
It is a maintenance process, so that the The original structure of the program is
understandability and the structure of the improved. By doing so, the complexity of the
program can be improved program can be reduced
It can be applied even to legacy software It is limited to object oriented development
programs
You can add any new functionality to the Addition of new functionality is not allowed
already existing system
Reverse engineering is allowed It is based on agile methods, so reverse
engineering is not allowed
9.10 Do software engineers have a professional responsibility to develop code that can be easily
maintained even if their employer does not explicitly request it?
"promote an ethical approach to the practice of the profession". This can only be done by carefully
constructing software that is in the best interests of the -employer (even if they do not require
it),
- the client (who will have to pay for future maintenance),
-and the public (who want to use the software).
Chapter 10
10.1. Suggest six reasons why software dependability is important in most sociotechnical systems.
10.2 Explain with an example why resilience to cyber-attacks is a very important characteristic of system
dependability
10.3 Using an example, explain why it is important when developing dependable systems to consider these
as sociotechnical systems and not simply as technical software and hardware systems.
In a computer system, the software and hardware are interdependent – it is more than the sum of its
parts. System dependability is influenced by all of the elements in a socio-technical system – hardware,
software, people and organisations.
The best example to understand the considerations for sociotechnical systems as dependable software is
nuclear system used by scientists.
10.4 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
10.6 Explain why it is reasonable to assume that the use of dependable processes will lead to the creation
of dependable software
The basic assumption underlying dependable processes is that if a particular process can be shown to have
developed a dependable system, √√ then reuse of that process should also lead to a dependable system√√.
Dependable processes are visible so that it is possible to see what activities have been carried out√√√ –
therefore, assuming that there is extensive process support for checking and analysis, it can be shown that
the software has been properly verified√√.√
The repeatability of dependable processes is also important as this means that irrespective of who is doing
the work, the same process should be carried out. √√√
10.7 Give two examples of diverse, redundant activities that might be incorporated into dependable
processes.
10.8 Give two reasons why different versions of a system based on software diversity may fail in a similar
way
1. The system may include explicit diversity policies and so should fail in completely different
ways.
-In this case overall reliability of a diverse system is obtained by multiplying the reliabilities
of each channel.
- If each channel has a probability of failure on demand, the 3-channel is a million time
greater than the reliability of a single channel system
10.9 You are an engineer in charge of the development of a small, safety-critical train control system,
which must be demonstrably safe and secure. You suggest that formal methods should be used in the
development of this system, but your managers is skeptical of this approach. Write a report highlighting
the benefits of formal methods and presenting a case for their use in this project.
Formal methods are mathematical approaches to software development where you define a formal
method of the software. You may then formally analyze this model to search for errors and
inconsistencies, prove that a program is consistent with this model, or you may apply a series of
correctness-preserving transformations to the model to generate a program.
1. As you develop a formal specification in detail, you develop a deep and detailed understanding of
the system requirements discovered early are usually much cheaper to correct
2. As the specification is expressed in a language with formally defined semantics, you can analyze it
automatically to discover inconsistencies and incompleteness
3. If you use a method such as the B method, you can transform the formal specification into a
program through a sequence of correctness-preserving transformations. The resulting program is
therefore guaranteed to meet its specification
4. Program testing costs may be reduced because you have verified the program against its
specification
During the use of formal methods fewer errors in the delivered software were reported.
This system can be used in most of the super-fast train systems to ensure their safety. As it uses regular
language, so, it can be easily understood by the train operators.
10.10 It has been suggested that the need for regulation inhibits innovation and that regulators force the
use of older methods of systems development that have been used on other systems. Discuss whether or
not you think this is true and the desirability of regulators imposing their views on what methods should be
used.
-some cases regulators force the use of already used or older methods for system development.
-regulators are mostly used in security and safety systems.
- If the method used to develop a new system is already implemented in any other system, then all the
drawback of this system can be understood in an effective manner.
-The new system will be free from all such errors which are faced in the past
Most cases regulators force use formal method for development
- system requirements for the system can be fully understood in a detailed and deep manner
- testing cost will be minimized.