目录
引言
一、软件工程
1.1软件的定义及特点
1.2软件危机
1.2.1产生原因
1.2.2典型表现
1.3软件工程概述
1.3.1软件工程方法学
1.3.2软件工程的基本原则
二、软件过程
2.1软件生命周期
2.2软件过程的定义
2.3软件过程模型
2.3.1瀑布模型
2.3.2螺旋模型
2.3.3喷泉模型
2.3.4快速原型模型
2.3.5增量模型
三、参考答案
3.1第一章课后参考答案
3.1.1练练手
3.1.2动动脑
3.2第二章课后参考答案
3.2.1练练手
3.2.2动动脑
尊敬的读者:
您好!在此次博客中,我将分享一些有关软件工程导论的重要观点和理论。这些内容均摘自清华出版社出版的《软件工程导论》一书。在此,我郑重声明,本次分享的目的是为了传播和普及软件工程领域的知识,绝非抄袭或剽窃。以下为本书的相关信息,以兹证明:
书名:《软件工程导论》
编著:吴艳 曹平
出版社:清华大学出版社
出版日期:2021.2(2022.7重印)
希望本次分享能够为您带来收获,并激发您对软件工程领域更深入的研究。再次感谢您的关注与支持!
敬请期待后续内容,我们将一同探索软件工程的奥秘。
顺祝商祺!
定义:
软件是计算机中硬件相互依存的部分,它不仅包括程序,还包括数据和相关文档,是三者的完整集合。
特点:
软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题。
软件工程方法学包括三个要素,即方法、工具和过程。
目前使用最广泛的软件工程方法学为传统方法学和面向对象方法学。
(1)软件定义 | ①问题定义 | |
②可行性分析 | ||
③需求分析 | ||
(2)软件开发 | Ⅰ系统设计 | ④总体设计 |
⑤详细设计 | ||
Ⅱ系统实现 | ⑥编码和单元测试 | |
⑦综合测试 | ||
(3)运行维护 | ⑧软件维护 |
软件过程(Software Produce)是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。概括地说,软件过程描述为了开发出用户需要的软件,什么人(Who)在什么时候(When)做什么事(What)以及怎么做(How)这些事,以实现某一个特定的具体目标。
1970年,温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到20世纪80年代早期,它一直是唯一被广泛采用的软件开发模型。
按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为可行性研究,需求分析,设计,编码,综合测试,运行维护六个部分,并且规定了这些活动自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
从上一项活动接受该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,并作为输出传给下一项活动,甚至更前面的活动。
因此,对于需求经常变化的项目而言,瀑布模型毫无价值。
瀑布模型如图1图2所示(实线代表开发过程,虚线表示维护过程)
1988年,巴利·玻姆(Barry Boebm)正式发表了软件系统开发的“螺旋模型”,强调了其他模型忽视的风险分析,特别适合于大型复杂且昂贵的系统级应用软件。
螺旋模型沿着螺旋线进行若干次迭代,图3中的四个象限分别代表了制定计划、风险分析、实施工程、客户评估。
在“瀑布模型”的每个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成为一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
该模型中,软件开发过程自上而下周期的各个阶段是相互迭代和无间隙的。
喷泉模型如图4所示
无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限。
略(想了解可查看《软件工程导论》一书)
略(想了解可查看《软件工程导论》一书)
(1) | (2) | (3) | (4) | (5) |
B | B | A | B | C |
(6) | (7) | (8) | (9) | (10) |
A | C | C | A | D |
1.简述结构化方法与面向对象方法的主要特点,如何将两种方法结合在一起,有效开发软件项目?
面向对象方法:
无论使用哪种开发方法,或者是混合哪几种开发方法,都要因地制宜,依据需求分析和系统要求,做出最好的选择或组合。
2.软件工程教材中,经常会叙述发现并改正错误的重要性,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,怎么能在设计阶段就清楚它?”,判断这个观点是否正确,并且给出理由。
【解答】
(1) | (2) | (3) | (4) | (5) |
D | D | B | D | D |
(6) | (7) | (8) | (9) | (10) |
A | A | B | B | C |
说明:螺旋模型适用于内部开发的大型软件(开发周期长、比较容易受到社会因素影响的软件项目),因此,并不适用全部的大型软件。
(1)研究下XP,理解测试如何驱动开发,并举例说明。
【解答】
(2)为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特点,并举例说明。
【解答】
续后文:软件工程导论学习笔记——(2)项目启动阶段(含三四五章课后题答案)
https://blog.csdn.net/Prayer41/article/details/135378751