• What is software
o Programs, procedures, data, and documentation pertaining to the operation of a
computer system
o Intangible, easily
... [Show More] reproducible, labor-intensive
o Easy to modify
o Does not wear out
• Types ofsoftware
o Applications,system, embedded (firmware), real time (safety critical)
• How engineers approach development
o Custom, generic, embedded (tied to hardware)
• What is software engineering
o Goal = solving problems within constraints and with rigor
o Commonalities with other disciplines
▪ Making a series of decisions
▪ evaluating options
▪ choosing an appropriate approach for each task with tradeoff analysis
▪ engineers work quantitatively
▪ use approximations based on experience and empirical data
▪ use a disciplined process and can operate in a team
▪ use toolsto apply processes systematically
o Differences with other disciplines
▪ Foundations in cs instead of natural science
▪ Discrete > continuous mathematics
▪ Abstract/logical entitiesinstead of concrete/physical artifacts
▪ No “manufacturing” phase
▪ “maintenance” = evolution, not conventional wear and tear
• Code of ethics and professional practice (8)
o Act consistently with the public interest
o Act within best interests of their client and employer consistent with public
interest
o Products meet highest possible standard
o Maintain integrity and independence in professional judgement
o Managers promote ethical approach to management ofsoftware development
and maintenance
o Advance the integrity and reputation of the profession consistent with public
interest
o Be fair and supportive to colleagues
o Participate in lifelong learning and promote ethical approach to the profession
2
• Software development
o Stakeholders
▪ Users(use software)
▪ Customers (pay forsoftware)
▪ Software developers(create and maintain software)
▪ Development managers(supervise software development)
o Quality
▪ Operation attributes
• Correctness, efficiency, integrity,reliability, usability
▪ Revision attributes
• Flexibility, maintainability, testability
▪ Transition attributes
• Interoperability, portability, reusability [Show Less]