20130619 Irish Software Engineering Research Centre - Overview, Brendan O'Malley
Software Engineering Overview
description
Transcript of Software Engineering Overview
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?
How similar or different are software engineering projects?
Engineering
Turning ideas into reality
Creating something usefulfrom other thingsusing science and math
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
What’s in a Name?
Software engineer Computer scientist Programmer Coder Developer Designer Architect
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?
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
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
Documentation Principles
Need to reflect changes
Version control Need to keep all documents
synchronized Single owner
Only say it once
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
Customer Focus Organizations depend on customers
Understand needs, requirements, expectations
Increases market share Implies
Market research Customer understanding throughout
the organization Measuring satisfaction
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
Software Engineering Fundamental Steps
Requirements Design Implementation Integration Test
(elaborated versions to be covered later)
Processes
Differ by how often you do the steps Points on the spectrum Differences in overhead
Three fundamental models Waterfall Spiral Iterative
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
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
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