Beruflich Dokumente
Kultur Dokumente
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
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
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
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.
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
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
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
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
Berenbach, Brian, and Manfred Broy. "Professional and ethical dilemmas in software
engineering." Computer 42.1 (2009): 74.
29
29