Software Engineering Overview

17
Software Engineering Overview 23 January

description

Software Engineering Overview. 23 January. Software Engineering Overview. What is engineering? Why is software engineering different than other engineering disciplines? Is software engineering different than computer science? programming? - PowerPoint PPT Presentation

Transcript of Software Engineering Overview

Page 1: Software Engineering Overview

Software Engineering Overview

23 January

Page 2: Software Engineering Overview

Software Engineering Overview What is engineering? Why is software engineering different

than other engineering disciplines? Is software engineering different than

computer science? programming?

How similar or different are software engineering projects?

Page 3: Software Engineering Overview

Engineering

Turning ideas into reality

Creating something usefulfrom other thingsusing science and math

Page 4: Software Engineering Overview

Software Engineering vs. Other Engineering Disciplines

Maturity Roman aqueducts 2000 years ago Software engineering 50 years ago

Startup costs Barriers to entry

Rate of change

Page 5: Software Engineering Overview

What’s in a Name?

Software engineer Computer scientist Programmer Coder Developer Designer Architect

Page 6: Software Engineering Overview

Different Types of Projects Consider 4 different types of systems

COMP 523 projects Productivity suites Commercial web sites Airplane systems Pacemakers

How do they differ in criticality? What does that mean for the

development process?

Page 7: Software Engineering Overview

Expectations of Software Engineering(Watts Humphrey)

1. Predetermine quantitative quality goals

2. Accumulate data for use in later projects

3. Keep all work visible4. Design, program and test only

against requirements5. Measure and achieve quality goals

Page 8: Software Engineering Overview

Keeping Work Visible: Documentation

What will be implemented Customer: contract, requirements, “glossy” User: manuals

How it will be implemented Project plan

The code The test plan What people will do How you will manage code and documents

Page 9: Software Engineering Overview

Documentation Principles

Need to reflect changes

Version control Need to keep all documents

synchronized Single owner

Only say it once

Page 10: Software Engineering Overview

Quality Management Principles Customer focus Leadership Involvement of people Process approach System approach to management Continual improvement Factual approach to decision making Mutually beneficial supplier

relationshipshttp://www.iso.ch/iso/en/iso9000-14000/iso9000/qmp.html

Page 11: Software Engineering Overview

Customer Focus Organizations depend on customers

Understand needs, requirements, expectations

Increases market share Implies

Market research Customer understanding throughout

the organization Measuring satisfaction

Page 12: Software Engineering Overview

Involvement of People

Essence of the organization “Buy in” Two way street

Treating people with respect They will take on ownership of

responsibility Encourage a collaborative

environment

Page 13: Software Engineering Overview

Software Engineering Fundamental Steps

Requirements Design Implementation Integration Test

(elaborated versions to be covered later)

Page 14: Software Engineering Overview

Processes

Differ by how often you do the steps Points on the spectrum Differences in overhead

Three fundamental models Waterfall Spiral Iterative

Page 15: Software Engineering Overview

Waterfall Do it once Traditional model Used for large next version releases,

especially when tightly coupled changes Pros

Simple documentation management Clean design phase

Cons Least flexibility No early feedback

Page 16: Software Engineering Overview

Spiral Few iterations Each iteration adds new requirements Used often for projects with less well

defined requirements Pros

Adaptation to changes based on risks Good customer interaction Early version Limited iterations provide phase structure

Cons Document maintenance

Page 17: Software Engineering Overview

Iterative Many iterations Each iteration is on a fixed cycle

Typically weekly Used for projects with lots of small independent,

but well understood, changes Pros

Fast feedback on problems Very adaptable to any changes Lots of versions to work with

Cons Document maintenance Code maintenance Requires good automation