软件工程2021:第1次作业—— 自我介绍 + “分析" 软件(热身运动)
前言:
作为一名“程序猿”预备役,我希望利用好博客和CSDN等平台,向业内大佬学习,弥补知识上的不足,也把自己学习过程中的一些理解发表出来,自省并改善。
一、自我介绍
我是杨雅雯,就读于南通大学数据科学与大数据技术专业。
这个专业是近几年新型的应用性专业,贴合时代的发展趋势,就业前景良好——这也是我选择该志愿的重要原因之一。大数据专业要求对数据进行挖掘、分析和存储,这要求我们具有扎实的数学和统计学基础,而除了高等数学、概率论、离散数学等学科,目前我们的学习内容重心仍是放在计算机基础上,诸如C++程序设计、Java程序设计数据结构、计算机网络、操作系统、软件工程等,这些都是必修课程,主要培养我们的基本编程能力和思维方式,为后期的大数据技术学习打下基础。
在两年的学习生涯里,我对计算机这个世界有了较为浅薄的认知,但个人能力并不突出,目前只能简单掌握C、C++、Java、Python的一些基础编译,还不能熟练地分析一个算法、独立设计一个完整的程序,因此在接下来的学习过程中,我会更加努力,认真学习每一门课程。
二、谈谈自己对软件的一些分析
要学习一门课程,首先要了解这门课程讲的什么。软件工程(Software Engineering),顾名思义,是将系统化的、有组织培训的、有利质量保障的方法(即工程化的方法)用于软件开发与维护。在了解软件工程的含义后,我们还要了解软件是如何构建的,以及软件的价值要素有哪些,在开发软件时候我们可以采取什么措施来实现这些价值目标。
-
软件构建过程的必要步骤:(资料来源于老师课件的整理以及百度)
①需求分析:明确用户需求。分析现有软件, 用你们写的软件的用户量来证明你了解用户的需求。
②设计阶段:规划系统的基本处理流程、组织结构、模块划分、功能分配、接口设计、运行设计、数据结构和出错处理等。用快速发布来证明设计是有效的, 能适应变化的。
③实现阶段:经过编译、调试、将软件开发与软件产品结合起来。用各种软件工程的衡量手段来证明大家实现的能力。
④稳定阶段:测试编写好的系统。证明测试能否覆盖代码的大部分。
⑤发布阶段: 如期发布, 用户量, 用户评价。接收反馈、改进不足。
⑥维护阶段:根据需求变化或硬件环境变化对应用程序进行部分或全部的修改。
-
软件的价值要素:(资料参考《构建之法——现代软件工程》)
①用户满意度:一个好的软件应当满足用户需求,只有符合用户需求才能体现这个软件的价值。
②可靠性:如果某个软件或网站经常崩溃、某个操作系统经常死机,同样留不住用户,因为它同样影响了用户的使用效率。
③可维护性:如果一个软件的可维护性低下,不能根据需求变化或硬件环境变化对应用程序进行部分或全部的修改,同样会给用户的使用带来麻烦, 因此软件的可维护性也很重要,可维护性低下的不如推翻重做。
④安全性:用户使用某个软件或者网站时,一定是希望自己的隐私得到保护的,如果防御系统存在漏洞也会给用户带来不好的体验。
-
如何实现软件的这些价值要素:
①软件的诞生源于用户的某项需求,是为用户提供良好服务的,因此在研发过程中势必要站在用户的角度考虑问题,充分理解用户需求。
②在需求分析无误的前提下,软件的设计开发阶段要进过充分讨论和评审,确保架构和编码的严谨,上线前要对设计好的软件进行多次测试,软件在硬件上的部署也要全面考虑需要应对的风险,确保足够的冗余,上线后的软件运维支撑,要做好日常作业计划,制定相应的应急处理流程,除了做好数据的备份外,还要定期进行相关的应急演练,以确保出现问题及时恢复。软件的整个构造过程都要严谨,从而保证软件的可靠性。
③我们可以通过使用先进的软件开发技术和工具、明确软件的质量目标和优先级、进行质量保证审查、选择可维护的程序设计语言、改进程序的文档来改进软件的可维护性。
④对可能面临的安全问题提供相应的安全实践培训,确保项目的每个开发人员都能清楚地了解系统的安全需求和基本的安全威胁,提高团队成员的安全意识,确定专门的安全测试人员,这些都可以提高软件的安全性。
三、总结
以一张软件工程的知识结构图作为总结: