软件工程:理论、技术及实践 课件 第1章 软件工程概述_第1页
软件工程:理论、技术及实践 课件 第1章 软件工程概述_第2页
软件工程:理论、技术及实践 课件 第1章 软件工程概述_第3页
软件工程:理论、技术及实践 课件 第1章 软件工程概述_第4页
软件工程:理论、技术及实践 课件 第1章 软件工程概述_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程

SoftwareEngineering

浙江工业大学计算机科学与技术学院共享“小黄Y”缺少专人维护车子使用的情况变差可正常使用自行车数量减少。校区间分布不均衡没有经费可以用于校区间自行车搬运捐赠车子来源,设定唯一编号定期检查,统计加锁,开展免费租用服务,允许走出校门。限制借还服务、异地还车网络版,校园地图

指示服务。校网服务移动端两年后,经费所剩无几,原开发、管理的同学退出协会。同学有意见共享单车普及,购置单车同学逐渐变少,“小黄Y”服务是否需要继续坚持下去?谁来支付自行车维修的费用?谁来维护这个功能愈见增多的代码呢?这个学生社团组织维护的代码可以称之为软件吗?可以称这样的开发和维护工作为一个软件工程项目吗?它与现在城市共享单车系统会有哪些差别呢?共享“小黄Y”课程教学目标1.掌握软件工程和软件开发模型的基本概念,并了解软件开发相关技术标准。2.掌握软件需求分析、设计概念和一般性过程,能够运用这些知识对复杂软件系统进行需求分析、模块划分和详细设计。3.掌握面向对象的软件项目开发特点以及项目管理方法,增强编程实践、软件测试与维护。4.掌握UML建模技术,能够在软件工程过程中使用常用建模工具对复杂软件系统进行需求分析和设计。5.掌握软件工程需求、分析、设计等相关文档的编写。6.掌握软件过程的管理和质量控制,以及软件项目的计划、可行性分析和成本周期估算等知识。

第1章理解软件工程软件的发展1软件的特性和分类2软件工程的起源3软件团队5软件质量467软件工程的领域知识软件工程师的职业道德1.1软件的发展思考5个问题:我们用的是什么类型的计算?我们需要保存什么类型的信息或数据?对于需要长期保留的信息,哪些存储方法最合适?面对复杂的选项或决策,哪些分析方法对我们有帮助?在进行数据与知识的交流时,有哪些最佳方法?提示:纵览计算机和软件逐步用于解决这些问题的过程,从大历史观的角度来考虑这5个问题。软件发展史?(课后阅读《软件工程通史》,在阅读基础上要求总结近20年世界软件发展,以及中国软件发展)。软件的特性和分类无形性:逻辑实体,没有物理形态,通过运行表示智能性:凝聚大量人类脑力劳动抽象性:逻辑实体的抽象性,开发的抽象性系统性:有机整体复杂性:服务于各种行业可复制性:拷贝演化性:环境、需求和技术变化1.21.2.1软件的特性软件特性和分类系统软件应用软件支撑软件可复用软件1.21.2.2软件的分类按照软件的作用分类软件特性和分类商业软件公共软件共享软件自由软件1.21.2.2软件的分类按照版权保护标准分类1.3软件工程的起源1.3.1软件危机通常,把计算机软件开发和维护过程中所遇到的一系列严重问题称为“软件危机”。如今软件开发技术已经有了很大的进步,但是随着软件规模的不断扩大,软件需要解决的问题越来越复杂,“软件危机”依旧存在。考虑到“软件危机”的周期长且难以预测,一些人将“软件危机”称为“软件萧条”。1.3软件工程的起源开发者与用户沟通存在障碍随着软件规模逐渐增加,相应的软件复杂性也呈指数型升高缺乏有效的经验和数据积累以及估算工具来制定有效的计划项目内部缺乏管理经验软件危机的典型表现1.3软件工程的起源软件产品的质量低下软件通常没有文档资料,或者文档资料不够完备软件危机的典型表现1.3软件工程的起源1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”1990年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:①应用系统化的、规范的、可量化的方法,来开发、运行和维护软件,即将工程化方法应用于软件;②对①中各种方法的研究。1.3.2软件工程的定义1.3软件工程的起源软件工程是指导计算机软件开发和维护的工程性学科。以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并有效地维护它,这就是软件工程。1.3软件工程的起源软件过程是指生产软件产品的一组活动、动作、任务的集合。活动主要是实现较为宽泛的目标,动作包含了主要工作制品生产过程中的一系列任务,任务则关注小而明确的目标,能够产生实际的制品。图1-2概念性软件开发框架1.3.3软件过程软件质量软件质量是“反映软件满足明确和隐含的需求的能力的特性总和”。具体来说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标以及所有专业开发的软件都应具有的和隐含特征相一致的程度。为了解软件质量是否满足要求,必须从软件质量属性出发,通过考察软件质量属性来评价软件质量,并依此给出提高软件质量的方法。1.4软件质量正确性健壮性可靠性性能易用性可理解性安全性可扩展性兼容性可移植性

