软件工程学习笔记

目录

 第一章 综述笔记

产品|商品的特性:

2022/3/5 数据流图和ER图的绘制

2022/3/10 顺序图

顺序图(Sequence Diagram):

例题:顺序图转为代码

3/18 Z语言

作业题 


 第一章 综述笔记

综述:软件工程是关于软件的工程

引出三个问题:
Q1、什么是软件
Q2、什么是工程
Q3、什么是软件工程


1、软件=程序(核心|基础|规范)+文档(模型:建模→分析|UML)+(大)数据


2、软件→复杂系统→Teamwork→文档


3、(复杂)软件(往往是产品|商品)→软件产品|商品化软件→甲方[客户|用户]


产品|商品的特性:


[T]ime to Market:尽可能短→进度控制:1)996→007延长工作时间2)体系结构可拆分(并行开发)、适当的开发模型(尽可能早的发现问题并加以解决→分阶段→里程碑)


[Q]uality:尽可能高→质量控制:1)符合需求2)体系结构健壮安全可维护3)高质量编写代码(可读、可维护、可靠、高性能)4)适当的软件测试5)用户培训


[C]ost:尽可能低→成本(预算)控制:

1)合适的开发工具(RAD:Rapid Application Development)

2)组件(复用)

3)合理的体系结构(尽可能降低对程序员资质和人数的需求,拆分后工作可由初级程序员完成或外包)

4)适当的开发模型(尽可能早的发现问题并加以解决→分阶段→里程碑)


[S]ervice:尽可能好→优质服务:1)[Q]uality 2)可维护(体系结构|代码|在线升级)3)实时响应(CC-常驻运维)


[E]nvironment:环境友好→1)系统架构2)高效代码


[O]ther:法律法规……


4、软件危机:定义和表现(TQC失控)
原因:软件(逻辑产品)|硬件(流水线)
结论:不能用硬件生产思维去处理软件开发
     ↓↓↓
     工程思想
     ↓↓↓
分→大事化小、小事化了(了解→解决方案→了结)


5、工程→软件→软件工程:两个定义
GB----实践者视角
约束:预算+进度
 ↓↓↓
基线:用户需求(甲方)→[过程:开发、运行、发布、维护(分解)]→目标:(高质量)软件产品
↑↑↑

基础:计算机科学与技术+工程管理
IEEE----方法论视角
系统、规范、可量化|工程思想


6、软件工程思想:分→分解、分类、分析


7、软件开发过程→分:阶段
 需求工程、软件设计、软件构造、软件测试、软件交付、软件维护
    ↓↓↓
目标、关注点、方法(建模)、任务、执行者、制品(文档)


8、软件开发活动的组织→软件生命周期|模型
    ↓↓↓
软件过程模型:
    构建-修复:分阶段→里程碑(文档)
    ↓↓↓
    瀑布模型(文档驱动):线性顺序|重文档→尽可能早的发现问题
    ↓↓↓
    迭代:增量(壹→壹贰→壹贰叁)、演化(123→一二三→壹贰叁)
    ↓↓↓用户需求获取的困难|技术路线和可行性不明确
    原型(UI)→原型风险
    ↓↓↓
    螺旋(风险)
    ↓↓↓
    RUP(用例驱动-过程:Workflow)→UML→软件支撑|不易裁剪
    ↓↓↓快速响应用户需求
    敏捷开发(XP-轻文档)……
 


2022/3/5 数据流图和ER图的绘制

软件工程学习笔记_第1张图片


2022/3/10 顺序图

原文:UML 之 顺序图(Sequence Diagram)_小崔的专栏-CSDN博客_uml顺序图

顺序图(Sequence Diagram):

软件工程学习笔记_第2张图片

是一种强调对象间消息传递次序的交互图,又称为时序图或序列图。描述了在一个用例或操作的执行过程中对象如何通过消息相互交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。

组成:

软件工程学习笔记_第3张图片

交互片段(Interaction Fragment):

一个复杂的顺序图可以划分为几个小块,每一个小块称为一个交互片段,由一个大方框包围。

软件工程学习笔记_第4张图片

常用的操作符包括:

1) alt:多条路径,条件为真时执行。

2) opt:任选,仅当条件为真时执行。

3) par:并行,每一片段都并发执行。

4) loop:循环,片段可多次执行。

消息:

软件工程学习笔记_第5张图片

1)调用消息(Call Message): 在顺序图中有的消息对应于激活,表示它将会激活一个对象。

2)发送消息(Send Message): 如果消息没有对应激活框,表示它不是一个调用消息,不会引发其他对象的活动。

3)自身消息(Self Call Message): 如果对象的一个方法调用了自己的另一个方法时,消息是由对象发送给自身。

4)创建/销毁消息(Create/Destroy Message): 创建消息用于使用new关键字创建另一个对象,而销毁消息用于调用对象的销毁方法将一个对象从内存中销毁。

例题:顺序图转为代码


分析:

1. 观察可得fox类中有一个alt操作符,表示多条路径,为if - else if - else结构

2. fox发送消息给dog类,调用dog中的方法,所以需要提前在fox类中new一个dog类,调用的时候用对象名加点调用

3. dog中有a.b.c三个方法,题目中没有说明返回值类型,所以可以定义void类型

4. i>100, i<100 等都是判断条件,放在if else里

软件工程学习笔记_第6张图片  软件工程学习笔记_第7张图片

3/18 Z语言

 三部分组成:S名称、D声明部分、P断言

软件工程学习笔记_第8张图片

符号解释: 

(?)  输入变量 

(!)输出变量

(')   后状态变量

\     减去

#    数量

  状态查询

▷  范围限制

check_out:借阅信息

copy :馆藏本

 

 解释:该借阅者借阅信息中记录的已借书目的数量需要<每个人可以借的最大书目数目

 

 解释:借阅者借走图书后,图书馆现有的可借书目=原来的可借书目-借书者借走的书目


作业题 

软件工程学习笔记_第9张图片

用例图 

软件工程学习笔记_第10张图片

 顺序图软件工程学习笔记_第11张图片

 

 

你可能感兴趣的:(Python笔记,需求分析,性能优化,规格说明书,团队开发)