Вы находитесь на странице: 1из 23

Software Engineering

Lecture 1
Introduction to Software Engineering

Software Definition
Software

is:

A product
A vehicle for delivering another
product
Software

is collection of:

Program
Documentation
Data
Procedure
2

Software Characteristics
Software

is engineered, not
manufactured
Software does not wear out
Most software continues to be
custom built

Failure Curves for software


Failure
rate

increased failure
rate due to side effects

change
actual curve

idealized curve
Time

Software Myths
Myth:

If we get behind schedule, add more


programmers.
Reality: Adding people to a late software
project makes it later.
Myth:

Software Engineering will make us


create many and unnecessary documentation.
Reality: Software engineering is not about
creating documents. It is about creating
quality. Better quality leads to reduced
rework. Reduced rework results in faster
delivery times.
5

Software Crisis
During

1960-1970, most software


development faced the following
problems:

Overdue schedule
Exceeding initial budget
Inadequate software quality
High software maintenance cost

Software Engineering
Software

engineering is first coined in


1968 at a software conference
organized by NATO at Garmisch,
Germany as a solution to the software
crisis.
Software engineering is the
establishment and use of sound
engineering principles in order to
obtain economically software that is
reliable and works efficiently on real
machines.
7

Engineering Principles
The

engineering principles used


in software engineering
comprises:

Analysis
Design
Implementation
Testing

Software Engineering
Layers
Software Engineering
tools
methods
process model
a quality focus

Software Engineering Layers


(cont.)
Tools:

Software Tools (Word


Processors, Diagramming Tools,
Project Tools, Compilers, etc.)
Methods: Modeling methods
(DFD, ERD, Gantt Chart,etc.)
Process: Waterfall, Spiral,
Incremental, etc.

10

Software Engineering
Phases
Definition

Phase (What)

Systems Engineering, Project


Planning, Requirements Analysis
Development

Phase (How)

Software Design, Code Generation,


Software Testing
Support

Phase (Change)

Correction, Adaptation,
Enhancement, Prevention
11

Umbrella Activities
Umbrella

activities are activities


that are applied throughout the
software process:

Project tracking and control


Software Quality Assurance
Software Configuration Management
Document Preparation and
Management

12

Capability Maturity Model


CMM

is used to determine an organizations


current state of process maturity
Five levels of CMM:
Level 1: Initial (Ad Hoc)
Level 2: Repeatable (Basic project
management)
Level 3: Defined (Process standardization)
Level 4: Managed (Quantitative Management)
Level 5: Optimized (Continuous process
improvement)

13

CMM Level 1: Initial


The

software process is
characterized as ad hoc and
occasionally even chaotic. Few
processes are defined, and
success depends on individual
effort.

14

CMM Level 2: Repeatable


Basic

Project Management
processes are established to
track cost, schedule, and
functionality.

15

CMM Level 3: Defined


The

process is tailored from the


organizations set of standard
processes according to the
organizations tailoring
guidelines, and contributes work
products, measures, and other
process-improvement information
to the organizational process
assets.
16

CMM Level 4: Managed


Detailed

measures of the
software process and product
quality are collected.

17

CMM Level 5: Optimized


The

process area is adapted and


optimized using quantitative
means to meet changing
customer needs and to
continually improve the efficacy
of the process area under
consideration.

18

Personal Software Process


The

Personal Software Process (PSP)


emphasizes personal measurement of both
the work product that is produced and the
resultant quality of work product (Humphrey
1997).
The PSP process model defined five
framework activities:

Planning
High-Level Design
High-Level Design Review
Development
Postmortem
19

Personal Software Process


(cont.)
PSP

stresses the need for each


software engineer to identify errors
early and, as important, to
understand the types of errors that
he/she is likely to make.
This is accomplished through a
rigorous assessment activity
performed on all work products
produced by the software engineer.
PSP can improve the productivity and
software quality. However, PSP has
not been widely adopted throughout
the industry due to human nature
and organizational inertia.
20

Team Software Process (TSP)


TSP

is an extension of PSP.
The goal of TSP is to build a self-directed project
team that organizes itself to produce high-quality
software:
Build self-directed teams that plan and track their work,
establish goals, and own their processes and plans.
Show managers how to coach and motivate their
teams.
Accelerate software process improvement.
Provide improvement guidance to high-maturity
organizations.
Facilitate university teaching of industrial-grade team
skills.
21

Summary
Software

Engineering is a discipline that


integrates process, methods, and tools for
the development of computer software.
The Capability Maturity Model Integration
(CMMI) is a comprehensive process metamodel that describes the specific goals,
practices, and capabilities that should be
present in a mature software process.
Personal and Team Software process
emphasize measurement, planning, and
self-direction as key ingredients for a
successful software process.
22

References
Pressman,

Chapter 1, 2

23

Вам также может понравиться