软件工程学习笔记1
软件工程学习笔记(1)
CAP1.概述
1.1 软件工程的常见问题
(1)什么是软件?———-程序+软件正常运行的相关文档+配置信息
通用软件:软件描述由自己完成.
定制软件:软件描述由客户提出.
(2)什么是软件工程?———-涉及软件各个方面的一门工程科学.
(3)软件工程和计算机科学的区别?———计算机科学理论是软件工程的的基础.
(4)软件工程与系统工程的区别?——-软件工程是系统工程的一部分.
(5)什么是软件过程?
制作软件产品的一组活动及其结果.
1,软件描述
2,软件开发
3,软件有效性论证
4,软件的进化: 软件必须根据客户的要求变化不断的改进.
(6)什么是软件过程的模型? 软件实际过程的一个抽象
1,工作流模型 描述软件过程中各种活动的序列及输入,输出和相互依赖性.
2, 数据流或活动模型 把软件过程描述成一组活动,每个步骤都完成一种数据处理.
3,角色/动作模型 描述参与软件过程的人所处的角色和负的责任.
通用的软件开发模型
1,瀑布模型 各个阶段独立进行
2,进化式开发模型 描述,开发,有效性论证交替进行的开发方法
3,形式化转换 形式化数学描述->程序
4,基于可复用性的模型 组件复用
(7)什么是软件工程的成本?
软件开发的成本取决与所采用的软件开发方法和软件过程.
(8)什么是软件工程方法?
是软件开发的结构化方法,包括组件:系统模型描述,规则,建议,过程指南.
(9)什么是CASE? 计算机辅助工程软件
(10)什么是优良的软件属性?
可维护性 可以满足客户的要求而变化
可依赖性 包括可靠性,保密性,安全性
有效性 包括响应时间,处理时间,内存利用
可用性
(11)软件工程所面临的主要问题?
1,遗留系统的挑战 升级 维护
2,多样性的挑战 不同类型计算机和系统的存在
3,交付的问题 在不损及系统质量的前提下,缩短大型,复杂系统的移交时间
习题:
1.关于软件成本分布问题,软件不仅仅包括系统的最终用户所能运行的程序,解释为什么这种做法是正确?
答:成本还包括对用户的维护费用以及版本更新的所需要的成本。
2。软件产品应该具有的四个重要属性是那些?另外列举出四个可能有意义的属性?
答:可维护性:软件必须能够不断进化以满足客户的需求变化。
可依赖性:包括可靠性,保密性,安全性。
有效性:软件不要浪费处理器和内存等系统资源。
可用性:用户不用特殊的努力就能操作软件。
3.软件过程模型和软件过程有何区别?给出用软件过程模型改善软件过程的两个途径?
答:软件过程模型是软件过程的简化描述,是对被描述的实际过程的抽象,他包括构成软件过程的各种活动、软件产品和软件工程参与人员的不同角度。
4.解释为什么面向开放的市场销售的通用软件产品的系统测试成本特别高?
答:通用软件需要面向的用户面比较广。软件产品要满足这么多通用用户的需要必须要有大面积的测试(个人答案)。
5.列举CASE工具提供的五种方法支持?
6.除了遗留系统、多样性和快速交付方面的挑战,说出软件工程在21世纪可能面临的问题和挑战?
答:技术创新,多种平台上的适应。