Introduction to Maintenance and Construction Chapter 1 of

  • Slides: 30
Download presentation
Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375,

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

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

Today • New instructor – Tori Bowman • How’d the program analysis go? – turn in Quiz 0 A 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 Power. Point! 2

New Instructor – Tori Bowman • Tori Bowman is joining the Computer Science and

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! 3

Intro - this • Intro to basic maintenance concepts – Terminology – Development vs

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? 4

Introduction to Basic Maintenance Concepts

Introduction to Basic Maintenance Concepts

Terminology – A few things we’ll clarify today 1. What’s maintenance vs evolution? 2.

Terminology – A few things we’ll clarify today 1. 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? 6

Maintenance vs Evolution • In practice, the terms “maintenance” and “evolution” both refer to

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 7

Development vs. Maintenance Activities • Development (Initial) – – Officially means “from scratch” Can

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? 8

Both are “…of Software, ” which includes: Table From M-book 9

Both are “…of Software, ” which includes: Table From M-book 9

And those artifacts build / pass through these hoops: Figure From M-book 10

And those artifacts build / pass through these hoops: Figure From M-book 10

Development vs. Maintenance Activities • • But, is the difference “green field”? These days,

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… 11

Development vs. Maintenance Activities Example 1 – Which is it? • One of our

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” 12

Development vs. Maintenance Activities Example 2 – Which is it? • One senior project

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”! 13

Development vs. Maintenance Activities Example 3 – Which is it? • A system Steve

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 4 th 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 14

Development vs. Maintenance Activities Example 4 – Which is it? • A system Steve’s

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

Development vs. Maintenance Activities Example 5 – Which is it? • A system you’ll

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 16

Development vs. Maintenance Activities Example 6 – Which is it? • Second release of

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… 17

Development vs. Maintenance Activities • So, what’s the practical difference then? – Development (initial)

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

Development vs. Maintenance Activities • So, what’s the practical difference then? – Maintenance has

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? 19

Introduction to Software Construction

Introduction to Software Construction

What is Software Construction? - 1/2 • From the Guide to the Software Engineering

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

What is Software Construction? - 2/2 • Construction normally refers to the process of

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? 22

What is it? – C-book pic 23

What is it? – C-book pic 23

What is it? – 2 nd Cbook pic 24

What is it? – 2 nd Cbook pic 24

Why is Software Construction Important? • It’s a large part and at the center

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!? ) 25

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

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

Course Outcomes - Revisited Students who complete this course should be able to: 1.

Course Outcomes - Revisited Students who complete this course should be able to: 1. Explain how to plan for and transition to maintenance 2. Use the software maintenance process model. 3. Participate on a software maintenance team. 4. Re-engineer requirements and design for an existing project. 5. Effectively employ in construction implementation methods and tools studied in earlier courses. 6. Utilize a common development 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 Evolution 10. Develop white-box tests for construction activities. 27

A few more side-benefits of the course • Pad resume with open source, too…

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 37 x courses. E. g. , now that you know what good design is…constructing software feels different. (Why? ) 28

And now, for a Mark Ardis-memorial 1 cartoon: 1 Mark Ardis and Don Bagert

And now, for a Mark Ardis-memorial 1 cartoon: 1 Mark 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 29 research projects together.

What’s next? • We’ll start with maintenance – why? • Later, we’ll get around

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