专业:计算机软件姓名: 学号:
第一章。1、为什么需要学习《软件工程》这门课程?
因为软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。
根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。 软件工程将有能力的人团结在一起,然后把他们变成工人,因为工业化的生产是效率最高的。
这就是根本所在。没有软件工程管理,简直就是乱来,就好象缺乏宏观控制的国家一样,会乱七八糟。
2、对软件危机的认识?
软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机主要表现在:
1) 软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。
2)软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。
3)生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。
进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。
4)用户对“已完成”的系统不满意现象经常发生。一方面,许多用户在软件开发的初期不能准确完整的向开发人员表达他们的需求;另一方面,软件开发人员常常在对用户需求还没有正确全面认识的情况下,就急于编写程序。
5)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量人力,软件成本随着软件规模和数量的剧增而持续上升。
从美、日两国的统计数字表明,2023年度软件成本大约占总成本的90%。
6)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。
3、“软件生存周期”所经历的阶段,各阶段的主要任务是什么?
1)问题的定义及规划。
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2)需求分析。
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。
",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。
3)软件设计。
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
4)程序编码。
此阶段是将软件设计的结果转换成计算机可运行的程序**。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
5)软件测试。
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。
在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
6)运行维护。
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。
软件的维护包括纠错性维护和改进性维护两个方面。
4、软件工程常用模型的特点?
软件工程中,常用的开发模型有四种:瀑布模型、原型模型、增量模型和螺旋模型。
1)瀑布模型包括计划,需求分析、设计、编码、测试、运行维护六个阶段,阶段自上而下,相互衔接,次序固定。瀑布模型具有很强的顺序性和依赖性,即:下一阶段必须以上一阶段的完成为前提。
测试工作是在处于开发后期的测试阶段集中进行的,测试中可能发现大量的错误,因此必须返回需求分析、设计或编著码中定位问题,而以前认为已完成的各阶段必须修改,从而代价昂贵。
2)原型模型的主要思想是先通过需求分析并建立一个软件系统的概貌原型,通过用户与开发者的评价和判断,不断的对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统。开发过程中可能会多次生成更完善的原型,测试人员要对每个原型进行测试,并且在每个原型中投入的工作量及测试目标也将有所不同。
3)增量模型是软件企业在面对紧迫的市场限期时常用的开发模型。其思路是:既然不可能一下推出一个功能完善的软件,那就先推出一个具有最迫切需要功能的的版本,然后渐进地增加功能开发逐步完善的软件版本。
4)螺旋型开发模型结合了瀑布模型和原型模型的特点,并且加入了二者所忽略的风险分析。螺旋模型的每个周期都包含制定计划,风险分析、实施工程和评审四个阶段。开发过程每迭代一次,螺旋线就增加一周,软件开发前进一个层次,系统生成一个新版本,软件开发时间与成本又有新投入,最后得到一个用户满意的软件版本。
第二章。2、在网上查找、浏览项目团队组织结构,并**你认为典型的软件项目团队组织结构图?
项目经理团队(program management team):
设计项目经理(feature design pm): 负责具体的产品设计,写design spec。pm 队伍中,80%的pm是做这个。
发行项目经理(release pm): 负责整个项目的流程和进度管理,制定进度表等,协调整个团队的工作。大的pm 队伍中有一人专门做这个。
这是整个项目的领头人。大型的项目的成功与否,常常靠得力的发行经理的领导。
协助项目经理(supporting pm): 负责其它产品发行需要照顾到的事情,如客户交流、和市场开发人员交流、负责beta program (初版试行)、等等。大的pm 队伍中少不了这样的人。
20%的pm是做这个。
开发团队(development team):
开发团队领导(development manager): 负责管理各个开发小组,并对开发编程的工作做总体的规划。
开发组长(development lead): 负责管理开发工程师,也参加对开发编程的工作做总体的规划。
开发工程师(develop engineer, or developer): 负责具体的编程开发。
构架师(architect): 大的产品团队有一两个资深工程师专门做整体系统的设计规划。
测试团队(quality assurance or test team):
测试团队领导(qa manager): 负责管理测试小组
测试组长(test lead): 负责管理测试工程师, 制定测试计划等
测试工程师(tester or test engineer): 负责具体的测试工作
测试开发工程师(developer in test, or sted): 负责测试工具的开发。
产品可用性团队(usability team):
产品可用性工程师 (usability engineer): 做使用性能的调查和测试,采访客户或将客户邀请来做调查
界面设计师(ui designer): 负责具体的界面设计
产品设计师(product designer): 负责产品的总体设计, 特别是硬件产品。
以上这个团队并不是所有的产品队伍都有。比较小的队伍就没有这些专人,有的时候向别的队伍借用,或雇佣临时工。
软件工程第2章作业
一 填空题 每小题2分,共22分 1 可行性研究实质上是进行一次简化 压缩了的 需求分析和设计。2 可行性研究的三个方面是技术可行性 社会可行性和 经济可行性 3 可行性研究的第一个具体步骤是 确定项目的规模和目标 4 若年利率为i,不计复利,p元在n年后的价值f是 p 1 n i 5 整个生存周期...
第2章软件工程答案
第2章。软件工程。一 选择题。1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了 a a。软件危机。b。软件工程c 程序设计革命d。结构化程序设计。2。软件工程的概念是为解决软件危机而提出的 这句话的意思是 c a强调软件工程成功解决了软件危机的问题。b说明软件危机的存在总是使...
软件工程作业2答案
一 单项选择题。在每小题列出的四个备选项中只有一个是符合题目要求的,请将其 填写在括号内。错选 多选或未选均无分。1 在软件开发中,是指对将要开发的系统的开发成本进行估算,然后与可能取得的效益进行比较和权衡。成本 效益分析b.可行性分析。c.结构化分析d.软件需求分析。2 螺旋模型是一种将瀑布模型和...