软件工程第一次作业

任务一:(1)用3天左右时间精读教材《现代软件工程—构建之法》第一章,整理本章中出现的计算机专业术语

第一章

1.软件定义:

1.1程序=数据结构+算法、 软件=程序+软件工程

程序,在这里指的是源程序,就是一行行的代码。仔细看过去,它们的确是建立在数据结构上的一些算法

程序还要对数据进行操作,这些数据有些是静态的(例如软件的图标、提示信息),有些是动态的(例如程序生成的随机数字、程序通过网络下载的数据、用户的文字或语音输入等)但是光有代码和静态数据还是不行,工程师要把它们构建为机器能懂的可执行代码。构建不仅仅是cc和link命令一个复杂的软件不但要有合理的软件架构(Software Architecture)、软件设计与实现(Software Design, Implementation and Debug),还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数,等等。这些都是软件构建的过程

源代码管理Source Code Control)的问题—有时候也叫配置管理(Software Configuration Management)有一系列的工具和程序来保证程序的正确性,这些工具流程和程序本身应该更正确,才能保证别的软件的质量这就是质量保障(Quality Assurance),具体的验证过程叫做软件测试(Testing)软件团队要从需求分析(Re-quirement Analysis)开始,把合适的需求梳理出来,然后逐步展开后续工作,如设计(软件架构)、实现(写数据结构和算法)、测试,到最后发布软件

程序理解(Pro-gramComprehension)软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计

软件维护(Software Maintenance),或者服务运营(Service Operation)软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务器,团队的新老成员要一起工作,修复各种各样的问题。这一系列过程就是软件的生命周期(Software Life Cycle,SLC)有人得负责软件项目的管理(Project Management)

软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容,是软件工程的核心部分。广义上的软件工程也包括用户体验、用户界面设计(User Interface Design)等。所以,一个推论是:

软件 = 程序 + 软件工程

一个扩展的推论是:

软件企业=软件+商业模式

1.2 软件开发的不同阶段

1.玩具阶段

2.业余爱好阶段

3.探索阶段

4.成熟的产业阶段

2.软件工程

2.1软件工程的定义:

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性

2.2软件的特殊性:

  1. 复杂性
  2. 不可见性
  3. 易变性
  4. 服从性
  5. 非连续性

2.3软件工程与计算机科学的关系:软件工程和计算机科学的关系:

计算机科学偏理论研究,是追求那种理想化、完美的真理,各个学科会独立深入研究并出成果;而软件工程偏向实践,追求短期的效果,往往是不完美的,因为要对不可抗的现实因素折衷,会融合各个领域的知识去实现实际的问题。理论是实践的基础,实践是检验理论的标准并帮助其探索地更深。

2.4软件工程的知识领域:

1.生命周期:软件需求,软件设计,软件构建,软件测试,软件测试,软件维护

2.专门领域:软件配置管理,软件工程管理,软件工程过程,软件工程模式和方法,软件质量

3.理论基础:计算基础,数学基础,工程基础

 

2.5软件工程的目标:

1.用户满意度

2.可靠性

3.软件流程的质量

4.可维护性

2.6学习的目标

1.研发出符合用户需求的软件

2.通过一定的软件流程在预计的时间内发布“足够好的”软件

3.能证明所开发的软件是可以维护和继续发展

          第一章学习思维导图                                    

   任务二:  (2)教材P18-2

1)在第9章中,提到了这样一句“没有风险,就是最大的风险。” 这句话该如何理解呢?

(2)而在本段之前刚刚对于风险管理水平进行了分层,那这句话是否是可以理解为:风险会从多方向来袭,企图缩短软件的生命周期,而所谓“没有风险”只是没有预见风险,并且没有对其未来的风险情况进行评估呢?

(3)在第11章中,有下面这样一段内容 “5. 写好代码后,小飞对照设计文档和代码指南进行自我复审,重构代码。” 对于代码重构不是很清楚。

  我查了一些资料,都在强调着重构的好处,因为软件产品最初制造出来,具有良好架构的。但是随着时间的发展,需求发生变化,为了实现变更,不可避免的要违反最初的设计构架。经过几次修改后,软件的架构就千疮百孔了,并制约着新功能的实现等。最后新需求的开发成本会超过开发一个新的软件的成本,而导致这个软件的死亡。而重构在“软件系统的过程, 它不会改变代码的外部行为, 同时改善其内部结构。 这是一种严格的清理代码的方法, 它可以最大限度地减少引入错误的可能性。 本质上, 当重构代码时, 是在编写代码之后改进它的设计”

  但是我对于具体的情况依然不是很了解,重构是对于旧的架构进行修改,来满足新的需求,那是否只是使用现在积木(代码)搭建一个更漂亮更优秀的大楼呢?

