Sie sind auf Seite 1von 3

Introduce software engineering and explain its importance.

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.

Challenges of software engineering


1. Technology
is
now
the
#1
concern
for
most
businesses.
This is perhaps the most striking result of IBMs recent CEO study. And technology means software,
the engine that drives business outcomes. Todays macro business and technology trends (cloud,
mobile, analytics, etc.) necessitate better lifecycle management of software and systems. Software
innovation = business innovation, and accelerating software delivery is the key to business success.

2. We must balance the needs and capabilities of practitioners and stakeholders.


We must provide management with improved steering mechanisms (measurement control and
economic governance) and enable practitioners with more freedom to innovate (through automation,
process enactment, and change freedom, complexity management, reduced scrap and rework, etc).
Today, management governance and practitioner freedom are competing forces. We need a platform
that integrates governance and freedom so they are complementary, not competitive. The goal is less
overhead and more freedom for practitioners AS WELL AS more predictable, well-governed
outcomes for stakeholders.

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.

4. We must build continuously evolving systems, products, and applications.


Which means the improvements in integration, collaboration, and optimization must span the broader
software supply chain. The systems and software lifecycle is expanding. There are more stakeholders,
more roles in development, deployment, manufacturing, and operations. The lifecycle now extends
further back into design and further forward into operations. We need to bridge the gaps in the
lifecycle with solutions in analytics, social business and agility@scale.

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)

Software Engineering Code of Ethics and Professional Practice


The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are
included in the full version give examples and details of how these aspirations change the way we act as
software engineering professionals. Without the aspirations, the details can become legalistic and tedious;
without the details, the aspirations can become high sounding but empty; together, the aspirations and the
details form a cohesive code. Software engineers shall commit themselves to making the analysis,
specification, design, development, testing and maintenance of software a beneficial and respected
profession. In accordance with their commitment to the health, safety and welfare of the public, software
engineers shall adhere to the following Eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of
their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the
highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional
judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an
ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession
consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their
profession and shall promote an ethical approach to the practice of the profession.

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

Das könnte Ihnen auch gefallen