Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

软件构造复习笔记 PDF 下载


分享到:
时间:2020-07-08 15:20来源:http://www.java1234.com 作者:小锋  侵权举报
软件构造复习笔记 PDF 下载
失效链接处理
软件构造复习笔记  PDF 下载


本站整理下载:
 
相关截图:
 
主要内容:

第 1-2 章
软件构造的多维视图
软件构造的阶段划分、各阶段的构造活动
内部/外部的质量指标
软件配置管理 SCM 与版本控制系统 VCS
Git 的结构、工作原理和基本指令
GitHub
一、软件构造的多维视图
按阶段划分:构造时(Build-time)/运行时(Run-time)
按动态性划分:时刻(Moment)/阶段(Period)
按构造对象的层次:代码(Code)/构件(Component)
1. 构造(build)阶段
Code+Moment:代码的逻辑组织
源代码被组织成方法、类、接口等。
词汇层面(半结构化,近乎自然语言的编程风格+特定的编程语法)、语法层
面(AST,抽象语法树)、语义层面(UML 表达需求和设计思想)、 Code+Period:代码变化
Component+Moment:代码的物理组织
代码被放入文件、包、库等形成物理组件。
库:操作系统提供的库+编程语言提供的库+第三方公司的库+自己积累的库
我们需要告诉 IDE 和 JVM 在哪里寻找某些库,链接技术解决这一问题。链接
可以分为静态链接和动态链接。静态链接发生在 build 阶段,库被整体拷贝
进入代码形成整体,执行的时候无需提供库文件。
Component+Period:各软件实体随时间如何变化
配置项(SCI)、版本、版本控制
2. 运行(run)阶段
可执行程序:原生机器码、程序完全解释执行、解释型字节码
动态链接:发生在运行阶段,库文件不会再 build 阶段被加入可执行软件
中,仅仅做出标记,在程序运行时,根据标记装载至内存;发布软件时,记
得将程序所依赖的所有动态库都复制给用户。
Code+Moment:逻辑实体如何在内存中呈现
代码快照图(Code Snapshot)、内存信息转储(Memory dump)
Code+Period:
执行追踪(勇敢日志记录程序的调用)、多线程
Component+Moment:
数据库、网络等
Component+Period:
事件日志:记录系统层面
二、内部/外部的质量指标
外部质量指标影响用户,内部质量指标影响软件本身和开发者,外部质量
取决于内部质量。各种质量因素之间往往难以兼顾,需要折中。
1. 外部质量指标
(1)正确性
软件产品按照规约执行的能力,是最重要的质量指标。
测试和调试、防御式编程、形式化方法
(2)健壮性
软件产品应对异常情况(规约之外的情况)处理的能力,是对正确性的补充. (3)可扩展性
软件产品应对规约修改时的能力。
简约主义设计、分离主义设计
(4)可复用性
软件产品服务于多应用场景的能力。
发现共性
(5)兼容性
软件产品与其它软件系统之间容易集成的能力。
保持设计的同构性
(6)性能
性能必须建立在正确性基础之上。
(7)可移植性
软件产品在不同技术环境之间移植的能力。
(8)易用性
(9)功能性
(10)及时性
(…)可验证性、完整性、可修复性、经济性
2. 内部质量因素
代码行数(Lines od Code,LOC)、圈复杂度、可读性、可理解性…
三、软件生命周期与配置管理
1.软件生命周期(Software Development Lifecycle,SDLC)
从无到有:计划、分析、设计、实施、测试、维护
从有到好:更新版本
2.经典的软件过程模型(线性过程/迭代过程)
瀑布模型(线性)、增量过程(线性)、V 字模型(迭代)、原型过程(迭代)、螺旋
模型(迭代)
3.敏捷开发(Agile Development)
通过快速迭代和小规模的持续改进,以快速适应变化。
4.软件配置管理(SCM)和版本控制系统(VCS)
软件配置管理:追踪和控制软件的变化,其核心时版本控制和基线的确立
软件配置项(SCI):软件中发生变化的基本单元(比如文件)
基线(baseline):软件持续变化中的稳定时刻
配置管理数据库(CMDB):存储软件的各配置项随时间发生变化的信息+基线
版本(version):软件的任一特定时刻的形态的唯一编号
本地版本控制系统(Local VCS):仓库存储于开发者本地,无法共享和协作
集中式版本控制系统(Centralized VCS):仓库存储于独立的服务器,支持多人
协作
分布式版本控制系统(Distributed VCS):仓库存储于独立的服务器+每个开发
者的本地,比如 Git。
5.Git
Git 仓库:本地的 CMDB(.git)+工作目录(本地的文件系统)+暂存区(隔离工作目
录和本地的 CMDB)
文件只有三种状态:已修改、已暂存、已提交

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