软件工程简答

什么是软件工程

软件工程:将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。支持软件工程的根基在于质量关注点。
软件工程的基础是过程层,将各个技术层次结合在一起。方法层为构建软件提供技术上的解决方法。工具层为过程和方法提供自动化或半自动化的支持。

通用过程模型的定义内容
通⽤过程框架定义了 5 种框架活动 —— 沟通、策划、建模、构建以及部署。
⼀系列普适性活动 —— 项⽬跟踪控制、⻛险管理、质量保证、配置管理、技术评审以及其他活动(测量、配置管理、可复用性管理、工作产品的准备和生产) —— 贯穿软件过程始终。

什么是敏捷及优缺点原则,常见框架/方法

敏捷

要定义灵活机动、有适应能力和精益的过程以适应现代商务的需求。 敏捷开发 是⼀种软件开发⽅法论,可以应对客户快速变更的需求。它强调以⼈为核⼼,采⽤迭代的⽅式,循序渐进的 开发软件。

敏捷框架
Scrum 在固定的时间盒内进行检视和调整,并坦诚地面对真相。每次冲刺期间都会产生至少一个软件增量,产生有形成果。
XP框架(极限编程)最广泛。按照策划、设计、编码、测试四个框架活动组织,并提出一系列新颖有力的技术。保证利益相关者指定优先级特征和功能软件的频发发布。
看板法 提供了改进过程或工作流的方法,专注于变更管理和服务交付。
DevOps 将开发与运维结合。快速响应需求提升客户体验。

软件工程师的特质

个人责任感、敏锐的意识、坦诚、抗压能力、高度的公平感、注重细节、务实的。

采用敏捷理论、社交媒体和电子通信对全球化软件开发尤其有益处。

风险管理的定义

风险是关系到未来的事件,涉及选择具有不确定性、损失性。

风险分析和管理是标识风险、评估其发生的概率、估算其影响和建立在实际发生情形下问题的应急计划,是一系列帮助软件小组理解和管理不确定性的步骤。

习题:

1.软件过程

为创建高质量软件所需要完成的活动、动作和任务的框架。 活动主要实现宽泛的目标。动作包含主要工作产品生产过程中的一系列任务。任务关注小而明确的目标,能够产生实际产品。
2.UML

是提供支持面向对象软件工程时间必要的一种技术,是一种建模语言。
3.重构

通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。


1.软件工程实践的精髓有哪些?(8分)

①理解问题

②策划解决方案

③实施计划

④检查结果

2.敏捷软件开发宣言有哪些?(8分)

  • 个体和互动 高于 流程和工具
  • 工作的软件 高于 详尽的文档
  • 客户合作 高于 合同谈判
  • 相应变化 高于 遵循计划

4.软件生命周期包括哪些阶段?(8分)

需求分析阶段:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。

软件设计阶段:主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。

软件编码阶段:是将软件设计的结果转换成计算机可运行的程序代码。

软件测试阶段:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。

软件运行和维护阶段:是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。

5.UML中的图形的有哪些?(6个以上得满分,本题6分)

顺序图、类图、活动图、状态图、泳道图、构件图、部署图

需求工程的基本任务

需求⼯程是指致⼒于不断理解需求的⼤量任务和技术。

需求⼯程包括七项任务:起始,获取,细化,协商,规格说明,确认和管理。

XP重构和结对编程

XP:极限编程,是一种轻量级的、灵巧的软件开发方法。具有严谨和周密的特征。

结对编程:指是两位程序员并肩坐在同一台电脑前,共同探讨设计方案、共同设计算法、共同编写程序代码、共同完成各种测试。

构件内聚类型

内聚分类:功能内聚、分层内聚、通信内聚、顺序内聚、过程内聚、时间内聚、偶然内聚


耦合性
耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接⼝的复杂程度、调⽤模块的⽅式 以及那些信息通过接⼝ 。
 

敏捷开发原则

