REG NASA-LLIS-0838-2000 Lessons Learned Software Design for Maintainability.pdf
《REG NASA-LLIS-0838-2000 Lessons Learned Software Design for Maintainability.pdf》由会员分享,可在线阅读,更多相关《REG NASA-LLIS-0838-2000 Lessons Learned Software Design for Maintainability.pdf(7页珍藏版)》请在麦多课文档分享上搜索。
1、Best Practices Entry: Best Practice Info:a71 Committee Approval Date: 2000-04-20a71 Center Point of Contact: JSCa71 Submitted by: Wil HarkinsSubject: Software Design for Maintainability Practice: Apply maintainability concepts to development of software in the early phases of the lifecycle.Programs
2、that Certify Usage: This practice has been used on International Space Station Program.Center to Contact for Information: JSCImplementation Method: This Lesson Learned is based on Maintainability Technique number DFE-6 from NASA Technical Memorandum 4628, Recommended Techniques for Effective Maintai
3、nability.Benefit:By designing software products that are maintainable we can update and enhance fielded software much faster and at lower cost. Software can be reused, thus alleviating costly update time. Also, any faults found in the software can be easily diagnosed and corrected, reducing downtime
4、 and meeting delivery schedules. Software maintainability ensures system availability by reducing system downtime.Implementation Method:Provided by IHSNot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IntroductionRecently, software products have exhibited a dramatic
5、growth in size, complexity, and life cycle cost (LCC). In a large system, software LCC typically exceeds that of hardware, with 80-90 percent of the total system cost going into software maintenance to modify the delivered program to meet the changing and growing needs of users. The total system cos
6、t includes hardware, software, acquisition, development, and deployment costs.Changes over the life of a program are inevitable, even if the program has met all its design requirements. Software changes are needed to adapt to increased functional requirements and different system configurations brou
7、ght about by these changes.One of the most urgent concerns in the computer industry is the need to maintain and enhance the software product at faster rates and at lower costs. To meet this objective, better, more maintainable software must be designed.Maintainable SoftwareMaintainable software, whi
8、ch facilitates the correction of errors and deficiencies, can be expanded or contracted to satisfy new or changing requirements, which may include enhancing existing functions, modifying for hardware upgrades, and correcting code errors. The means of achieving this goal depends on not only one techn
9、ique, but a combination of many tools and techniques, including the following:a. Early planning: anticipating what and how programs might be modified at a later stage.b. Modular design: defining subsets and simplifying functionality (i.e., one module performs only one function).c. Object-oriented de
10、sign: encapsulating both methods and data structures to achieve a higher level of independence than that of modular design.d. Uniform conventions: facilitating error detection and debugging.e. Naming conventions: providing understandable codes.f. Coding standards, comments, and style: enhancing read
11、ability of the program.g. Documentation standards.h. Common tool sets.i. Configuration ManagementIt should be noted that topics d through h can all come under the classification of configuration management, which as a subject in and of itself is very important to maintainability, but is listed by it
12、self to show importance.Early PlanningProvided by IHSNot for ResaleNo reproduction or networking permitted without license from IHS-,-,-As with anything else, early planning puts design problems into perspective, provides good strategy, and is the most cost-effective way for modifying or adding feat
13、ures to software products at some later time. Early in the definition phase, expected changes should be identified and prioritized so that their considerations can result in an architecture receptive to change.The system functionality should be decomposed into manageable segments for which software
14、modules may be built. The format of these modules should be standardized so that code can be added, deleted, or modified to incorporate expected as well as unexpected changes. This helps to ensure that minimum interface alterations will be required to implement a change. Also, some particularly vola
15、tile areas should have their parametric values stored in databases to facilitate their change. Identifying expected changes early in the definition phase, and making allowances for unexpected changes, makes for a more maintainable software product.Configuration ManagementConfiguration management of
16、software is probably the single most important management and maintainability concept utilized in software development. Utilization of coding standards, documentation standards, release standards, common languages and other methods will provide for good configuration management. A plan should be dev
17、eloped very early in the development cycle for managing the configuration of the software under development, and that plan should be followed rigorously. If configuration management breaks down, the code under development is doomed to be extremely troublesome when released for operations.Modular Des
18、ignModularized software is best structured so that high probability changes do not affect the interface of widely used modules. However, one of the most commonly encountered errors is when two or more simple functions are combined into one module because the functions seem too simple to separate. Fo
19、r example, one might be tempted to combine synchronization and message sending and acknowledgment in building an operating system. The two functions seem closely related and for the sake of reliability one may insist on a “handshake“ with each exchange of synchronization signals. If later an applica
20、tion is encountered in which synchronization is needed more frequently, it may be found that there is no simple way to strip the message sending routine away from he synchronization routines.The irony of such a situation is that the mechanism could have been built effectively and separately from a s
21、impler mechanism.Modular design also provides reusable code and reduces redundant coding that might occur in many similar functions. For example, a generic input/output routine will save coding time and make it convenient for users to retrieve and use the module. Moreover, the modules can be saved i
22、n a software repository; e.g., FORTRAN Mat-Lib, and made available to the public.Provided by IHSNot for ResaleNo reproduction or networking permitted without license from IHS-,-,-Identifying potentially desirable modules, however, is a demanding intellectual exercise in which the software designer f
23、irst searches for the minimal module that might conceivably perform a useful service and then searches for a set of minimal increments to the systems. Each increment is small-sometimes so small that it seems trivial.The minimalist approach seeks to avoid a module that performs more than one function
24、 as discussed above. Identifying minimal modules is difficult, however, because minimal system programs are not usually requested. Minimal modules are useful if the software family is going to be developed but are not usually worth building by themselves. Similarly, maximum flexibility is obtained b
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- REGNASALLIS08382000LESSONSLEARNEDSOFTWAREDESIGNFORMAINTAINABILITYPDF

链接地址:http://www.mydoc123.com/p-1018484.html