项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12369881.html
我的课程学习目标 1.学习博客园软件开发者学习社区使用技巧和经验;
2.学习GitHub的基本操作流程;
3.阅读书籍《构建之法——现代软件工程》并提出3个阅读中遇到的问题。
作业对我实现学习目标的帮助 1.熟悉博客园的使用技巧;2.初步了解软件工程这一门课的学习内容以及学习方法。
参考文献 [1]邹欣.构建之法——现代软件工程[M].北京:人民邮电出版社,2017.

一. 实验准备

完成课程调查问卷,注册博客园账号以及GitHub账号并加入班级。

##二. 问题提出
###*问题一:*一个真正的软件项目在实际的开发过程中它的生命周期是一个怎样的过程?即是如何一步步构建展开并实现、如何运行维护一个真正的软件项目,以及在软件项目在将废弃时又是怎样的?
>1.学习某种编程语言的特性;
2.练习某些算法或按某种模式处理数据;
3.按照给定的需求实现一个较复杂的软件系统,但没有要求系统进行大规模的测试、模拟、实际运行或后续演化。

--引用自《构建之法——现代软件工程》P37

之所以提出这个问题,是因为我们目前所学习或练习的项目都属于是上述提出的三种作业练习,我们目前所完成的最复杂的一类软件项目,也不过是上述第三种所述的较复杂的软件系统。我们目前还没有接触到真正的软件系统开发,对于软件生命周期中各个时段所做工作不了解,不知道我们在每个阶段该如何做、如何做能够做好,而为了我们自身能力的提高,这各个阶段中的内容方法是我们在未来必须要学会的,因此掌握这各个过程的具体内容十分重要。

或许这个问题只有通过自己的实践才能真正得到答案并掌握它,不过这也是我们学习软件工程所必须要掌握的内容,希望在软件工程这一门课程的学习后,我能够找到满意的答案。

问题二:对于一个初创的团队来说什么样的软件工程模型更加适合他们?

在阅读了《构建之法》的五、六章后,我不禁在想,哪一种软件工程的模型更加适合一个没有太多基础的团队。众所周知,万事开头难,我们现在开始学习软件工程这一门课,我们在进行软件工程的实践中,什么样的软件工程模型更加适合我们入门学习呢?

根据我所查阅的一些资料,在目前常用的模型中,瀑布模型只有在项目的生命周期后期才能看到成果,并且瀑布模型需要开发人员对于应用领域十分熟悉;原型模型适用于那些不能预先确切定义需求的软件系统的开发;喷泉模型由于在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,且不利于项目的管理;敏捷模型则是需要资深的软件工程师且容易出现每个人工作分配不均或出现书中提到的那种“狗熊掰苞米”的情况。这些模型由于自身的一些特点或要求似乎都不适合一个初创的团队,那么有哪些模型是适用的呢?

问题三:现有的用户调研方法是否存在有问题?若存在,应当如何运用专业知识改进?

软件开发的过程,就是“用户最需要的东西”在下面这一链条中传送、转换、实现、扭曲或丢失的过程。

用户最需要的>

用户表达出来的>

软件团队能理解的+团队的商业目标>

软件团队成员具体表达出来的(PM写Spec)>

在各种约束条件下,具体执行表达出来的(Dev写代码)>

验证通过的(Test)>

通过各种渠道告诉目标用户(发布/推广)>

用户终于能用上了,但是他们不满意

--引用自《构建之法——现代软件工程》P160

在读到书本的需求分析部分,尤其是上述的用户调研问题时,我在想,我们目前的用户调研模块是否依然存在问题?无论是我们在日常的软件使用过程中或是在网上查阅资料,都不难发现,在目前在软件市场中,大多数软件的评价并不好,这一点在社交类软件更加得以体现,尤其是在目前国内移动端社交软件中腾讯一家独大的情况下,尽管用户有所不满,但受限于种种原因,无法放弃使用,而在其他类型的软件产品中,这一现象也不少见。对于软件企业而言,无法满足用户需求只会使自身面临的处境越来越糟。虽然时不时也会出现的很能够吸引人眼球的软件功能,但是它们往往也很难持续地抓住用户,即使是大如微软这样的企业,在进行一系列系统更迭之时,也有不少用户并不买账,即使现在仍有不少人使用已经停止更新的Windows xp与Windows 7系统。

