Vous êtes sur la page 1sur 33



SWEN 4432 – Assignment 1 – Name

Put your answer to each of the questions below immediately after the question.

Chapter 1:

1. Introduction.

1. By making reference to the distribution of software costs discussed in Section 1.1.6,

explain why it is appropriate to consider software to be more than the programs that
can be executed by end-users of a system?

Not all software is designed as a simple program that is executed, operating systems,
for example are not mundane programs that an end-user executes to accomplish some
minor task, it is an entire environment that the user utilizes to execute other tasks.
Even more commonly used programs, like the Microsoft Office suite, isn’t a simple
program, it is a platform that communicates with several other programs to make
accomplishing tasks easier and more straight forward for the user.

2. What are the differences between generic software product development and custom
product development?

Generic software has no specific target in mind, and development follows that idea. It
is designed from its conception to include every function they may possibly use, and
be accessible in a manner that does not leave the user feeling that the software is
“bloated” or overrun with useless features.

Custom software, on the other hand, is conceptualized by the customer it is

developed for, and production and development is guided by the customer. This
includes custom components for a specific piece of software will likely not be
included in a generic equivalent of the software title, as it would undoubtedly serve
little to no purpose for the general public, as well as the removal of all functionality
that serves no purpose for the company. This results in a highly efficient, stream-
lined program that suits the needs of the customer as well as can be expected from
any piece of software.

3. What is the difference between a software process model and software process?
Suggest two ways in which a software process model might be helpful in identifying
possible process improvements

A software process model is specifically that, a model of a software process. The

software process itself is the conceptualization, development, and maintenance of a
software title. One advantage of utilizing a software process model is when laying
the model, the team developing the title, as well as the possible customers, can
determine if there is any portion of the project that is unnecessary, and can be
eliminated before the project begins. Another major advantage is determining what
concurrent development can take place, to utilize time more efficiently.

4. Explain why system testing costs are particularly high for generic software products
that are sold to a very wide market?

When developing custom software, the developers will either know specifically, or
have an idea of what hardware systems will be running, as the customer who is
dictating how the software works will consult with the developers regularly. Generic
software has no specific customer, and thus must be made for systems in a wide
variety of configurations. Due to this, will never know what configuration of systems
the software will run on, and to determine minimum and recommended requirements,
a vast number of systems in drastically different configurations must be tested in
order to specifically determine which components are necessary, and which
components give significant boosts to performance.

Chapter 2:

2. Socio-Technical System.

1. Explain why it is important to produce an overall description of a system architecture

at an early stage in the system specification process?

With a pictorial representation of how a system will work, it is easier to identify what
sections of a system will work with other sections, what the layout of design needs to
be, where work needs to be focused on, and can if there are unnecessary
redundancies, can save the developer and customer significant time and money. The
system architecture design can also allow for interfaces to other systems
interoperability with other systems that have been previously designed, in a manner
that does not leave the new system entirely dependant, but merely operating in
parallel with the previous system. This can alleviate the woes of upgrading core
legacy systems by being able to interface with, rather than rely upon other systems.

2. A flood warning system is to be procured which will give early warning of possible
dangers to sites that are threatened by floods. The system will include a set of sensors
to monitor the rate of change of the river levels, links to a meteorological system
giving weather forecasts links to communication systems of emergency services
(police, coast guard etc), video monitors installed at selected locations, and a control
room equipped with operator consoles and video monitors.

Controllers can access database information and switch video displays. The system
database includes information about the sensors, the location of sites at risk and the
threat conditions for these sites (e.g. high tide, southwesterly winds), tide tables for
coastal sites, the inventory and location of flood control equipment, contact details
for emergency services, local radio stations, and so on.

Draw a block diagram of a possible architecture of such a system. You should

identify the principal sub-systems and the links between them.


3. Explain why legacy systems may be critical to the operation of the business.

Legacy systems are systems relying on old or obsolete hardware and software, and
are considered either too expensive, or risky to replace, update, or upgrade these
systems. When systems are developed for a specific purpose, with no intention of
having other systems rely on it, they can be designed in such a fashion that the entire
system can be replaced with no problems. When a system is a core system however,
and other systems are developed relying on the core system, it begins to become
more and more difficult to replace or modify it. When this system is now integral to
all parts concerning it, replacing or modifying it would likely require modifications to
every other system that it supports, which can keep a business offline for months
while upgrades take place.

4. Explain why legacy systems can cause difficulties for companies that wish to
reorganize their business processes?

As stated in the previous question, when systems are inadvertently linked with other
systems that were never designed to interoperate, they become entangled and if
separated, will no longer function. Without appropriate interface development that
can separate systems from one another, this can and more often than not will happen
as a business grows, and their processes become larger and larger to a point that they
are unwieldy, and need to be separated for management.

Part 1: (20 marks, 5 marks each question)

A. By making reference to the distribution of software costs discussed in class (section 1.1.6
in the book), explain why it is appropriate to consider software to be more than the
programs that can be executed by end-users of a system.
B. What is the difference between a software process model and a software process?
Suggest two ways in which a software process model might be helpful in identifying
possible process improvements.
C. Explain why system testing costs are particularly high for generic software products that
are sold to a very wide market.
D. Discuss whether professional engineers should be certified in the same way as doctors or

