• No results found

How To Develop Software

N/A
N/A
Protected

Academic year: 2021

Share "How To Develop Software"

Copied!
14
0
0

Loading.... (view fulltext now)

Full text

(1)

Agile Systems Engineering Approach

to Software Project Development

Chris Ritter,

Daniel Hettema, and

Steven H. Dam,

Ph.D., ESEP,

SPEC Innovations, 571-485-7807

[email protected]

(2)

Overview

What is “Agile?”

How is agile development applied to

software?

What is the difference between Systems

Engineering and Software Engineering?

What lessons from Agile make sense to

apply to systems engineering?

Summary

(3)

What is “Agile?”

Time-boxed

iterative approach

Incremental

Self-organizing,

cross-functional

teams

Adaptive planning

Rapid and flexible

response to

change

3

See http://agilemanifesto.org/

We have used many names for this over the

years: “build a little, test a little” and

(4)

How is Agile Applied to Software

Development?

Many techniques have been

derived (e.g., Kaisen, Scrum)

But does this kind of

software development

approach translate well into

the DoD/NASA world where

software makes life and

death decisions?

4

From

http://geekandpoke.typepad.com/geekand poke/2011/12/agile-manifesto.html

(5)

SPEC’s Agile Software Production

Process – Used for Commercial

Software Development

5 Plan & Evaluate Priorities Baseline Functional Requirements

SPEC Innovations Middle-Out MBSE Process

Monday – Week 1

Analysis & Design

Tuesday – Week 1

Coding (New Features/Bug Fixes) & Unit/Developmental Testing

(Local Host)

Wednesday – Week 1 to Wednesday – Week 2

Operational Test (Cloud Test Site)

Thursday – Week 2

Final fixes (if necessary) and review Friday AM – Week 2 Final OT & Document Updates Friday PM – Week 2 Deploy to Cloud Site

Friday Late PM – Week 2

User Feedback (anytime from “Features Tracker” webpage)

Bi-Weekly “Sprint” Software Production Cycle

New Version Available to Users In tern al Les so n s Learn ed

We use a small, co-located team who went to

school together and have worked together

many years

Innoslate SLOC ≈ 370k

(6)

DoD Software

Systems

Characterized by

Millions of lines of

code

Much of it using older software languages

Real-time

Standards-based

Many, many reviews

Many, conflicting “requirements” from many,

varied stakeholders

6

All driven by a very non-Agile

acquisition system

(7)

What Does This Mean to DoD?

Agile clearly can be applied in non-mission

critical activities, for example:

Websites

Specialized analytical tools

“Commercial-like applications” (although it

would be better usually to just use COTS)

It may be applicable to mission-critical

software, but only when it’s functional

requirements are well-defined and the

(8)

What Is the Difference between

Systems Engineering and Software

Engineering?

Systems Engineering

Capabilities-based

Decomposition to

many levels

Must support all

aspects of the lifecycle

Hardware SE requires

“measure twice, cut

once” approach

Software Engineering

Needs to have

well-defined functional

requirements

Verifiable

Clear

Concise …

Code can be executed

quickly

(9)

Is There Such a Thing as Agile SE?

Many people are

trying to apply

the Agile

principles to SE

Many forums on

this subject (see

LinkedIn)

How have we

done this?

(10)

We Focus on a Middle-Out Process

Requirements Analysis

Functional Analysis

and Allocation

Synthesis

System Analysis and

Control

Best Use:

“Classical SE”

Best Use: Reverse

Engineering (As-Is)

Best Use:

Architecture

Development

(To-Be)

Adapted from EIA-632

The middle-out

approach has been

proven on a variety

of projects

(11)

14. Provide Options

Middle-Out Timeline

11

5. Develop the Operational Context Diagram

15. Conduct Trade-off Analyses

6. Develop Operational Scenarios 1. Capture and Analyze Related Artifacts

4. Capture Constraints

3. Identify Existing/Planned Systems 2. Identify Assumptions

7. Derive Functional Behavior 8. Derive Assets

10. Prepare Interface Diagrams

12. Perform Dynamic Analysis

11. Define Resources, Error Detection & Recovery 13. Develop Operational Demonstration Master Plan

16. Generate Operational and System Architecture Graphics, Briefings and Reports

Requirements Analysis Functional Analysis Synthesis

System Analysis and Control

9. Allocate Actions to Assets

Time

Originally developed to support ACTDs

in the 1990s

Can be

executed in as

little as two

weeks

(12)

14. Provide Options

Agile Architecture Development as

Well

12

5. Develop the Operational Context Diagram

15. Conduct Trade-off Analyses

6. Develop Operational Scenarios 1. Capture and Analyze Related Artifacts

4. Capture Constraints

3. Identify Existing/Planned Systems 2. Identify Assumptions

7. Derive Functional Behavior 8. Derive Assets

10. Prepare Interface Diagrams

12. Perform Dynamic Analysis

11. Define Resources, Error Detection & Recovery 13. Develop Operational Demonstration Master Plan

16. Generate Operational and System Architecture Graphics, Briefings and Reports

Requirements Analysis Functional Analysis Synthesis System Analysis and Control AV-1 AV-2 OV-1 OV-2 OV-3 OV-4 OV-5 OV-6

9. Allocate Actions to Assets SV-1

SV-2 SV-3 SV-4 SV-5 SV-6 SV-7 SV-8 SV-9 SV-10 StdV-1 StdV-2 AV-1 Draft DIV-2 DIV-3 DIV-1 CV-1 CV-2 CV-3 CV-4 CV-5 CV-6 CV-7 PV-2 PV-3 PV-1 CONOPS

Time

(13)

What Lessons from Agile Make

Sense to Apply to Systems

Engineering?

Individuals and interactions over processes and tools

However, you need to apply a process for repeatability

and tools to capture the information

Working software (design) over comprehensive

documentation

Implies MBSE with simulation

Customer collaboration over contract negotiation

Need to work better as a Government-Contractor team

Responding to change over following a plan

Need flexibility in the SOW and deliverables to make this

work

(14)

Summary

Agile is the latest buzzword for something

we have been trying to do for decades

The problem really comes from people

being inflexible and suspicious of each

other

A measure of trust is needed to actually

improve the situation

e http://agilemanifesto.org/ http://geekandpoke.typepad.com/geekandpoke/2011/12/agile-manifesto.html

References

Related documents

The preliminary AA-QS values derived in this publication for both the fresh water and Baltic sea were compared for those five active substances and one metabolite that have

Channel.When Channel Type is set to PDTCH and the cell does not support EDGE services, the default value is EGPRS Normal Channel.When Channel Type is set to PDTCH and the cell

Recently the fineness of POFA has been studied by some researchers on the pore size distribution and microstructure of cement paste (Ranjbar, Mehrali, Alengaram, Metselaar,

40 Pada penelitian ini, ampas tahu dipilih sebagai bahan biomassa yang kemudian dibuat menjadi briket.. Pemanfaatan ampas tahu sebagai bahan bakar biomassa ini

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

• multiply and divide integers using one of two methods: the table method or the like/unlike method.. Integers – Multiplying and

This was defined as the number of patient charts in which at least 1 medication order had been changed divided by the total number of completed medica- tion reconciliation forms

Power supply Input modules Output modules RAM E-EPROM network power cord Machine Programming tool CPU Program editor and monitoring PLC.. Communication