Tuesday, September 26, 2017

HW14:Testing Reflections

Testing, while not regarded as "sexy," is an important component of software development. The author discusses functional and structural testing. Functional testing involves coming up with test cases and trying to break the code after it is written. This is the type of testing I am the most familiar with. However, structural testing makes the tests a vital part of the software itself and the strategy the developer uses while building the program. This takes a lot of work and testing starts before writing the functional part of the program.

Because of this extra work, the author says there needs to be accountability in development. If there are little to no consequences for not completely testing and fixing software before its released, the quality of software will decline. The users and companies that employ developers need to make sure the developers are doing their due diligence and they test their code.

This brings us to the author's next big point: complex systems can never be completely tested. There are often too many cases and situations that could never be tested because we don't know they exist while testing. 

HW13: Chapter 8

8.7) Write a scenario that could be used to help design tests for the wilderness weather station system.

- Craig works at wilderness weather station an hour from Charleston wear he uses the wilderness weather station system. Craig logs in every day using his username and password. Craig records readings throughout the day. He checks past data in the system and compares it to the data recorded today. He then sends the data recorded to the data management system. Craig logs out of the weather management system.

8.10) A common approach to system testing is to test the system until the testing budget is exhausted and then deliver the system to customers. Discuss the ethics of this approach for systems that are delivered to external customers.

- Simply exhausting the testing budget seems unethical to me. If the budget is low, testing should be done more efficiently. For example, The features of the system that get the most use should undergo more testing. If this is not enough, perhaps the budget should be rethought. Shipping an under-tested system is unethical. A system could have fatal flaws that causes difficulty for users.
x

Monday, September 25, 2017

HW9: Reflections

The first thing that really jumped out at me in the article was the author's belief that consoles will continue to replace PCs. I agree with this opinion to a certain extent. I assume when the author says consoles, he includes smart TV devices like the Roku and Apple TV and mobile devices like smart phones and tablets. I assume this because the author emphasizes that the consoles will replace PCs in home for use as entertainment systems. I agree with the author here. Many people, like my mother and grandparents, only use PCs for basic things like email, social media, and media streaming. Consoles will replace PCs in this realm. However, with new applications for PCs in the business world, I think PCs will remain popular for a long time.
I thought the author’s statement about data analysis and how it relates to the past election was interesting. He points out how many pundits were quick to dismiss data analysis after the predictions were incorrect. I have been interested in data analysis in sports for a few years now and see this same dismissal on a regular basis. I agree with the author that data science will continue to grow as the methods of prediction become more refined with more data to compare. While no one should rely solely on data analysis, I believe it will be a useful tool in many industries and it should not be ignored.
I disagree with the author on interfaces getting more complicated. The initial UI designs for new technology will always be ugly and clunky, but with time they always become refined and minimal. This is seen in smart phones and how swiping has been utilized more and more in the last ten years.

I too worry about the implications of the law on new technologies. There is an interesting contrast is people being worrying about the invasion of their privacy while at the same time willingly giving personal information to the likes of Facebook and Google. However, I also worry that laws that allow invasion of privacy by authorities will be passed by those who do not completely understand the technology they create legislation for.

HW8: Chapter 2

2.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 the following systems:

A system to control anti-lock braking in a car:
The waterfall approach makes sense here because of the simplicity of the system. Also, there won't be much change to the system since it it part of a car and important safety features should not need improvement after release.

A virtual reality system to support software maintenance:
The incremental approach would benefit a VR system since the technology is fairly new. Since VR is new, it's potential uses are still being thought of and incremental updates as users figure out what they want are needed.

A university accounting system that replaces an existing system:
The Reuse-oriented approach would benefit a replacement system. Modifications to the system can be made were they are needed, and parts of the old system that work well and don't need to be changed can be reused.

An interactive travel planning system that helps users plan journeys with the lowest environmental impact:
An incremental approach would work best here. Climate science is a growing field and the system needs to be updated as more research is done on the subject.

Thursday, September 7, 2017

HW6: Chapter 4

4.5 Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the following functions:
An unattended petrol (gas) pump system that includes a credit card reader. The customer swipes the card through the reader, then specifies the amount of fuel required. The fuel is delivered and the customer’s account debited.
- The user swipes their card and then chooses credit or debit. It debit is chosen, they enter their PIN.
- If the transaction is authorized, the user pumps gas. The amount is decided when the user hangs up the nozzle.
- The machine prints a receipt for the amount of gas pumped.
The cash-dispensing function in a bank ATM.
- The user inserts their card.
- The user types in their PIN.
- If the PIN is correct, the user can choose the amount of money to dispense.
- The user's card is returned.
- If there is enough money in the user account, the cash is dispensed.
- A receipt is printed.
In an Internet banking system, a facility that allows customers to transfer funds from one account held with the bank to another account with the same bank.
- The user inserts their credentials (username, password).
- The user enters the account number and routing number of the person they want to transfer money to.
- If the account and routing numbers are valid, the user enters the amount of money to be transferred.
- The money is removed from the user's account and transferred.
- The user is sent a confirmation message when the transfer is complete.
4.6 Suggest how an engineer responsible for drawing up a system requirements specification might keep track of the relationships between functional and non-functional requirements.
- The requirements should be illustrated with diagrams and explained clearly in writing.
4.7 Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system.
x