什么是软件工程

软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

软件工程是计算机软件的一个分支学科,主要研究软件开发全过程中的各种技术;

主要包括:

1、软件开发的原则与策略,

2、软件开发方法与软件过程模型,

3、软件标准与软件质量的衡量;

4、软件开发的组织与项目管理,......

软件工程是计算机软件的一个分支学科,主要研究软件开发全过程中的各种技术;

主要包括:

1、软件开发的原则与策略,

2、软件开发方法与软件过程模型,

3、软件标准与软件质量的衡量;

4、软件开发的组织与项目管理,

5、软件版权。

它一般应用于大型的软件系统的开发。

其开发团队包括:用户、项目负责人、分析员、初高级程序员、资料员、操作员。

软件工程是指利用工程的概念、原理、技术和方法来开发、维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的

最好的技术方法结合起来,指导计算机软件的开发和维护的工程学科。

软件工程强调使用生存周期方法学、结构分析和结构设计技术以及新兴的面向对象分析和设计技术。

生存周期学(SDLC--系统开发生命周期)是指从软件开发项目的提出到软件产品完成使命而报废的整个时期;

分为八个阶段:

1、问题定义:问题是什么? 完成规模和目标的报告。

2、可行性研究:有可行性么?是否值得去做? 完成系统的实际模型,数据流图,成本/效益分析。

3、需求分析:系统必须做什么? 系统逻辑模型,数据流图,数据字典,算法描述,需求说明书。

4、总体设计:如何解决此问题? 可行的解法,系统流程图、成本/效益分析,推荐的系统结构,层次图 /结构图。

5、详细设计:如何实现此系统? 编码的规格说明。

6、编码和单元测试:正确的程序模块。 程序清单,单元测试方案和结果。

7、综合测试:符合要求的软件。 综合测试方案和结果,完整一致的系统配置。

8、软件维护:持久的满足用户。 完整准确的维护记录,需求的软件。

需求分析阶段:客户的业务活动进行分析,明确在用户的业务环境中,软件系统应该做什么。客户的要求一般包括"功能 要求、性能要求、可靠性要求、安全保密要求、开发费用、开发周期及可使用的资源"。

用户的业务需要经用户与软件人员讨论后,理解用户的要求,并将双方共同的理解明确的写成一份文档---需求说明书。

需求说明书主要有三个作用:1、作为用户和软件人员之间的合同,为双方相互了解提供基础。2、反映问题的结构,可以作为软件人员进行设计和编程的基础。3、作为验收的依据,即作为选取测试用例的依据。

需求说明书应该达到完整、一致、精确、无二义,既简明易懂并易于修改和维护。

在需求阶段、还应考虑设计的限制"成本、进度、可用的软硬件资源";客户验收准则"客户需求的细化";编写"初步用户手册"及复查需求说明书。

时间: 2024-10-13 10:15:36

什么是软件工程的相关文章

软件工程——《构建之法》读后困惑

通过一周多对这本新书的快速阅读,发现自己存在很大的问题, 如下: 一.软件工程这门课与JAVA,C++等这些面向对象程序设计应该怎样对接起来? 二.软件工程这门课,除了在上课的时候认真跟着老师的思路走,课后空闲时间,我们该怎样单独,或者在团队里怎么学习? 三.提高我们这门课的能力是通过敲代码,还是提高自己的逻辑思维能力? 四.在即将到来的人工智能时代,软件工程师这个职业是否能一直活下去?

软件工程第二次作业--师兄采访

我采访的是李权师兄,虽然之前也有人采访过他,问题都是同样的问题,不过我挖掘出了和其他同学不一样的信息. 问题:    师兄,当时你们做的项目是什么,有多少用户, 现在还有人用吗? 李权师兄: 当时我们的项目名是约跑APP,当时用户有8人.在用户的手机上测试通过,能让用户找到一起跑步的小伙伴.现在已经没有人用了. 追问:该app给用户提供了什么样的服务? 李权师兄:app能提供给用户认识新朋友的平台.通过app,用户可以约人一起跑步. 第二个问题:师兄这个项目能否给我们团队继续开发,源代码还有么?

软件工程进阶

