欢迎来到天天文库
浏览记录
ID:14775766
大小:525.05 KB
页数:11页
时间:2018-07-30
《软件需求分析重点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、什么是软件工程:用来制造软件的工程化的方法软件的特性:软件是抽象的,而不是物理的—看不见摸不到软件是极其复杂的软件的手工开发方式、智力密集型对计算机硬件依赖性软件是被开发或设计的,而不是被制造的软件不会磨损和老化,但维护困难软件的高成本软件危机的表现:•对软件开发成本和进度的估算很不准确,甚至严重拖期和超出预算;•无法满足用户需求,导致用户很不满意;•质量很不可靠,经常失效;•难以更改、调试和增强;•没有适当的文档;•软件成本比重上升;•软件开发生产率跟不上计算机应用迅速深入的趋势。什么是软件神话,它的危害:
2、软件神话(softwaremyths):关于软件及其开发过程的一些说法被人盲目相信•影响到几乎所有的角色:管理者、顾客、其他非技术性的角色、具体的技术人员;•看起来是事实的合理描述(有时的确包含真实的成分)、符合直觉,并经常被拿来做宣传;•实际上误导了管理者和技术人员对软件开发的态度,从而引发了严重的问题;软件工程面临的挑战有哪些:•遗留系统(Legacysystem)•多年以前开发出来的软件,在长期使用过程中不断的被人修改;•日益增加的维护成本和修改困难已经成为令人头疼的问题;•例如:Y2K问题;•高可信软
3、件开发•关注软件的正确性、可靠性、安全性、保密性;•以形式化方法为发展趋势,通过保证模型的可信度来保证系统的可信度;•异构系统的集成与互操作•采用不同技术开发出来的系统,运行在不同的硬件平台和操作系统上,它们之间需要进行自动的数据交换;•更快的交付时间•顾客要求快速响应需求,而软件开发的周期难以有效缩短;Ondemand(随需应变)•软件开发方式的变化•Web2.0、opensource•基于Internet的协同开发模式软件工程的范围和目标:•范围:•软件开发过程(设计、开发、运行、维护)•软件开发中应遵循
4、的原则和管理技术•软件开发中所采用的技术和工具•目标:•高质量•按时交付•控制成本•满足用户需求软件工程的四大组成部分:工具、方法、过程、质量第二章核心概念与思想功能性需求和非功能性需求及其特性:功能性需求(FunctionalRequirements):系统能够完成所期望的工作的能力•完备性:软件能够支持用户所需求的全部功能的能力;•正确性:软件按照需求正确执行任务的能力;•健壮性:在异常情况下,软件能够正常运行的能力容错能力;恢复能力;——正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外
5、的行为。•可靠性:在一定的环境下,在给定的时间内,系统不发生故障的概率,或者是快速从错误状态恢复到正确状态的能力。非功能性需求(Non-FunctionalRequirements):系统能够完成所期望的工作的性能与质量•性能:软件的“时间-空间”效率;•易用性:用户使用软件的容易程度,用户容易使用和学习;•清晰性:易读、易理解,可以提高团队开发效率,降低维护代价;•安全性:在对合法用户提供服务的同时,阻止未授权用户的使用;•可扩展性:软件适应“变化”的能力,系统很容易被修改从而适应新的需求或采用新的算法、数
6、据结构的能力;•兼容性:不同产品相互交换信息的能力;•移植性:是软件不经修改或稍加修改就可以运行于不同软硬件环境(CPU、OS和编译器)的能力;•经济性:开发成本、开发时间和对市场的适应能力。•商业质量:上市时间、成本/受益、目标市场、与老系统的集成、生命周期长短等。软件工程的7条原理:•用分阶段的生命周期计划严格管理•坚持进行阶段评审•实行严格的产品控制•采用现代程序设计技术•结果应能清楚地审查•开发小组的人员应少而精•承认不断改进软件工程实践的必要性软件工程的几个核心思想:复用(Reuse):•在一个新系
7、统中,大部分的内容是成熟的,只有小部分内容是全新的。•构造新的软件系统可以不必每次从零做起;•直接使用已有的软构件,即可组装成新的系统;•复用已有的功能模块,既可以提高开发效率,也可以改善新开发过程中带来的质量问题;分而治之(DivideandConquer):•将复杂问题分解为若干可独立解决的简单子问题,并分别独立求解,以降低复杂性;•然后再将各子问题的解综合起来,形成最初复杂问题的解。折中(Trade-off):•不同的需求之间往往存在矛盾与冲突,需要通过折中来作出的合理的取舍,找到使双方均满意的点。第三
8、章软件过程模型理解黑盒与白盒各种模型的优缺点及英文缩写如RAD,RUP(瀑布模型、原型模型、RAD)•瀑布模型(waterfallmodel)•增量过程模型(incrementalprocessmodel)•增量模型(incrementalmodel)•快速应用程序开发(RapidApp.Dev.,RAD)•演化过程模型(evolutionarymodel)•螺旋模型(spiralmodel)•原型
此文档下载收益归作者所有