首页 > 其他分享 >软件工程 第一章 软件与软件工程

软件工程 第一章 软件与软件工程

时间:2024-03-13 23:11:59浏览次数:23  
标签:需求 解决方案 第一章 软件工程 文档 设计 软件

软件工程 第一章 软件和软件工程


软件的定义

  • computer:有硬件与软件组成
  • 硬件:看得见摸得着的电子机械设备块
  • 软件:依附在硬件上面的程序,数据和文件的结合,是指挥计算机工作的神经中枢.

第一阶段:软件:=程序(弹道计算) input:纸带 output:纸带
第二阶段:软件:=程序+数据
第三阶段:软件:=程序+数据+文档
第四阶段:软件:=程序+数据+文档+人工智能

越早开始写代码的人,就是越迟写代码的人

文档的作用

文档=用户文档+开发文档+测试文档

文档:起到桥梁作用

  • 用户文档
    • 用户手册
    • 操作手册
    • 维护修改建议报告
    • 软件需求规格说明书
  • 开发文档
    • 软件需求规格说明书
    • 数据说明数
    • 详细设计说明书
    • 可行性研究报告
    • 项目开发计划
  • 管理文档
    • 项目开发计划
    • 测试计划
    • 测试报告

软件的特性:

  • 软件是设计开发的,不是传统意义上生产制造的.
  • 软件不会磨损.
  • 大多数软件根据实际顾客需求定制.


软件交互周期:5~10年
环境,场景->变更

软件的应用领域

  • 系统软件
  • 应用软件
  • 工程/科学软件(数值水池)
  • 嵌入式软件
  • 产品线软件
  • web/移动app
  • 人工智能软件

软件变更的原因:

  • 软件需要进行适应性调整
  • 软件必须升级以实现新的商业需求
  • 软件必须扩展以具有与OS,DB协同工作的能力
  • 软件体系结构必须进行改建以使之使用不断演化的计算环境

webApps的特性:

  • 网络密集型
  • 并发性
  • 无法预知的负载量
  • 性能:能够快速响应
  • 可用性:全天候访问
  • 数据驱动
  • 内容敏感性
  • 持续演化
  • 即时性
  • 安全性
  • 美观性

软件工程的由来

软件危机:计算机软件的开发和维护过程所遇到的一系列严重问题.

软件危机的主要表现:

  • 开发成本超出预算
  • 用户对系统不满意
  • 软件产品指令较差
  • 软件的可维护成都非常之低
  • 软件通常没有适当的文档资料
  • 软件的成本不断提高
  • 软件开发生产率的提高赶不上硬件的发展

软件系统的复杂性不断增长,复杂性成为系统设计和开发最大的障碍.

软件工程定义的提出:

  • 种子定义(Fritz Bauer)
  • IEEE定义

将工程化(系统化,规范化,可量化)的方法全过程(开发,运行,维护)地应用于软件.

软件工程三要素:过程层(process),方法层(method),工具层(tool),[质量关注点(a quality focus)]

软件过程:工作产品构建时所执行的一系列活动,动作和任务的集合.

活动(activity):主要实现宽泛的目标.
动作(action):包括主要产品生产过程的一系列任务.
任务(task):关注小而明确的目标,能够产生实际产品.

过程框架(process framework):

  • 工作任务
  • 工作产品
  • 里程碑和可交付成果
  • QA检查点

普适性活动(umbrella activity)

框架包含的活动:

  • 沟通:与利益相关者沟通需求.
  • 策划:创建软件项目计划,进行可行性分析.
  • 建模:横跨软件需求与设计.为需求与设计提供相关的模型.
    • 需求分析
    • 设计:举例功能流程图,业务流程(文字与模型).
  • 构建:对所做设计进行设计,包括编码与测试.
    • 代码生成
    • 测试
  • 部署:根据实际生产情景进行部署.

Polya的建议:

  • 理解问题(沟通和分析)
    • 谁从问题的解决中获益?
    • 什么是未知的?
    • 问题可以划分吗?
    • 问题可以图形化描述吗?
  • 计划解决方案(建模和软件设计)
    • 以前曾经见过类似问题吗?
    • 类似问题是否解决过?
    • 可以定义子问题吗?
    • 能用一种可以很快实现的方式来表达解决方案吗?
  • 实施计划(代码生成)
    • 解决方案与计划一致吗?
    • 解决方案的每个组成部分是否可以证明正确?
  • 检查结果的准确性(测试和质量保证)
    • 能否测试解决方案的每个部分?
    • 解决方案是否产生了与所要求数据,功能和特性一致的结果?

