This preview shows page 374 - 376 out of 517 pages.
Using a language translation tool to change code from a procedure-oriented language like C orCOBOL to an object-oriented language like C++ or Java.The hope is that reengineering will be much less expensive and much more likely to succeed thanreimplementing the software product from scratch.Summary:The insight from this section is that you can think of Agile as a maintenance process,in that change is the norm, you are in continuous contact with the customer, and that new iterationsof the product are routinely deployed to the customer as new releases. Hence, regression testingand refactoring are standard in the Agile process just as they are the maintenance phase of Plan-and-Document. In Plan-and-Document processes:Maintenance managersplay the role of project managers: they interface with the customer andupper management, make the cost and schedule estimates, documents the maintenance plan, andmanage themaintenance software engineers.Customers and other stakeholders issuechange requests, which aChange Control Committeetriages based on the benefit of the change and cost estimates from the maintenance manager, thedocumentation team, and the QA team.Regression testingplays a bigger role in maintenance to ensure that new features do not interferewith old ones.Refactoringplays a bigger role as well, in part because there is often less refactoring in Plan-and-Document processes during product development than in Agile development.An alternative to starting over when the code becomes increasingly difficult to maintain is toreengineerthe code to lower the cost of having a much more maintainable system.One argument for Agile development is therefore as follows: if two-thirds of the cost of productareinthemaintenancephase,whynotusethesamemaintenance-compatiblesoftwaredevelopment process for the whole lifecycle?Self-Check 9.7.1.True or False: The cost of maintenance usually exceeds the cost of development.True.Self-Check 9.7.2.True or False: Refactoring and reengineering are synonyms.False: While related terms, reengineering often relies on automatic tools and occurs as software agesandmaintainabilitybecomesmoredifficult,yetrefactoringisacontinuousprocessofcodeimprovement that happens during both development and maintenance.Self-Check 9.7.3.Match the Plan-and-Document maintenance terms on the left to the Agile terms onthe right:Change requestIterationChange request cost estimate Icebox, Active columns in Pivotal TrackerChange request triagePoints
ReleaseUser storyChange request⇐⇒User story; Change request cost estimate⇐⇒Points; Release⇐⇒Iteration; andChange request triage⇐⇒Icebox, Active columns in Pivotal Tracker.9.8 Fallacies and PitfallsPitfall: Conflating refactoring with enhancement.
As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.
Temple University Fox School of Business ‘17, Course Hero Intern
I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.
University of Pennsylvania ‘17, Course Hero Intern
The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.
Tulane University ‘16, Course Hero Intern
Stuck? We have tutors online 24/7 who can help you get unstuck.
Ask Expert Tutors
You can ask
You can ask
You can ask
(will expire )