Introduction to SE
Basics of Software Engineering
1. What is the most important difference between generic software product development and custom software development?
Answer:
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.
2.What are the four important attributes that all professional software should have?
Answer:
Four important attributes are:
1. Maintainability
2. Dependability
3. Performance
4. Usability
3.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?
Answer:
Following are the challenges faced by software engineers:
1. Developing systems that can be adapted quickly to new business needs
2. Designing systems for outsourced development
3. Developing systems that are resistant to attack
4. Developing systems that can be adapted and configured by end-users
5. Finding ways of testing, validating and maintaining end-user developed systems
4. Why different application types require specialized software engineering techniques to support their design and development?
Answer:
1 .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.
2. 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.
3. 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.
5. Whether professional engineers should be certified in the same way doctors or lawyers?
Answer:
These are possible discussion points:
Advantages of certification:
• Certification is a signal to employers of some minimum level of competence.
• Certification improves the public image of the profession.
• Certification generally means establishing and checking educational standards and is therefore a mechanism for ensuring course quality.
Disadvantages of certification:
• Certification tends to lead to protectionism where certified members tend not to protect others from criticism.
• Certification does not guarantee competence merely that a minimum standard was reached at the time of certification.
• Certification is expensive and will increase costs to individuals and organization.

Comments
Post a Comment