zoukankan      html  css  js  c++  java
  • 《现代软件工程—构建之法》第一章总结

    任务一:专业术语

    1.1 软件=程序+软件工程

    行业内被人熟知的一句名言:程序=数据结构+算法

    源程序,就是一行行的代码,是建立在数据结构上的一些算法。

    软件构件的过程包括:合理的软件架构、软件设计与实现、各种文件来描述各个程序文件之间的依赖关系、编译参数、链接参数等。

    有些程序要配置不同的界面,运行在中文、英文或其他语言的操作系统上,有些程序还有32位版本、64位版本等。这些问题称作源代码管理的问题,也叫配置管理。

    有一系列的工具、流程和文档来保证程序的正确性,这些工具(也是软件)、流程应该达到很高的质量,才能保证开发出来的软件的质量。这个过程称作质量保障,具体的验证过程叫做软件测试。

    软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序理解。软件在运行过程中还会出现这样那样的问题,也许我们要时不时的给软件打一个补丁,或者维护众多的服务,团队的新老成员要一起修复各种各样的问题,这叫软件维护,或者服务运营。这一系列过程就是软件的生命周期,在这一周期中,有人得负责软件项目的管理。

    软件开发的不同阶段:

    1、玩具阶段

    2、业余爱好阶段

    3、探索阶段

    4、成熟的产业阶段

    1.2 软件工程是什么

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

    1.2.1软件的特殊性

    软件是可以运行在计算机及电子设备中的指令和数据的有序集合,可以按照下面的进行分类:

    系统软件:操作系统、设备驱动程序、工作软件等

    应用软件:用户使用它们来完成工作,从管理核电厂到写文章,或者是通信、游戏、浏览网页、播放视频等

    恶意软件:软件病毒等 

    软件开发过程中,遇到的难题:

    1、复杂性

    2、不可见性

    3、易变性

    4、服从性

    5、非连续性

    以上特性是由软件的本质决定的,软件还有其他特性:

    有许多不同的程序设计语言、软件工具和软件开发平台

    存在许多不同的软件开发流程

    软件团队中存在许多不同的角色

    软件既可以存在磁带上,也可以存在CD/DVD上

    1.2.2软件工程的目标——创造“足够好”的软件

    什么是好软件?其实就是软件没有缺陷。而软件工程,其实就是将软件中的Bug消灭掉的过程。Bug的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。

    用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率。

    可靠性:某个软件经常会崩溃,某个操作系统会时不时的死机,某个网站往往在最需要的时候登录不上去。

    软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法互相协作,按时交付软件。这也可以说是软件团队的Bug

    可维护性:某个软件太难维护了,按下葫芦起了瓢,修复了一个问题,另一个问题又出来了。也没有足够的文档,维护人员表示需要更多的时间和资金来维护这个软甲,甚至建议推到重写。

    任务二:P18-2

    Q1:需求分析师需要掌握哪方面的知识,需要具备计算机方面的什么能力?

    Q2:什么规模的项目必须使用专业的测试人员?小项目能否使用项目组成员替代专业测试人员进行测试工作?

    Q3:PM需要强大的编码能力么?在软件公司,什么职能职位的人,可以晋升到PM?

    Q4:在软件测试过程中,遇到难以解决的bug,修改代价很大 ,是尽力解决还是放弃解决?

    Q5:书中描述:稳定和发布阶段,有一个模块不能实现用户需求,时间快到了,可以砍掉该功能。问砍掉功能,不能实现用户需求,这种做法可取么?

    任务三:P18-3

    社交app:QQ、微信、微博、知乎、抖音

        下载原因:正常社交,与朋友在网络上互动

        盈利模式:QQ、微博、知乎均可以充值会员进行盈利;抖音通过直播礼物抽成、视频推广进行盈利;微信可能通过微信支付进行盈利(不确定);

    支付软件:微信、支付宝

    购物软件:京东、淘宝、毒、识货

    生活软件:12306、美团、饿了么、滴滴出行、肯德基

    视频软件:爱美剧、爱奇艺、腾讯视频

  • 相关阅读:
    [leetcode]算法题目
    JQuery功能查询页
    [C语言]一个很实用的服务端和客户端进行TCP通信的实例
    Siege——多线程编程最佳实例
    CodeIgniter框架中关于URL(index.php)的那些事
    web压测工具http_load原理分析
    【JAVA】文件各行打乱
    【JAVA】HashMap的原理及多线程下死循环的原因
    【JAVA】高并发优化细节点
    【Linux】日志分析工具grep sed sort
  • 原文地址:https://www.cnblogs.com/whohow/p/11485411.html
Copyright © 2011-2022 走看看