1. 快速迭代

2. 让测试人员和开发者参与需求讨论

3. 编写可测试的需求文档

4. 多沟通,尽量减少文档

5. 做好产品原型

6. 及早考虑测试

软件体系结构

提供了待构建软件的整体视图,描绘了软件构件的结构和组织形式,构件的性质及构件之间的链接。

需求确认的工作

需求调研和准备、需求分析、需求验证、项目范围说明书和工作分解结构(WBS)、需求变更管理


2.2统一过程模型(重要)
统一过程模型是一种“用例驱动、以体系结构为核心、迭代及增量”的软件过程框架,由UML方法和工具支撑。五个UP阶段不是顺序执行,而是阶段性并发执行。
1. UP 的 起始阶段 包括客户沟通和策划活动。
2. 细化阶段 包括沟通和通⽤过程模型的建模活动。
3. 构建阶段 与通⽤软件过程中的构建活动相同。
4. 转换阶段 包括通⽤构建活动的后期阶段以及通⽤部署活动的第⼀部分。
5. ⽣产阶段 与通⽤过程的部署活动⼀致。

黄金规则

Theo Mandel 关于界⾯设计提出的三条⻩⾦规则

1. 把控制权交给⽤户

2. 减轻⽤户的记忆负担

软件测试
目的是发现错误。
步骤
①单元测试,侧重于单个构建,确保起到单元的作用
②集成测试 侧重于软件体系结构的设计和构建
③高阶测试 
④确认测试 需求的最终保证
⑤系统测试 软件与系统的其他部分作为一个整体测试

3.开发用例

·ATM取款

·餐厅使用信用卡付费

·使用在线书店搜索书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/760035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetCode.98. 验证二叉搜索树

