software engineering basics software engineering learning program track 1.1 – se foundation

28
Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

Upload: juan-billings

Post on 01-Apr-2015

222 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

Software Engineering Basics

Software Engineering Learning ProgramTrack 1.1 – SE Foundation

Page 2: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 2

Module Objectives

To understand popular Systems Development Lifecycles (SDLCs) and the value they add

To understand the various contexts of SDLC usage

To be familiar with associated Software Engineering (SE) roles

To establish a common understanding

a common foundation

speak the same language

Page 3: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 3

Module Topics

What is a Systems Development Lifecycle (SDLC)

Why use an SDLC

The added-value of an SDLC

A high level overview of industry SDLCs historical development advantages and disadvantages per SDLC

Typical roles throughout an SDLC

Positioning Rational Unified Process (RUP)

Positioning ISO/CMM

Page 4: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 4

What is an SDLC?

Software Engineering and Information Engineering “Software Engineering is the application of a systematic, disciplined,

quantifiable approach to the development, operation and maintenance of software”. IEEE- 1993

“Information Engineering is the application of an interlocking set of formal techniques for the planning, analysis, design and construction of Information systems on an enterprise wide basis or across a major sector of the enterprise”. James Martin

An approach to Systems Development with an engineering-type rigor

Page 5: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 5

Why use an SDLC?

Customer driven quality

Global acceptance

Continuous improvement

Information Systems are the backbone of any company

To deliver information systems of high quality

Page 6: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 6

The added-value of an SDLC

repeat

control

predict

improve

deliver

modify

Page 7: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 7

The added-value of an SDLC - more

To provide an enterprise-wide framework for the development of software

To provide coordination among separate software projects

To involve end-users significantly in each phase

To help the long-term progress of systems

To match systems development with strategic goals of the project

Page 8: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 8

But ... Beware of the Dark Side...

Page 9: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 9

A high level overview of industry SDLCs

Waterfall

SDM

LAD

PBS APER

VSAP

SEED

...

Iterative

IAD / RAD

RUP

Select Perspective

Agile Methods DSDM

eXtreme Programming (XP)

It seems that every combination of the alphabet results in a new method name..

Page 10: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 10

Feasibility/Definition

Conceptual Design

TechnicalDesign

Implementation

Deployment

Test

Analysis

= Formal deliverables and phased Go/No-Go

‘Throwing it over the Wall’

Waterfall

Page 11: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 11

Iterative

Page 12: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 12

Increment

Iterations – Refinement of Products

CreateOrder

IntentDescription

IntentDescriptionAlternate Flow

CreateOrder

Page 13: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 13

Benefits of Incremental Working

Incremental/Iterative working builds in the ability to respond to change

because of:

growing functionality with each increment

building on firm foundations

providing on time feedback

managing expectations

Page 14: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 14

Process Evolution – Where are you?

Structured OO CBD SOA Iterative Waterfall Hacking

Page 15: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 15

Typical roles throughout an SDLC

Project Manager

Business Architect

Business Analyst

Systems Analyst

GUI Designer

Software Architect

Systems Designer

Database Designer (DBA)

Developer (Programmer)

Systems Tester

Data Administrator

....

Page 16: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 16

What SDLCs are used by CGEY?

LAD

SDM

IAD

RAD

DSDM

RUP APER

RAPID

...

Page 17: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 17

Positioning RUP – where does RUP fit in?

Iterative approach

CGE&Y preferred approach for Systems Development

Combination of work by Booch, Rumbaugh and Jacobson

Built on Unified Modeling Language (UML)

Page 18: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 18

Why RUP?

Accepted Software Development Process standard common vocabulary & definitions

phases, disciplines, workflow, activities

guidelines and templates

best practices

Clients who ask for it or are interested Ahold, Danzas, Philips, TNT, NS, CBS

ABN-AMRO, OHRA, Vola, Rabobank, etc.

We achieved successes applying RUP faster sales of projects

increased productivity and quality

increasing trust

RUP is the CGEY Global standard (SDP-Deliver/RUP)

Page 19: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 19

RUP specifies 9 Disciplines, all spanning all phases during several development -iterations. The height of the wave is an indication of degree of effort for this discipline.

Time

Co

nte

nt

RUP

                                               

Page 20: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 20

RUP Extensions

CGEY: Deliver Project Management – plug-in

Page 21: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 21

DSDM and RUP

DSDM = Method

WHAT (decide yourself on HOW and documentation)

Role description attitude

stakeholders

No tool-support

RUP = Process & Method

Not only WHAT also HOW

Role description knowledge / capabilities or

competences

coupled on activities

Tool support tool guidelines

work guidelines

Templates

Both:

Organization and/or project tested for feasibility

Iterative

Page 22: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 22

Positioning ISO and CMM

ISO – International Standards Organization

Quality Management Systems Assurance

over 100 member countries

public and private sectors

ISO IS NOT A DEVELOPMENT APPROACH ITSELF!

CMM – Capability Maturity Model

assesses the quality and maturity of an organization’s development approach and practices

CMM IS NOT A DEVELOPMENT APPROACH ITSELF!

Page 23: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 23

ISO Certification

IS0 9000 : 1994 & 2000

Focused on Quality Management Systems Assurance in:

Requirements

Design

Development

Production installation

Servicing

CGEY ADC and sectors addresses ISO through:

Use Cases – RUP

RDWs, JADs, and ASEs

Structured Code Walkthroughs

Documentation and testing

Documentation and Procedures

Page 24: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 24

CMM Certification

Capability Maturity Models (CMM) Level 2 & 3 Software Engineering Institute (SEI) , sponsored by Department of Defense

Envisions “The right software, delivered defect free, on time and on cost, every time”

Initial

Repeatable

Defined

Managed

Optimizing

Page 25: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 25

“Maturity” of an IT-organization

Initial

Repeat-able

Defined

Managed

OptimizingCMM

•Requirements Management•Software Project Planning•Software Project Tracking & Oversight•(Software Subcontract Management)•Software Quality Assurance•Software Configuration Management

•Organizational Process Focus•Organizational Process Definition•Integrated Software Management•Software Product Engineering•Intergroup Coordination•Training Program•Peer Reviews

•Quantitative Process Management•Software Quality Management

•Defect Prevention•Process Change Management•Technology Change Management

•Ad hoc processes

Key

Pro

cess

Are

as p

er M

atu

rity

Lev

el

Page 26: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 26

“Maturity” of an IT-organization – CMM .v. CGE&Y approach

evolution

Initial

Repeat-able

Defined

Managed

OptimizingCMM

Mat

uri

tyInitial

Repeat-able

Defined

Managed

Optimizing

“To Be”

“As Is”

Processes

ITGover-nance

Architec-ture

Deliver Operate Support

Maturity Assessment

Framework (MAF)

Page 27: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 27

Summary

Why use a Systems Development Lifecycle (SDLC)

The added-value of an SDLC

A high level overview of industry SDLCs historical development advantages and disadvantages per SDLC

Typical roles throughout an SDLC

Positioning Rational Unified Process (RUP)

Positioning ISO/CMM

Page 28: Software Engineering Basics Software Engineering Learning Program Track 1.1 – SE Foundation

SE Basics v2.0 - 28

Questions

Ask me something I know, not something you don’t know.