一直向往 it 行业, 不敢说有很深入的了解, 但一直有想法, 想做自己想做的, 想有我的 team 然而什么都计较那么清楚, 最后把自己吓傻了, 也不去做, 这种结局真的最没什么意思了, 曾经还有很多人还对未来充满决心, 2年内一些人陆续放下了梦想和计划, 上课,打游戏, 吃饭这些是多数人的轨迹, 我觉得可怕, 于是更坚持自己, 尽管知识浅薄, 但也在用心学习每个有帮助的课程, 老师说得对, 实际工作,沟通能力很重要, 软件工程这门课程我同样会用心, 希望有一天,以我之才,何须屈人之下. 也希

软件工程课程设计之XMAL

前言 最近做软件工程课设,因为需要用到可视化界面,经过仔细考察,在小组成员的建议下,最后决定使用XMAL做前台. 题目分析 题目:物理环境包括温度.湿度.大气压力.光照等参量.软件能够以图形化方式,实时显示各参量的状态,比如,显示温度的实时曲线图.具有参量报警功能,能够提供出行意见,具有历史数据查询功能.假设数据以存放在数据库中或文件中. 题目要求用图形化方式实时显示各参量状态,所以前台程序务必足够美观,选用XAML设计窗口界面,C#构建后台.这里主要总结一下XMAL.(我用到的,其实很少很水,

【集美大学1411_助教博客】2017软件工程开跑啦。。。

一.自我介绍 各位同学大家好,我是各位同学本学期软件工程这门课的助教,我叫郑蕊,现工作于吉林省长春市.很荣幸能再一次为<构建之法>担当助教,在之前担当助教的过程中,我已经获益良多,在此还是要感谢周老师和邹老师,感谢两位老师给我树立的优秀榜样,也感谢两位老师对我的教导和引导.很高兴这次能担当集美大学软工课的助教,在15年冬,我曾去过集美大学,那真的是一所风景非常优美的院校,从暴雪的东北到达绿意盎然的夏门,在集美大学的校园中漫步真是一件让人享受的事.希望本学期能和集美大学的同学们共同探讨软件工程,

云计算对于传统软件工程的影响

云计算对传统软件工程的影响 传统软件工程的概念 传统软件工程采用的一是结构化泛型,基本阶段按顺序如下:需求阶段.规格说明阶段.设计阶段.实现阶段.集成阶段.维护阶段.退役等,这是一种适用于代码量适中的传统软件开发方式. 而随着社会进步与技术发展,软件越来越复杂,计算越来越繁琐,代码量也越来越大,存储和处理的信息越来越多,软件规模也越来越大.而传统的结构化设计方法在大规模的软件的开发组织和维护方面困难重重,软件的复用性能也不好.于是发展出了云计算的概念. 云计算的概念 云计算是以数据为中心的一种数

敏捷软件开发VS传统软件工程

敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中"人"的作用. 本文将介绍敏捷软件开发的历史背景与发展,

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下-------------答题者:徐潇瑞

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下 - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗? - 这个项目能否给我们团队继续开发,源代码/文档还有么? - 项目开发有什么经验和教训 - 对学好软件工程有什么建议 写成一个博客   #团队博客作业2 根据老师的作业要求,我们采访了以前本科认识的一个同学,他在读本科的时候出去实习,参与了一些项目.他参与了手机外卖app的开发,根据他的回答,当时用户有1

软件工程学期总结

软件工程. 我觉得软件工程的知识其实就是一个软件开发的方法论,给你一套前人总结出来的经验教训,让你少走弯路.做一件项目之前来个“可行性分析”(包括目的.要求和自己能力的估算) 这可能是我做事情之前缺少的一个步骤,然后到最后连自己要做什么都忘记了.这是做事的前提:先看事情是否应该做,是否值得去做,能否做成功.最后再去努力实现. 一个学期的软件工程,涉足java,web前后端和安卓...一个学期下来就一个感受:TM忙的屁滚尿流的.

《软件工程》课程总结

随着时间的推移,学期进入了尾声,我们的软件工程课也将告一段落.下面是我对这学期进行的总结: 通过这16周的学习,我收获了很多,学习上的漏洞.同学之间的沟通及配合.自己处理事情的能力和开发程序的宝贵经验.在上课期间,老师说过我们的软件工程课上所讲的东西和毕业设计有关,例如:可能性分析和需求分析.就拿需求分析来说,在一个程序的开发初期所要做的就是深入的了解分析形成需求分析.通过用户调研了解用户需求,明确用户想要用这个程序干什么,适用于什么人群去使用,之后再通过需求分析框架能明确程序的设计目的,只有通