我要感谢威奇托州立大学,特别是我的系主任 Mary Edgington 和我的院长 Phillip D. Thomas,他们让我能够在软件工程学院预修订本书的原始版本。SEI 的教育预备知识项目主任 Norm Gibbs 确保我有资源和鼓励来完成这项工作,包括赞助学院举办一次配置管理研讨会。卡内基梅隆大学的学生助理 Mark Chweh 进行了最初的书目搜索。另一位学生助理 Kate Harvey 跟踪了书目,提供了编辑协助,并为配置管理研讨会撰写了一份出色的摘要。 Allison Brunvand 和 Oliver Martin 帮助准备幻灯片,使教学技巧 8 研讨会顺利进行。教学支持 8 我特别感谢研讨会的参与者。软件支持 8 Brad Brown、Ted Keller、Dick Parten 和 Bill Tindall 均来自企业界,他们慷慨地贡献了自己的时间和经验。Jim Collofello 和 Bob Glass 中断了他们自己的课程模块的工作,以参与其中。时任 SEI 首席科学家的 Mary Shaw 也继续参与了研讨会。
本课程模块涉及软件需求的定义和表示技术。软件需求的定义——确定要开发什么的软件工程过程——以及根据该定义生成的产品与软件规范:框架相结合。该过程涉及以下所有内容:[Rombach90] 并使用该模块中介绍的概念框架和术语。该术语总结在图 1 中。两个模块都确定了软件需求过程的两种产品:面向客户/用户的软件需求(“C 需求”)和面向开发人员的软件需求(“D 需求”)。这些文档的主要目的是就要制作的内容达成一致。然而,它们的形式在很大程度上取决于软件设计过程中不同参与者的沟通需求。D 需求的开发细化并增强了 C 需求,以便提供支持软件设计以及随后根据需求验证所开发的软件所需的信息。软件需求的主题在软件工程教育中往往得不到太多关注,尽管它的重要性得到了广泛认可。 由于该模块对软件设计的依赖,软件需求的重要性得到了广泛认可。例如,在学习本模块之前,应该先阅读 Brooks [Brooks87] 的 lum 模块。写道:本模块反映了软件开发的两个强烈观点:构建软件系统最难的部分是决定究竟要构建什么。概念工作中没有其他部分像建立详细的技术要求那样困难。 • 软件需求定义过程高度依赖于需求定义过程。没有其他部分比定义过程更困难,因此如果做错了,会削弱最终的系统。没有其他部分比定义过程更困难,因为定义过程的目的是达成一致,以便以后纠正。了解要生产什么。本模块的目的是提供对软件需求领域的全面了解,以便更广泛地了解该主题领域。该模块提供了解需求定义过程所需的材料,并且受先前系统工程工作的约束。它强调了在需求定义期间必须做什么,独立于
鉴于北约管道委员会会议从 1957 年 5 月 27 日推迟到 1957 年 6 月 3 日,原定于后者举行的 CEPPC 会议现已取消,75