Sie sind auf Seite 1von 8

Topics covered

◙ Professionals Software Development


§ What is software, software engineering, and software process

◙ Software Life Cycle

Introduction to Software Engineering


◙ Software Engineering Ethics
§ What is ethics doing in a course of software engineering.
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman

Software Engineering 9/e


By Ian Sommerville

P31022: Software Engineering | MTI | Udinus

Affandy,Ph.D

1 2
These slides are designed and adapted from slides provided by Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009) by Roger Pressman and
Software Engineering 9/e Addison Wesley 2011 by Ian Sommerville

1 2

Current issues of software Current issues of software


◙ The economies of all developed nations are dependent on software.
◙ More and more systems are software controlled

◙ Expenditure on software represents a significant fraction of GNP in


all developed countries.

High-technology exports (in US$) | high-tech products are such as in aerospace, computers, and
electrical machinery. Source: [http://data.worldbank.org]
3 4
3 4
The nature of software

#1
Software lifecycle and professional
software development 5

6
5 6

The nature of software The nature of software


◙ Software entities are more complex for their size than perhaps any § Changeability, changing one part of a software system often results in
other human construct, there are four properties of software: undesired side effects in other parts of the system, requiring more
changes before the software can operate at maximum efficiency.
§ Complexity, depiction of a software entity often requires several
different design representations to portray the numerous static § Invisibility, software is said to be invisible because it has no physical
structures, dynamic couplings, and modes of interaction that exist in properties. While the effects of executing software on a digital
computer software. computer are observable, Software is an intangible entity because our
five human senses are incapable of directly sensing it.
§ Conformity, software must conform to exacting specifications in the
representation of each part, a missing semicolon or other syntactic error
can be detected by a compiler. But, a defect in the program logic or a “Software is a place where dreams are planted and nightmares
timing error may be difficult to detect when encountered during harvested, an abstract, mystical swamp where terrible demons
operation compete with magical panaceas, a world of werewolves and silver
bullets” [Brad J. Cox]

7 8
7 8
The nature of software Little bit of everything about software
Frequently asked questions
What is software? Computer programs and associated documentation. Software
products may be developed for a particular customer or may be
developed for a general market.
What are the attributes of Good software should deliver the required functionality and
good software? performance to the user and should be maintainable, dependable
and usable.
What is software Software engineering is an engineering discipline that is concerned
engineering? with all aspects of software production.
What are the fundamental Software specification, software development, software validation
software engineering and software evolution.
activities?
What is the difference Computer science focuses on theory and fundamentals; software
between software engineering is concerned with the practicalities of developing and
engineering and computer delivering useful software.
science?
Failure curves for hardware Failure curves for software
What is the difference System engineering is concerned with all aspects of computer-
between software based systems development including hardware, software and
engineering and system process engineering. Software engineering is part of this more
engineering? general process.

9 10
9 10

Little bit of everything about software Definition of the software


Frequently asked questions
What are the key Coping with increasing diversity, demands for reduced delivery times ◙ Software is: (1) instructions (computer programs) that when
challenges facing software and developing trustworthy software. executed provide desired features, function, and performance; (2)
engineering?
data structures that enable the programs to adequately manipulate
What are the costs of Roughly 60% of software costs are development costs, 40% are
software engineering? testing costs. For custom software, evolution costs often exceed
information, and (3) descriptive information in both hard copy and
development costs. virtual forms that describes the operation and use of the programs.
What are the best software While all software projects have to be professionally managed and
engineering techniques and developed, different techniques are appropriate for different types of
methods? system. For example, games should always be developed using a ◙ Characteritics of Software that considerably different than
series of prototypes whereas safety critical control systems require a
complete and analyzable specification to be developed. You can’t, hardware:
therefore, say that one method is better than another.
§ It is engineered, it is not manufactured in the classical sense.
What differences has the The web has led to the availability of software services and the § It doesn’t wear out
web made to software possibility of developing highly distributed service-based systems.
engineering? Web-based systems development has led to important advances in
§ It is complex
programming languages and software reuse. § It is custom built.

11 12
11 12
Software application domains Specifications of software products
◙ System software, a collection of programs written to service other Generic produts Customized products
programs, e.g., os, compilers, editors, drivers, and utilities Stand-alone systems that are marketed and Software that is commissioned by a specific
◙ Application software, stand-alone programs that solve a specific business sold to any customer who wishes to buy customer to meet their own needs
need, e.g., p-o-s, transaction processing, process control them.

◙ Engineering / scientific software, has been charaterized by “number


crunching” algorithm, e.g., CAD, system simulation, modelling Examples – PC software such as graphics Examples – embedded control systems, air
◙ Embedded software, resides within a product & is used to implement programs, project management tools; CAD traffic control software, traffic monitoring
software; software for specific markets such systems.
functions for the end user & for the system itself as appointments systems.
◙ Product-line software, designed to provide a specific capability for use by
many different customers, e.g, word processing, image editor The specification of what the software The specification of what the software
◙ WebApps, the network-centric software category spans a wide array of should do is owned by the software should do is owned by the customer for the
developer and decisions on software change software and they make decisions on
applications are made by the developer. software changes that are required
◙ Artificial Intelligence software, makes use of nonnumerical algorithms to
solve complex problems that are not amenable to computation or
straightforward analysis. 13 14
13 14

Attributes of good software The essence of software engineering


Product
Description
◙ Software Engineering: (1) The application of a systematic,
characteristic disciplined, quantifiable approach to the development, operation, and
Software should be written in such a way so that it can evolve to maintenance of software; that is, the application of engineering to
meet the changing needs of customers. This is a critical attribute
Maintainability software. (2) The study of approaches as in (1). (IEEE Standards Collection:
because software change is an inevitable requirement of a
changing business environment. Software Engineering, IEEE Standard 610.12-1990, IEEE, 1993.)

Software dependability includes a range of characteristics ◙ Software engineering is an engineering discipline that is concerned
including reliability, security and safety. Dependable software
Dependability and with all aspects of software production from the early stages of
should not cause physical or economic damage in the event of
security
system failure. Malicious users should not be able to access or system specification through to maintaining the system after it has
damage the system. gone into use (Sommerville, 2010).
Software should not make wasteful use of system resources such
Efficiency as memory and processor cycles. Efficiency therefore includes
§ Engineering discipline à using appropriate theories & methods to solve
responsiveness, processing time, memory utilisation, etc. problems bearing in mind organizational and financial constraints.
Software must be acceptable to the type of users for which it is § All aspects of software production à technic, project management and
Acceptability designed. This means that it must be understandable, usable and the development of tools, methods etc. to support software production.
compatible with other systems that they use.
15 16
15 16
Fundamental software process A generic process framework for SE
Communication Planning Modelling Construction Deployment

Software Software Software Software communicate and


Specification Development Validation Evaluation collaborate with
the customer defines the SE work
creating models
to better
Combined activity
of code generation Delivering the
/stakeholders understand (either manual or software (as a
• Defining • Designing • Checking to • Modifying to * the technical tasks
to be conducted,
software automated) and the complete entity or
as a partially
requirements and
software that is software and ensure that it is reflect understanding * the risks that are the design that
testing that is
required to uncover completed
to be produced construct it what the changing stakeholders’ likely, will achieve those
requirements.
errors in the code. increment) to the
customer who
and through code customer customer and objectives for the
project
* the resources that evaluates the
will be required, delivered product
constraints on requires market * the work products and provides
its operation requirements requirements to be produced, feedback based
gathering that help and on the evaluation.
define software * a work schedule.
features and
functions.

A process framework establishes the foundation for a complete software engineering process by identifying a
small number of framework activities that are applicable to all software projects, regardless of their size or
•a process defines who is doing what, when, and how to reach a certain goal complexity. [pressman, 2010]

[ian sommervile,2010]
17 18
17 18

Problem spaces of CS and SE System and software engineering


◙ System engineering focuses on all aspects (hardware, software,
policy) and in all phases (design, development, evolution) of
complex systems where software plays a major role.
◙ System engineers are involved in:
§ specifying the system
§ defining its overall architecture
§ integrating the different parts to create the intended system
§ less concerned with the engineering of the systems components.
◙ Software engineering and systems engineering are not merely
related disciplines; they are intimately intertwined.
◙ Good systems engineering is a key factor in enabling good software
engineering.

SEBoK http://www.sebokwiki.org/wiki/Main_Page
19 SWEBok http://www.computer.org/portal/web/swebok 20
19 20
Challenges in SE Challenges in SE
◙ Heterogenity
§ Increasingly, systems are required to operate as distributed systems across
networks that include different types of computer and mobile devices.
◙ Business and social change
§ Business and society are changing incredibly quickly as emerging economies
develop and new technologies become available. They need to be able to
change their existing software and to rapidly develop new software.
◙ Security and trust
§ As software is intertwined with all aspects of our lives, it is essential that we
can trust that software
◙ Software cost
§ Software cost often dominate computer system costs, cost-effective software
development and maintainance are need to be considered.

Charette, Robert N. "Why software fails [software failure]." Spectrum, IEEE42.9 (2005): 42-49.
21 22
21 22

Software cost SE and web-based system


◙ Today, software is the most expensive element of virtually all ◙ The Web is now a platform for running application and
computer-based systems. Cost overrun can be disastrous for the organizations are increasingly developing web-based systems rather
developer. than local systems.
◙ Software cost and effort estimation will never be an exact science. ◙ Web services allow application functionality to be accessed over the
Too many variables—human, technical, environmental, political— web.
can affect the ultimate cost of software and effort applied to develop
◙ Cloud computing is an approach to the provision of computer
it.
services where applications run remotely on the ‘cloud’.
◙ However, software project estimation can be transformed from a
black art to a series of systematic steps that provide estimates with ◙ User interfaces are constrained by the capabilities of web browsers.
acceptable risk à software cost estimation ◙ Software reuse is the dominant approach for constructing web-based
• Jorgensen, Magne, and Martin Shepperd. "A systematic review of software development cost systems
estimation studies." Software Engineering, IEEE Transactions on 33.1 (2007): 33-53.
• DeMarco, Tom. ”Why does software cost so much?: and other puzzles of the information age”. Dorset
House Publishing Co., Inc., 1995.

23 24
23 24
Key points
◙ Software is not merely a computer program’s codes, it involves data
structures and descriptive information that describes the operation of
the program
◙ Software engineering is not merely a coding activity, it is concerned
with all aspects of software production.
◙ There are many different types of system and each requires
appropriate software engineering tools and techniques for their
development.
◙ The fundamental ideas of software engineering are applicable to all
types of software system. #2
Software Engineering Ethics 26

25
25 26

Professional ethics in SE The ACM/IEEE code of ethics for SE


◙ Software engineers shall adhere to the following Eight Principles:
◙ SE involves wider responsibilities than simply the application of
§ PUBLIC—Software engineers shall act consistently with the public interest.
technical skills. § CLIENT AND EMPLOYER—Software engineers shall act in a manner that is in the best
◙ As professionals, software engineers should abide by a code of interests of their client and employer consistent with the public interest.
ethics that guides the work that they do and the products that they § PRODUCT—Software engineers shall ensure that their products and related modifications
meet the highest professional standards possible.
produce.
§ JUDGMENT—Software engineers shall maintain integrity and independence in their
◙ Ethical behaviour is more than simply upholding the law but professional judgment.
involves following a set of principles that are morally correct § MANAGEMENT—Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software development and
§ must behave in an honest and ethically responsible way maintenance.
§ should respect the confidentiality of their employers or clients § PROFESSION—Software engineers shall advance the integrity and reputation of the
§ should not misrepresent their level of competence profession consistent with the public interest.
§ COLLEAGUES—Software engineers shall be fair to and supportive of their colleagues.
§ should be aware of local laws goerning the use of Ips
§ SELF—Software engineers shall participate in lifelong learning regarding the practice of
§ should not use their technical skills to misuse other people’s computers their profession and shall promote an ethical approach to the practice of the profession.

[ Doc: SE code ethics and professional ver 5.2 ]


27 28
27 28
Difficult situations in SE process
◙ Disagreement in principle with the policies of senior management.
◙ Your employer acts in an unethical way and releases a safety-critical
system without finishing the testing of the system.
◙ Participation in the development of military weapons systems or
nuclear systems.
◙ You must deliver a product that still lacks key functionality or has
known software defects.
◙ Unprofessional handling when important documentation such as
requests for proposals, requirements documents, or contracts does
not receive a thorough review.

Berenbach, Brian, and Manfred Broy. "Professional and ethical dilemmas in software
engineering." Computer 42.1 (2009): 74.
29
29

Das könnte Ihnen auch gefallen