Chapter 1 Introduction

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 51

Introduction to Software

Engineering: Second Edition


Ronald J. Leach

Copyright Ronald J. Leach, 1997, 2009,


1
2014, 2015
Chapter 1: Introduction

Ronald J. Leach

Copyright Ronald J. Leach, 1997, 2009,


2
2014, 2015
Software Engineering

Copyright Ronald J. Leach, 1997, 2009,


3
2014, 2015
What is Software Engineering?
• The application of engineering techniques to
develop and maintain software that runs
properly and is constructed in an efficient
manner.

Copyright Ronald J. Leach, 1997, 2009,


4
2014, 2015
Software
• Is changing rapidly
• Rarely runs only on unconnected computers
• Can run on smartphones (and others)
• Is ubiquitous
• Is often cloud-based
• Often has security issues

Copyright Ronald J. Leach, 1997, 2009,


5
2014, 2015
Software Engineering
• Is changing rapidly
• Is rarely done by single individuals except for
small projects
• Uses existing software components and
systems through APIs, IDEs, and more
• Is rarely understood in detail by any one
individual
• Teams are almost always necessary
Copyright Ronald J. Leach, 1997, 2009,
6
2014, 2015
Goals of Software Engineering
Efficiency Reliability
Usability Modifiability
Portability Testability
Reusability Maintainability
Interoperability Correctness

Copyright Ronald J. Leach, 1997, 2009,


7
2014, 2015
Typical Software Engineering Tasks
Analysis Documentation
Requirements Maintenance
Design Quality Assurance
Coding Training
Testing and Integration Resource Estimation
Project Management

Copyright Ronald J. Leach, 1997, 2009,


8
2014, 2015
Software Life Cycle
• Analysis
• Requirements
• Design
• Coding
• Testing and Integration
• Delivery
• Maintenance

Copyright Ronald J. Leach, 1997, 2009,


9
2014, 2015
Models of Software Development
• The classical waterfall model
• The rapid prototyping model
• The spiral model
• The market-driven model
• An open source development model
• The agile development model
• …

Copyright Ronald J. Leach, 1997, 2009,


10
2014, 2015
Models of software development
can be:
• Sequential
• Iterative
• Concurrent
• Appropriate only for highly experienced
software personnel

Copyright Ronald J. Leach, 1997, 2009,


11
2014, 2015
Software Engineering is
Engineering!
• Measurement is important
• Time, effort, cost of development
• Quality, usability of software
• Acceptance by users: reasons why, why not
• Use of measurements and assessments to
improve processes, products

Copyright Ronald J. Leach, 1997, 2009,


12
2014, 2015
Which Metrics to Use?
The GQM paradigm of Basili and Rombach is
useful.
• Goals: What do we wish to achieve?
• Questions: What questions must we answer
to determine if goals are met?
• Metrics: What metrics must be collected to
answer the questions?

Copyright Ronald J. Leach, 1997, 2009,


13
2014, 2015
What do all models of software
development have in common?
• They use both current and older technologies
as appropriate
• They reuse the largest appropriate
components that have as much of the
necessary functionality as possible, to improve
development efficiency
• Evaluation of the process used
• Deliverables !

Copyright Ronald J. Leach, 1997, 2009,


14
2014, 2015
Components and Reuse

Copyright Ronald J. Leach, 1997, 2009,


15
2014, 2015
What is a Component?
• Components are the basic elements of reuse.
• The terms component and module are often used
interchangeably
• A component may be source code, but often
includes many other items.
• A component is a software artifact that has
distinct boundaries and that fits into a system.
• But what is a “system”?

Copyright Ronald J. Leach, 1997, 2009,


16
2014, 2015
Systems

Copyright Ronald J. Leach, 1997, 2009,


17
2014, 2015
Systems

Copyright Ronald J. Leach, 1997, 2009,


18
2014, 2015
Huge Systems

Copyright Ronald J. Leach, 1997, 2009,


19
2014, 2015
Global Systems

Copyright Ronald J. Leach, 1997, 2009,


20
2014, 2015
The ultimate goal
• Allow software engineers to treat software
components as building blocks, the same way
that mechanical and electrical engineers do.
• MEs and EEs can specify what a component is
supposed to do, then find one that meets the
specifications.

Copyright Ronald J. Leach, 1997, 2009,


21
2014, 2015
The ultimate goal, cont.
Mechanical engineers can
• determine the correct spring or fastener for an
application by looking up the desired
properties in a reference book or manual.

Copyright Ronald J. Leach, 1997, 2009,


22
2014, 2015
The ultimate goal, cont.
• Electrical engineers can determine the correct
resistor or capacitor for an application by
looking up the desired properties in a
reference book or manual.

Copyright Ronald J. Leach, 1997, 2009,


23
2014, 2015
The ultimate goal, cont.
• In both engineering fields:
• The cost of the desired object is easily
obtained
• There are no surprises as long as the
component meets the manufacturer’s quality
standards.

Copyright Ronald J. Leach, 1997, 2009,


24
2014, 2015
Software components
• In software engineering, the situation is quite
different.
• The cost to purchase an existing, desired component
may be easy to obtain.
• However, the total cost of ownership is very difficult
to determine.
• There may be many surprises when trying to deploy
the component as part of a software system.

Copyright Ronald J. Leach, 1997, 2009,


