Class SWEN 648_SW Maintenance

  • View
    218

  • Download
    0

Embed Size (px)

Text of Class SWEN 648_SW Maintenance

  • 8/12/2019 Class SWEN 648_SW Maintenance

    1/156

    Educational MaterialsCMU/SEI-89-EM-1

    February 1989

    Software Engineering InstituteCa rnegie Mellon Un iversity

    P it tsburgh, P ennsylvania 15213

    Software Maintenance Exercises

    for a Software Engineering

    Project Course_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    Charles B. EngleU .S. Army S EI Resident Affiliate

    Gary FordSEI Undergraduate Software Engineering Education Project

    Tim KorsonClemson University

    Approved for public relea se.Distribution unlimited.

  • 8/12/2019 Class SWEN 648_SW Maintenance

    2/156

    The Software Engineering Institute (SEI) is a federally funded research and development center, oper-ated by Ca rnegie Mellon University under contract with the U nited Sta tes Department of Defense.

    The SE I E ducat ion Pr ogram is developing a w ide range of ma teria ls to support softwa re engineeringeducation. These ma teria ls are being made ava ilable to educators throughout the academic, indust ria l,an d government communit ies. The use of these mat erials in a course does not in an y wa y constit ute anendorsement of the course by th e SE I , by C arn egie Mellon University, or by the U nited St a t es govern-ment .

    Permission to make copies or derivative works of this document is granted, without fee, provided thatthe copies a nd derivat ive works ar e not ma de or dis tr ibuted for direct commercia l a dvant age, a nd th atall copies and derivative works cite this document by name and document number and give notice thatthe copying is by permission of Ca rnegie Mellon U niversity.

    ______________________________________________________________________________________

    Copyright 1989 by Carnegie Mellon University

    ______________________________________________________________________________________

    This technical report was prepared for the

    SE I J oint P rogram Off ice

    E S D /AVS1

    Ha nscom AFB , MA 01731

    The ideas and findings in this report should not be construed as an official

    DoD position. It is published in th e interest of scientific a nd technical

    informa tion exchange.

    Review and Approval

    This report ha s been reviewed an d is a pproved for publicat ion.

    FOR THE COMMANDE R

    Karl Shingler

    SE I J oint P rogram Off ice

    This w ork wa s sponsored by th e U.S . Depart ment of Defense.

  • 8/12/2019 Class SWEN 648_SW Maintenance

    3/156

    ______________________________________________________________________________________CMU/SEI-89-EM-1 i

    Table of Contents

    1. Int roduct ion 1

    2. S oft w a re Ma intena nce 2

    3. The D AS C S oft w a re S yst em 4

    4. S oft w a re Ma intena nce E xercises 6

    4.1. D evelop D ocument a t ion S t a nda rds 6

    4.2. D evelop C onfigura t ion Ma na gement P la n 7

    4.3. Inst a ll a nd Test t he D AS C S oftw a re 8

    4.4. U pda t e D ocument a t ion a ft er P ort ing 9

    4.5. D evelop Regression Test P la ns 10

    4.6. D iscrepa ncy Report 1: Unexpect ed C onst ra in t E xcept ion 10

    4.7. D iscrepa ncy Report 2: Appa rent P a ra meter Mode E rror 12

    4.8. D iscrepa ncy Report 3: F ile Na me Lengt h E rrors 134.9. D iscrepa ncy Report 4: E mpt y Input F ile E rror 14

    4.10. D iscrepa ncy Report 5: U nrea cha ble C ode 14

    4.11. C ode Review s 15

    4.12. C ha nge Request 1: Improved Fla w a nd S t yle Messa ges 16

    4.13. C ha nge Request 2: U ser In ter fa ce, Version 1 16

    4.14. C ha nge Request 3: U ser In ter fa ce, Version 2 17

    4.15. C ha nge Request 4: U ser In ter fa ce, Version 3 17

    4.16. C ha nge Request 5: Add P a ge H ea ders t o Report s 18

    4.17. C ha nge Request 6: Add Line Numbers t o F la w Report s 19

    4.18. C ha nge Request 7: Allow U ser-S pecified S t yle P a ra met ers 19

    Annota t ed B ibliogra phy 21

    Appendix 1. P roject Tea m Roles 24

    Appendix 2. D ist r ibut ion D isket t e C ontent s 25

    Atta chment 1. Discrepan cy Reports a nd Cha nge Requests

    Atta chment 2. DASC Documenta tion

    Atta chment 3. Diskette Order Form

  • 8/12/2019 Class SWEN 648_SW Maintenance

    4/156

  • 8/12/2019 Class SWEN 648_SW Maintenance

    5/156

    ______________________________________________________________________________________CMU/SEI-89-EM-1 1

    Software Maintenance Exercises for a Software

    Engineering Project Course

    Abstract

    Software maintenance is an important ta sk in the sof twa re industry and t hus an

    importa nt par t of the educat ion of a softwa re engineer. It ha s been neglected in

    education, partly because of the difficulty of preparing a software system upon

    wh ich ma intena nce can be performed. This report provides a n operat iona l soft-

    ware system of 10,000 lines of Ada and several exercises based on that system.

    Concepts such as configuration management, regression testing, code reviews,

    an d stepwise abstr action can be taught wit h these exercises.

    1. Introduction

    Because many i f not most computer science majors go on to careers involving sof tware

    development, a project-oriented course in softwa re engineering ca n be very va luable in t he

    curriculum. One of the goals of the Undergrad uat e Softw ar e Engineering Educat ion P roject

    a t the Software Engineer ing Inst i tute (SEI) is to provide instructors and students with

    guidelines and ma terials for such a course.

    Toward tha t end, in 1987 the SE I published the t echnical report Teachi ng a Project-I nt ensive

    I ntr oduct ion to Software Engineer i ng [Toma yko87b]. This report id entified four differ ent

    models for such a course a nd t hen presented deta iled guidelines for one of them, t he large

    project team model. This model requires 10 to 20 stu dent s orga nized as a softw a re project

    team, with different students playing different roles (such as principal architect , project

    admin is t r a to r , con f igura t ion manager , qua l i t y a ssurance manager , t es t and eva lua t ion

    engineer, document a tion specialist , and ma intena nce engineer). The inst ructor play s the

    role of project ma na ger. The stu dent roles a re defined in Appendix 1.

    With such a course structure, not every student w rites code; in fact , very few of the st udents

    wr ite code. Inst ead, th e students experience directly or indirectly a ll the aspects of a soft-

    ware development project , and that is what makes such a course a sof tware engineer ingcourse rat her tha n simply an adva nced progra mming or group progra mming course.

    A long-sta nding difficulty w ith such a course is tha t t here is almost never enough t ime to de-

    velop a piece of softwa re from scra tch a nd t hen ha ve the student s do some maintena nce on it .

    Many instructors are unaware of the importance and methods of software maintenance, and

    they often do not even include the subject in their course syllabus. Even inst ructors who do

    wa nt to teach ma intenan ce often cannot devote the t ime to finding or developing a system for

    the students to mainta in. Since softw ar e ma intena nce is a fact of life in the softw ar e indus-

  • 8/12/2019 Class SWEN 648_SW Maintenance

    6/156

    ______________________________________________________________________________________2 CMU/SEI-89-EM-1

    t ry , i t is important for students to have exper ienced i t and learned some of the known

    techniques.

    The intent of th is repor t is to make teaching sof tware maintenance more feasible in a

    softwa re engineering project course. This report provides a operat iona l softw ar e system,

    called the Document ed Ada Styl e Checker (DASC),(described in Section 3); a reasonable set

    of documentation for the system; and specific exercises with guidelines for the instructor.

    Altogether, th e ma teria ls could be th e ba sis for a semester-long course. In dividua l exercises

    might be assigned as part of other courses, including a project course based primarily on new

    development.

    The softw ar e system is writ ten in Ada . For instructors and student s new to Ada , there is a

    great a dvant age in designing a course around maintena nce ra t her tha n new development .

    St udents a re able to work on a much larger system, a nd t hus experience many more Ada con-

    structs, th an would be the case if they had t o learn t he langua ge in par allel with developing

    code. In general, ana lysis is easier tha n synth esis in engineering.

    2. Software Maintenance

    The t erm softw ar e mai nt enan ce is generally used to mean changing a program in order to

    correct errors, improve performance, adapt to a changing environment, or provide new

    capabilit ies. Some consider this to be an a buse of the term maintenance and suggest other

    terminology, including softwar e evolut ionand post-deployment softwar e suppor t. However,

    the term maintenanceis w idely used a nd understood, so we w ill use it here also.

    In simple models of sof tware development , such as the common wate r fa l l