Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005

Similar presentations


Presentation on theme: "1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005"— Presentation transcript:

1 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu http://www.scec.org/cme

2 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 3 Simple is Good "Any darn fool can make something complex; it takes a genius to make something simple." - Pete Seeger

4 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 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 6 Hacker Hero Gallery

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

8 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 9 Hacker Hero Gallery

10 10 Hacker Essential Reading Hackers – Steven Levy The New New Thing – Michael Lewis

11 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 12 Engineer Hero Gallery

13 13 Engineer Hero Gallery

14 14 Engineer Hero Gallery

15 15 Engineering Challenge is Working With Groups of People

16 16 Engineering Challenge is “Does it Work” is well Defined

17 17 Software Engineering Essential Reading Mythical Man Months – Robert Brooks The Soul of a New Machine – Tracy Kidder

18 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 19 One Person Scale

20 20 A Group of People

21 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 Building 200M – Healthcare Billing system, 60 Story Building

22 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 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 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 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 26 Standard Aerospace Software Process

27 27 Standard Aerospace Software Process

28 28 Software Development Process

29 29 Software Times Changed

30 30 Software Times Changed

31 31 Revolutions Require an Alternative to Status Quo

32 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 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 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 35 Software Engineering This Summer Personal skill development this summer should include skill of working with a group.

36 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.


Download ppt "1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005"

Similar presentations


Ads by Google