Chương 1 (tiếp)

Câu 1: Explain why other systems within a system's environment can have unanticipated effects on
the functioning of a system.

Trả lời:

Other systems within a system environment can cause unanticipated effects on the functioning
system. This could be because clashing processes may occur which would make the programme run
slower due to a queue in the running processes. Other reasons would be that Sub-systems do not have to
link/talk to all systems but if on occasion if they do, it can cause a break in the chain with other systems
that are in operation trying to talk to the same system. This could be because of a compatibility error or
another general error. These errors could have a large or little impact on the system environment but the
type of effects would be computer crash, system failure build up of virtual memory.

Câu 2: Explain why specifying a system to be used by emergency services for disaster management
is an inherently wicked problem.

Trả lời:

Sommerville (2004) states 'a wicked problem is a problem that is so complex and where there are so
many related entities that there is no definitive problem specification.
In disaster management the problems which occur, do so at random. For example, a piece of software
designed to predict locations and danger of earthquakes can only predict roughly where an earthquake
could arise, as the epicentre and therefore severity of the earthquake cannot be calculated until it has
A system cannot therefore be specified completely to deal with these kinds of disasters; flaws in the
system can only be fixed once they have already started to occur.

Câu 3: Explain why it is important to produce an overall description of a system architecture in the
early stage in the system specification process.

Trả lơi:
It is important to produce a whole description of the system architecture because the client/user will
be able to correct your mistakes early on and if a new programmer were to arrive then it would be easier
for them to be able to understand the system. The programmer can also plan his way on how he will
create the system so he won’t stray too far from client’s specification of the system. The overall
description will also give the programmer a look at the overall system before he has created it so it may
lead to less errors being created and he might be able to develop the system further in the development
stage. The whole system architecture will be able to show the programmer what has to be created next,
which will mean he will be able to work for longer periods of time without having to stop after each
section of code trying to solve what has to be done next.. Another important reason is when maintaining
process is being done for the system at a later date the programmer will be able to find certain parts of the
code easier so the process will be completed faster and more effectively.

Câu 4: Consider a security system that is an extended version of the burglar system shown last
friday, which is intended to protect against intrusion and to detect fire. It incorporates smoke sensors,
movement sensors, door sensors, video cameras under computer control, placed in various places in the
building, an operator console where system status recorded to external communication facilities to call the
appropriate services such as the police and fire departments. Draw a block diagram of of a possible design
for such a system.

Trả lời:

Câu 5: A flood warning system is to be procured which will give early warning of possible land
dangers to sites that are threatened by floods. The system will include a set of sensors to monitor the rate
of change of their levels, links to a meteorological system giving weather forecasts, links to the
communication systems of emergency services (police, coastguards, etc.) video monitors installed in
selected locations and a control room equipped with operator consoles and video monitors. Controllers
can access database information and switch video displays. The system database includes information
about the sensors, the location of sites at risk and the threat condition for these sites (e.g. high tide,
southwesterly winds), tile tables for coastal sites, the inventory and location of flood control equipment,
contact details for emergency local radio stations and so on. Draw a block diagram of a possible
architecture for such a system. You should identify the principal subsystems and the links among them.

Trả lời:

Week 3: critical systems.

Câu 1; Suggest six reasons why dependability is important in critical systems.

Trả lời:

• Dependability in a system is one of the most critically required aspects of the system.
Fundamentally, if the system goes down, it's the worse case scenario. - A critical system
generally is running frequently, if not constantly and so needs to be working at all times.
• Dependability means the system is reliable to be working whenever needed to be
• If the system involves a procedure, such as medical that operates on a person the system
cannot possibly occur an error at risk of injuring a person/killing the person.
• The system may occur errors in other systems and could potentially affect them in a
serious way.
• If a system is unreliable, the consumer may decide to use other companies system as the
product you are producing is not up to standards.

Câu 2; What are the most important dimensions of system dependability?

Trả lời:

 There are three important dimensions of system dependability; hardware, software and
operator. Depending on the system, one is more important than other, however if one result in
failure, the entire system could go down.
Câu 3; Identify six consumer product that contain, or will contain, safety-critical software systems.

Trả lời:

- Automated insulin pump

- Microwave
- Computer fan system
- Television
- Washing Machine

Câu 4; Giving reasons for your answers, suggest which dependability attributes are likely to be
most critical for the following systems.

• An internet server controlled by an isp have been with tousands of customers.

• A computer-controlled scalpel used in keyhole surgery.
• A directional control system used in a satellite launch vehicle.
• An internet-based personal finance management systems.

Trả lời:

