学习软件工程做的一点点笔记

软件工程研究什么?
方法 完成软件开发任务的技术手段
过程 支持软件开发各个环节的控制和管理
工具 为软件开发方法提供自动的或半自动的软件支撑环境

chapter 1
什么是软件 有什么特点
复杂性一致性 不可见性 可变性
什么是软件危机 表现?产生的原因?怎么消除软件危机?
在软件开发和维护中的一系列困难 延期 无文档 用户不满意
软件规模大 需求变化
提高软件质量

什么是软件工程?
将系统性的 规范性的 可定量的方法应用于软件的开发,运行和维护,即工程化应用到软件上 和对上述方法的研究
软件加工程
技术加管理 软件开发+软件开发管理结合

软件工程构成要素?软件工程研究的基本内容?
软件开发技术 和 软件开发管理

软件开发过程:
问题定义- 构想文档 用户故事
需求开发- 分析模型 软件需求规格说明
软件设计 -设计模型 软件体系结构文档 软件详细设计文档
软件构造 -源代码 目标代码 可执行构件
软件测试 -测试规程 测试用例 测试报告
软件开发管理与支持:
软件项目管理计划 软件配置管理计划 软件质量保证计划 评审记录

可行性分析:
技术可行性 经济可行性 社会可行性

需求转换: 用户需求 转化成 功能需求

软件过程模型
瀑布模型 线性模型 特别严格 保证质量
原型化模型
增量模型 是一种非整体开发模型
迭代式开发 整体式开发 全部功能框架 慢慢完善
可转换模型 用的少
敏捷式开发 与迭代式开发相像 弱化规范 走简洁化流程 轻量级
要理解为什么使用敏捷式开发?


螺旋模型的基本思想就是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作每个阶段之前都增加了风险分析过程的快速原型模型。

快速原型开发模型是适用于客户需求难以清楚定义的情况。
适用于技术很强,但沟通不行 先做出来看

水平原型适合web项目
垂直原型适合算法复杂的项目 尝试新框架
抛弃式原型 适用于界面设计


软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段

第三章 需求工程
软件需求: 什么是软件需求?为什么说需求很重要?
需求的三个层次是什么?
业务需求 用户需求 功能需求
业务需求:表示组织或客户高层次的目标(经济需求))
用户需求:用户的使用需求 即系统必须能完成的任务
功能需求:规定开发人员在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求
通过业务需求和用户需求分析 总结功能需求(产品层面)

需求工程=需求开发+需求管理
开发是从无到有,是一个创造的过程 过程很辛苦
开发:需求获取 需求分析 需求处理 需求确认

需求管理:需求实现(需求确认完成后,确保这些需求都能实现) 需求跟踪(确保工作成果符合用户需求,详细到哪几行代码是什么功能,测试用例及说明) 需求变更控制()

各阶段的任务是什么??
获取需求、分析需求、需求处理、需求确认

几个问题:
需求分析员必备知识和技能
必备知识:如软件工程、项目实践经验、需求分析、产品市场的经验、业务领域知识
必备技能:倾听、交流、提问、协调、建模、写作、创造、组织、观察

非功能性需求及其描述

需求获取:
需求收集 人为主动的去捕获需求
问卷调查、文档考古、面谈,用户调查、场景分析、观察和社会分析、联合分析小组、头脑风暴、原型法、大数据分析

何为非功能性需求?
我可以给你做 他也可以给你做 但是我比他做的更好
“听用户的但不一定照着做”

需求分析 分总分过程
透过现象看本质
需求要分解,提炼用户需求

结构化程序设计语言 如C语言
自顶向下 逐步细化 分成多个模块处理
弊端:程序难以管理 难以修改‍
面向对象编程的优点:
易于维护 可读性高,及时改变需求 由于继承的存在,维护只是在局部模块 维护起来成本较低
质量高 可重用现有的,在以前的项目的领域中已经被测试过的类使系统满足业务需求并具有较高的质量
效率高 在软件开发是,根据设计的需要对现实世界的事物进行抽象,产生类、这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量
易于扩展 由于继承、封装、多态的特性


面向对象好处:稳定性增加
面向对象是一个一个类

结构化分析设计思想
面向对象的设计思想区别和适用场合
面向对象好,它和人类的思维方式一样。但对于流程控制不够明确。

C++ JAVA有什么有区别 什么情况用哪个

UML标志着面向对象的软件开发方法称为软件开发的主流方法

为什么要建模?
把复杂的问题简单化
可视化建模?
图比文字更容易理解
保证需求的完整性:
每个需求和其他需求都有某种联系
两种建模思想:结构化 面向对象

面向对象方法有以下优势:
于人类思维方式一致 阶段过渡平滑 稳定性好 可维护性高 易于重用 适合开发大型项目
UML统一建模语言 是一个通用的、可视化的建模语言标准,用来可视化、描述、构造和文档化

用例描述的组成

用例名称、简要说明、描述、优先级、参与者、事件流(动作的序列)
前置条件、后置条件、特殊要求、
扩展事件流:对于异常情况、分支进行描述
PPT有SAMPLE

类 类名 属性 操作
+公共 -私有 #保护

UML中最为核心的用例图、类图、顺序图
建模图中的各个元素 元素关系是难点
阅读建模图
构建建模
七个问题
9个图

猜你喜欢

转载自www.cnblogs.com/geniusJinming/p/12803022.html
今日推荐