Written Assignment 1
Chapter 1 Exercises: 1.2, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10
1.2 Provide a number of examples (both positive and negative) that indicate the impact of software on our society.
The use of software in our society has a number of both positive and negative impacts. Whereas the positive aspects can be extremely useful, the negative ones provide us with somewhat of a crutch. In general, software isn't designed to “hurt” us in any way, but rather to make things easier and more efficient for us. For example, E-banking is a perfect example of software that makes our lives a whole lot easier. Everything short of physically withdrawing money from your bank can be done online. You can even deposit your paychecks now by simply taking a picture of it with your smart phone. On the downside, that same technology can be used to steal your credit card numbers and identity if it falls into the wrong hands. Same with anti-security software. There are people who get paid good money to hack into your local bank and steal from them just to prove to the bank that they need to upgrade their network security. In most cases, the banks are thankful for this type of intrusion. This same software, however, could be used for criminal purposes in which the bank would not be so pleased. Software can be both extremely useful and extremely dangerous depending on who's using it and how.
1.4 Many modern applications change frequently—before they are presented to the end user and then after the first version has been put into use. Suggest a few ways to build software to stop deterioration due to change.
First and foremost, software applications should be maintainable. Meaning that is should be engineered to a degree that changes can be made rather easily as the application grows. One way to minimize deterioration due to change is to allow automatic updates to be built in. Take the Windows OS for example: it has the option to allow automatic updating for necessary security and firewall platforms to ensure that the system is always “up to date.” Since previous applications are always being updated, it is important to build new software with the same capabilities.
1.5 Consider the seven software categories presented in Section 1.1.2. Do you think that the same approach to software engineering can be applied for each? Explain your answer.
Millions of software engineers worldwide are hard at work on software projects in one or more of these categories. In some cases, new systems are being built, but in many others, existing applications are being corrected, adapted, and enhanced. Because of this, a different approach to software engineering may be required for individual categories. Many of the programs that software engineers work on are extremely old, and continue to be upgraded. Therefore, it makes sense that you wouldn't use the same approach for an existing program that you would use for a new program.
1.6 Figure 1.3 places the three software engineering layers on top of a layer entitled “a quality focus.” This implies an organizational quality program such as total quality management. Do a bit of research and develop an outline of the key tenets of a total quality management program.
TQM can be defined as the management of initiatives and procedures that are aimed at achieving the delivery of quality products and services. A number of key principles can be identified in defining TQM, including: * Executive Management – Top management should act as the main driver for TQM and create an environment that ensures its success. * Training – Employees should receive regular training on the methods and concepts of quality. * Customer Focus – Improvements in quality should improve customer satisfaction. * Decision Making – Quality decisions should be made based on measurements. * Methodology and Tools – Use of appropriate methodology and tools...
Please join StudyMode to read the full document