leetCode.98. 验证二叉搜索树 题目描述 代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(n…

鱼叉式钓鱼

鱼叉式网络钓鱼: 鱼叉式网络钓鱼是一种网络钓鱼形式,它针对特定个人或组织发送定制消息,旨在引发特定反应,例如泄露敏感信息或安装恶意软件。这些攻击高度个性化,使用从各种来源收集的信息,例如社交媒体资…

sky18流水线设计

1.最大时钟频率确定 时钟周期要大于等于组合逻辑的delay(最大的那条delay) Freq_max(Mhz) 1000/T_delay(ns); 数据吞吐率Throughput Freq_max *Toggle_rate;//Toggle_rate:如两个时钟,输入变一次,就是50%&#xff1b…

【考研408计算机组成原理】微程序设计重要考点指令流水线考研真题+考点分析

苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 目录 微指令的形成方式 微指令的地址形成方式 对应考题 题目:微指令的地址形成方式 - 断定方式 解题思路: 答题: 分析考点&…

大模型系列课程学习-基于2080TI-22G魔改卡搭建双卡大模型训练平台(双系统)

1.选择合适的硬件配置 再配置电脑之前,需要确认自己需要的显存大小、主板、内存条、电源、散热等核心配件。经过前期调研,选择的硬件配置如下: (1)主板:华南X99_F8D(DDR4主板),因为需要支持双卡…

1Panel运维利器:功能详解与实操指南

官网地址:https://1panel.cn/ 1Panel简介 1Panel是杭州飞致云信息科技有限公司旗下产品,是一款现代化、开源的Linux服务器运维管理面板,于2023年3月推出。 名称:1Panel开源Linux面板 所属公司:杭州飞致云信息科技有限公司 编写语…

基于HarmonyOS NEXT开发智能提醒助手

目录 目录 目录 前言 关于HarmonyOS NEXT 智能提醒助手需求分析 智能提醒助手设计 1、系统架构 2、功能模块 智能提醒助手的应用场景 智能提醒助手的竞争力 具体技术实现 未来展望 结束语 前言 随着智能设备的普及和物联网技术的飞速发展,人们对于智能…

忙忙碌碌的混沌之中差点扑了个空而错过年中这条线

文章目录 前言初见端倪混沌初始力不从心心力交瘁拾遗补缺总结 前言 突然意识到过完这个周末已经7月份了,他预示着我的2024年已经过半了,过年回家仿佛还是昨天的事情,怎么转眼间已经到了年中了。心里还是不愿承认这件事,翻开自己2…

Nacos配置中心客户端源码分析(一): 客户端如何初始化配置

本文收录于专栏 Nacos 推荐阅读:Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…

github主页这样优化,让人眼前一亮

我的主页(一之十六) 1. 创建与账户ID同名的仓库 注意:记得勾选Add a README file 2. markdown语法自定义README.md 3. 辅助工具 优秀profile:https://zzetao.github.io/awesome-github-profile/动态文字:https://r…

SpringMVC(1)——入门程序+流程分析

MVC都是哪三层?在Spring里面分别对应什么?SpringMVC的架构是什么? 我们使用Spring开发JavaWeb项目,一般都是BS架构,也就是Browser(浏览器)-Server(服务器)架构 这种架构…

谷歌开发者新号上架攻略:开发者实战经验分享

前段时间,不少开发者朋友们在纷纷在吐槽新账号没法上架成功。以前谷歌对新号是真的很严格,但现在情况似乎有所好转。 今天,和大家聊聊如何在新号成功上架上“快人一步”,以及怎样增加账号权重提高上架成功率。 首先,我…

成绩发布背后:老师的无奈与痛点

在教育的广阔天地里,教师这一角色承载着无数的期望与责任。他们不仅是知识的传播者,更是学生心灵的引路人。而对于班主任老师来说,他们的角色更加多元,他们不仅是老师,还必须是“妈妈”。除了像其他老师一样备课、上课…

Linux文件系统与设备文件

一、Linux文件操作 Linux的文件系统API主要涉及创建、打开、读写、定位、关闭文件 创建 int creat(const char *filename, mode_t mode);mode: 代表新建文件的存取权限,需要和umask相与才能确定最终权限(mode&umask)。 umask代表文件在创建时需要去掉的存取…

8.12 矢量图层面要素单一符号使用十(箭头线渲染边界)

前言 本章介绍矢量图层线要素单一符号中箭头线渲染边界的使用说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 箭头线渲染边界(Outline: Arrow) Outline系列只画边界,不填充内容以protected_areas.shp为例,图…

Spring 动态增强逻辑执行分析

1、假如UserService中存在被增强的public 普通方法,那么spring ioc时就会创建对应的代理对象放置到容器中; 2、那么Controller中注入的userService就是代理对象; Service public class UserService {Transactionalpublic void f2(String us…

【训练篇】MLU370-M8 完成 qwen1.5-7b-chat-lora训练及推理

文章目录 前言一、平台环境配置二、环境 or 模型准备1.模型下载2.环境准备2.1 modelscope2.2 transformers2.3 accelerate2.4 deepspeed2.5 peft2.6 环境代码修改 3训练代码准备4 代码修改 三,训练后推理验证四.推理效果展示1.微调前2.微调后 前言 本期我们采用魔塔…

【雷达原理】雷达测角原理及实现方法

目录 一、雷达测角原理1.1 测角研究历史和现状1.2 测角方法总结1.3 3DFFT测角1.3.1 基本原理1.2.2 测角性能 二、MATLAB仿真案例参考文献 一、雷达测角原理 1.1 测角研究历史和现状 (1)早期采用窄波束对准目标,目标的角度对应于天线的角度读…

【高性能服务器】服务器概述

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 服务器概述 服…

[深入理解DDR] 总目录

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 蓝色的是传送门,点击链接即可到达指定文章。 图。 DDR 分类 导论 [RAM] DRAM 导论:DDR4 | DDR5 | LPDDR5 | GDRR6 | HBM 应运而生 运存与内存?内存与存…