This is the most important of the dependability attributes of this particular system. The company provides
a service to thousands of customers who rely on the ISP to receive a very high standard of the service. If
the availability is not to the customers standards, they will switch ISPs and the company will lose money.
Reliability is similar to availability in regards to the ISP service. If the customers are unhappy with this
aspect, they will also change to another company. However, having a poor reliability service is better than
none at all.
- A computer-controlled scalpel used in keyhole surgery
Reliability must be a guarantee for this system. This is specifically required because the patient's life is on
Safety Informally
This is the most important attribute. As previously stated, the patient's life is on the line and any errors in
the system could seriously endanger their life.
- A directional control system used in a satellite launch vehicle
The system would be extremely expensive to produce and the system will be running 24/7 for the set
given time. Having problems with the system could interrupt the project or possibly ruin it entirely.
- An Internet-based personal finance management systems
The system is quite an obvious target to be broken into and have details changed. Security will be needed
to prevent any users from breaking into the system and obtaining or changing information.

Câu 5: As experts in computer security, you have been approached by an organisation that
campaigns for the rights of torture victims and have been asked to help the organisation gain unauthorised
access to the computer systems of an american company This will help them confirm or deny that this
company is selling equipment that is used directly in the torture of political prisoners. Discuss the
dilemma that this request raises and how would you react to this request.

Trả lời:

The answer would be no. There are too many variables involved in this situation that are
untrustworthy. The first being if the organisation is a legitimate group and the information that would be
obtained were to be used for the reasons stated. The second, obviously that any participation would be
extremely illegal and be highly probable go to court and result in imprisonment.

Week 4

Câu 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 three of the following systems:

• an e-auction system
• a mod to Half Life 2
• a system to control radiation therapy administered to patients in a hospital
• a new virtual learning environment to replace the Virtual Campus
• an interactive web-based system that allows customers to review films available and book
tickets for a cinema

Trả lời:

An e-auction system would use the evolutionary development software process model. Just as with
the other generic software processes, the system will have a defined set of requirements which need to be
met. Due to the ever changing nature of the Internet and e-commerce in general, it is important for web
based companies such as eBay to continually evolve and adapt to suit the needs of their customer and so
an evolutionary based software development model is the optimal choice. This is because the e-auction
website will inevitably have to adapt its software to suit the needs of the Internet users and these sort of
changes can happen with evolutionary development for the span of the product's lifetime. A downside of
this is that eventually over the course of development the system code may start to become unstructured
and un-maintainable making its continued development harder and costing more resources.

A mod to Half-Life 2 would use the component based software engineering model. When developers
write mods for computer games, they will want to spend as little time developing 'under-the-hood' type
code and as much time writing game-code and game-assets. Particularly with Half-Life 2 and the Source
engine there are many pre-existing tools and components packaged with the 'Source SDK' that allow mod
developers to re-use existing components and focus purely on writing the game logic and code that really
matters to the mod with little worry for the existing systems that their game will run on.

A system to control radiation therapy administered to patients in a hospital would use the waterfall
software process model. This is due to the fixed set of requirements that the system must meet, and the
chance of errors in the system could have a dramatic impact on the patients that the system is intended to
be used on. The system testing stage of the waterfall model should help the designers to minimize the risk
of error within the program before final delivery to the client. The final maintenance stage which will
usually last the lifespan of the system will help to ensure that errors and bugs that are found will be fixed

A new virtual learning environment to replace the Virtual Campus could use the component-based
software process model. Due to the web-based platform, stability and reliability is a fundamental issue
that needs to be taken care of within the development of this product. One could argue that by re-using
existing and tested components for the web platform you can save development time and resources rather
than writing from scratch, in which much more time would need to be spent to ensure the scratch-written
code is reliable and error free. It is also arguable that many of the already available components could
have their own errors, bugs and possibly exploits. This may pose a security risk to the system as details of
these problems might be easily available to malicious users.

An interactive web-based system that allows customers to review films available and book tickets for a
cinema could potentially use the evolutionary development software process model. The developers will
have a set of system requirements to meet, but these will not necessarily remain the requirements. As the
ever-changing nature of the web is increasingly more frequent (such as 'Web 2.0') end-user needs and
requirements are also changing. Specifically as this particular system is designed to be based around user
content, the requirements of the user are the most important and it is inevitable that they will change. The
evolutionary development model will allow the system to evolve and change accordingly throughout its
development, making it easier to adapt to the user needs.

Câu 2; What are the five components of a design methods? Take any two methods you know or have
researched and describe its components. In each case, assess the completeness of the methods you have

Trả lời:

 The five components of design methods include:

• Specification of the system requirements

• Design of the system and its components
• Implementation followed by testing of the system
• Validation and verification
• Maintenance of the system

The waterfall model is perhaps the most common of the methods. It follows the five components
listed above closely with few differences. Each step is completed before moving onto the next
step. The process for the waterfall model follows the following order:

• Requirements definition
• System and software design
• Implementation and unit testing
• Integration and system testing
• Operation and maintenance

The waterfall model could be considered fairly complete as it covers all the major aspects of the
design and development and sets the standard for the other methods.

The component-based design method is fairly different to the waterfall model as the
implementation is different in the sense that a lot of the code is re-used from pre-existing
components, so less time is spend developing code from scratch.

The process for the component-based method follows this order:

• Requirements specification
• Component analysis
• Requirements modification
• System design with reuse
• Development and integration
• System validation

The component-based method could also be considered complete, however it lacks the
maintenance component that is featured in the other models.

