Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375,...

30
Introduction to Introduction to Maintenance and Maintenance and Construction Construction (Chapter 1 of both books) (Chapter 1 of both books) Steve Chenoweth Steve Chenoweth CSSE 375, Rose-Hulman CSSE 375, Rose-Hulman (Labor Day (Labor Day ) ) Based on Don Bagert’s Based on Don Bagert’s 1 2006 Lecture 2006 Lecture 1 Don Bagert taught this course during its first 3 years, and taught a similar course at Texas Tech before that. Don is now the CS Dept Chair at Southeastern Missouri State Univ.
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    218
  • download

    1

Transcript of Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375,...

Page 1: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

Introduction to Maintenance Introduction to Maintenance and Constructionand Construction

(Chapter 1 of both books)(Chapter 1 of both books)

Introduction to Maintenance Introduction to Maintenance and Constructionand Construction

(Chapter 1 of both books)(Chapter 1 of both books)

Steve ChenowethSteve ChenowethCSSE 375, Rose-HulmanCSSE 375, Rose-Hulman

(Labor Day (Labor Day ))Based on Don Bagert’sBased on Don Bagert’s11 2006 Lecture 2006 Lecture

1Don Bagert taught this course during its first 3 years, and taught a similar course at Texas Tech before that. Don is now the CS Dept Chair at Southeastern Missouri State Univ.

Page 2: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

2

Today• New instructor – Tori Bowman• How’d the program analysis go? –

turn in Quiz 0A with program.• Talk about Open Source sites• Homework 1 – “Baseline” due

Thurs*• Intro – this +

*Due dates go with 11:55 PM, unless otherwise specified.+ I.e., this slide presentation, of class PowerPoint!

Page 3: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

3

New Instructor – Tori Bowman

• Tori Bowman is joining the Computer Science and Software Engineering department as a visiting faculty member for the 07/08 academic year.

• Tori is a Rose-Hulman alum and has been doing lots of software engineering and project management for Rockwell Collins. She brings a valuable perspective to our programs.

• Tori will be contributing to 375 so as to apply her skills & knowledge to your learning experience!

Page 4: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

4

Intro - this• Intro to basic maintenance concepts

– Terminology– Development vs Maintenance

• Intro to software construction– What is it?– How maint/evolution and construction relate

• Course outcomes – revisited, plus more side benefits

• What’s next?

Page 5: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

Introduction toIntroduction toBasic Maintenance Basic Maintenance

ConceptsConcepts

Introduction toIntroduction toBasic Maintenance Basic Maintenance

ConceptsConcepts

Page 6: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

6

Terminology – A few things we’ll clarify

today1. What’s maintenance vs

evolution?2. What’s maintenance/evolution vs

development?3. What’s construction, as a part of

either maintenance/evolution or development?

Page 7: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

7

Maintenance vs Evolution

• In practice, the terms “maintenance” and “evolution” both refer to making changes to an existing system

• “Maintenance” is officially when you are fixing bugs or porting a system to a new platform, whereas

• “Evolution” is officially when making enhancements to existing software

• We’ll often use “maintenance” to mean both

Page 8: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

8

Development vs. Maintenance Activities• Development (Initial)

– Officially means “from scratch” – Can choose which process model to use - maybe– Often it’s the right time to change / upgrade tools– Sometimes it’s a total redo of an existing system

• Maintenance/Evolution– Officially means “working with existing system”– Must work within constraints of the existing process model

and tools• E.g., “How would you change the change management system

during maintenance?

Page 9: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

9

Both are “…of Software,” which includes:

TableFrom M-book

Page 10: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

10

And those artifacts build / pass through these

hoops:

FigureFrom M-book

Page 11: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

11

Development vs. Maintenance Activities

• But, is the difference “green field”?• These days, hardly anything is “from

scratch.”• Sometimes, it’s hard to tell the difference.• Distinction may be as crazy as “Which

manager’s team gets to do it – the ‘development’ manager, or the ‘maintenance’ manager?”

• Let’s look at some examples – you tell me…

Page 12: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

12

Development vs. Maintenance Activities

Example 1 – Which is it?• One of our senior projects is creating a

web interface for Subversion• Subversion already exists – they’re

building on top of that• It has to “talk to” other existing stuff, like

Rose’s t-drive, maybe Angel? Maybe use Kerberos pwds?

• Not exactly “green field”

Page 13: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

13

Development vs. Maintenance Activities

Example 2 – Which is it? • One senior project this year is “fixing”

Buddy, the interactive display that was in the lobby– It had mysterious problems causing Buddy to

freeze – Nobody on original team could diagnose– I said “yes” to current team’s question, “Can we

redo the software from scratch?”– Kind of “green field”!

Page 14: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

14