(4)何时应该进行重构呢?

(5)在第16章中,我们谈到了创新,谈到了创新的迷思,时机和招数等。列举了一些产品的创新,比如对于一个魔方的销售,针对不同的用户使用了一些不一样的商业模式。 我还是不太了解在软件工程领域中创新是什么样子的呢? 新的设计模式属于软件工程领域的创新么?

(6)他是否像其他自然学科那样存在某些规律等待着我们去发现呢?

 任务三:(3)教材P18-3

手机APP 简介

 

本人使用的是安卓系统(华为)手机安装的软件总共分为7大类如下:

1、系统类:设置、拨号、输入法、文件管理等。
2、安全类:手机管家、锁屏等。
3、娱乐类:腾讯视频、西瓜视频。酷狗音乐
4、网络社交类:浏览器、QQ、微信、支付宝等。
5、办公类:WPS、邮箱等。

6、学习类:考虫考研VIP、新东方在线、外研随身学、有道词典

7、其他:滴滴出行、饿了么、高德地图、运动世界校园

在追求时尚、自由、快捷生活的今天,APP作为移动端的主流。那么就会有人问为什么会安装这些软件的?它是怎么吸引我安装它的呢?那么我先介绍一下“滴滴出行”这个app,首先分析国内打车软件霸主就是“滴滴打车”,滴滴打车于2012年9月9日正式上线,业务首先在北京展开,紧接着扩展至上海、深圳和广州地区。从“嘀嘀打车”到“滴滴打车”再到“滴滴出行”,那句“滴滴一下,马上出发”已经融入了越来越多用户的生活。故此下载“滴滴出行”app对我的出行非常的方便,再也不用担心路偏、天气等诸多原因打不到车而耽误行程。其中滴滴打车盈利方式如下:

收益途径一:当滴滴出行APP被越来越多人安装使用,这时这个APP就具有了商业价值,一些商家企业可以与滴滴打车进行合作,利用这个平台为自己的企业商品进行宣传,从而收取宣传费用。

收益途径二:当用户使用APP进行打车时个人信息就会提供给腾讯,腾讯就掌握了这样的一手资料,相当于一笔巨大的信息财富。

收益途径三:滴滴出行通常会与某些地图软件进行合作,而希望作为地标出现的商家会主动要求合作,希望自己的地理位置在地图上显示的更加明显。

收益途径四:滴滴出行还可以根据大数据计算出经常堵车的路径,又是一份非常重要的信息资源

收益途径五:滴滴出行可以根据客户的上车、下车地点出现的频繁度,确定一些地方的人流量,从而得到可以建立商业场所的黄金地带。打车软件的流行是网络化的展现,同互联网一样,对社会发展是一把双刃剑,在利用它的优点的同时不能忽略它的不足。

针对考研人群的一款手机学习app,例如:考虫考研VIP新东方在线,等,本人选择新东方在线的app是因为新东方主要是以英语为主要课程开始创立的,针对英语课程行业还是比较知名的。而恰巧我的英语基础不好正好它又是专业故此下载安装了新东方在线,方便我今后学习。考虫考研VIP是针对专业课和政治高数的一款线上学习软件它们的主要盈利方式都是通过网上授课线上学习的方式来支付课时费用从而获得利益。

再谈谈大家都会安装的一些聊天软件;“ QQ”相信大家都不会陌生,

从2009年我有了我的一部手机安装的第一个手机软件就是腾讯QQ ,当时只是为了方便有效的联系亲朋好友。QQ也已经发展了将近20年的时间了,到今天为止不光光能聊天还可以存发文件,线上转账,视频聊天等等诸多功能,在日常生活中起着不可磨灭的作用!QQ的盈利方式是:引领用户开通黄钻、绿钻、蓝钻、紫钻、黑钻、超级会员等等,但是开通之后会和普通用户的会存在权限问题,开通会员的用户拥会有一些普通用户不存在的的皮肤、网速、画质等等,让消费者获得优秀的用户体验。

总而言之智能手机已经改变了我们的生活,并在人类历史上发挥着重要的作用。

 

posted @ 2019-09-11 15:35  晨曦易懂  阅读(228)  评论(1编辑  收藏  举报