Câu 3; Explain what CASE is and give examples of 3 CASE tools. Survey the tool availability on
your local development environment (i.e. the Computing department PCs) and classify the tools you find
according to the parameters: function, activity, breadth of support.

Trả lời:

CASE stands for 'Computer-aided Software Engineering'. This includes a large range of
programs of many different types. All of these programs are used to support software
engineering including: system modelling, requirement analysis, debugging, compilation, editing
and testing. Some CASE tools may even generate source code from a system model (for
example, ArgoUML can produce Java source code from UML diagrams).

3 examples of CASE tools in the University computer labs are:

• ArgoUML - This is a system modelling tool and is very useful for planning the structure
of a program, a long with is functionality and user requirements and use-cases.
ArgoUML is primarily aimed at users of the Java programming language however due to
the open nature of UML diagrams specifically; the program can be used for any
programming language. ArgoUML can produce Java source code from UML diagrams
provided the diagrams contain enough detail. This is a planning tool.
• Microsoft Visual Studio - This is an extremely useful IDE and compiler for various
different languages. It takes care of tasks such as project management and maintenance
and has other useful features such as syntax highlighting. The product is labelled as a
complete environment and is aimed at covering many different areas of software
development. Further add-ins are available that increase the compatibility for developing
software in teams with features such as SVN/CVS and collaborative programming. The
current iteration of Visual Studio supports many different languages including: C, C++,
C#, J# and Visual Basic. This tool is limited to the Windows platform. This is primarily a
language-processing tool.
• Microsoft Visual Studio Debugger - This tool is used for debugging programs as they
run, and finding out the exact reasons for program crashes and errors. It is extremely
useful in helping to hunt down and fix bugs which might otherwise be extremely difficult
to locate. This tool can only be used to debug Windows application and therefore is not
useful for the development of cross-platform applications or software targeted at any
other platform. This is a debugging tool.

Câu 4; Research and report briefly on the extreme programming process. Using a diagram, outline
its main activities and the order in which they are performed. Under what circumstances, would you
recommend the extreme programming process be followed?

Trả lời:

'Extreme programming' or XP is an 'agile' development method. The use of the word extreme is
inherent to the functionality of this method. XP pushes good practice and well tested methods to extreme
levels and so the name was born.
The diagram below highlights the order and processes involved in a single XP system release.

The processes in the diagram are fairly self-explanatory however the story system that the XP
process uses differs from other development methods. These stories are use-case scenarios designed by
the customers that detail what the client wants to do. For example, a scenario for an eBay user might be
"User types in search time for the type of item they wish to purchase. User selects desired item from a list
of matches. If user wishes to bid on the item they simply click 'Place Bid' and enter their bid amount.
They have now successfully bid on the item". The developers would then break this down into the
individual tasks and integrate the required functionality of the system.
Testing is a major feature of XP. All tests are written before any program code is written. This is known
as test-first development. Before every release iteration the software must pass the test scheme that has
been pre-written. If the release fails to pass the test scheme it is rejected and development starts on the
next release. This whole process is extremely rapid and releases may happen several times a day.

Week 5:

Câu 1: Define the tasks, their duration, and the dependencies among tasks, of the group project you
have recently submitted. Draw the Gantt chart and the Pert chart, identifying the critical path in the graph

obtained. Describe also on which basis you have defined the duration of the activities, and how much
flexibility these durations have before their completion.

Trả lời:

The tasks in the group project were given to group members in pairs to complete, they were then
brought together to combine all the information to complete the project. The tasks where:

• Introduction
• Method
• Diagrammatic overview
• Requirements
• Validation and verification
• Group process
• Risk analysis

The dates shown on the Gantt chart are not the actual dates when the group work took place but
the durations of each of the task are correct. The durations of the tasks that are given on the Gantt
chart are based on the time period that was given to complete the group project. The duration of
each task are the same because as the group was working in pairs it would mean that could work
together and complete work at a faster rate. Once decided on the duration of each a meeting was
set after the time period to check up on the work done by the group members. These durations do
have flexibility but are still confined to the final submission of that assignment.

Câu 2; Explain why the best programmers do not always make the best software managers. Give a Gantt
chart of your group project based on a manager's perspective, a programmer's perspective, a marketing
expert's perspective, and the end-user's perspective (for instance, the users giving you the requirements).

Trả lời:
Programmers do not always make the best software managers because mainly they do not have
experience in any type of management position. This can have exceptions if the programmer themselves
have a natural ability to do that role. A software manager must have some experience in a management
position to effectively run a software department. Maintenance will not be added as a task on the Gantt
because this will be done after the project. Maintenance is an ongoing task that will take place as long as
the system needs to be repaired or updated to prolong its life. The Gantt chart created shows the
perspectives of a manager, a programmer, a marketing expert and the end users perspective. The Gantt
chart shows how each of their perspectives change on how they think the project should be progressing. It
can be clearly seen the differences of how much time each perspective has on each of the areas of the
production. The Gantt chart does not show correct dates but it does show the time periods of which the
group project will take.