Development vs. Maintenance Activities

Example 3 – Which is it?• A system Steve worked on in industry

– The system kept track of maintenance data for a very large com network

– For the 4th release of the same system, they were making their database “available” for other applications to access

– Most of these accesses would be ad hoc queries of large amounts of data

Page 15: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

15

Development vs. Maintenance Activities

Example 4 – Which is it?• A system Steve’s seen too

many of…– First release was “rush to

market.”– None of the documents shown on

slide 9 were produced.– Now they’re ready to do Rel 2.0.

Page 16: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

16

Development vs. Maintenance Activities

Example 5 – Which is it?• A system you’ll surely see on the job:

– You’re assigned to “maintenance”– All the documents shown in Slide 9 are

way out of date– They’re developing from a string of

“change requests,” deciding what’s in or out for each release based on what can get done before the deadline

Page 17: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

17

Development vs. Maintenance Activities

Example 6 – Which is it?• Second release of the

Subversion Web tool, in the spring.– We don’t yet know what / how

much work that will be…

Page 18: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

18

Development vs. Maintenance Activities

• So, what’s the practical difference then?– Development (initial) usually has more inherent risk– In development,

• You need to decide how to do it, new tools & processes,• You create new documents, a bunch of new software

classes, etc. • Everything is “baselined.” • You do “architecture.”• Half the stuff you’d like in Rel. 1.0 won’t get in there –

why?• Testing the first-out product is iffy.

Page 19: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

19

Development vs. Maintenance Activities

• So, what’s the practical difference then?– Maintenance has less inherent risk– In maintenance,

• You get change requests (features & fixes), • You prioritize those based on how much people want them

and how hard they are to do, using your experience.• You decide what should make the cutoff for the next

release, & • You do ‘em.• With luck, you go also back and synchronize all those pesky

documents – what happens if you don’t?

Page 20: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

Introduction toIntroduction toSoftware ConstructionSoftware Construction

Introduction toIntroduction toSoftware ConstructionSoftware Construction

Page 21: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

21

What is Software Construction? - 1/2

• From the Guide to the Software Engineering Body of Knowledge (SWEBOK), 2004 edition:

The term software construction refers to the detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.

Page 22: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

22

What is Software Construction? - 2/2

• Construction normally refers to the process of building

• Making the “real thing” vs problem exploration, modeling, validating on either side of this.

• For software construction:– What are our construction “tools”?– How do we ensure quality?

• What’s an example of how to do that?

Page 23: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

23

What is it? – C-book pic

Page 24: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

24

What is it? – 2nd C-

book pic

Page 25: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

25

Why is Software Construction Important?

• It’s a large part and at the center of software development and maintenance

• Focusing on construction can greatly improve an individual’s programming productivity

• Source code is the only completely accurate description of the software

• It’s the only activity that must be done!– That’s a hot topic in Agile development methods

• Question – What’s the opposite philosophy called? (Where coding is this little thing you do at the end, and it should work the first time!?)

Page 26: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

Big Question:Big Question:How do maintenance/evolution How do maintenance/evolution and construction relate to each and construction relate to each

other?other?

Big Question:Big Question:How do maintenance/evolution How do maintenance/evolution and construction relate to each and construction relate to each

other?other?

Page 27: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

27

Course Outcomes - Revisited

Students who complete this course should be able to: 1. Explain how to plan for and transition to maintenancemaintenance. 2. Use the software maintenancemaintenance process model. 3. Participate on a software maintenancemaintenance team. 4. Re-engineer requirements and design for an existing project. 5. Effectively employ in constructionconstruction implementation methods and tools studied in earlier courses. 6. Utilize a common developmentdevelopment environment for construction activities (currently C++). 7. Engineer software to meet performance and reliability objectives. 8. Develop software user documentation. 9. Verify the Laws of Software EvolutionEvolution.10. Develop white-box tests for constructionconstruction activities.

Page 28: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

28

A few more side-benefits of the course

• Pad resume with open source, too… • Actually learn / get better at C++• Learn useful processes for developing

your senior project, just-in-time…• …and for maintaining it, later on!• Cap-off everything you already learned

in the 37x courses. E.g., now that you know what good design is…constructing software feels different. (Why?)

Page 29: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

29

And now, for a Mark Ardis-memorial1 cartoon:

1Mark Ardis and Don Bagert were the founders of Rose-Hulman’s Software Engineering program. Mark’s not really gone, just starting an SE Masters program at RIT. He and I work on research projects together.

Page 30: Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 1 2006.

30

What’s next?

• We’ll start with maintenance – why?

• Later, we’ll get around to talking about new development!

P.S. - Tom & Ray of NPR’s “Car Talk” totally approve!

Image from blogs.usatoday.com/weather/tornadoes/index.html .