软件工程:(一)软件生存周期与开发模型

简介:

一.软件生存周期

    定义:一款软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期成为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品淘汰的全过程。传统的软件生存周期一般可分为一下阶段:

    1.制定计划:确定要开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;

    2.需求分析和定义:对待开发软件提出的需求进行分析给出详细的定义;编写软件需求说明书;

    3.设计:概要设计,把各项需求转换软件的体系结构;

    4.编码;

    5.测试:软件测试可以分为静态测试和动态测试(上机调试)。单元测试,查找各模块在功能和机构上存在的问题并加以纠正;组装测试,将已测试过的模块按一定的顺序组装起来;

    6.运行与维护。

    软件生存期也可以分为三个大阶段:计划阶段;开发阶段和维护阶段。

二.软件开发模型              

    1.瀑布模型:传统软件模型,对于瀑布模型有如下简介:

    思想:从制作时间上按工序把问题化简,将功能实现与制作分开便于分工协作;

    优点:奠定了软件工程方法的基础;流水依赖,便于分工协作;推迟物理实现,易于修改文档,有复审质量保证;

    不足:与用户见面晚,成功率低。一般为25%;

    适用范围:适用于系统要求明确的系统,各种应用软件的开发均可使用。

                            

                                                              瀑布模型

    2.原型

    基本思想:允许从部分需求出发,先建立一个不完全的系统,通过测试这个系统,进一步使系统扩充和完善;

    优点:开发的始终开发人员和用户否共同参与,有问题可以随时修改,从而很好地满足了用户的需求;

    适用范围:适用于那些知识型软件系统的开发;

    特点:从整体结构上不如瀑布型清晰;从软件的文档不如瀑布型的划分严格;周期长,成本高;与用户见面快,开发效率高。

                                     

                                                                    原型

    3.渐增模型:基于原型,其简介相同。

                                      

                                                                       渐增型

    4.螺旋模型

    沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:

    指定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

    风险分析:分析所选方案,考虑如何识别和消除风险;

    实施工程:实施软件开发;   

    客户评价:评价开发工作,提出修正建议。

    思想:从软件需求的形式规格说明出发,经过一系列的程序变化,得到最终的结果;

    特点:有严格的数学理论和形式化的救赎支持,但目前在研究和试验阶段,不能使用;

    不足:多次原型反复并增加风险评估的开发。 

                                       

                                                                             螺旋型


    5.喷泉模型

    采用迭代的方式,重复演进,无间隙,各阶段间无明显界限,认为软件的各个周期是相互中谍的和多次反复的。

                                       

                                                                       喷泉型

三.知识梳理

    通过对于软件工程视频的学习,再一次感觉到了软件工程的重要性,其概论一章节讲述了软件的生存周期和软件开发的模型,对于软件的开发过程和如何能够更好地了解和设计软件做了很好地阐述。软件工程,我们必修的一门课程,很值得我们去历练,也希望在接下来的时间里,多做一些这方面的功课。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
inference
【9月更文挑战第11天】
228 11
|
9月前
|
供应链 算法 安全
探索区块链技术中的隐私保护机制
探索区块链技术中的隐私保护机制
345 27
|
9月前
|
存储 缓存 API
电商行业中 API 接口的常见问题和解决方法
本文探讨了电商行业中API接口的常见问题及解决方法。涵盖数据准确性(如数据不一致、数据缺失)、性能问题(如响应时间过长、吞吐量不足)、安全问题(如身份认证与授权、数据泄露风险)和兼容性问题(如接口版本兼容性、系统兼容性)。通过优化数据同步机制、缓存策略、网络配置、服务器负载均衡、代码逻辑,以及采用安全的身份认证方式和加密技术,结合实际代码示例,帮助开发者提升API接口的稳定性和安全性,确保电商业务顺利运行。
399 11
|
8月前
|
缓存 视频直播
flutter3-dart3-dymall原创仿抖音(直播+短视频+聊天)商城app系统模板
基于最新版flutter3.27+dart3.x+Getx+mediaKit原创实战研发抖音app带货商城项目。集成了直播+短视频+聊天三大功能模块。实现了类似抖音app首页全屏沉浸式联动左右滑动页面模块、上下滑动短视频。
277 1
|
9月前
|
人工智能 自然语言处理 语音技术
《AI赋能鸿蒙Next:为特殊人群打造无障碍交互新体验》
在科技飞速发展的今天,鸿蒙Next设备借助人工智能技术,显著提升了特殊人群的无障碍交互体验。针对视障人群,提供精准屏幕朗读、视觉辅助智能问答和导航避障辅助;面向听障人群,实现AI声音修复、实时字幕与语音转文字;助力语言障碍者和老年人群体,通过AI优化交流与操作体验。开发者可利用鸿蒙Next的AI能力,深入了解用户需求,进行测试与优化,共同创造友好、便捷的无障碍环境,让特殊人群更好地融入数字社会,享受科技带来的美好生活。
428 8
|
9月前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
探索自动化测试在软件开发生命周期中的关键作用
在当今快节奏的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市时间的重要工具。本文深入探讨了自动化测试在软件开发生命周期(SDLC)各个阶段的应用和效益,包括需求分析、设计、编码、测试和维护等环节。通过具体案例分析,展示了自动化测试如何帮助团队提高测试效率、减少人为错误并缩短产品迭代周期。文章还讨论了实施自动化测试时面临的挑战,如选择合适的工具、编写可维护的测试脚本和处理动态变化的需求,以及如何克服这些挑战的策略。最后,提出了自动化测试的未来趋势,强调了持续集成/持续部署(CI/CD)流程中自动化测试的重要性,以及人工智能和机器学习技术在自动化测试领域的潜力。
258 14
|
11月前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗健康领域的应用
【10月更文挑战第25天】 本文深入探讨了人工智能(AI)技术在医疗健康领域的现状与未来趋势。通过对AI技术在疾病诊断、治疗方案优化、患者管理等方面的应用案例分析,揭示了AI如何助力提高医疗服务效率和质量。文章还讨论了AI技术面临的挑战,包括数据安全、伦理问题以及技术普及的障碍,并提出了相应的解决策略。通过本文,读者将对AI在医疗健康领域的潜力和挑战有一个全面的认识。
361 2
|
12月前
|
存储 IDE 开发工具
易语言基础功能
易语言基础功能
|
12月前
|
数据采集 机器学习/深度学习 人工智能
【大语言模型】人类反馈在大语言模型对齐中的可靠性有多高?
当今的对齐研究大多集中在设计新的学习算法上,使用的是如Anthropic-HH这样的数据集,这些研究假设人类反馈数据本质上是可靠的。然而,对于人类反馈的定性不可靠性及其对对齐的影响,关注甚少。为了填补这一空白,我们进行了一项全面研究,并提供了对人类反馈数据的深入分析。
213 4