Câu 3; Fixed-price contracts, where the contractor bids a fixed price to complete a system development,
may be used to move project risk from client to contractor. If anything goes wrong, the contractor has to
pay. Suggest how the use of such contracts may increase the likelihood that product risks will arise. Give
an example, identify the risk types and draw their probability and effects on a matrix-like visualisation.

Trả lời:

Fixed priced contracts can increase the likelihood of problems because the financial responsibility is on
the contractor. This will lead to the contractor using cheaper software to complete the system and if an
error were to occur the contractor may put minimal effort into solving the problem as he wouldn't want to
pay for more programmers to solve the problem but try to use a quick fix solution. An example of this is
if the programmers working on the system development might run into a problem that they cannot figure
out and instead of hiring another programmer for assistance they would just carry on trying to solve the
problem while trying to keep costs down otherwise they would have to pay the extra cost and lose profit.
The contractor will want to spend less time on the more high costing jobs of the project to keeps costs
low. If the client wants to add another process into the system they will have to pay extra onto the fixed
priced contract because this would be extra work that the programmer would be doing. If they decide to
add another process at the end of the development it will normally cost more than if it would if it was
added at during the development. That's why regular meeting need to take place during production of the

Câu 4; Consider the following example. Evaluate the critical path, drawing the Pert and Gantt charts.
Draw also the flexibility of each of the activites. Define with an example in which circumstances the
critical path changes from the original one.

Trả lời:

This example will take 26 weeks (6.5 months) to complete. When looking at the Gantt chart it is clear
when to start a particular task and what there dependencies are. The flexibility of the critical path can be
seen on the second Gantt chart and pert chart. The critical path remains the same but some tasks have
been split into sections for a more flexible working time. Having the more flexible working time allows
the programmer to work more easily on the system. The critical path would change in normal
circumstances if more time is given by the programmer or a client.

Hình : http://university.johnnycalvert.com/Sheet5.html

Câu 5; As a programmer, you are offered a promotion to project management, but you feel that you
can make a more effective contribution in a technical rather than a managerial role. Discuss whether you
should accept the promotion.
Trả lời:

If a programmer were to accept a project management position he would still be able to do some of
the programming for the system but not as much as if he were in a technical role. The project
management position would allow the programmer to oversee all the other programmers that are working
on the system and would allow him to add changes to the system without having to do too much hard
work because the other programmers would have done most of it for him which would still allow him to
have input into the system but more of a backseat role. It would also be his responsibility to talk to the
client about the system that they would want to create. The programmer may not have any previous
experience of being in a management role which may hinder the project by inexperienced decisions. If the
programmer stayed in the technical role he would be able to write more of the system and be more
involved in the actual making of the system. He would not however have total control of what he would
be making as he would have no contact with the client as that would be the role of the project manager.
Since the programmer may have lots of experience as a programmer he will have a lot to offer to the
project and he may also enjoy his role more.

Week 6:

Câu 1: Discuss the problem of using natural language for defining user and system requirements.
Using one or two of the requirements you recently submitted for your group project, put them into a
structured formalisation, as seen in the lecture. Show where and how much this new structure is
modifying your original document, and discuss if it serves to clarify it better or not.

Trả lời:

The problem with using natural language to define user and system requirements is essentially
down to the essence of the language itself. Simple phrases can mean entirely different things
when read by different people and almost every sentence is open to different interpretations.
Issues such as localisation and different regional definitions of a word are all part of the problem.
Sommerville's "Software Engineering 8" details how two statements listed on an escalator sign
can have different meanings to different readers: "Shoes must be worn" and "Dogs must be
carried". Some readers may think that their shoes need to be physically worn or damaged if they
wish to use the escalator. The other statement might be interpreted as meaning that you must be
carrying a dog to use the escalator.

The following is a requirement taken from our group project design document: "Needs basic
physics engine for things such as collision - collision detection is present in any graphical based
Once put into a structured formalisation using natural language this requirement translates into:

Description: Game engine requires a physics subsystem.

Rationale: Nearly all modern games contain such functionality and therefore similar
functionality is required by our game to compete within the market.
Reference: Engine/Requirements/Req5
Source: Decided by all group members.

This structured formalisation is substantially different from the original document. It is now
much clearer to read and easier to understand. Partly due to the formatting used but mainly down
to the layout of the requirement and the strict use of natural language.

Câu 2; Discovery any language ambiguities in your requirement document. Discuss why they should
be consider ambiguities, distinguishing the potential readers of your document (like programmers, end-
users, managers, etc). Consider ways of solving these ambiguities in a better, rewritten form.

Trả lời:

There are quite a few ambiguities within the submitted group requirements document. This is
perhaps largely due to the collaborative nature of the document; different parts of the document
were submitted by various group members and so the overall quality of the document depends on
the original author as it often becomes very difficult to moderate in such circumstances.

For example, the following requirement is not only inaccurate, but also specific to the
programmers of the group: "Needs basic physics engine for things such as collision - collision
detection is present in any graphical based game.". The 'collision detection is present in any
graphical based game' does not represent the reality of the claim, this itself is misleading. The
requirement also does not suggest how the user will interact with the system at this point.
Perhaps the requirement should have been based on the user "interacting with graphical objects
within the game environment" which would then lead to the system requirement that the game
must feature a physics subsystem to appeal more directly to the target audience.

