软工作业1:自我介绍+软工五问

所属课程 软件工程导论
作业要求 自我介绍+软工五问
作业目标 介绍自己,了解并学会github的使用,熟悉markdown格式,学习写博客记录,通过博客与其他开发者进行交流,思考对于本课程的看法与问题

自我介绍

大家好,我是林劲辰,来自浙江温州,就读于广东工业大学计算机学院,目前努力学习专业知识、托福,将来打算考研+留学,然后回国成为一名打工仔并努力过上快乐生活。我目前的愿望是在前排看一场周杰伦的演唱会,希望能抢到票。平时兴趣是听歌、打麻将、剧本杀、篮球、健身和看电影,并且我热爱旅游,希望看遍世界各地的风景和建筑,能够在全世界留下我的足迹。下面是一些暑假的旅游照片

提出的问题

  1. 在软件开发中,从哪些方面研究软件的可行性
  2. 在进行需求分析的时候需要重点关注什么
  3. 如何确保需求的准确性和完整性
  4. 如何体现软件的可维护性
  5. 面向对象程序设计有哪些优点

阅读相关内容后得到的解答:

  1. 软件工程的可行性分析主要从经济、技术、操作、法律四个方面进行研究。
    ① 经济可行性分析:经济效益能超过她的开发成本吗?
    ② 技术可行性分析:使用现有的技术能否实现这个系统?
    ③ 操作可行性分析:操作方式在这个用户组织内行得通吗?
    ④ 法律可行性分析:开发的系统是否会触犯法律法规?

  2. 软件需求的定义包括了用户角度(系统的外部行为)和开发人员角度(系统的内部特性)两个方面
    ① 开发人员要准确地理解用户的要求,进行细致的调查研究,将用户非形式化的需求描述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)。
    ② 理解、分析和表达“系统必须做什么”。
    ③ 为用户所看到的系统建立一个概念模型,对需求的抽象描述。

  3. 通过5点可以确保需求的准确性和完整性
    ① 深入了解业务:与业务方进行充分的沟通和交流,了解他们的需求和期望。这可以通过面对面的会议、电话会议、问卷调查等方式进行。
    ② 规范需求文档:撰写清晰、详细、易于理解的需求文档,包括功能需求、非功能需求、用户故事、用例等内容。需求文档应具备一致性和可测量性,以确保所有干系人对需求有共同的理解。
    ③ 定期复审:定期与业务方和开发团队进行需求复审,确保需求的准确性和完整性。在复审过程中,可以讨论和澄清任何不明确或矛盾的需求,并及时更新需求文档。
    ④ 验证和确认:开发团队在实现每个需求功能后,应与业务方进行验证和确认。这可以通过演示、功能测试、用户验收测试等方式进行。任何未满足的需求或变更请求都应及时记录并进行后续处理。
    ⑤ 持续改进:需求是一个持续演化的过程,在项目进行中,可能会出现新的需求或变更。因此,需要与业务方保持紧密的沟通,及时更新和调整需求,以确保准确性和完整性。

  4. 应用系统的可维护性主要表现在三点:
    ① 可理解性:是否很容易地理解软件的行为,理解系统的功能是如何实现的;
    ② 可识别性:当出现错误时,是否很容易地定位到错误的源头;
    ③ 可变化性:当修复问题或扩展新功能时,所做的修改和影响是否局限在更小的范围内。

  5. 面向对象程序设计有以下5个优点:
    ① 易维护:采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的
    ② 易扩展:通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;我们可以在标准的模块上(这里所谓的”标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率
    ③ 模块化:封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。这样可以使程序具备更高的模块化程度,方便后期的维护和修改。同时,面向对象语言允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰
    ④ 方便建模:虽然面向对象语言中的对象与现实生活中的对象并不是同个概念,但很多时候,往往可以使用现实生活中对象的概念抽象后稍作修改来进行建模,这大大方便了建模的过程。(但直接使用现实中的对象来建模有时会适得其反)

期望的收获

  1. 了解软件设计的过程,学会去分析和处理问题
  2. 掌握并熟悉需求分析的过程,学习去确定客户对于软件的真实需求
  3. 培养自己基本工程素质和能力,激发自己的积极性

Github截图及地址

KisonLin的github库

博客编辑截图

posted @ 2023-09-04 23:42  KinsonLin  阅读(74)  评论(4编辑  收藏  举报