1.1By making reference to the distribution of software costs discussed in Section 1.1.6, explain why it’s appropriate to consider software to be more than the programs that can be executed by end-users of a system.

Software is not just the programs but also all associated documentation and configuration data that is needed to make programs operate correctly. The set of activities, such as specification, development, validation, and evolution, and associated results that produce a software product incurexcessive cost.

1.3What are the four important attributes which all software products should have? Suggest four other attributes that may sometimes be significant.

The 4 important attributes of all software products are: maintainability, dependability, efficiency, and usability.

The 4 other attributes might be: portability, acceptability, security, reliability.

1.6Software engineering methods became widely used only when CASE technology became available to support them. Suggest five types of method support that can be provided by CASE tools.

A software engineering method is a structured approach development whose aim is to facilitate the production of high quality software in a cost effective way.All methods now come with associated CASE (Computer Aid Software Engineering) technology such as editors for the notations used in the method, analysis modules which check the system model according to the method rules and report generators to help create system documentation,and a code generator that automatically generates source code from the system model and some process guidance for software engineers.

1.7Apart from the challenges of heterogeneity, rapid delivery and trust, identify other problems and challenges that software engineering is likely to face in the 21st century.

The other problems and challenges are: hacking, proliferation of platforms environment,and incompatibility.

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

I don’t think it’s necessary for the simple reason that doing so will damper the creativity and diversityaspect of the Engineering field. The Engineering field should be open to all and welcome any ideas as long as they are scientifically sounded. A certification will unfortunately quarantine anybody who might have some clever ideas.An engineer is a problem- solver who uses theories, methods and tools. Its function is not rigid. It implies creativity, and requires complex, as well as simple, as well as unorthodox approaches to solve certain problems.

1.9 For each of the clauses in the ACM/IEEE Code of Ethics shown in Figure suggest an appropriate example that illustrates that clause.

Public:Software engineers should not participate and contribute to either social, political, religious, or terrorist activities that might put people life in danger.They should behave in an ethical and morally responsible way.They should not use their skills to cause harms nor enable others to cause harms, nor influence others to cause harms.

Client and Employer:Software Engineers should be honest and respect the confidentiality of the clients and their employers.

Product: Software Engineers should not cut corners and produce a cheap product, especially when security is concerned. Neither, should theyparticipate or contribute to false advertising.

Judgment:Software Engineers should use good judgments when making decision.

Management:Should be aware of copy rights, and intellectual property infringement. Consequently, they should solve and manage all pretended problems within ethical constraints.

Profession: Should promote the software Engineering profession throughtheir behavior, and the way they carry themselves.They should commit themselves to making software engineering a beneficial and respectful profession.

Colleagues: Should respect and support their colleagues.

Self: Should participate in seminaries, or any intellectual activities that may contribute to harness their skills.

1.10 To help counter terrorism, many countries are planning the development of computer systems that track large numbers of their citizens and their actions.Clearlythis has privacy implications. Discuss the ethics of developing this type ofsystem.

The problem of terrorism is more serious than ever. Therefore, it should be dealt with in a serious manner. In fact, I am completely for the development of any system that might curb or keep at bay any terrorists plots. We live in a time where religious fanatics, fundamentalist, and others will do everything and any thing to advance their cynical causes. Therefore, the government should have at its rescue any tools capable of providing any preemptive strike.