25
2014, 2015
Software components, cont.
• Unlike the situation in electrical and mechanical
engineering, it is difficult to tell if the software
component meets the quality standards of the
company or organization that intends to use the
component.

Copyright Ronald J. Leach, 1997, 2009,


26
2014, 2015
Remember the ultimate goal
• Allow software engineers to treat software
components as building blocks, to do what a
component is supposed to do to one that
meets the specifications.

Copyright Ronald J. Leach, 1997, 2009,


27
2014, 2015
What is software reuse?
The process of developing software using
software components that:
• have well-defined standard interfaces
• are carefully tested
• have a well-defined functionality
• have precisely defined performance.

Copyright Ronald J. Leach, 1997, 2009,


28
2014, 2015
What can be reused?
• Algorithms
• Architectures
• Patterns
• Complete applications
• Data
• Requirements
• Designs
• Source code
Copyright Ronald J. Leach, 1997, 2009,
29
2014, 2015
What can be reused?
• Source code
• Test plans and test cases
• Documentation
• Integration plans

Copyright Ronald J. Leach, 1997, 2009,


30
2014, 2015
What else can be reused?
• The most extreme case is reusing entire
systems. (This is common in web-based
software.)
• COTS (Commercial, Off-The-Shelf) software
products are often considered to be
components when they are used to help
comprise a system.

Copyright Ronald J. Leach, 1997, 2009,


31
2014, 2015
Software Life Cycles

Copyright Ronald J. Leach, 1997, 2009,


32
2014, 2015
The classical waterfall model
SPECIFICATION

DESIGN

CODE

TESTING AND INTEGRATION

MAINTENANCE

Copyright Ronald J. Leach, 1997, 2009,


33
2014, 2015
The rapid prototyping model
Initial
specifica Develop prototype
tions

Create new
specifications

Test and Evaluate


integrate prototype
prototype

System

Copyright Ronald J. Leach, 1997, 2009,


34
2014, 2015
The spiral model

Copyright Ronald J. Leach, 1997, 2009,


35
2014, 2015
The spiral model, one quadrant
Goals, objectives Evaluate

Analyze risks

Prototype
Analyze
risks
Prototype

Prototype

Initial plans Requirements

Design Code
Copyright Ronald J. Leach, 1997, 2009,
36
2014, 2015
Prototype

The spiral model, one quadrant


Analyze
risks
Prototype

Prototype

Initial plans Requirements


Design Code

New plans Validate


design Test

System
integration

Plan Develop

Copyright Ronald J. Leach, 1997, 2009,


37
2014, 2015
Prototype

The spiral model, one quadrant


Analyze
risks
Prototype

Prototype

Initial plans Requirements


Design Code

New plans Validate


design Test

System
integration

Plan Develop

Copyright Ronald J. Leach, 1997, 2009,


38
2014, 2015
The spiral model, one quadrant
Goals, objectives Evaluate

Analyze risks

Prototype
Analyze
risks
Prototype

Prototype

Initial plans Requirements

Design Code

Copyright Ronald J. Leach, 1997, 2009,


39
2014, 2015
Open Source Development
• Requires deep knowledge of what is available
open source
• Many software products in repositories are
not in completely stable form

Copyright Ronald J. Leach, 1997, 2009,


40
2014, 2015
Market-driven development
• Requires great imagination to determine
worthwhile projects
• Highly risky way to run a career, at least at the
beginning

Copyright Ronald J. Leach, 1997, 2009,


41
2014, 2015
Agile Software Development
Process
• Completed versions, more sturdy that
prototypes, are delivered as often as weekly
• Fulfilling highest priority requirements is often
done first

Copyright Ronald J. Leach, 1997, 2009,


42
2014, 2015
A CASE tool

Copyright Ronald J. Leach, 1997, 2009,


43
2014, 2015
Note the complexity

Copyright Ronald J. Leach, 1997, 2009,


44
2014, 2015
Software Evolution

Copyright Ronald J. Leach, 1997, 2009,


45
2014, 2015
Software Evolves
• Applications software
• Operating systems
• Databases
• APIs
• IDEs
• COTS products
• Interacting software components

Copyright Ronald J. Leach, 1997, 2009,


46
2014, 2015
The software conundrum
• Buy?
• Build?
• Reuse?
• Reengineer?

Copyright Ronald J. Leach, 1997, 2009,


47
2014, 2015
Commonly Used Standards

Copyright Ronald J. Leach, 1997, 2009,


48
2014, 2015
Primarily U.S. Standards
• The Capability Maturity Model (CMM) from
the Software Engineering Institute (SEI)
• The CMM model has been superseded by the
Capability Maturity Model Integration CMMI.
• The Process Improvement Paradigm (PIP)
• NASA Goddard Space Flight Center.
• Department of Defense standard MIL-STD
2167A.
Copyright Ronald J. Leach, 1997, 2009,
49
2014, 2015
Primarily U.S. Standards
• Department of Defense standard MIL-STD
1574A.
• Department of Defense standard MIL-STD
882C.
• Electronic Industries Association (EIA) SEB-6-A.

Copyright Ronald J. Leach, 1997, 2009,


50
2014, 2015
Primarily International Standards
• The European ESPRIT project.
• The International Standards Organization (ISO)
standard ISO 9001.
• United Kingdom MOD 0055.

Copyright Ronald J. Leach, 1997, 2009,


51
2014, 2015

You might also like