a1

45
http://university.johnnycalvert.com/index.html 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. 1

Transcript of a1

Page 1: a1

http://university.johnnycalvert.com/index.html

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.

1

Page 2: a1

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.

2

Page 3: a1

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.

3

Page 4: a1

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.

Sensor Arrays

Controller

MeteorologicalSystem

EmergencyServices

ControlRoom

VideoMonitors

DatabaseSystem

SensorInformation

InventoryInformation

EmergencyServices Info.

4

Page 5: a1

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.

5

Page 6: a1

D. Discuss whether professional engineers should be certified in the same way as doctors or lawyers.

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 occurred.    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,

6

Page 7: a1

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:

7

Page 8: a1

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 accessed.

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:

8

Page 9: a1

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:Availability

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.ReliabilityReliability 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 surgeryReliabilityReliability must be a guarantee for this system. This is specifically required because the patient's life is on stake.Safety InformallyThis 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 vehicleAvailabilityThe 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 systemsSecurityThe 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.

9

Page 10: a1

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

10

Page 11: a1

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 accordingly.

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 chosen.

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

11

Page 12: a1

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

12

Page 13: a1

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.

13

Page 14: a1

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

14

Page 15: a1

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

15

Page 16: a1

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 system.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.

16

Page 17: a1

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.htmlCâ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

17

Page 18: a1

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 game."

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/Req5Source: 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.

18

Page 19: a1

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.

19

Page 20: a1

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 requirement.

Producing summary reports on elucidation of requirements, priority allocation, risk assignment and cost estimation in textual and graphical formats.

20

Page 21: a1

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/Requirement1Source: James Munro

Description: User will input their credit card and personal identification number when prompted.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/Requirement2Source: 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:

21

Page 22: a1

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 7Câ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 documentation.

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 requirements.

22

Page 23: a1

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.

23

Page 24: a1

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.

24

Page 25: a1

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.

25

Page 26: a1

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 product!

Câu 5; Consider the following diagram

26

Page 27: a1

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 customer!

5. Supporter - CustomerOrder Processing - EmployeeCampaign DatabaseSupporter Database

Week 8Câ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.

27

Page 28: a1

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.

Assumptions:

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 illnesses/treatments)

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:

Answer:

Assumptions:

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.

28

Page 29: a1

Assumptions:

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.

Assumptions:

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.

Assumptions:

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;

29

Page 30: a1

trả lời:

Assumptions:

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.

Assumptions:

MP3 player can only play music as a function. Very basic player, cannot "shuffle" etc.

Assumptions:

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:

Assumptions:

High level of abstraction

30

Page 31: a1

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:

Assumptions:

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.

31

Page 32: a1

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 development?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 direction.

32

Page 33: a1

References:[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

33