ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Software


Enviado por   •  16 de Julio de 2015  •  Tesis  •  3.778 Palabras (16 Páginas)  •  235 Visitas

Página 1 de 16

CHAPTER 1 SOLUTIONS

1.2 1. What is the most important differences between generic software product development and custom software development? What might this mean in practice for users of generic software products?

The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned and controlled by the customer. The implications of this are significant – the developer can quickly decide to change the specification in response to some external change (e.g. a competing product) but, when the customer owns the specification, changes have to be negotiated between the customer and the developer and may have contractual implications.

For users of generic products, this means they have no control over the software specification so cannot control the evolution of the product. The developer may decide to include/exclude features and change the user interface. This could have implications for the user’s business processes and add extra training costs when new versions of the system are installed. It also may limit the customer’s flexibility to change their own business processes.

1.6. Explain why there are fundamental ideas of software engineering that apply to all types of software systems.

Because of all software systems have common quality attributes, including availability, modifiability, performance, security and safety, testability and usability, the fundamental software ideas provides common solutions or tactics to support those qualities.

1.5 Based on your own knowledge of some of the application types discussed in the textbook (chapter 1, section 1.1.2), explain, with examples, why different application types require specialized software engineering techniques to support their design and development.

Different application types require the use of different development techniques for a number of reasons:

a) Costs and frequency of change. Some systems (such as embedded systems in consumer devices) are extremely expensive to change; others,must change frequently in response to changing requirements (e.g. business systems). Systems which are very expensive to change need extensive upfront analysis to ensure that the requirements are consistent and extensive validation to ensure that the system meets its specification. This is not cost effective for systems that change very rapidly.

b) The most important ‘non-functional’ requirements. Different systems have different priorities for non-functional requirements. For example, a real-time control system in an aircraft has safety as its principal priority; an interactive game has responsiveness and usability as its priority. The techniques used to achieve safety are not required for interactive gaming; the extensive UI design required for games is not needed in safety-critical control systems.

c) The software lifetime and delivery schedule. Some software systems have a relatively short lifetime (many web-based systems), others have a lifetime of tens of years (large command and control systems). Some systems have to be delivered quickly if they are to be useful. The techniques used to develop short-lifetime, rapid delivery systems (e.g. use of scripting languages, prototyping, etc.) are inappropriate for long-lifetime systems which require techniques that allow for long-term support such as design modelling.

1.3 What are the four important attributes that all professional software should have? Suggest

four other attributes that may sometimes be significant.

important attributes are maintainability, dependability, performance and usability. Other attributes that may be significant could be reusability (can it be reused in other applications), distributability (can it be distributed over a network of processors), portability (can it operate on multiple platforms) and inter-operability (can it work with a wide range of other software systems). Decompositions of the 4 key attributes e.g. dependability decomposes to security, safety, availability, etc.

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

lawyers.

• Advantages

– Competitive since they have been trained according to the standardize training procedure.

– Legal binding from the source of certification can ensure the that the software engineer is trusted.

• Disadvantages

– Certification may not reflect the performance of the software engineer.

– No assurance that certified software engineer will guarantee fool-proofed project.

1.4 Apart from the challenges of heterogeneity, business and social change, and trust and

security, identify other problems and challenges that software engineering is likely to face in

the 21st century (Hint: think about the environment).

l Problems and challenges for software engineering (p13)

• Developing systems for multicultural use

• Developing systems that can be adapted (make suitable) quickly to new business needs (or market requirement)

• Designing systems for outsourced development (maybe Oral)

• Developing systems that are resistant to attack (information security)

• Developing systems that can be adapted and configured by end-users (user can design or assemble what they want)

1.9 For each of the clauses in the ACM/IEEE Code of Ethics shown in Figure 1.3, suggest an

appropriate example that illustrates that clause.

Advantages of certification

l Certification is a signal to employers of some minimum level of competence. (2,3)

l Certification improves the public image of the profession. (1,5)

l Certification

...

Descargar como (para miembros actualizados)  txt (24.5 Kb)  
Leer 15 páginas más »
Disponible sólo en Clubensayos.com