第六篇——软件工程课程总结

  首先说一下我们的课程,这学期的软件工程课时并不多,其实对于软件工程这门课来说我认为是不太够的,课堂时间不允许我们得到足够多的知识,而两次实习,两个上午,也不能真正让我们静下心专注做些什么,所以,也许真正的学习是在课堂之外,老师是一个引导的作用,对于感兴趣的部分,还是要自己在网上书上查找阅读,才能真正有收获。

  软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用都促进了经济和社会的发展,也提高了工作和生活效率 。

  软件工程是教我们如何更高效的开发管理软件的。对于一个复杂的软件系统来说,它会有一个开发,运行,衰退的周期,就是我们所说的软件生命周期。软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。对于我们平时学习C语言或者C++编写的小程序,几乎不存在生命周期一说,课程结束,编出来或者没有编出来,都静静的躺到电脑文件夹或者删掉了。显然软件工程的对象不是这种代码简单,功能简单的小软件,它的对象是拥有复杂系统,需要多个模块协调合作的比较大型复杂的软件。软件工程这门课程,对于我们理解大型软件的复杂度和结构,打开了一扇大门。

  软件工程令我印象深刻的是结构化设计。结构化分析是一种面向功能或面向数据流的需求分析方法,采用自顶向下、逐层分解的方法,建立系统的处理流程。其基本思想是:根据SA方法中的数据流图建立一个良好的模块结构图(例如SC图或软件层次方框图);运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结构图深度,宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构图或软件层次方框图。同时模块之间的联系越松散越好,而模块内各成分之间的联系越紧凑越好。逐层分解到最小因子时,基本可以精细到算法代码层次,这是非常令人惊喜的,写出了结构化的详细设计,就相当于最底层的代码编写已经搭好了框架,完成了一半。

  在软件工程这门课程的初始,老师就说过最好的学习方法就是实践,我们小组选定了做一个音乐播放器,围绕这个软件做了可行性分析,需求分析,概要设计,详细设计四篇文档的编写。在编写文档的过程中,我们了解到很多之前没有碰到过得问题,比如可行性分析中对于系统环境的说明,接口的说明,需求分析中对于人工,金钱的分配确定,概要设计中的出错预防,详细设计中的数据结构设计,都是需要我们思考一番才能确定的。软件工程不仅仅局限于编写程序,更多的软件从构思,开发到死亡的一个漫长的过程,同时学习它也需要不断实践和经验的积累!

时间: 2024-10-21 04:19:38

第六篇——软件工程课程总结的相关文章

《nodejs+gulp+webpack基础实战篇》课程笔记(六)--附加课

一.多页面分离资源引用,按需引用JS和css 我们前面实现了以下功能:1.新建了一个login模版(用到htmlWebpackPlugin).2.分别把main.js和login.js.reg.js分开写.3.学习了css加载器.我们通过webpack可以打包js文件.自动注入js和CSS引用. 那么我们要加载多页面如何操作呢?现在我们就在/src/tpl 文件夹下新件一个index.html文件,在CSS加入index.css,随便写两个样式,然后在/src/下新建一个index.js,随便写

《nodejs+gulp+webpack基础实战篇》课程笔记(七)--利用gulp自动完成配置"吐"给webpack执行

首先,我们利用gulp将入口文件自动化.我们参考该课程的规则,对文件需要成为入口的文件进行一个归类和整理. 首先,我们已经建立了SRC文件夹.在SRC文件下,创建一个主文件夹叫modules.同事创建几个子文件夹,创建的基本规则是:文件夹名就代表了我们的入口节点名. (此图仅供参考,文件夹名与文件名可自定义) 然后我们来到gulpfile.js,写入一个任务,在gulpfile中遍历modules文件夹里的文件夹和子文件(为了演示方便,我们默认遍历2级.第一级必须是文件夹名.第二级必须是js文件

西北师范大学软件工程课程助教总结

时间:2018.03.04-2018.07.18 班级:西北师范大学2015级计算机科学与技术(卓越班.名族班) 课程:软件工程课程 一.个人总结 起初以为"助教"就是帮助主讲老师辅助教学,看起来是一件极其容易的事,但当我真正加入由邹欣.周筠.代老师组织的构建之法软件工程课程教学的助教团队中时,我切实感受到了这个团队做事的严谨.热情和高能,从而感受到了助教的价值及意义以及做好助教工作的艰辛与付出.我很荣幸能有机会加入,一起学习,一起进步.由于第一次做助教工作,在这个过程中,遇到了些问题

ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 ElasticSearch入门 第三篇:索引 ElasticSearch入门 第四篇:使用C#添加和更新文档 ElasticSearch入门 第五篇:使用C#查询文档 ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套 在ElasticSearch中,使用JSON结构来存储数据,

软件工程课程设计指导随笔

本学期带14信息01班的<软件工程课程设计>,已经进入了尾声. 两周的课程设计,要求学生完成一个多角色的智能菜单系统,课程设计的任务是要求根据不同角色控制访问每个菜单项的权限,用户允许有多个角色:角色和用户都可以增加修改,另外只有管理员角色具有添加角色和用户的权限:而除开管理员之外的所有用户都不能调整角色和角色菜单:用户只能由管理员添加,而用户的个人信息又只能由个人修改:为了增加工作量,添加了一个日志功能,要求记住每次用户的登陆.退出时间和前端计算机的IP地址. 既然是软件工程的课程设计,当然

Python之路【第十六篇】:Django【基础篇】

Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver

Python之路【第六篇】:socket

Python之路[第六篇]:socket Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

软件工程课程总结

软件工程课程总结 一学期的软件工程课程就这样结束了,通过一学期的学习,让我对于软件工程的认知有很大的颠覆.在上这门课之前,我一直认为,所谓“软件工程”,只不过是把一个代码量很大的程序分给若干程序员去写,最后将代码整合在一起而已.但是通过这一学期课程的学习,我发现我的认知完全是错误的,而且可以说,错的非常彻底.软件工程,涵盖了软件生命周期中所有的工程方法.技术和工具,包括需求工程.设计.编程.测试和维护的全部内容,即完成一个软件产品所必备的思想.理论.方法.技术和工具.可以说,软件工程包括了从设计