Professional Documents
Culture Documents
1
The Context
Software has engulfed our lives today. It is
hard to imagine a world without software.
It is becoming more and more pervasive
day-by-day. Software content in virtually
every industry and service will continue to
grow dramatically.
2
What is Software Engineering
• What is Software?
– Programs +
– Documentation +
– Data structures
• What is Engineering?
– Not Art (Subjective)
– Not Science (Theory)
– Application of Science and Art to the betterment
of Mankind
3
Is Software Engineering? Or Art?
Before 1967 100% art Very much dependent on the programmer. No
coding standards, No formal procedures for
other stages
1967- 1995 70%-80% art Structured Programming, waterfall model,
RDBMS
1995-2000 60% - 70% art Iterative Life Cycle, OO, Internet, Web
Technologies, Distributed Software Systems
2000- ??? Software Project Management, RUP, Matured
OO methodologies
4
History of SW Engineering
• 1968 – NATO Conference
• Masterpiece Engineering
• Report of Defense Science Board – 1994
• Chaos Report by Standish Group – 1995
• Patterns of Software Systems Failure &
Success – Jones 1996
5
Essence of these studies
• Poor Requirements Definition
• Inadequate SW Process Management
• Lack of Integrated Product Teams
• Ineffective subcontractor management
• Lack of change management – increasing scope
• Too little attention to software architecture
• Poorly defined, inadequately controlled
interfaces
• Focus on innovation rather than cost and risk
• No flexibility in the process
6
The Progress – Initial attempts
• Development of structured programming
languages (e.g., ALGOL, Pascal, and C).
• Development of design methods and principles
(e.g., information hiding, top-down refinement,
functional decomposition).
• Definition of software lifecycles (e.g., waterfall,
incremental development, prototype-based)
• OOAD Methodologies (RUP, Java, c++, c#, VB
etc.)
7
The Progress - Tools
• Incremental Compilers, JIT Compilers
• Platform Independent Environments (JVM,
CLR etc.)
• Analysis and Design Tools (UML tools)
• Integrated Development Environments (IDEs)
– NetBeans etc.
• Automated Testing Tools (Rational ROBOT
etc.)
8
The Progress - Process
• Development Process
– Personal Software Process (PSP)
– Agile Programming
– Xtreme Programming
• Management Process
– Iterative Life Cycle
– Software Project Management
– Configuration & Change Management
• CMM
– KPAs
– Process Maturity measurement
9
Is it Enough?
What are the results?
What are the challenges still?
What is the future of Software Engineering?
10
Is Software Engineering? Or Art?
Before 1967 100% art Very much dependent on the programmer. No
coding standards, No formal procedures for
other stages
1967- 1995 70%-80% art Structured Programming, waterfall model,
RDBMS
1995-2000 60% - 70% art Iterative Life Cycle, OO, Internet, Web
Technologies, Distributed Software Systems
2000- 40-50% art Software Project Management, RUP, Matured
OO methodologies
11
Growth in Success Rate
• The 2009 edition of the annual CHAOS report from The
Standish Group, which researches the reasons for IT project
failure in the United States, indicates that project success
rates have increased to 32 percent of all projects. That's
more than a 100-percent improvement from the success
rate found in the first study in 1994.
12
Chaos Report 2009
13
The Challenges - Reliability
14
What is reliability?
• Probability of failure-free operation for a
specified time in a specified environment for
a given purpose
• This means quite different things depending
on the system and the users of that system
• Informally, reliability is a measure of how
well system users think it provides the
services they require
Input/output mapping
Inputs causing
erroneous
Input set I outputs
e
Program
Erroneous
outputs
Output set Oe
Failure classification
20
Information Security
• Confidentiality
• Integrity
• Availability
• Accountability
• Assurance
21
Confidentiality
• Spying and Theft updated
– Once spying was person against person, country
against country
– Today spies sit on our fiber-optic cables and wi-fi
networks
– They steal data and information without
breaking any glass
– Keeping data confidential is one core mission of
Information Security
22
Data Integrity
• Incorrect Information
– Wrong information is worse than no information
– Once users lose confidence in the accuracy of
information, they will never rely on it
– Wrong information can cause havoc
– Maintaining data integrity is also a core mission
of information security
23
Availability
• Information Security doesn’t mead locking
everything down
• If people don’t have the information they
need they cannot do their jobs
• Information security is about balancing the
access to information and risk of damage
• Third core mission of Information security is
to make information available when needed
24
The Challenges –
Size and Complexity
25
Forces in Software
Functionality
Cost Compatibility
Performance Throughput
Our enemy is complexity, and it’s our goal to kill it. Jan Baan
Largest Software
27
Challenges – Size & Complexity
• In the relatively near future, systems requiring
over 1 billion LOC will begin to emerge
– Consider the interfaces for a billion LOC system
• to the outside world
• to other interoperable systems
• to the Internet (or its successor), and
• to the millions of internal components that must all
work together to make this computing monster
operate successfully.
– How do we manage the project, the teams, the communication among
software engineers?
28
Challenges - Size & Complexity
From a testing perspective:
– Is there a viable way to validate requirements?
– Is there a reasonable way to conduct technical
reviews and communicate their results across
hundreds of teams?
– Is there a reliable way to ensure that all of the
interfaces will allow information to flow properly?
– Is there a realistic strategy for conducting tests,
tracking errors, and performing debugging?
– Is there an efficient way to perform regression tests?
– How do you conduct performance tests, stress tests,
and security tests when the system is huge?
29
Challenges - Size & Complexity
• People and Teams
– As systems grow in size, teams grow in number,
geographical distribution, and culture
– As systems grow in complexity, team interfaces
become pivotal to success
– As systems become pervasive, teams must
manage emergent requirements
– As systems become more open, what is a team?
30
The Challenges –
New Technologies
31
Technology “Evolution”
• Ray Kurzweil argues that
technological evolution is similar to
biological evolution, but occurs at a
rate that is orders of magnitude
faster.
– “ … the more capable methods
resulting from one stage of
evolutionary progress are used to
create the next stage.” [Kurweil, R., The Singularity is
Near, 2005]
32
Pervasive Computing (PvC)
• Concepts such as ambient intelligence,
context-aware applications, and ubiquitous
computing—all focus on integrating software-
based systems into an environment far
broader than anything to date
• Open-world software—software that is
designed to adapt to a continually changing
environment ‘by self-organizing its structure
and self-adapting its behavior.” *
* Baresi, L., E. DiNitto, and C. Ghezzi, “Toward Open-World Software: Issues and Challenges,” IEEE
Computer, October 2006.
33
Pervasive Computing (PvC)
• First stage (PvC-1) [today]
– Device mobility and ad hoc networking
– Simple context awareness
– Soon: smart objects implemented in devices that have the potential to
communicate with one another
• Second stage (PvC-2) [over the next decade]
– Mobile user profiles that can be recognized by other objects
– Smart objects will respond to other objects based on situational
characteristics
• Testing issues
– Considerable environmental variation
– Complex communication issues
– Adaptive processing requirements
34
Cloud Computing
• "Cloud Computing is a paradigm in which
information is permanently stored in servers
on the Internet and cached temporarily on Cloud clients
clients that include desktops, entertainment
centers, table computers, notebooks, wall
computers, handhelds, sensors, monitors,
etc.” IEEE Internet Computing
• Provides software as a service (SaaS)
• Device and location independence enables Cloud architecture
users to access systems regardless of their
location or device
• Multi-tenancy enables sharing of resources
(and costs) among a large pool of users
• Demands reliability, scalability, security,
sustainability (Green IT) Legacy
Infrastructure
35
Virtualization
• Types of Virtualization
–Hardware Virtualization
–Virtual Machine Virtualization
–Application Virtualization
36
The Challenges –
Trends
37
Software Engineering Trends
Ivar Jacobson identifies four major
trends:
Reusable components—stop reinventing the
wheel
More up-front testing—test-driven
development
Platform transparency— reduce today’s
programming complexity
UML “all the way down”— model-driven
development
38
SE Trends—Process
• Agility
• Adaptability
• Collaboration
• Communication
• ROI
39
SE Trends—Methods
• In RE
• In design
• In languages
• In testing
• In SCM/SQA
40
SE Trends—Tools
• Project mgmt.
• Modeling
• Programming
• Testing
• Maintenance
• SCM
• SEEs
47
Tools Trends—Testing
• As test-driven development approaches gain
momentum, tools for selecting test cases based
on requirements and/or models must be
developed. In addition, the software engineering
community needs better tools for:
– Launching selected tests in multiple device
environments
– Assessing the test outcome (sometimes called a “test
oracle”)
– Evaluating the impact of failures and determining the
root cause of the failure
– Determining whether the testing regime is sufficient
48
The Road Ahead