1 software engineering discussion for scec useit intern program phil maechling 26 may 2005...

Post on 05-Jan-2016

216 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Software Engineering Discussion for SCEC UseIT Intern Program

Phil Maechling26 May 2005maechlin@usc.eduhttp://www.scec.org/cme

2

Creating Over Consuming

Science is a creative activity.

Developing software is a creative activity.

Try them out this summer. Give them a chance. You could find something meaningful to you personally.

3

Simple is Good

"Any darn fool can make something complex; it takes a genius to make something simple."- Pete Seeger

4

Types of Software Development

You can develop software a couple of ways. Each has value and can be satisfying.

• Hacker Approach

• Engineer Approach

5

Power of Programming

Hacker Potential - One person, alone in a room with a computer, and compiler, can change the world.

(Note: Others occupations with this power include writers, musicians, artists, scientists)

6

Hacker Hero Gallery

7

Power of Programming

One person, alone in a room with a computer, and compiler, can change the world.

8

Hacker Mentality

Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome.

9

Hacker Hero Gallery

10

Hacker Essential Reading

• Hackers – Steven Levy

• The New New Thing – Michael Lewis

11

The Power of Engineering

Engineer Potential - By organizing group efforts, managing the communication between members, large scale tools and system can be produced.

12

Engineer Hero Gallery

13

Engineer Hero Gallery

14

Engineer Hero Gallery

15

Engineering Challenge is Working With Groups of People

16

Engineering Challenge is “Does it Work” is well Defined

17

Software Engineering Essential Reading

• Mythical Man Months – Robert Brooks

• The Soul of a New Machine – Tracy Kidder

18

Difference Between Hacking and Engineering is Scale

There is a huge difference between what one person can build and a group can build.

19

One Person Scale

20

A Group of People

21

The Power of Organization

Engineering – Cost of software systems are equivalent to large buildings.

50K – Small Program, 2BRM House Wichita 10M – SCEC/CME, 5 Story Office Building200M – Healthcare Billing system, 60 Story

Building

22

Software Engineering Class in School

• Does not teach Programming! Assumes you already know how to program.

• Describes how large projects are organized, planned, scheduled, cost estimated.

• Usually a heavy load class, group projects, software development task and often competition between groups.

23

Software Engineering Issues

• How do we define what the system should do (requirements)?

• How much will system cost?

• How long will it take to develop?

• How do we organize the group (who does what)?

• How do we verify system is giving correct answer?

24

Software Development as a Process

• Accumulated wisdom in the field says software development should be treated as a process.

• The process is repeated, even though the product being developed, changes.

• While there are many Software Engineering Processes. They typically deal with the same issues including: requirements, cost, schedule, testing, validation, managing changes.

25

Software Development as a Process

1 - Initial  : At maturity level 1, processes are usually ad hoc and chaotic.

2 - Repeatable : At maturity level 2, Software development successes are repeatable.

3 - Defined  : At maturity level 3, processes are well characterized and understood, and are described in standards, procedures, tools, and methods.

4 - Managed  : Using precise measurements, management can effectively control the software development effort

5 - Optimizing  : Maturity level 5 focuses on continually improving process performance

26

Standard Aerospace Software Process

27

Standard Aerospace Software Process

28

Software Development Process

29

Software Times Changed

30

Software Times Changed

31

Revolutions Require an Alternative to Status Quo

32

Expression of Values

The four main values of the agile methods are:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

33

Agile/XP Process/Practices

1. Planning Game 2. Small Releases 3. Metaphor 4. Simple Design 5. Testing 6. Continuous Integration 7. Pair Programming 8. Collective Ownership 9. Refactoring 10. 40-Hour Week 11. On-Site Customer 12. Coding Standards

34

Software Engineering This Summer

• Enginering requires more than Programming. Not every has to program.

• Group has room for both hackers and engineers

• No full time hackers. Some engineering required of everyone using an agile method

• Show skill, tolerance, patience, work ethic, and precedence of group interests over individual interests.

35

Software Engineering This Summer

• Personal skill development this summer should include skill of working with a group.

36

Software Engineering This Summer

• Creating a functional and useful software system from a group this large will require an engineering process.

• Please participate with us in our Engineering Process.

• Our Engineering Process should reflect our values: Learning, People, Communications, Science, Creativity, Usefulness.

top related