Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Software Engineering is the discipline providing methods and tools for the construction of quality
software with a limited budget and a given deadline, in the context of constant requirements change.
The IEEE definition is:
The application of a systematic, disciplined, quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to software.
Importance
In most systems, including telecommunication systems, software is the overriding component in terms of
cost and complexity. Good software engineering practices and tools can therefore make a substantial
difference, even to the extent that they may be the driving force of the project success.
3. We must rely on more honest collaboration across the lifecycle. This allows better steering,
smarter development analytics, and earlier resolution of uncertainties. Leading enterprises have
optimized the critical software development operations through metrics, automated instrumentation,
and drillable dashboards. Theyve gone from a typical two-week build cycle to a daily build cycles.
This has been enabled by real time automation of measurement and reporting, which allows data
collection directly from the engineering code and test base so practitioners spend less time in status
reporting and more time in code and test.
5. We
need
more
engineering,
less
overhead.
Accelerated delivery requires improvements in our internal cycle times through automation and
integration of tools, data, and change management. Continuous delivery capabilities -- including testdriven development, model-based systems engineering, continuous deployment, transparency, and
measurement -- are available NOW in IBM's lifecycle platform, and wed like to show you how our
current platform integration, team collaboration, and optimized process can improve your teams
productivity quality of products, all leading to better business outcomes.
Introduce ethical and professional issues and explain why they are of concern to software engineers
Like other engineers, software engineers must accept that their job involves wider responsibilities than
simply the application of technical skills. Their work is carried
out within a legal and social framework. Software engineering is obviously bounded by local, national
and international laws. Software engineers must behave in an ethical and morally responsible way if they
are to be respected as professionals. It goes without saying that engineers should uphold normal standards
of honesty and integrity. They should not use their skills and abilities to behave in a dishonest way or in a
way that will bring disrepute to the software engineering profession. However, there are areas where
standards of acceptable behaviour are not bounded by laws but by the more tenuous notion of
professional responsibility. Some of these are:
1. Confidentiality
Engineers should normally respect the confidentiality of their employers or clients irrespective of whether
or not a formal confidentiality agreement has been signed.
2. Competence
Engineers should not misrepresent their level of competence. They should not knowingly accept work
which is outwith their competence.
3. Intellectual property rights
Engineers should be aware of local laws governing the use of intellectual property such as patents,
copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is
protected.
4. Computer misuse
Software engineers should not use their technical skills to misuse other peoples computers. Computer
misuse ranges from relatively trivial (game playing on an employers machine, say) to extremely serious
(dissemination of viruses)
Reference:
[1] http://www.quora.com/What-is-the-importance-of-software-engineering
[2] https://www.ibm.com/developerworks/community/blogs/invisiblethread/entry/5-biggest-challengesfor-software-and-systems-delivery-teams?lang=en
[3] http://users.dsic.upv.es/asignaturas/eui/mtp/transpas/Sommerville_intro_6edicion.pdf