Hooker的原则:

  • 存在价值
  • 保持简洁
  • 保持愿景
  • 关注使用者
  • 面向未来
  • 提前计划复用
  • 认真思考

NumericalTank

标签:需求,解决方案,第一章,软件工程,文档,设计,软件
From: https://www.cnblogs.com/mesonoxian/p/18071807

相关文章

  • mac软件-Understand安装
    下载:链接:https://pan.baidu.com/s/1UvxgFnjv9pRVJmZO-J2OrQ 密码:nyd4启动后,开始激活,点击enter License code点击“uselegacylicenseing”点击“ADDAlicense”出现如下图,请选择“AddEvalSDL(RegCode)”弹出注册界面,输入licensecode,邮箱任意输入至此,软件“......
  • 【软件安装】gogs+Jenkins 在windows服务器上实现CI/CD部署
    前景最近公司实现了CICD不过是用TFS,我在想在自己的渣渣服务器和自己配置的gogs上是不是也可以,随动手实践一下,一次不小的尝试安装下载Jenkins复制这个连接到迅雷上下载会快一点,**官方网址**https://www.jenkins.io/http://ftp-chi.osuosl.org/pub/jenkins/windows-stabl......
  • 微博视频发布软件怎么代理赚钱
    微博视频发布软件怎么代理赚钱SEO关键词优化攻略#高新技术企业#网站运营变现的源头卖账跟出租,其实卖账的话其实利润还是蛮高的,包括你看看一些权重战,其实几万块钱、几十万甚至百万,其实还是能赚到一部分钱的。第二个就是做一些排名,当然是做的比较多。第三个是项目的一些障碍,......
  • DevOps软件开发管理模式、CICD概念及其Jenkins使用
    一、什么是DevOpsDevOps是Develop与Operations的缩写,是开发和运营维护的总称。它是企业内开发、技术运营和质量保障这三方面工作的融合,用于促进开发、技术运营和质保部门之间的沟通、协作与整合。为巩固软件设计与开发结果,将开发、运维与测试结合一起,形成了DevOps软件开发管......
  • 什么是员工事务管理系统?人力软件如何选型?
    什么是员工事务管理系统?在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化、电子化已经成为节约运营成本,提高工作效率的首选。当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此部分企业需求,设计企业员......
  • 软件应用实例分享,麻将馆棋牌室计时计费管理系统软件可连接配套的灯控器,灯控可以是有线
    软件应用实例分享,麻将馆棋牌室计时计费管理系统软件可连接配套的灯控器,灯控可以是有线或无线灯控一、前言以下软件操作教程以佳易王棋牌计时计费软件V18.0为例说明软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载1、软件基本功能:计时计费+商品销售管理......
  • 终端安全三要素:芯片、操作系统、应用软件缺一不可
    终端安全问题一直以来都备受关注,随着科技的不断发展,终端设备不仅在数量上呈现爆发式增长,而且在功能和复杂性上也不断提升。为了确保终端设备的安全,我们需要从芯片级别到应用软件层面采取全面的防御策略。01.芯片层面的安全防御1.芯片设计与硬件防护芯片是终端设备的核心,其设......
  • 202009青少年软件编程(Scratch)等级考试试卷(一级)
    青少年软件编程(Scratch)等级考试试卷(一级)2020年9月第1题:【单选题】运行下图中脚本,角色所在位置用坐标表示为(    )A:(45,0)B:(0,145) C:(145,0) D:(100,0) 【正确答案】:C【试题解析】 :第2题:【单选题】Scratch软件自带的可以结束程序的按钮是(  )A:......
  • 201912青少年软件编程(Scratch)等级考试试卷(一级)
    201912青少年软件编程(Scratch)等级考试试卷(一级)第1题:【单选题】关于造型和背景,下面说法不正确的是?A:造型编号从1开始B:有四个背景,删除第二个背景,背景编号为1,3,4C:只有一个背景时,不能删除这个背景D:角色可以有一个或多个造型【正确答案】:B【试题解析】 :第2题:【......
  • Unity3D外包团队 北京动点软件:优秀的软件公司 如何与客户建立长期合作关系
    2024年作为优秀的软件公司在确保客户满意方面需要采取一系列措施,以下是一些关键步骤:深入理解客户需求:首要任务是充分理解客户的需求。外包公司应该花时间与客户沟通,详细了解他们的业务目标、项目需求、预期结果以及任何特殊要求。这有助于建立良好的合作关系,并确保提供的......