Câu 3; What are the typical characteristics and capabilities of requirements management tools?
Search the internet for the answer, providing examples, screenshots and rationale of usage in small,
medium or large companies

Trả lời:

The tool that the following information is based on is called 'Open Source Requirements
Management Tool' or OSRMT for short. This particular tool is open-source as the name suggests and can
be found on SourceForge at the following link. The screenshot below shows the requirement editing
dialog. This is the main dialog used for editing the requirement details.

 Another tool of the same type is Tiger PRO. This can be found at the following link.. The
features of this particular tool are (taken from the official website):

• Ingesting of requirements from text documents and the keyboard into requirement databases.
• Elucidating requirements based on a set of "poor words" and pointing out up to five types of
(potential) defects in each of the requirements (multiple requirement in a paragraph, possible
multiple requirement, unverifiable requirement, use of "will" or "must" instead of "shall", and the
existence of a user defined "poor word").
• Modifying existing requirements.
• Allowing for additional "poor words" to be added as they are identified.
• Allowing for "poor words" to be used in a requirement when their use is appropriate. For
example, the requirement that "the system shall display the combined total of A and B" is a good
• Producing summary reports on elucidation of requirements, priority allocation, risk assignment
and cost estimation in textual and graphical formats.

Câu 4; 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 their credit card account
changed. When the user presses the start button, a menu display of potential destinations is activated,
along with a message to the user to select a destination. Once a destination has been selected, users are
requested to input their credit card. Its validity is checked and the user is then requested to input a
personal identifier. When the credit traansaction has been validated, the ticket is issued".

Rewrite this description using the structured approach introduced in the lecture, and resolve the identified
ambiguities in some appropriate way.

Trả lời:

 In the above requirements definition there are various ambiguity problems. The main
problem is the lack of scope for controlling the users inputs and interactions with the system. For
instance, when user input is required, such as entering their payment details it is essential that
they are prompted and provided with the correct information to allow the procedure to run as
smoothly as possible. The above quotation is ordered in a strange way that may cause confusion
between the designers and programmers of the system. For example, the information regarding
the destinations is stated later into the paragraph, after the main functional requirements have
already been outlined. Below are two of the requirements written with a structured approach.

Description: Users must select their destination from a list of pre-defined on-screen entries.
Rationale: If the user can only select pre-defined destinations, they are less likely to make a
mistake and the system is less likely to encounter an error.
Reference: TicketSystem/Requirement1
Source: James Munro

Description: User will input their credit card and personal identification number when
Rationale: By prompting the user to input their credit card at the correct time, the payment
process will be more efficient and less error-prone.
Reference: TicketSystem/Requirement2
Source: James Munro

Câu 5; Select an open source project from SourceForge, read the description of the application, and
figure out what are its main functionalities. For them, define the functional and non-functional
requirements involved. Produce both the "requirement definitions" and the "requirement specifications",
focused on both the users and the programmers perspectives. How, in your opinion, are the requirements
dealt with in the Open Source paradigm? Give some real examples of open source requirements.

Trả lời:

The project chosen from SourceForge is 'Q-Gears'. The description of the application is as
follows: "Q-Gears is a clone of Squaresoft's Final Fantasy 7 game engine. It is designed to be
cross-platform and run on modern operating systems such as Win32 and Linux."

Below are the requirement definitions for this project:

Req 1: The system must be a clone of Squaresoft's Final Fantasy 7 game engine.
Req 2: The system must be cross-platform.
Req 3: The system must run on modern operating systems.

Below are the requirement specifications for this project:

Description: The system must be cross-platform.

Rationale: The system will be exposed to a wider audience if it can be implemented on various
operating systems.
Reference: Q-Gears/Requirement2

Description: The system must run on modern operating systems.

Rationale: The system must run on modern operating systems due to the abundance of such
operating systems on personal computers in the target audience.
Reference: Q-Gears/Requirement3

Week 7

Câu 1; Requirements elicitation aims at reconciling domain knowledge requirements and use-case
requirements. Explain the difference between these two kinds of requirements: should one of them take
precedence over the other in the determination process? Focussing on the current requirements document
of your group project, give an example of both types of requirements. Illustrate whether one requirements
of a type has been dropped to accomodate a requirement of the other type, and give reasons.

Trả lời:

Domain requirements are derived from a high level of abstraction. Firstly, understanding the
domain of the intended system is required. The developer will more than likely have little or no
understanding of the domain knowledge in question. Using various information gathering
techniques, requirements are formed from the information gathered from the stakeholders[1] and

Use-case requirements have a lower level of abstraction. These are scenarios that illustrate
graphically a type of interaction with the system. As with many systems there will many methods
of interaction. This results in the need to have many use-case scenarios to identify all use-case

The main difference between these two requirements is the level of abstraction and detail. Use-
case requirements are much more specific and less abstract. It is my opinion that use-case
requirements would take precedence over domain requirements. It is possible for a domain
requirement to be unused or uneccessary in the developement of the system.

