软件工程

个人阅读作业+个人总结

那年仲夏 提交于 2020-02-09 08:52:56
你的项目有一个大泥球么?有什么解决办法? 有,一开始开发软件的时候,团队成员们都是根据自己的经验来进行开发,组件放置的位置,颜色,大小也是凭借自己的喜好来设置的,这就是我们项目中的大泥球。为了解决这个问题,我们团队后来采用Material Design规范对组件进行整改,对组件的位置,颜色,大小都做出了统一的规定,让我们的app看上去更加规范,用户体验更好。 什么是大教堂?什么是集市? 大教堂:每次软件发布后代码都能被看到,但是代码只能被一个特定的团体修改。 集市:代码的在公众的视线下被修改。 你的团队是用什么方式建造软件? 我们团队是用大教堂方式建造软件的。 这些情况在你的团队中出现过么? 没有出现。为了美化我们团队的软件,同时又为了省时省力,我们会在github上寻找别人写好了的现成的组件并应用到我们的项目中(比如日历组件和滚轮组件)。因此我们需要下载安装相关的依赖包,但是没有造成混乱。 这是后来大家说的 “瀑布模型”,它有什么特点? 1.为项目提供了按阶段划分的检查点。 2.当前一阶段完成后,只需要去关注后续阶段。 3.它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 4.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。 5.由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险

读书笔记五

谁说胖子不能爱 提交于 2020-02-09 08:52:15
  用户体验: 用户对产品的第一印象是非常重要的,所以要尽量让用户在第一次使用时,少花时间在对他没有价值的部分,并且尽量花最少的时间让用户了解软件的基本功能并学会使用。需要站在用户的角度考虑问题,要为用户考虑,思考用户的角度上使用软件他会希望这个软件的使用以及各功能之间连接,界面划分是怎样的。如果用户长期使用,这个软件时越来越让用户觉得便利还是麻烦。要一直记住用户的选择。不能让用户犯简单的错误。要注重用户体验和质量不能是你觉着这样对用户好,但是用户觉着很麻烦甚至是厌恶。所以一款软件要能真正的解决用户当前的困难给用户带来便利,使用界面要符合用户的习惯,如果用户使用有错误需要能够撤销刚才的操作或者是可以退出软件,在软件中对一个事物的描述要一致且标准,并且软件能够适合各种类型的用户而不是局限的适合一小批用户,需要设置一些帮助文档解决用户使用过程中常见的错误。   软件测试 Bug即软件的缺陷,可以分为三种:   症状、程序错误、根本原因。   找出bug则需使用测试,按测试设计的方法分类分为两种:   黑箱测试(即行为测试设计)和白箱(玻璃箱)测试(即使用软件的内部结构和知识来选择测试数据和具体的测试方法);   按测试目的分为两种:   功能测试和非功能测试(即测试软件的服务质量);   测试方法分为:   单元测试、代码覆盖率测试、构建验证测试、验收测试、“探索式”测试、回归测试

《构建之法》阅读笔记六

房东的猫 提交于 2020-02-09 08:51:14
第十三章:软件测试    Bug即软件的缺陷,可以分为三种:症状、程序错误、根本原因。   找出bug则需使用测试,按测试设计的方法分类分为黑箱测试(即行为测试设计)和白箱(玻璃箱)测试(即使用软件的内部结构和知识来选择测试数据和具体的测试方法);   按测试目的分为功能测试和非功能测试(即测试软件的服务质量);   测试方法分为单元测试、代码覆盖率测试、构建验证测试、验收测试、“探索式”测试、回归测试、场景/集成/系统测试、伙伴测试、效能测试、压力测试、内部/外部测试、易用性测试、“小强”大扫荡。其中使用最多的是单元测试,既每次做完软件,并进行过自我复审,然后进行单元测试。 第十四章:质量保障   软件质量=程序质量+软件工程质量   软件工程的质量体现在:软件开发过程的可见性、风险控制、软件内部模块,项目中间阶段的交付质量,项目管理工具的因素、开发成本的控制、内部质量指标的完成。软件的质量不能仅仅依靠测试人员去保证,编程人员在进行编程时要尽力保证自己代码的质量以及各模块连接之间的稳定性。 第十五章:稳定和发布阶段   在软件发布后,软件可能会发有各种各样的bug,所以软件团队中就需要以各个角色为基础成立一个会诊小组,可以对bug进行修复,也可以不修复或者推迟修复。 第十六章:IT行业的创新   每个人都可以创新

南海茹软件工程第一次作业

