Software
Enviado por edg18 • 16 de Julio de 2015 • Tesis • 3.778 Palabras (16 Páginas) • 261 Visitas
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 generally means establishing and checking educational standards and is therefore a mechanism for ensuring course quality. (3,8)
l Certification implies responsibility in the event of disputes (argue). (4)
l Certifying body is likely to be accepted at a national and international level as ‘speaking for the profession’. (6)
Certification may increase the status of software engineers and attract particularly able people into the profession. (1)
1.10 To help counter terrorism, many countries are planning or have developed computer systems
that track large numbers of their citizens and their actions. Clearly this has privacy
implications. Discuss the ethics of working on the development of this type of system.
CHAPTER 2
2.1. Giving reasons for your answer based on the type of system being
...