2019/9/7计算机学院1思考题:通过案例说明工程对社会、环境可能造成的负面影响。要求:内容具体,有数据及来源;小论文(作为考试成绩:40%)计算机应用和计算机工程的成功实施对社会的可持续发展具有推动作用,但其失败也会对社会、环境、安全、健康等带来负面影响,请分别用实际案例说明上述观点。科学社会科学自然科学基础科学工程技术科学农、林业工程、水电工程、土木建筑工程、电子/计算机工程、工业工程、机械工程、化学工程、环境工程、海洋工程、生物工程、航天/航空工程、军事工程等第一节工程学及其分支科学→工程技术科学的划分第1章-工程学概论工程的成功实施,推动了人类社会的发展第一次变革,以狩猎为主的生活方式转换为以农业生产为主的生活方式,其标志是社会制度为领地制度;第二次变革为工业时代的开始,蒸汽机的出现及其应用是该时期的重要标志;第三次变革为后工业时代,又称为基于计算机的或基于信息的社会,信息技术的蓬勃发展是其主要的标志。第二节工程学与社会的关系第一次变革——工具;第二次变革——机器;第三次变革——信息。工程也由“小”到“大”,设计(实现)的过程也由个人为主转化为以团队为主,提倡团队精神第三节工程设计的演化67转子毛胚(12.7MPa~24.2MPa)530℃转子加工数控编程转子工作转速动平衡8910111213142019/9/7计算机学院15第2章工程项目解决方案工程项目的开发过程1项目开发过程中的文档2案例介绍4有效沟通312019/9/7计算机学院16第一节工程项目的开发过程当前,各行各业几乎都是在市场经济的体制下,在同行业的激烈竞争环境中,为了自身的生存与发展需要,必须按照行业规范,不断创新和提高产品质量。完善工程项目,使工程项目产生最大的效益——不仅包括经济效益,还包括社会效益。彩电行业的竞争:四川长虹,辅业电池、空调手机行业:90年代“战国时期”:诺基亚、摩托罗拉、三星、爱立信、索尼、LG、海信、波导、厦新...CPU:摩托罗拉\Zilog\Intel\Cyrix\AMDMC6800\MC68000;Z80\Z8000;8080\8086美国齐格洛公司含方案本单位横向可行性分析招标书投标书中签合同需求确认测试试运行验收概要、详细设计编写代码需求采集沟通能力团队精神时间管理能力自学能力问题导向年度月纵向项目经费来源申报书主管部门组织提出项目研发计划编写代码技术文档撰写测试验收用户证明成果鉴定报奖、评职称专业基础、技能、交叉学科能力政策导向甲方(用户、客户、需方)乙方(项目承揽方、供方)项目可行性分析报告项目需求分析报告招标书需求规格说明书(时间关系粗略采集:客户的业务及目标)项目解决方案(投标书)合同拟定需求分析说明书(用户体验设计/细致采集客户的业务及目标)确认需求需求更新概要设计;详细设计;编码实现;软件测试;软件部署(发布与实施)。验收;软件维护。2019/9/7计算机学院20要明确甲方的需求。甲方的需求往往是潜在的,要使这种需求明确化,需要与甲方相关部门的关键人员进行反复的沟通,通过沟通明确甲方业务流程及实际需求,必要时乙方提出需求建议书,然后提供切实可行的项目解决方案。1.工程项目开发的前期业务流程例子:2019/9/7计算机学院21东方电气集团办公门户系统2019/9/7计算机学院22P39~40部门收文流程图项目实施流程从火电厂的发电示意图引出案例:1.喷嘴阀门伺服板设计;(伺服是使物体的位置、方位、状态等输出被控量能够跟随输入目标(或给定值)的任意变化而变化的自动控制系统。)2.转子加工出了废品→自动编程/刀刃轨迹可视化→Pro/E软件→工艺技术人员建模/计算机软件人员保证软件的功能→应用→推广第三节工程设计的演化用图表示了3种项目来源,及各自的软件立项、开发过程。要明确甲方的需求通过沟通明确甲方业务流程及实际需求第一节工程项目的开发过程业务需求例子:•昆明理工日常报账业务流程•东方电气集团办公门户系统的部门收文流程图第2章工程项目解决方案对于我们所拿到的“项目需求分析报告”往往忽略了很多客户的隐形需求。一般而言包括:维护需求升级需求易用性需求性能需求2019/9/7计算机学院27如易用性,一般觉得无非是界面和帮助。没错,但是不全。让我们看几个例子,可以大概理解一下易用性是什么概念。2019/9/7计算机学院28在桌面系统的竞争中,专业而强大的Unix败给了经常被人批评的Windows。Windows安装、升级简单,安装新的软件也很简单,操作起来更是如此,直观的图形界面虽然设计和功能不太丰富和强大,但是相对于Unix必须先学习“文件系统”概念,再学习命令行而言,“树”的概念用户可以无师自通,拖拽更是命令行方式不可比拟。同样是微软,VC语言乘微软之名,挟操作系统之利,语言和开发环境都不可谓不强大,但是结果怎样呢?多数人情愿用Java,微软更是不得不推出C#来与Java抗衡。在中文输入法的竞争中,强大高效的笔画输入法败给了拼音输入法。现在拼音输入法大行其道,笔画输入几乎鲜有提起。2019/9/7计算机学院292019/9/7计算机学院30最主要的是业务模型要和客户的一致。这个应该算是基础。业务模型代表着思维模式(比如输入法),也就是说,要从客户的角度来设计系统。操作应该照顾客户的习惯,尽可能的降低客户的学习成本。当然,前提是正确定位你的客户群。一般而言,易用性的需求还包括:1.常用的功能应该能够直接了当的访问如财务系统,不同的角色有不同的常用功能,系统应该设计为可以根据角色来打开不同的初始页面;2019/9/7计算机学院312.操作应该照顾客户的习惯可降低客户的学习成本。当然,前提是正确定位你的客户群。3.优雅还是用微软的VisualStudio做例子,编译错误可以直接通过双击跳转到源代码所在错误点,而不像Makefile那样只是生硬的输出文件和行号。打开一个巨大的文件,给出一个可度量的进度条,总比只显示一个沙漏要好吧?2019/9/7计算机学院32“优雅”=专业+体贴细节上包括:长时间运行要有提示;已输过的内容尽量不要再次输,必要时用下拉列表框来选;命令按钮要有悬停说明信息;因权限或操作条件限制时,有关操作元素自动置“灰”或不可见;不离开编辑界面添加新内容时,可用鼠标也可用键盘定位至输入字段;不能输入不合理的日期;…2019/9/733•性能需求2019/9/7计算机学院34获取甲方合同其他的因素:乙方过去的业绩、主要人员的人格魅力等。对需求进行分析、总结和概括,提出准确可行的解决方案是非常重要的。因为只有这样才能明确用户项目的内容和目标,准确评估自己成本,提出一个确实可行的项目解决方案。完成了项目解决方案书后,根据实际需求和市场实际运作效果,一方面可以确定是开始进行项目产品预研发,或者根据新的客户需求完善本项目。所有这些取决于市场的反馈信息,根据不同的市场反馈做出不同的开发计划,只有这样才能避免闭着眼睛走路,同时项目更有了明确的开发目标。一旦项目列入开发计划,就应该确定项目负责人、成立项目组进行实质性的项目开发工作。2019/9/7计算机学院35另一方面,可根据用户的要求,草拟合同文本。计算机学院36第二节工程项目开发过程中的文档在项目开发过程中,为了保证项目开发过程的可追溯性、可维护性,按照软件编制规范要求,形成文档,从另一个方面保证软件的质量。GB/T8567-1988很多地方还在用GB/T8567-2006——描述了25种文档格式2.1计算机软件编写规范该标准主要对软件的开发过程和管理过程应编制的主要文档及其编制的内容、格式规定了基本要求。使用者可根据实际情况对标准进行适当剪裁(可剪裁所需的文档类型,也可对规范的内容作适当裁剪)。软件文档从使用的角度大致可分为软件用户需要的用户文档和开发方在开发过程中使用的内部文档(开发文档)两类。供方应提供的文档的类型和规模,由软件的需方和供方在合同中规定。计算机软件文档编制规范(GB/T8567-2006)在软件开发中,文件编制”规模”一般都同软件的规模大小联系起来。软件的规模不妨分为四级:(1)小规模软件源程序行数小于5000的软件;(2)中规模软件源程序行数为10000~50000的软件;(3)大规模软件源程序行数为100000~500000的软件;(4)特大规模软件源程序行数大于500000的软件。计算机学院382.2软件规模划分—计算机软件文档编制规范(GB8567-88)可行性报告项目开发计划软件需求说明数据需求说明接口需求/设计说明项目开发计划软件需求说明接口设计说明软件需求与开发计划概要设计说明详细设计说明数据库设计说明软件设计说明软件设计说明使用说明使用说明用户手册操作手册测试分析报告软件测试计划测试分析报告开发进度月报项目开发总结项目开发总结小规模软件中规模软件大规模软件软件测试计划测试分析报告开发进度月报项目开发总结a.项目开发计划为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。2019/9/7计算机学院402.3主要文档的内容b.软件需求说明书(软件需求规格说明)对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。2019/9/7计算机学院41c.概要设计说明书*说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。2019/9/7计算机学院42d.详细设计说明书*着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。2019/9/7计算机学院43说明:1.《软件(结构)设计说明》(SDD)描述了计算机软件配置项(CSCI)的设计。它描述了CSCI级设计决策、CSCI体系结构设计(概要设计)和实现该软件所需的详细设计。SDD可用接口设计说明IDD和数据库(顶层)设计说明DBDD加以补充。2.SDD连同相关的IDD和DBDD是实现该软件的基础。向需方提供了设计的可视性,为软件支持提供了所需要的信息。3.IDD和DBDD是否单独成册或与SDD合为一份资料视情况繁简而定。《软件(结构)设计说明》(SDD)e.接口设计说明(IDD)2019/9/7计算机学院45F.数据库设计说明2019/9/7计算机学院46《数据库(顶层)设计说明》(DBDD)1.《数据库(顶层)设计说明》(DBDD)描述了数据库的设计。所谓数据库指存储在一个或多个计算机文件中的相关数据的集合,它们可由用户或计算机程序通过数据库管理系统(DBMS)加以访问。DBDD还描述了存取或操纵数据所使用的软件配置项。2.DBDD是实现数据库及相关软件配置项的基础。它向需方提供了设计的可视性,为软件支持提供了所需要的信息。3.DBDD是否单独成册或与SDD(SoftwareDesignDescription)合为一份资料视情况繁简而定。2019/9/7计算机学院47说明:1.《系统/子系统设计(结构设计)说明》(SSDD)描述了系统或子系统的系统级或子系统级设计与体系结构设计。SSDD可能还要用《接口设计说明》(IDD)和《数据库(顶层)设计说明》(DBDD)加以补充。2.SSDD连同相关的IDD和DBDD是构成进一步系统实现的基础。贯穿本文的术语“系统”如果适用的话,也可解释为“子系统”。所形成的文档应冠名为“系统设计说明”或“子系统设计说明”。g.系统设计说明/子系统设计说明《系统/子系统设计(结构设计)说明》(SSDD)h.开发进度月报列出本月内进行的各项主要活动,并且说明本月内遇到的重要事件,这里所说的重要事件是指一个开发阶段(即软件生存周期内各个阶段中的某一个,例如需求分析阶段)的开始或结束,要说明阶段名称及开始(或结束)的日期。重要事件:里程碑2019/9/7计算机学院48i.测试计划为做好集成测试和验收测试,需为如何组织测试制订