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 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.
I believe it is highly immoral to modify the system to coerce more money out of users, especially without notice. It is understandable to change a business model and raise prices. Markets change and software developers should change with the markets too. After all, they're in the industry to make money. If this is done, the users need to know far ahead of the changes. This needs to communicated clearly. Some users may feel using the system is worth paying more money. Others may not and will need time to migrate their data to another system. Making these changes without notice would reflect poorly on the developers and hurt their image in the long run.
Thursday, November 2, 2017
HW20: Chapter 19
19.3) Why is it impossible to infer the emergent properties of a complex system from the properties of the system components?
Emergent properties cannot be inferred because they do not exist until there is interaction between the components of the system. Emergent properties include things like security, reliability, and repair ability. These properties cannot be observed until after the components of the complex system interact with each other.
Emergent properties cannot be inferred because they do not exist until there is interaction between the components of the system. Emergent properties include things like security, reliability, and repair ability. These properties cannot be observed until after the components of the complex system interact with each other.
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:
Operation: convertCeurrency
Inputs: inputCurrencyType, outputCurrencyType, inputCurrencyAmount
Outputs: exchangeRate, inputCurrencyValue, outputCurrencyValue, fees
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Operation: exchangeRate
Inputs: inputCurrencyType, outputCurrencyType, inputCurrencyAmount
Outputs: exchangeRate, outputCurrencyAmount
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Operation: currency
Inputs: inputCurrencyAmount, outputCurrencyType
Outputs: outputCurrencyAmount
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Check Credit:
Operation: creditCheck
Inputs: ssn, name, birthdate
Outputs: creditScore
Exceptions: Invalid SSN Exception, Invalid Name Exception, Invalid Birthdate Exception
Currency Converter:
Operation: convertCeurrency
Inputs: inputCurrencyType, outputCurrencyType, inputCurrencyAmount
Outputs: exchangeRate, inputCurrencyValue, outputCurrencyValue, fees
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Operation: exchangeRate
Inputs: inputCurrencyType, outputCurrencyType, inputCurrencyAmount
Outputs: exchangeRate, outputCurrencyAmount
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Operation: currency
Inputs: inputCurrencyAmount, outputCurrencyType
Outputs: outputCurrencyAmount
Exceptions: Invalid Currency Exception, Invalid Amount Exception
Check Credit:
Operation: creditCheck
Inputs: ssn, name, birthdate
Outputs: creditScore
Exceptions: Invalid SSN Exception, Invalid Name Exception, Invalid Birthdate Exception
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.
- Security: Accessing data remotely opens up your data to all kinds of attacks that were not possible on desktop applications. To combat these attacks, the company needs to make sure they keep their security systems up to date. Employees need to be educated against social engineering attacks as well.
- Failure Management: Service based systems need to be constantly connected to the internet to accessed remotely. If this connection is interrupted, data will not be able to accessed. The company needs to make sure that connection problems are resolved as quickly as possible.
- Performance: making the system a service adds another layer of complexity to the system because the data now has to be loaded over an internet connection. The system should be as efficient as possible to make sure that the system performs well enough for the users.
HW17-A: Chatper 16
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.
HW16: Chapter 9
9.8) Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them?
9.10 ) Do software engineers have a professional responsibility to develop code that can be easily maintained even if their employer does not explicitly request it?
Developers should always try make their code as maintainable as possible. Most good coding habits involve making code well documented and easy to understand. Code should also be thoroughly tested. These practices make the code more maintainable.
- Fault repairs: Involves simple bug fixes in the software.
- Environmental adaptation: Involves changing the system so it runs in new environments alongside new software.
- Functionality addition: Involves adding new features to the system
These can be difficult to distinguish because they are all different forms of making the code better.
9.10 ) Do software engineers have a professional responsibility to develop code that can be easily maintained even if their employer does not explicitly request it?
Developers should always try make their code as maintainable as possible. Most good coding habits involve making code well documented and easy to understand. Code should also be thoroughly tested. These practices make the code more maintainable.
HW15: Chapter15
15.10) The reuse of software raises a number of copyright and intellectual property issues. If a customer pays the 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.
- To me, the issue of who has the right to reuse the developed code depends on the agreement between the developer and the customer. If the the customer is paying for the code, I believe they have the right to reuse it. If they are paying for the developer's time, I think they have the right to use the system, not reuse the code. I don't like the idea as reusing someone's code as a generic component. If the code is easily accessible, such as on github or stack overflow, it can be used by anyone who sees it.
- To me, the issue of who has the right to reuse the developed code depends on the agreement between the developer and the customer. If the the customer is paying for the code, I believe they have the right to reuse it. If they are paying for the developer's time, I think they have the right to use the system, not reuse the code. I don't like the idea as reusing someone's code as a generic component. If the code is easily accessible, such as on github or stack overflow, it can be used by anyone who sees it.
Subscribe to:
Posts (Atom)
