Define software engineering
Software engineering is an engineering discipline focusing on the cost-effective development of software systems. It’s concerned with all aspects of software production
Why is software engineering important?
Outline 2 reasons why software projects fail
What are the attributes of good software?
Good software should deliver the required functionality and performance. It should be maintainable, dependable, usable, efficient, and acceptable to the users it is designed for
What is the difference between software engineering and computer science?
Software engineering focuses on the practicalities and delivering useful software; Computer science focuses on the theory and fundamentals
What is the difference between software engineering and system engineering
System engineering is concerned with all aspects of computer-based systems (e.g. hardware). Software engineering is a part of this more general process
What are the key challenges facing software engineering?
Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software
What are the costs of software engineering?
60% are development costs, 40% are testing costs
What are the two fundamental types of software products?
Generic products and custom products
Generic Products
Stand-alone systems marketed and sold to any customer who wants to buy it
Customized Products
Software commissioned by a specific customer to meet their own needs
Four general issues that affect software
Heterogeneity; business and social change; security and trust; and scale
Four examples of professional responsibility (related to ethics)
What is the ACM/IEEE Code of Ethics
These ethics aim to provide rules, standards and protection for software developers and their clients. The Code of Ethics has eight principles