To illustrate this we can consider an example regarding the group project I'm personally involved
in, although this isn't a perfect example it is the best that can be used from such a small project.
From the requirement illicitation of the project it is indicated that our game will be developed for
EITHER Windows XP, Windows Vista or XBOX 360. This is defined by the rules of the
Microsoft Imagine Cup competition. So our domain requirements would suggest we choose a
single platform for our game. Now due to developement constraints realised within our team, it
is a requirement we develope the game to run on both Windows XP and XBOX 360. So when
producing the use-case requirements we need to include scenarios the use both platforms.

Câu 2; Using your own knowledge of how a vending machine is used, develop a set of use cases that
could be used to derive the requirements for such a system. From the use cases, derive the requirements
and put them in a standardised format

Trả lời:

There are not many events to consider when using a vendor machine. The customer will put some
money into the machine. He will then enter a selection dependant on the desired product to be vendored.
If sufficient credit has been entered then the product will be ejected. If the credit value at moment of
selection was more than the cost of the product then change will also be ejected. Using this information
we create our use-case diagram.

From the above diagram we can determine the following requirements.

Way of receiving money from customer.

Method of counting and displaying amount of money entered by customer.
Way for customer to make selection.
Method for checking sufficient money entered for selection.
Way for machine to dispense product.
Way for customer to retrieve product.
Way of dispensing change for customer to retrieve, if required.

Câu 3; Why do traceability matrices become difficult to manage when there are many system
requirements? Illustrate the three types of traceability information in your group project's current
requirements. Draw a matrix for them, and illustrate strong and weak links among your requirements.

Trả lời:

A traceability matrix will have as many columns and rows equal to the amount of requirements.
Clearly, the more requirements that are defined increase the size of the traceability matrix. If you
were to consider the requirements that would be needed for a system such as Microsofts Vista
application, you can see the resulting matrix would be enormous. Such a thought puts me off
wanting to be management planning such systems! I will provide some traceability matrix's
based on my group project.

The following matrix's are based on Source traceability[2] information.

The next matrix is based on Requirements traceability[3] information.

The final matrix is based on Design traceability[4] information.

Câu 4; What is the added value of dependency matrices? Illustrate the dependencies in your group
project's current requirements and draw a summary matrix. Illustrate also the workarounds you plan for
the overlapping requirements.

I can see if there were more dependencies and requirements, this matrix would be very useful with
identifying the consequences of changes made in any of the requirements. Unfortunately, my group
project doesn't illustrate this very well. It also doesn't illustrate any differences between any two
requirements should either be considered in the first instance. As can be seen, any dependancies that are
associated are linked to memory requirements. Simply put, the project must not exceed 512MB of RAM.
This is because of the amount of RAM the Xbox 360 has available. Exceed this limt and it simply can't
work. The requirements 1.7, 1.8 and 1.9 have been given weak relationships due to the fact they all play a
small roll with memory consumption. The following is our summary matrix.

We plan to ensure that none of the overlapping requirements uses more memory than needed. In our case
this is simple. It would be incredible for us to produce a game that used more than 512 MB of RAM. It
simply isn't possible considering the game is only required to be a demonstration of an idea and not a final

Câu 5; Consider the following diagram

Search for the meaning of a "context diagram", and answer the following questions:

1. what are the boxes supposed to mean in this diagram?

2. what is the circle representing?
3. what is the meaning of the arrows and their direction?
4. what is the difference between this and an UML diagram?
5. try and infer the requirements for this context diagram, one per each of the
depicted boxes.

Trả lời:

It should be noted here that there are two basic symbol sets to illustrate data flow diagrams or
context diagrams[5]. These are Gane-Sarson and Yourdon-De Marco. In the example given, the
symbol set being used is that of Yourdon-De Marco.

1. The boxes represent data input/output from external human entities. I believe a mistake
has been made with this diagram. The two databases are misrepresented. These should
be depicted with either open-ended or elongated boxes to represent data storage.
2. The circle in the middle represents the system or process.
3. The lines in the diagram represent data flow, where the direction is indicated by arrows.
4. This diagram is an entity-relationship diagram viewed from an external perspective.
UML diagrams are object-orientated and show relationships between objects. I'm not sure
how to explain the difference between the two as there doesn't seem to be a simple
deffinition. This is because there are now 13 different modeling techniques associated
with UML diagrams. There are also a variety of context models. The only difference that
seems obvious and constant is that context models are easier to understand by the

5. Supporter - Customer
Order Processing - Employee
Campaign Database
Supporter Database

Week 8

Câu 1: Draw a context model for a "patient information system" in a hospital. Show clearly which
systems should not be considered as part of it, and explain why. Include the representation of a process
model, to illustrate the activities involved in the aforementioned system (arrival of a patient, check-in,
etc.). Show, in the latter, the boundaries of the system, and the components outside it.

Trả lời:

Reasoning for outside classes:

The reason that "CheckIn" and "CheckOut" are outside of the Patient Information System is they
aren't actually pieces of information about the patient. They are processes which update patient
information such as TempData and PatientMedicalHistory so should be included on the diagram;
they dont, however, give any information about the patient themselves (such as name, type of
illness, etc.). As the name implies, a Patient Information System should only include information
on patients, not what adds them into and removes them from this system.


