软件工程实验一

项目 内容
班级课程博客链接 20级卓越班
此次作业链接 实验一软件工程准备
我的课程学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验
(2)了解Github的基本操作
本次作业在哪些方面帮我实现学习目标 (1)了解与掌握博客园的使用
(2)熟练Github的基本操作
(3)学会使用markdown编辑器的基本操作

实验内容

任务1:填写课程调查问卷(https://www.wjx.cn/vm/e4jdhAf.aspx#)

  • 已填写并提交调查问卷

任务2:在博客园平台注册个人博客账号和加入班级博客

  • 已完成博客账号注册并加入班级博客

任务3:注册Github账号

  • 已完成Github账号注册

任务4:点击链接填写博客园账号与github账号的链接

  • 按要求填写了博客园和Github账号信息

任务5:构建之法与博客首秀

阅读《现代软件工程—构建之法》,参照参考文章的提问模板,尝试拟定3个准备从课程学习中找到答案的问题

问题1:什么是软件工程?
  • 软将工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护的过程。它包括软件需求分析、软件设计、软件构建、软件测试和软件维护
问题2:软件的概念是什么?它有什么特性?
  • 软件=程序+软件工程:正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。
  • 软件的特性:
    • 有许多不同的程序设计语言、软件工具和软件开发平台
    • 存在许多不同的软件开发流程
    • 软件团队中存在许多不同的角色
  • 软件的特殊性:
    • 复杂性、不可见性、易变性、服从性、非连续性(由软件的本质所决定的)
    • 软件通常既可以存储在磁带上,也可以存储在CD/DVD上
问题3:什么是敏捷开发?它有什么特点?如何分类?
  • 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
  • 敏捷软件开发特点:
    • 首要任务是尽早地、持续地交付可评价的软件,以使客户满意。
    • 乐于接受需求变更,即使在开发后期也是如此。敏捷软件开发能够驾驭需求的变化,从 而为客户赢得竞争优势。
    • 频繁交付可使用的软件,交付的间隔越短越好,可以从几个月缩减到几个星期。
    • 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。
    • 围绕那些有推动力的人们来构建项目,给予他们所需的环境和支持,并且相信他们能够把工作做好。
    • 开发团队及在开发团队内部进行最快速、有效的传递信息的方法是面对面交谈。
    • 可使用的软件是进度的主要衡量指标。
    • 提倡可持续发展。出资人、开发人员及使用者应该共同维持稳定的开发速度。
    • 为了增强敏捷能力,应持续关注技术上的杰出成果和良好的设计。
    • 简洁,最小化那些没有必要投入的工作量是至关重要的。
    • 最好的架构、需求和设计都源于自我组织的团队。
    • 团队定期反思如何变得更有战斗力,然后相应地转变井调整其行为。
  • 敏捷开发模式的分类
      敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中 SCRUM 与 XP 最为流行。同样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。
posted @ 2023-04-02 10:15  美合日阿依  阅读(56)  评论(1)    收藏  举报