耗尽温柔 提交于 2020-02-09 07:29:27
(1)第一张中出现的计算机专业术语 计算理论( Theoretical Computing) 信息和编码理论( Information and Coding Theory ) 算法和数据结构( Algorithm and Data Structure ) 形式化方法( Formal Methods ) 程序设计语言( Programming Language ) 计算机体系结构( Computer Architecture 并行计算和分布式系统( Concurrent, Parallel and Distributed System) 实时系统和嵌人式系统( Real Time and Embedded System ) 操作系统( Operating System ) 计算机网络( Networking ) 科学计算( Scientific Computing ) 安全和密码学( Security and Cryptography ) 人工智能( Artificial Intelligence )这个领域涵盖了许多相关的领域,如模式识别( Pattern Recognition)、机器学习( Machine Learning)、数据挖拥( Data Mining)、信息提取( Information Retrieval)等.计算机图形学(Computer Graphics)、

敏捷开发简介

一笑奈何 提交于 2020-02-09 05:28:47
学习网址:http://kb.cnblogs.com/page/107713/ 最近一段时间以来,很多人开始谈论敏捷开发、研究敏捷开发,那么究竟什么才是敏捷开发呢?   简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测 试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在 通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。   敏捷开发(agile development)概念从2004年初开始广为流行。Bailar非常支持这一理论,他采取了"敏捷方式"组建团队:Capital One的"敏捷团队"包括3名业务人员、两名操作人员和5~7名IT人员,其中包括1个业务信息指导(实际上是业务部门和IT部门之间的"翻译者");另 外,还有一个由项目经理和至少80名开发人员组成的团队。这些开发人员都曾被Bailar送去参加过"敏捷开发"的培训,具备相关的技能。   每个团队都有自己的敏捷指导(Bailar聘用了20个敏捷指导),他的工作是关注流程并提供建议和支持

敏捷开发

对着背影说爱祢 提交于 2020-02-09 05:22:41
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。   敏捷开发(agile development)概念从2004年初开始广为流行。Bailar非常支持这一理论,他采取了"敏捷方式"组建团队:Capital One的"敏捷团队"包括3名业务人员、两名操作人员和5~7名IT人员,其中包括1个业务信息指导(实际上是业务部门和IT部门之间的"翻译者");另外,还有一个由项目经理和至少80名开发人员组成的团队。这些开发人员都曾被Bailar送去参加过"敏捷开发"的培训,具备相关的技能。   每个团队都有自己的敏捷指导(Bailar聘用了20个敏捷指导),他的工作是关注流程并提供建议和支持。最初提出的需求被归纳成一个目标、一堆记录详细需要的卡片及一些供参考的原型和模板。在整个项目阶段,团队人员密切合作,开发有规律地停顿--在9周开发过程中停顿3~4次

敏捷开发

自闭症网瘾萝莉.ら 提交于 2020-02-09 05:14:25
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。   敏捷开发(agile development)概念从2004年初开始广为流行。Bailar非常支持这一理论,他采取了"敏捷方式"组建团队:Capital One的"敏捷团队"包括3名业务人员、两名操作人员和5~7名IT人员,其中包括1个业务信息指导(实际上是业务部门和IT部门之间的"翻译者");另外,还有一个由项目经理和至少80名开发人员组成的团队。这些开发人员都曾被Bailar送去参加过"敏捷开发"的培训,具备相关的技能。   每个团队都有自己的敏捷指导(Bailar聘用了20个敏捷指导),他的工作是关注流程并提供建议和支持。最初提出的需求被归纳成一个目标、一堆记录详细需要的卡片及一些供参考的原型和模板。在整个项目阶段,团队人员密切合作,开发有规律地停顿--在9周开发过程中停顿3~4次

--什么是敏捷开发--转

扶醉桌前 提交于 2020-02-09 05:07:02
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。   敏捷开发(agile development)概念从2004年初开始广为流行。Bailar非常支持这一理论,他采取了"敏捷方式"组建团队:Capital One的"敏捷团队"包括3名业务人员、两名操作人员和5~7名IT人员,其中包括1个业务信息指导(实际上是业务部门和IT部门之间的"翻译者");另外,还有一个由项目经理和至少80名开发人员组成的团队。这些开发人员都曾被Bailar送去参加过"敏捷开发"的培训,具备相关的技能。   每个团队都有自己的敏捷指导(Bailar聘用了20个敏捷指导),他的工作是关注流程并提供建议和支持。最初提出的需求被归纳成一个目标、一堆记录详细需要的卡片及一些供参考的原型和模板。在整个项目阶段,团队人员密切合作,开发有规律地停顿--在9周开发过程中停顿3~4次

【TOLIN】第二章|软件工程模板搭建

落花浮王杯 提交于 2020-02-08 13:00:55
【TOLIN】第二章|软件工程模板搭建 ↑ 点击上方,关注“Tkwer望远镜” 作者:Tkwer 公众号:Tkwer望远镜 使用STM32CubeMX生成工程模板 还没熟悉过STM32CubeMX的同学,可能要先通过互联网了解怎么使用。我们教程不会具体到每一个细节,很抱歉。 官方网站介绍:STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm Cortex-M core or a partial Linux Device Tree for Arm Cortex-A core), through a step-by-step process. 总结,STM32CubeMX就是生成STM32软件工程模板图形化工具。 下面就是进行Pin Configuration Clock Configuration Project Manager 生成MDK工程 移植正点原子的SYSTEM文件夹 接触过STM32的各位,对于正点原子应该是不会陌生的

软件工程 期末总结

末鹿安然 提交于 2020-02-08 01:22:51
软工期末 CH1 软件危机 内容: 在计算机软件的开发和维护过程中所遇到的一系列严重问题。 几乎所有的软件,都不同程度地存在着这些问题。 软件危机主要包括如下两方面的问题: ① 如何开发软件,满足增长需求; ② 如何维护软件。 主要原因: 软件日益复杂和庞大 软件开发管理困难和复杂 软件开发技术落后 生产方式落后 开发工具落后 软件开发费用不断增加 软件工程 软件工程是采用工程的概念、原理、技术和方法来开发与维护软件一门工程学科,从而经济地开发出高质量的软件并有效地维护它。 传统方法学、面向对象方法学 (1)传统方法学(生命周期方法学或结构化范型) ——强调自顶向下; (2)面向对象方法学 ——强调主动地多次反复迭代; (3)面向对象方法学4个要点:对象;类;继承;消息。 软件生命周期 问题定义 可行性研究:目的不是解决问题,而是确定问题是否值得去解决。 需求分析:系统必须要做什么 总体设计:目的:“概括地说,系统应当如何实现”,因此总体设计又称为概要设计或者初步设计。 详细设计:确定应该怎样具体地实现所要求的系统。 编码和单元测试:写出容易、容易维护的程序模块 综合测试:通过相应的测试和调试使软件达到预定的功能 软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 周期模型 瀑布模型:1.阶段间具有顺序性和依赖性。 2.推迟实现的观点。3.质量保证的观点