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.

Slides:



Advertisements
Similar presentations
Bboogle Teams: Supporting Small Group Communications through Google Apps Integration with the Blackboard Learn Platform Jonathan Smith, Software Architect,
Advertisements

COM606 Software Systems Engineering and on the Portal Introduction.
Chapter 2 – Software Processes
Learning and Teaching Conference 2012 Skill integration for students through in-class feedback and continuous assessment. Konstantinos Dimopoulos City.
1 Reconstructing Software Architectures CSSE 477 (SAD Two*) Software Architecture Week 4, Day 4, including Ch 10 in Bass’s book.
Software Engineering 1. Introduction 2. Course schedule.
Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from ft. (~9 km).
1 CSSE 477: Swre Arch – This year’s course… Steve Chenoweth Tuesday, 11/8/11 Week 10, Day 2 Right – Sunset at the Louvre, in Paris From
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 1 Software Maintenance – Big Issues served up, Side order of Reifer Steve Chenoweth Office.
1 Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
Team Skill 6 - Building The Right System Part 2: Traceability, Change and Quality (Chapters of the requirements text) CSSE 371 Software Requirements.
Elaboration of Use Cases CSSE 371, Software Requirements and Specification Steve Chenoweth, Rose-Hulman Institute October 21, 2004 In the book – This is.
1 Program Understanding Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Week 10 CSSE 375 Steve Chenoweth & Everybody. Today Get back Exam 2 This week’s schedule – this Reflection on the course Talk about final assignment Decide.
CSCD 555 Research Methods for Computer Science
SE 555 Software Requirements & Specification Requirements Management.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
Overview of the Rose-Hulman Bachelor of Science in Software Engineering Don Bagert SE Faculty Retreat – New Faculty Tutorial August 23, 2005.
1 The Maintenance Process Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Team Skill 6 - Building The Right System Part 1: Applying Use Cases (Chapters of the requirements text) CSSE 371 Software Requirements and Specification.
April 13, 2004CS WPI1 CS 562 Advanced SW Engineering General Dynamics, Needham Tuesdays, 3 – 7 pm Instructor: Diane Kramer.
Maintenance Framework Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Ref M 2.
CS 235: User Interface Design January 22 Class Meeting
CSSE 375 Software Construction and Evolution: Configuration Management
Brainstorming Steve Chenoweth & Chandan Rupakheti RHIT Chapters 12 & 13, Requirements Text, Brainstorming Techniques document Brainstorming involves generating.
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
CSSE 533 – Database Systems Week 1, Day 1 Steve Chenoweth CSSE Dept.
Copyright Course Technology 1999
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
CS 235: User Interface Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
/425 Declarative Methods - J. Eisner /425 Declarative Methods Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
Welcome to CSIS1 Intro to Computer Science and Information Systems (Based on UW’s Fluency with Information Technology) Please, take a syllabus © 2004 Lawrence.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Course Introduction Software Engineering
1 Today’s Plan In Class Exam – Quick Review Thoughts on your Junior Projects, cntd People and Roles on Projects.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
CSSE 513 – COURSE INTRO With homework and project details Wk 1 – Part 2.
How to start Milestone 1 CSSE 371 Project Info There are only 8 easy steps…
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Systems Analysis and Design in a Changing World, Fourth Edition
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Grade Book Database Presentation Jeanne Winstead CINS 137.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CPSC 315 Programming Studio Spring 2008 John Keyser.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
1 Maintenance of Documentation and Documentation of Maintenance Quiz 7 Tori Bowman CSSE 375, Rose-Hulman October 1, 2006.
Software Construction and Evolution CSSE 375: Course Introduction Steve Chenoweth Office: Meonch Room F220 Phone: (812)
Overview of Socio-cognitive Engineering General requirements Theory of Use Design Concept Contextual Studies Task model Design space System specification.
1 Undergraduate Software Engineering Programs in the United States (in 2003) Mark A. Ardis Rose-Hulman Institute of Technology.
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
Cape Cod Tech Educator Plan Presentation. Educator Plan Form Due October 15 th …. It is an extension of your Goal Setting Form It is either a 1-year or.
E-Portfolio for Masters level students Dr Marita Naude Graduate School of Business Curtin University of Technology Perth; Western Australia.
In today’s lesson we will be looking at: what we mean by the software development lifecycle the phases in the lifecycle We will focus particularly on testing:
DBM 380 AID Focus Dreams/dbm380aid.com
Chapter 18 Maintaining Information Systems
Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
1. Welcome to Software Construction
CSC 110 – Fluency in Information Technology Chapter 7: An Introduction to Debugging Dr. Curry Guinn.
DBM 380 Competitive Success/snaptutorial.com
DBM 380 HELP Perfect Education/ dbm380help.com.
DBM 380 EDU Lessons in Excellence-- dbm380edu.com.
DBM 380 Education for Service/snaptutorial.com
DBM 380 Teaching Effectively-- snaptutorial.com
Lecture # 3 Software Development Project Management
Software Verification, Validation, and Acceptance Testing
Overview of BSSE at Rose-Hulman Institute of Technology
CSE 444 Database Management Systems Autumn 1997 University of Washington Introduction and Welcome © 1997 UW CSE 12/12/2019.
Presentation transcript:

Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s 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.

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!

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!

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?

Introduction to Basic Maintenance Concepts

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

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

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?

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

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

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…

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”

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

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

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.

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

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…

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.

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?

Introduction to Software Construction

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.

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?

23 What is it? – C-book pic

24 What is it? – 2 nd C- book pic

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

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

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

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

29 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 research projects together.

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.blogs.usatoday.com/weather/tornadoes/index.html