高软学习总结

高软学习总结

高级软件工程学习总结:

 高级软件工程理论课程马上结束,在这里发表一篇文章记录这学期的学习历程。 

初识软件工程

 孟宁老师从工具开始切入,对于零基础的同学非常友好。特别是手把手下载VSCode,一步一步的敲git命令,上课效果很棒。 

在上这门课之前我对git的了解,大抵只有两个命令,git clone、git push。
git基本操作逻辑
从图中可以看出,git分为四个区间,分为远程仓库、本地仓库、暂存区、本地工作区。
在这里插入图片描述

vim的三种模式
在这里插入图片描述

工程化实践

工程化实践作为高软最核心的课程,也是让大家动手写代码的部分。核心部分包括函数指针、回调函数、互斥锁。

tLinkTableNode * SearchLinkTableNode(tLinkTable *pLinkTable, int Conditon(tLinkTableNode * pNode, void * args), void * args) { 
    if(pLinkTable == NULL || Conditon == NULL) { 
    return NULL; } tLinkTableNode * pNode = pLinkTable->pHead; while(pNode != NULL) { 
    if(Conditon(pNode,args) == SUCCESS) { 
    return pNode; } pNode = pNode->pNext; } return NULL; } 
int SearchConditon(tLinkTableNode * pLinkTableNode,void * arg) { 
    char * cmd = (char*)arg; tDataNode * pNode = (tDataNode *)pLinkTableNode; if(strcmp(pNode->cmd, cmd) == 0) { 
    return SUCCESS; } return FAILURE; } 

核心代码如上,SearchCondition作为回调函数,在SearchLinkTableNode函数调用时,控制权转向Condition中。实现了数据与业务逻辑的解耦合。

软件需求

需求的四种类型:

功能性需求:根据需要的活动描述需要的行为 质量需求或非功能需求:描述软件必须具备的一些质量特征 设计约束:设计决策,如平台或接口组件的选择 过程约束:对可用于构建系统的技术或资源的限制 

高质量需求的特点:

解决冲突,需求是可测试的,正确的、一致的、无二义性、完整的、可行的、无与主要目标不相关的需求、可描绘的、可测试的 

需求分析的两类基本方法

原型化方法(Prototyping)和建模的方法(Modeling)是整理需求的两类基本方法。 原型化方法:可以很好地整理出用户接口方式(UI,User Interface),比如界面布局和交互操作过程。 建模的方法:可以快速给出有关事件发生顺序或活动同步约束的问题,能够在逻辑上形成模型来整顿繁杂的需求细节。 

用例满足的四个必要条件

• 必要条件一:它是不是一个业务过程? • 必要条件二:它是不是由某个参与者触发开始? • 必要条件三:它是不是显式地或隐式地终止于某个参与者? • 必要条件四:它是不是为某个参与者完成了有用的业务工作? 

软件科学基础

七大原则

1. 单一职责原则 (Single Responsibility Principle) 2. 开放­关闭原则 (Open­Closed Principle) 3. 里氏替换原则 (Liskov Substitution Principle) 4. 依赖倒转原则 (Dependence Inversion Principle) 高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节 应该依赖抽象 由于在软件设计中,细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建 起来的架构要比以细节为基础搭建起来的架构要稳定得多。 依赖倒置原则在模块化设计中降低模块之间的耦合度和加强模块的抽象封装提高模块 的内聚度上具有普遍的指导意义 5. 接口隔离原则 (Interface Segregation Principle) 6. 迪米特法则(Law Of Demeter) 7. 组合/聚合复用原则 (Composite/Aggregate Reuse Principle) 

敏捷统一过程的四个关键步骤

第一,确定需求; 第二,通过用例的方式来满足这些需求; 第三,分配这些用例到各增量阶段; 第四,具体完成各增量阶段所计划的任务。 显然,第一到第三步主要是计划阶段的工作,第四步是接下来要进一步详述的增量阶段的工作。 在每一次增量阶段的迭代过程中,都要进行从需求分析到软件设计实现的过程,具体敏捷统一过程 

将增量阶段分为五个步骤:

•用例建模(Use case modeling); •业务领域建模(Domain modeling); •对象交互建模(Object Interaction modeling),使用剧情描述来建模,最后转换为剧情描述表; •形成设计类图(design class diagram); •软件的编码实现和软件应用部署; 

软件危机

评价团队的方法

CMM/CMMI用于评价软件生产能力并帮助其改善软件质量的方法,成为了评估软件能力与成熟度的 一 套标准,它侧重于软件开发过程的管理及工程能力的提高与评估,是国际软件业的质量管理标 准。 CMMI共有5个级别,代表软件团队能力成熟度的5个等级,数字越大,成熟度越高,高成熟度等级 表示有比较强的软件综合开发能力。 一 级,初始级,软件组织对项目的目标与要做的努力很清晰,项目的目标可以实现。但主要取决 于实施人员。 二级,管理级,软件组织在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对 项目相关的实施人员进行了相应的培训,对整个流程进行监测与控制,并联合上级单位对项目 与流程进行审查。这级能保证项目的成功率。 三级,已定义级,软件组织能够根据自身的特殊情况及自己的标准流程,将这套管理体系与流程 予以制度化。科学管理成为软件组织的文化与财富。 四级,量化管理级,软件组织的项目管理实现了数字化,降低了项目实施在质量上的波动。 五级,持续优化级,软件组织能够充分利用信息资料,对软件组织在项目实施的过程中可能出现 的问题予以预防。能够主动地改善流程,运用新技术,实现流程的优化。 

参考资料:代码中的软件工程 https://gitee.com/mengning997/se

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/169032.html

(0)
上一篇 2024年 7月 2日
下一篇 2024年 7月 2日

相关推荐

关注微信