• The patient recovers after their stay

• Only one doctor is assigned per patient
• Patients wont change wards (similar to Bullfrog's "Theme Hospital" game, very linear
• Patients are assumed to be ill at check in (no false alerts or fake illnesses)

Câu 2: Draw the following data-flow diagrams:

• customer drawing money from an ATM machine;

• mail-sending and mail-recieving in an electronic mail system;
• user of your action system bidding for the first time;
• existing customers placing reservations on DVDs and/or Tapes to be collected at a
specific date.
Trả lời:



• The customer is always given the option to make a further transaction.

• Money available is checked local to the terminal.
• There is a storage within terminal to hold stolen cards.
• Card is returned if PIN is failed even once.


• When sending, can only compose mail first time.

• Returns to main menu after sending mail.
• Messages are always re-marked automatically as read after being read.
• Mail client only has options to send and read mail, no advanced functions.
• No spam filter included due to it being outside of the scope of sending/receiving.


• Online auction system assumed.

• No database updating on item status.
• Only shows up to the point of bidding, not tracking made bids.
• No need to decide if auction is won/lost as it is outside of the scope of a first time bid.


• No matter the method the customer uses to contact the store, the process is the same.
• One staff member handles all of one order.
• User can make unlimited rental requests within stock limits.
• Charges for previous late returns etc. not included as not within scope of a new rental.

Câu 3; Draw the following state-chart diagrams:

• automatic washing machine with different programs for different types of clothes;
• software for an mp3 player;
• user of your auction system bidding on several items;

trả lời:


• After auction is won, payment is demanded immediately.

• Same auction system as used in DFD.
• Bidding system only, no "buy now" feature.
• No "feedback" system as is common with some auction systems.


• MP3 player can only play music as a function.

• Very basic player, cannot "shuffle" etc.


• Time intervals are pre-determined.

• Pausing can only occur in the "washing" state.

Câu 4; For your auction system identify the following (you might want to draw class diagrams
for these):

• classes it will be based on;

• associations among the classes, and their multiplicities;
• potential aggregations and compositions among classes;
• potential generalisations and inheritances among classes;

trả lời:


• High level of abstraction

• Same auction system as used in DFD and STD.
• Bidding system only, no "buy now" feature.
• No "feedback" system as is common with some auction systems.

Câu 5; Draw the data model for your auction system: include the nodes, their description, and the links
among them. Transform all the gathered information in the description of a entity-relation-association
database, and define the tables, attributes and primary keys of this representation.

Trả lời:


• The same as the previous question for the first part (see note on diagram)
• Every class has an ID associated with it
• Maximum price of item is 99,999,999.99 units due to 10 float constraint applied

Week 1:
Câu 1; By making reference to the distribution of software costs discussed in Section 1.1.6 of
Sommerville and in the lectures, explan why it is appropriate to consider software to be more than the
programs that can be executed by end users of a system.

Trả lời:

Firstly what constitutes software development? The development of software has four key activities.
Software specification, software development, software validation and software evolution. The
distribution of software costs is more easily seen with the waterfall model of software development.

As with any of the other development models, the software development activity is but a small part of the
process. Software is not just the program the user will be using but also the associated documentation,
configuration data and support.

Câu 2; What are the differences between generic software product development and custom software

Trả lời: The difference is mainly the control of the specification. For Generic[1] products the specification
is controlled by the organisation that develops the software. An example of these would be Microsoft
Porudcts. For customised[2] (bespoke) products it is the customer that controls the product specification
that the developers must work to. An example would be an employee/customer database for a company.

Câu 3; What is the difference between a software process model and a software process? Suggest two
ways in which a software process model might be helpful in identifying possible process improvements.

Trả lời:

The software process model[4] is an abstract representation of a software process[3] that presents one
view of that process. It is a tool for organising activities. It will help visualise what should be done and in
what order. The model is also not restricted to a particular method and can incorporate ideas from other
methods. One improvement may be identifying the need to implement testing during the design phase to

help with a complex system. Another improvement could be to recycle design and implementation with
the customer being consulted at the end of each cycle until completely satified with the products

[1] Generic Products: These are stand-alone systems that are produced by a development
organisation and sold on the open market to any customer who is able to buy them.
(Summerville: Software Engineering, Chapter 1.1.1, page 5)
[2] Customised (or bespoke) products: These are systems which are commissioned by a
particular customer. A software contractor develops the software especially for that customer.
(Summerville: Software Engineering, Chapter 1.1.1, page 5)
[3] A software process is the set of activities and associated results that produce a software
product. There are four fundamental process activities that are common to all software processes.
These are: Sostware Specification, Software Development, Software Validation and Software
Evolution. (Summerville: Software Engineering, Chapter 1.1.5, page 8)
[4] A software process model is a simplified description of a software process that presents one
view of that process. Process models may include activities that are part of the software process,
software products and the roles of people involved in software engineering. (Summerville:
Software Engineering, Chapter 1.1.6, page 8-9)

Trang web download: http://university.johnnycalvert.com/index.html