软工作业1:自我介绍+软工五问
所属课程 | 软件工程导论 |
---|---|
作业要求 | 自我介绍+软工五问 |
作业目标 | 介绍自己,了解并学会github的使用,熟悉markdown格式,学习写博客记录,通过博客与其他开发者进行交流,思考对于本课程的看法与问题 |
自我介绍
大家好,我是林劲辰,来自浙江温州,就读于广东工业大学计算机学院,目前努力学习专业知识、托福,将来打算考研+留学,然后回国成为一名打工仔并努力过上快乐生活。我目前的愿望是在前排看一场周杰伦的演唱会,希望能抢到票。平时兴趣是听歌、打麻将、剧本杀、篮球、健身和看电影,并且我热爱旅游,希望看遍世界各地的风景和建筑,能够在全世界留下我的足迹。下面是一些暑假的旅游照片
提出的问题
- 在软件开发中,从哪些方面研究软件的可行性
- 在进行需求分析的时候需要重点关注什么
- 如何确保需求的准确性和完整性
- 如何体现软件的可维护性
- 面向对象程序设计有哪些优点
阅读相关内容后得到的解答:
-
软件工程的可行性分析主要从经济、技术、操作、法律四个方面进行研究。
① 经济可行性分析:经济效益能超过她的开发成本吗?
② 技术可行性分析:使用现有的技术能否实现这个系统?
③ 操作可行性分析:操作方式在这个用户组织内行得通吗?
④ 法律可行性分析:开发的系统是否会触犯法律法规? -
软件需求的定义包括了用户角度(系统的外部行为)和开发人员角度(系统的内部特性)两个方面
① 开发人员要准确地理解用户的要求,进行细致的调查研究,将用户非形式化的需求描述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)。
② 理解、分析和表达“系统必须做什么”。
③ 为用户所看到的系统建立一个概念模型,对需求的抽象描述。 -
通过5点可以确保需求的准确性和完整性
① 深入了解业务:与业务方进行充分的沟通和交流,了解他们的需求和期望。这可以通过面对面的会议、电话会议、问卷调查等方式进行。
② 规范需求文档:撰写清晰、详细、易于理解的需求文档,包括功能需求、非功能需求、用户故事、用例等内容。需求文档应具备一致性和可测量性,以确保所有干系人对需求有共同的理解。
③ 定期复审:定期与业务方和开发团队进行需求复审,确保需求的准确性和完整性。在复审过程中,可以讨论和澄清任何不明确或矛盾的需求,并及时更新需求文档。
④ 验证和确认:开发团队在实现每个需求功能后,应与业务方进行验证和确认。这可以通过演示、功能测试、用户验收测试等方式进行。任何未满足的需求或变更请求都应及时记录并进行后续处理。
⑤ 持续改进:需求是一个持续演化的过程,在项目进行中,可能会出现新的需求或变更。因此,需要与业务方保持紧密的沟通,及时更新和调整需求,以确保准确性和完整性。 -
应用系统的可维护性主要表现在三点:
① 可理解性:是否很容易地理解软件的行为,理解系统的功能是如何实现的;
② 可识别性:当出现错误时,是否很容易地定位到错误的源头;
③ 可变化性:当修复问题或扩展新功能时,所做的修改和影响是否局限在更小的范围内。 -
面向对象程序设计有以下5个优点:
① 易维护:采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的
② 易扩展:通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;我们可以在标准的模块上(这里所谓的”标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率
③ 模块化:封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。这样可以使程序具备更高的模块化程度,方便后期的维护和修改。同时,面向对象语言允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰
④ 方便建模:虽然面向对象语言中的对象与现实生活中的对象并不是同个概念,但很多时候,往往可以使用现实生活中对象的概念抽象后稍作修改来进行建模,这大大方便了建模的过程。(但直接使用现实中的对象来建模有时会适得其反)
期望的收获
- 了解软件设计的过程,学会去分析和处理问题
- 掌握并熟悉需求分析的过程,学习去确定客户对于软件的真实需求
- 培养自己基本工程素质和能力,激发自己的积极性