软件工程学习心得——汪子洲

更新时间:2023-06-11 00:22:42 阅读: 评论:0

软件工程实践课总结
转眼间软件工程实践课就结束了。课程虽然短暂,但是内容丰富,其中更有很多不仅仅局限于这门课程,甚至不局限于计算机这门学科的学问值得我们去挖掘与学习。下面我浅谈一下这门课学习下来自己的一点点收获。
本课程名为软件工程实践,首先我想以它的理论课——软件工程作为开始。首先我们应该明确一下何为软件工程。软件工程,即将系统的,规范的,可度量的工程化方法应用于软件开发、运行和维护的全过程以及对上述方法的研究。它有三个组成要素:
1、软件工程方法:项目计划、估算、系统与软件需求分析、软件设计、编码、测试和维护。
2、软件工程工具:辅助支持软件的开发、管理以及文档生成等。
3、软件工程过程:贯穿软件开发的每个环节,过程的细节在于对质量、进度、成本进行评估、管理和控制。
下面再介绍几个关于软件工程的重要知识点:
软件工程方法学
软件工程方法学是为了解决软件危机问题而逐渐形成的学科,研究对象主要是软件与程序。它分成两个不同的角度与方法:以数学理论为基础的理论性程序设计方法学和以工程方法为基础的程序开发、维护、工具和管理的软件工程学。他们之间的差异在于:1、方法与途径不同,一个是应用性的工程方法,另外一个是理论性的数学方法。2、对象有所侧重,软件工程学一般争对大型程序或者系统,程序设计方法学侧重较小的程序模块。3、软件工程学注重宏观可用性,程序设计方法学注重微观正确性。
软件工程的基本原理
1983年由B.Boehm提出,这七条原理是保证软件产品质量与开发效率的最基本的准则。
1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制。
4.采纳现代程序设计技术。
5.结果能清楚地审查。
6.开发小组的人员应少而精。
7.承认不断改进软件工程实践的必要性。
软件工程的目标
在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性,可重用性、可适应性、可移植性、可追踪性、可互操作性并能满足用户需求的软件产品。
软件工程的几个主要阶段
可行性分析需求说明与分析概要设计详细设计编码测试维护
    软件工程的内容
软件工程主要包含软件开发技术与软件开发管理。
其中软件开发技术包括软件开发方法、软件开发过程、软件开发工具、软件开发环境。软件开发管理包括软件管理学、软件经济学、软件心理学。
软件工程的原则
原则是因软件工程的目标而设,包括:
抽象:采用分层次抽象控制软件开发过程的复杂性。
模块化:由逻辑独立单元构成,有良好的接口。
信息隐藏:技术与逻辑封装隐藏起来。
局部化:模块具有内聚性,局部独立。
完整性:完全实现系统需要的功能。
一致性:使用一致的概念、符号与术语。
可验证性:系统容易检查,测评,评审。
软件生命周期模型
软件生命周期模型就是描述软件开发过程中各种活动执行的抽象模型,主要有如下几种:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、基于知识的模型、变换模型。
软件开发方法
结构化方法、Jackson方法、维也纳开发方法、面向对象的开发方法。面向对象的开发方法有:Booch方法、Coad方法、OMT方法。
在一定程度上熟悉了软件工程的基本概念后,我们现在可以通过具体的实际的例子在理论的指导下来分析一下具体的例子,也就是开始初步的软件工程实践。
ORACLE的物联网物流仓储管理系统为例,将例子分为需求分析、概要设计、详细设计三个阶段做略微详细的说明。
首先开始需求分析。
为了思维过程、这里把需求分成说明阶段与分析阶段,但在实际工作中这两个阶段经常是同时的、甚至是不可分的。要把需求说明清楚,则必须要进行需求分析;需求分析的结果就是需求说明的内容。需求说明一般采用非形式化描述,需求分析采用形式化描述;需求分析是软件定义的最后阶段;需求分析必须准确解决“系统必须做什么”这个问题,而不是解决“系统怎么做的问题”;需求分析结束后,必须提交详细的数据或者功能流、数据字典、算法描述等。
需求分析的主要任务是:
1、问题明确定义,包括:
功能需求:软件具备的功能。
性能需求:访问延时、存储容量、运行时间、负载,并发访问。
环境需求:硬件、操作系统、数据库管理系统、工具等。
    用户界面需求:界面形式,输入输出数据格式等。
系统可靠性、安全性、维护性、移植性需求。
2、建立软件的逻辑模型
功能用例结构。
3、编写文档
编写需求说明文档。
一般需求分析模板如下:
1、系统概述
·现状分析,建设目标
·系统范围定义
·条件与限制
2、功能需求
·用例模型
·整体功能描述
·功能用例
3、外部接口
·硬件接口,软件接口,通信接口
4、非功能性需求
·安全需求,维护性,移植性,可靠性,易用性,效率,性能需求                    1
·用户界面需求
·文档需求
    ·系统运行环境需求:运行环境、支撑软件
·其他需求
结合本实践实例,我们需要分析如下需求用例:
·结算员用例
·仓库经理用例
·仓库管理员用例
·验货员用例
·系统管理员用例
我们以结算员用例为代表进行分析(图1),其中又以用户登录模
块为例图2
图2
其他模块类似,不再赘述。
其次是概要设计。
概要设计也称为总体设计、概要的回答系统如何实现。这是开发阶段的第一步。
概要分析与设计把需求分析用例模型转换为软件结构和数据结构,将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。概要分析与设计建立的是目标系统的逻辑模型,与计算机无关。
概要设计的主要任务:
·软件体系结构设计
·模块划分
·确定模块功能
·模块的调用关系
·模块之间的接口
·数据设计
·
数据结构设计
·界面设计
·界面风格与模版设计
概要设计一般模板:
项目概述
设计约束:1需求约束2隐含约束
功能单元和业务流程设计:1功能和规划2主要业务流程
数据E-R模型设计
总体设计:1.逻辑架构设计2.物理架构设计3.技术架构设计
用户界面设计:1页面布局设计2页面风格展示
运行环境和部署:1运行环境2系统性能要求
图3
根据图3的总体框架,为每个部分撰写详细说明,如:
系统功能说明-入库管理1
入库申请
客户出示IC卡或客户唯一标识到开单结算窗口提出货物入库申请。
开单结算员使用客户出示的IC卡或客户唯一标识查询客户资料。
开单结算员根据货物种类输入库存价,根据实际人力成本输入力资费,其他费用可选。
开单结算员可以根据客户的意向进行选择仓库和仓位,但实际仓库和仓位由仓库管理员按照实际情况进行决定。
客户办理入库申请之后,系统发送入库短信给客户,并通过物联网发送一条Socket消息给验货员进行验货。
开单结算员打印入库工作单,交予客户。
入库办理短信如下:"尊敬的**客户,入库办理成功,进入验货装盘阶段!请确认,如有任何疑问请及时联系我们。【物联网中心】“
验货装盘
客户使用入库工作单到验货员处进行验货装盘。
验货员根据手持设备上的入库消息和客户的入库工作单对货物进行验收装盘。
验货员根据客户的实际货物,在手持设备上填写货物名称、货物规格、货物件数,并扫描托盘。
验货员逐件货物进行验货装盘,待所有货物验收完成后,验货员的手持设备向服务器发出验货完成消息。
服务器处理完数据之后,返还处理成功提示信息。并发送短信给客户提示验货装盘完成。
验货装盘短信内容如下:"尊敬的**客户,你的货物已经分批装盘,本批装盘货物如下:苹果,10030公斤/,装盘成功!请确认,如有任何疑问请及时联系我们。【物联网中心】"
其次是详细设计
详细设计:
·物理设计
确定操作系统,数据库,开发平台,开发工具等。
·数据结构设计
数据类型,数据表等。
·算法设计
每个模块的过程详细流程,异常处理,调用时序等。
·界面设计
字符界面/图形界面/多媒体界面。
·其他设计
表单设计、报表设计、输入输出数据格式设计、配置设计等
   
详细设计重要工具UML(统一建模语言):
UML的基本图标共9个图,5个静态图,4个动态图。
·静态图:类图、对象图、用例图、组件图、部署图
·动态图:时序图、协作图、活动图、状态图
·其他特征:包、注释、构造型、关系与连接等
举例如下:类图:图4  界面设计:图5  部分代码:图6
图4
                                        图5
图6
编码、测试和维护部分略。
课程小结:选择需求分析做具体说明的原因是,它可以说是软件工程各个阶段中最重要的一个阶段。能否做成一个完善的软件大部分取决于是否能做出全面的需求分析。它是大方向,做一件事情只有方向对了才会成功,否则付出再多努力从某种程度上来说也是一种浪费。这就是需求分析的意义所在。
而概要设计和详细设计则是培养我们的一种大局观,一种宏观调控意识。由上到下,层层
细化。面向对象的程序设计交给我们的不止是做软件工程方面的经验,这种经验是可以应用到社会上各种事物的处理和协调上去的。我觉得这才是我们学习软件工程这门课的真正价值所在。

本文发布于:2023-06-11 00:22:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/168641416271743.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:软件工程学习心得——汪子洲.doc

本文 PDF 下载地址:软件工程学习心得——汪子洲.pdf

标签:需求   分析   设计   软件   系统   模型
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|