Posts

HW20: Chapter 20

20.10.  You work for a software company that has developed a system that provides information about consumers and that is used within a SoS by a number of other retail businesses. They pay you for the services used. Discuss the ethics of changing the system interfaces without notice to coerce users into paying higher charges. Consider this question from the point of view of the company’s employees, customers, and shareholders. Changing the interfaces of the system without notice to coerce customers to pay more for the service is clearly unethical as, if it wasn’t unethical, then it wouldn’t have to be done without notice in the first place. The ACM code of ethics states that software engineers should be honest and trustworthy and to “ provide full disclosure of all pertinent system capabilities, limitations, and potential problems to the appropriate parties. ” Customers would most likely be angry with the service provider and choose to change providers. If changing provid...

HW19: Chapter 19

19.3.  Why is it impossible to infer the emergent properties of a complex system from the properties of the system components?             The emergent properties of a complex system come from the interactions of the system’s individual parts. Even if you know how each part acts individually, it is not possible to know exactly how the parts will interact with each other until they are implemented in the system.

HW18: Chapter 18

18.4.  Define an interface specification for the Currency Converter and Check credit rating services shown in  Figure  18.7 Currency Converter <interface name = “CurrencyConverter”> <operation name = “ConvertCurrency” pattern = “wsdlns: in-out”> <input messageLabel = “In” element = “ratens: ExchangeRate”/> <output messageLabel = “Out” element = “ratens: USDRate”/> <outfault messageLabel = “Out” element = “ratens: InDataFault”/> </operation> </interface> Check Credit Rating <interface name = “CheckCreditRating”> <operation name = “checkCredit” pattern = “wsdlns: in-out”> <input messageLabel = “In” element = “creditns: SocialSecurityNumber”/> <output messageLabel = “Out” element = “creditns: CreditRating”/> <outfault messageLabel = “Out” element = “creditns: InDataFault”/> </operation> </interface>

HW17-B: Chapter 17

17.10.  Your company wishes to move from using desktop applications to accessing the same functionality remotely as services. Identify three risks that might arise and suggest how these risks may be reduced.             One risk would be the reliability of the remote service. It is possible that the service could become unavailable, through no fault of the company, and remain unavailable for an unknown period of time, preventing the company from completing any work. One way to mitigate this risk is by having a backup remote service in case one becomes inaccessible for any reason.             Another risk is the vulnerability of information on a network. By using a remote service, information and computers on the network can be vulnerable to hackers more easily because if a hacker were to gain access to a computer on the network, they could gain access to the whole...

HW17-A: Chapter 16

Image
16.9.  Design the interfaces of components that might be used in a system for an emergency control room. You should design interfaces for a call-logging component that records calls made, and a vehicle discovery component that, given a post code (zip code) and an incident type, finds the nearest suitable vehicle to be dispatched to the incident. Call Logging Component Vehicle Discovery Component

HW16: Chapter 9

9.8.  Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them? Fault repair – This is the maintenance of fixing and repairing errors. The types of errors are coding errors, which are the cheapest to correct, design errors, which can require changing components in a system, and requirements errors, which may require redesigning an entire system. Environmental adaptation – This is the maintenance required when a system’s environment changes. Types of changes include hardware, operating system, and supporting software changes. Functionality addition – This is the maintenance required when system requirements change due to organizational or business changes.             It is sometimes difficult to distinguish between the three types of software maintenance because they often related to or caused by one another. For example, an environmental change, ...

HW15: Chapter 15

15.10.  The reuse of software raises a number of copyright and intellectual property issues. If a ­customer pays a software contractor to develop a system, who has the right to reuse the developed code? Does the software contractor have the right to use that code as a basis for a generic component? What payment mechanisms might be used to reimburse providers of reusable components? ­Discuss these issues and other ethical issues associated with the reuse of software.               I think that the right to reuse any developed code should be made explicitly clear at the beginning of any contract made between any two parties. The one developing the code or system needs to specify how it is to be used by the one purchasing it, as it is their intellectual property to begin with. If the contractor seeks to copyright their system beforehand, then they would have sole permission for allowing others to reuse their work. ...