软件质量常见的属性1.41.5

软件团队如何从一个程序演化为一个有用的产品图1-3编程系统产品的演进软件开发小组的组织结构取决于组织的管理风格、组里的人员数目及他们的技术水平和软件项目需要解决问题的难易程度。Mantei提出了在确定采用何种软件工程小组结构时应该考虑的与项目相关的7个问题。①项目待解决问题的困难程度。②项目要产生的程序的规模,以代码行或者功能点来衡量。③小组成员需要一起工作的时间(小组生命期)。④需要解决的问题能够被模块化的程度。⑤待建造系统所要求的质量和可靠性。⑥交付日期的严格程度。⑦项目所需要的社交性(通信)的程度。1.5

软件团队1.5

软件团队从历史角度看:(1)民主小组(2)主程序员小组(3)现代程序员小组(4)同步—稳定小组(5)敏捷过程小组(6)开源编程小组图1-4主程序员小组组织结构图1-5现代程序员小组组织结构1.6

软件工程的知识领域1993年,IEEE计算机协会和ACM联合建立的软件工程协同委员会、加拿大魁北克大学以及美国MITRE公司共同承担了ISO/ICE/JTCI“SWEBOK(SoftwareEngineeringBodyofKnowledge)指南”项目。该项目希望促进世界范围内对软件工程形成一致观点;阐明软件工程相对于其他学科(如计算机科学、项目管理、计算机工程和数学等)的位置,并确立它们的分界;刻画软件工程学科的内容;提供使用知识体系的主题;为开发课程和个人认证与许可材料提供基础。1.6

软件工程的知识领域2014年IEEE公布的SWEBOK3.0中提到了软件工程的15个知识领域(KnowledgeArea,KA),其中包括:11个软件工程实践知识域——软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法、软件质量、软件工程职业实践;4个软件工程教育基础知识域——软件工程经济学、计算基础、数学基础和工程基础。1.7

软件工程师职业道德软件工程师应履行其实践承诺,使软件的需求分析、规格说明、设计、开发、测试和维护成为一项有益和受人尊敬的职业。(1)公众——软件工程师应当始终如一地以符合公众利益为目标。(2)客户和雇主——在保持与公众利益一致的原则下,软件工程师应满足客户和雇主的最高利益。(3)产品——软件工程师应当确保他们的产品和相关的改进符合可能达到的最高专业标准。(4)判断——软件工程师在进行相关的专业判断时,应该坚持正直、诚实和独立的原则。(5)管理——软件工程的管理和领导人员在软件开发和维护的过程中,应自觉遵守、应用并推动合乎道德规范的管理方法。(6)专业——软件工程师应当自觉推动本行业所提倡的诚实、正直的道德规范,并自觉维护本行业的声誉,使软件行业更好地为公众利益所服务。(7)同事——软件工程师对其同事应持平等互助和支持的态度。(8)自身——软件工程师应终生不断地学习和实践其专业知识,并在学习和实践的过程中不断提高自身的道德规范素养。小结1.了解软件的发展2.理解软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论