




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SOFTWARE ENGINEERING LABORATORY SERIESSEL-84-101Managers Handbook forSoftware DevelopmentRevision 1NOVEMBER 1990National Aeronautics andSpace AdministrationGoddard Space Flight CenterGreenbelt, Maryland 20771FOREWORDThe Software Engineering Laboratory (SEL) is an organization sponsored by the NationalAeronautics and Space Administration/Goddard Space Flight Center (NASA/GSFC) and created forthe purpose of investigating the effectiveness of software engineering technologies when applied tothe development of applications software. The SEL was created in 1977 and has three primaryorganizational members: NASA/GSFC, Systems Development Branch; University of Maryland,Computer Sciences Department; Computer Sciences Corporation, Flight Dynamics TechnologyGroup.The goals of the SEL are (1) to understand the software development process in the GSFCenvironment; (2) to measure the effect of various methodologies, tools, and models on this process;and (3) to identify and then to apply successful development practices. The activities, findings, andrecommendations of the SEL are recorded in the Software Engineering Laboratory Series, acontinuing series of reports that includes this document.The Managers Handbook for Software Development was originally published in April 1984.Contributors to the original version includedWilliam Agresti, Computer Sciences CorporationFrank McGarry, Goddard Space Flight CenterDavid Card, Computer Sciences CorporationJerry Page, Computer Sciences CorporationVictor Church, Computer Sciences CorporationRoger Werking, Goddard Space Flight CenterThe new edition contains updated material and constitutes a major revision. The primarycontributors to the current edition areLinda Landis, Editor, Computer Sciences CorporationFrank McGarry, Goddard Space Flight CenterSharon Waligora, Computer Sciences CorporationRose Pajerski, Goddard Space Flight CenterMike Stark, Goddard Space Flight CenterRush Kester, Computer Sciences CorporationTim McDermott, Computer Sciences CorporationJohn Miller, Computer Sciences CorporationSingle copies of this document can be obtained by writing toSystems Development BranchCode 552Goddard Space Flight CenterGreenbelt, Maryland 20771iiiABSTRACTMethods and aids for the management of software development projects are presented. Therecommendations are based on analyses and experiences of the Software Engineering Laboratory(SEL) with flight dynamics software development. The management aspects of the followingsubjects are described: organizing the project, producing a development plan, estimating costs,scheduling, staffing, preparing deliverable documents, using management tools, monitoring theproject, conducting reviews, auditing, testing, and certifying.vTABLE OF CONTENTSSection 1 IntroductionHandbook OverviewIntended AudienceSoftware Life CycleActivities Spanning PhasesSection 2 Organizing and PlanningOrganizing the ProjectProducing the Software Development/Management PlanExecuting the Software Development/Management PlanSection 3 Cost Estimating, Scheduling, and StaffingEstimating Development Cost and ScheduleProject StaffingOther Software Development CostsCost of Computer UtilizationCost of System DocumentationCost of Rehosting SoftwareCost of Reusing SoftwareCost of Software MaintenanceSection 4 Key Documents and DeliverablesSuggested Document ContentsGuidelines for Evaluating Completed DocumentsSection 5 Verification, Testing, and CertificationCode ReadingUnit TestingIntegration TestingBuild/Release TestingSystem TestingAcceptance TestingTest Management GuidelinesCertificationSection 6 Metrics and Key Management AidsMetricsManagement Metrics and Their UseSource Code Growth RateEffort DataSystem Size EstimatesComputer Usagevii1-11-11-21-31-52-12-12-22-53-13-13-43-53-53-73-73-73-84-14-14-115-15-15-15-25-25-35-35-45-56-16-16-26-36-46-66-7TABLE OF CONTENTS (Contd)Section 6 Metrics and Key Management Aids (Contd)Error RatesReported/Corrected Software DiscrepanciesRate of Software ChangeDevelopment Activity StatusAdditional Management MetricsData CollectionAutomating Metrics AnalysisGeneral Indicators of Project StatusWarning Signals and Corrective ActionsBasic Set of Corrective ActionsSection 7 Reviews and AuditsReviewsSystem Requirements ReviewSoftware Specifications ReviewPreliminary Design ReviewCritical Design ReviewOperational Readiness ReviewAuditsAppendix A SEL Software Development EnvironmentGlossaryReferencesStandard Bibliography of SEL Literatureviii6-86-96-106-116-126-136-136-156-166-187-17-17-27-47-67-87-107-13LIST OF ILLUSTRATIONSFigurePage1-11-22-13-13-23-34-14-24-34-44-54-64-74-84-94-105-16-16-26-36-46-56-66-76-86-96-106-116-126-136-146-156-166-176-186-196-207-17-27-37-47-57-6Activities by Percentage of Total Development Staff EffortReuse and Prototyping Activities Within the Life CycleSoftware Development/Management Plan ContentsCost Estimation ScheduleTypical Computer Utilization Profile (FORTRAN Projects)Typical Computer Utilization Profile (Ada Projects)Key Documents and Deliverables by PhaseRequirements and Functional Specifications ContentsOperations Concept Document ContentsRequirements Analysis Report ContentsPreliminary Design Report ContentsDetailed Design Document ContentsContents of Test PlansUsers Guide ContentsSystem Description ContentsSoftware Development History ContentsExample of Unit Design CertificationManagement Through MeasurementSEL Software Growth ProfileExample of Code Growth GRO AGSSSEL Staffing Profile ModelSEL Effort Distribution ModelsEffort Data Example ERBS AGSSSEL Size Estimates ModelSample Size Estimates UARS AGSSSEL Computer Usage ModelExample of Computer Usage ERBS AGSSSEL Error Rate ModelSample Error Rates COBE AGSSSEL Software Discrepancy Status ModelExample of Discrepancy Tracking TCOPSSEL Change Rate ModelChange Rate Example GOES AGSSSEL Development Status Model for a Single BuildDevelopment Profile Example GOADAExample SME OutputBuild Corporate Memory Into a ToolScheduling of Formal ReviewsSRR Hardcopy MaterialSSR Hardcopy MaterialPDR Hardcopy MaterialCDR Hardcopy MaterialORR Hardcopy Materialix1-31-52-33-23-63-64-14-24-34-44-54-64-74-84-94-105-66-26-36-36-46-46-56-66-66-76-76-86-86-96-96-106-106-116-116-146-157-17-37-57-77-97-11LIST OF TABLESTablePage3-13-23-33-43-53-63-73-85-16-1Distribution of Time Schedule and Effort Over PhasesProcedures for Reestimating Size, Cost, and ScheduleDuring DevelopmentComplexity GuidelineDevelopment Team Experience GuidelineTeam Size GuidelineGuideline for Development Team CompositionCost of Rehosting SoftwareCost of Reusing SoftwareExpected Percentage of Tests Executed That PassSEL Recommended Metricsx3-13-33-33-43-53-53-73-85-56-12SECTION 1 INTRODUCTIONThis handbook is intended to be a convenient reference on software management methods and aids.The approach is to offer concise information describingWhat the methods and aids can accomplishWhen they can be appliedHow they are appliedWhere the manager can find more background or explanatory materialThe management methods and aids included here are those that have proved effective in theexperiences of the Software Engineering Laboratory (SEL) (Reference 1). The characteristics ofsoftware projects in the flight dynamics environment monitored by the SEL appear in the appendixto this document. The applications include attitude determination and control, orbit adjustment,maneuver planning, and general mission analysis.HANDBOOK OVERVIEWThis document consists of seven sections organized by specific management topics:Section 1 presents the handbooks purpose, organization, and intended audience. The softwarelife cycle and key development activities are summarized.Section 2 discusses the basic management concerns of organizing and planning in the context ofsoftware management. The production of the software development management plan is covered indetail.Section 3 describes resource estimation and allocation. Techniques are presented for estimatingsize, costs, and effort. Guidelines are given for project scheduling and for staff allocation andcomposition.Section 4 outlines contents, timing, and evaluation of key documents and deliverables in a softwareproject.Section 5 discusses the management aspects of software verification, testing, and certification.Section 6 summarizes management measures and aids used in monitoring and controlling asoftware project. Key indicators of progress are listed along with warning signals and correspondingcorrective measures.Section 7 presents both the general function of project reviews and the specific implementation ofthe five major reviews. Guidelines for auditing a project are also introduced.An appendix, glossary, references, and a bibliography of SEL literature conclude thehandbook.1-1INTENDED AUDIENCEThe intended audience of this document is the software manager, who, as defined in this handbook,serves as either an administrative or technical manager. The positions overlap somewhat in theirinformation needs.The administrative manager has overall responsibility for developing software that meetsrequirements and is delivered on time and within budget. In the SEL environment, a GovernmentTechnical Officer or Assistant Technical Representative (ATR) generally serves in this capacity.Typically, this manager is not involved with the day-to-day technical supervision of the programmersand analysts who are developing the software. The administrative manager will be involved in theactivities listed below; the corresponding handbook sections are listed alongside.Organizing the projectEstimating resources requiredEstimating costsEvaluating documents and deliverablesMonitoring progressEvaluating results of reviews and auditsCertifying the final productSectionSectionSectionSectionSectionSectionSection2334675The technical manager is responsible for direct supervision of the developers. The position isfrequently filled by a contractor manager in the SEL environment; although, on some projects, aGovernment manager will fill this role instead. This person shares some of the activities listed for theadministrative manager, especially with regard to monitoring development progress. The technicalmanagers activities and the corresponding handbook references are presented below. Producing and executing the softwaredevelopment/management plan Estimating costs Scheduling the project Staffing the project Directing the production of documentsand deliverables Using automated management aids Monitoring development progress Supervising technical staff Ensuring software quality Preparing for reviewsSectionSectionSectionSectionSectionSectionSectionSectionSectionSection2333466657A secondary audience for the handbook consists of those who serve a particular peripheral functionbut do not act in either of the two managerial capacities. Two examples of such specific functions areparticipating as an external reviewer at a scheduled review and conducting an audit of the project.Government managers should note that there is no identifiable conflict between the materialpresented in this handbook and major NASA/GSFC standards.1-2SOFTWARE LIFE CYCLEThe process of software development is often modeled as a series of stages that define the softwarelife cycle. In the flight dynamics environment, the life cycle is defined by the following phases: Requirements definition Requirements analysis Preliminary design Detailed design lmplementation System testing Acceptance testing Maintenance and operationAs shown in Figure 1-1, the phases divide the software life cycle into sequential time periods that donot overlap. However, the activities characteristic of one phase may be performed in other phases.For example, although most of the staff effort in analyzing requirements occurs during therequirements analysis phase, some of that activity continues at lower levels in later phases.SRRSSRPDRCDRORRACCEPTANCETESTINGSYSTEM TESTINGIMPLEMENTATIONDESIGNREQUIREMENTS ANALYSISREQUIREMENTSDEFINITIONPHASEDETAILEDDESIGNPHASEIMPLEMENTATION PHASESYSTEMTESTPHASEACCEPTANCETEST PHASEMAINTENANCEANDOPERATIONPRELIMINARYDESIGN PHASEREQUIREMENTSCALENDAR TIMEPHASEANALYSIS PHASEFigure 1-1. Activities by Percentage of Total Development Staff EffortExample:At the end of the implementation phase (4th dashed line), approximately 46% of thestaff are involved in system testing; approximately 15% are preparing for acceptance testing;approximately 7% are addressing requirements changes or problems; approximately 12% aredesigning modifications; and approximately 20% are coding, code reading, unit testing, andintegrating changes. Data are shown only for the phases of the software life cycle for which theSEL has a representative sample.1-3PERCENTAGE OF TOTAL STAFF EFFORTThe life cycle phases are important reference points for the software manager. For example, inmonitoring a project, the manager may find that the key indicators of project condition at one phaseare not available at other phases. Milestones in the progress of a software project are keyed to thereviews, documents, and deliverables that mark the transitions between phases. Management aids andresource estimates can be applied only at certain phases because their use depends on the availabilityof specific information.In the requirements definition phase, a working group of analysts and developers identifiespreviously developed subsystems that can be reused on the current project and submits a reuseproposal. Guided by this proposal , a requirements definition team prepares the requirementsdocument and completes a draft of the functional specifications for the system. The conclusion ofthis phase is marked by the system requirements review (SRR) at which the requirements for thesystem are evaluated.During the next phase, requirements analysis, the development team classifies each specification andperforms functional or object-oriented analysis. Working with the requirements definition team,developers resolve ambiguities, discrepancies, and to-be-determined (TBD) specifications, producinga final version of the functional specifications document and a requirements analysis report. Thisphase is concluded with a software specifications review (SSR) at which the results of the analysis arepresented for evaluation.The baselined functional specifications form a contract between the requirements definition team andthe software development team and are the starting point for preliminary design. During this thirdphase, members of the development team produce a preliminary design report in which they definethe software system architecture and specify the major subsystems, input/output (I/O) interfaces, andprocessing modes. The preliminary design review (PDR), conducted at the end of this phase,provides an opportunity for evaluating the design presented by the development team.In the fourth phase, detailed design, the system architecture defined during the previous phase iselaborated in successively greater detail, to the level of subroutines. The development team fullydescribes user input, system output, I/O files, and intermodule interfaces. An implementation plan isproduced, describing a series of builds and releases that culminate with the delivered software system.The corresponding documentation, including complete baseline diagrams, makes up the detaileddesign document. At the critical design review (CDR), the detailed design is evaluated to determine ifthe levels of detail and completeness are sufficient for coding to begin.During the implementation (code, unit testing, and integration) phase, the development team codesthe required modules using the detailed design document. The system grows as new modules arecoded, tested, and integrated. The developers also revise and test reused modules and integrate theminto the evolving system. Implementation is complete when all code is integrated and whensupporting documents (system test plan and draft users guide) are written.The sixth phase, system testing, involves the functional testing of the end-to-end system capabilitiesaccording to the system test plan. The
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学英语课堂形成性评价与教师教学评价素养提升的互动关系探讨论文
- 中国医药级赖氨酸行业市场前景预测及投资价值评估分析报告
- 节约型定额管理制度
- 茶餐厅采购管理制度
- 青少年心理与家庭教育咨询工作介绍 与案例咨询探讨
- 自动化专业顶岗实习总结
- 自动控制原理典型习题(含答案)
- 财务会计综合卷
- 幼儿园《包装袋上的秘密》课件
- 2025年android组件化面试字节大牛耗时八个月又一力作大牛最佳总结-android 组件化面试
- 上海浦东新区公办学校储备教师教辅招聘笔试真题2024
- 2025年中国水性马克笔行业市场前景预测及投资价值评估分析报告
- 电动汽车充换电站建设资料标准
- JG/T 375-2012金属屋面丙烯酸高弹防水涂料
- 南邮综评面试题目及答案
- 施工现场劳动力调配与材料保障措施
- 学校档口租赁合同提点模式协议书
- 工商业光伏技术方案
- 2025届四川省宜宾市叙州区英语七下期末质量检测试题含答案
- T/CCOA 62-2023大豆油生产技术规范
- 2025国家开放大学《人文英语1》综合测试形考任务答案
评论
0/150
提交评论