如今,大数据、人工智能、神经网络等等技术发展迅速,采集用户需求不再是一件十分困难的事情,但是软件功能与用户需求相悖的情况似乎并没有好转,这一系列的问题是否意味着我们现在在需求分析的用户调研部分依旧存在问题?若是,以现在的计算机技术,我们有大数据、人工智能等等,为何这一现象并没有特别大的改善?而现在又有哪些好的解决方法呢?

##三. 实验总结

在此次的实验学习中,我熟悉了博客园的使用流程以及GitHub的基本操作方法,为之后的实验学习做好了准备,而且通过阅读邹欣老师的《构建之法——现代软件工程》,我收获颇多,同时也提出了我在阅读中遇到的一些问题,希望我在这之后的软件工程课程的学习中,能够基本解决它们,能够更加深刻地了解软件工程这一门课的艺术。

201771030106-葛佳诚 实验一 软件工程准备-<初读《构建之法——现代软件工程》有问>的更多相关文章

  1. 201771030115-牛莉梅 实验一 软件工程准备-<初学《构建之法--现代软件工程》的疑问>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 这个作业要求链接 https://www.cnblogs.com/nwnu- ...

  2. 201771010128王玉兰实验一软件工程准备——<阅读《构建之法——现代软件工程》初步了解软件工程>

    |||||||||||||| |:--|:--| |项目|内容| |软件工程|https://www.cnblogs.com/nwnu-daizh/| |作业要求在博客里|https://www.cn ...

  3. 201771010111-李瑞红 实验一 软件工程准备-<构建之法-现代软件工程-基础认识和理解>

    |||||||| | :--

  4. 8th 对软件工程的理解(读构建之法有感)

    对于任何一个学计算机的人来说,软件都不陌生,甚至于一个普通的朝九晚五的上班族,他的每日生活工作也都与软件有着密不可分的关系.然而,程序又是如何从一行行指尖留下的代码,机器存储的数据变成快捷高效的软件的 ...

  5. 201771010105—达拉草 实验一 软件工程准备—<软件工程构建之法—初步了解和认识>

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  6. 201771030117-祁甜 实验一 软件工程准备—<阅读《现代软件工程——构建之法》提出的三个问题>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 这个作业要求链接 https://www.cnblogs.com/nwnu- ...

  7. 201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结

    实验一 软件工程的前期准备工作 在前期的准备工作以及老师上课的讲解中,我懂得了"软件=程序+软件工程"这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了<现代 ...

  8. 201871030109-韩诚 实验一 软件工程准备—Blog

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 软件工程准备-Blog 我的课程学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验(2) 掌握软件工程导论这门课程的基础理论知识 ...

  9. 201671030126 赵佳平 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于那个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...

随机推荐

  1. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  2. 15 Spring Data JPA概述

    Spring Data JPA 概述 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和 ...

  3. 如何为SpringBoot服务添加HTTPS证书

    HTTPS是HTTP的安全版本,旨在提供数据传输层安全性(TLS).当你的应用不使用HTTP协议的时候,浏览器地址栏就会出现一个不安全的提示.HTTPS加密每个数据包以安全方式进行传输,并保护敏感数据 ...

  4. python网络协议

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  5. Vue2.0 【第一季】第7节 v-bind指令

    目录 Vue2.0 [第一季] 第7节 v-bind指令 第7节 v-bind指令 v-bind缩写 绑定CSS样式 Vue2.0 [第一季] 第7节 v-bind指令 第7节 v-bind指令 v- ...

  6. 面试官:HashMap死循环形成的原因是什么?

    介绍 HashMap实现原理 之前的文章已经分析了HashMap在JDK1.7的实现,这篇文章就只分析HashMap死循环形成的原因 死循环形成是在扩容转移元素的时候发生的 void resize(i ...

  7. jQuery实现颜色打字机

    效果:每个字逐个显示出来,并且每个字都有随机颜色 $(function(){ var str="早起的鸟儿有虫吃,早起的虫儿被鸟吃!由此天赋+勤奋=成功;先天不足+同等勤奋=还是失败!天赋的 ...

  8. 小白学 Python 数据分析(17):Matplotlib(二)基础操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. 二、create-react-app自定义配置

    这里主要讲解添加less  和  实现Antd按需加载 首选需要执行npm run eject 暴露所有内建的配置 ,这是后面所有配置的基础,这个必须优先执行! 一.实现Antd按需加载 按需加载插件 ...

  10. Java多线程详解(转载)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文主要讲了java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用 ...