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软件工程与计算机科学的关系

    计算机科学偏理论研究,是追求那种理想化、完美的真理,各个学科会独立深入研究并出成果;

    软件工程偏向实践,和人的行为、社会的需求息息相关。因为要对不可抗的现实因素折衷,会融合各个领域的知识去实现实际的问题。

    1.2.3 软件工程的知识领域

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

    专门领域:软件配置管理、软件工程管理、软件工程过程软件工程模型和方法、软件质量

    理论基础:计算基础、数学基础、工程基础

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

    用户满意度:需要满足客户的需求,使用期间没有BUG,效率高。

    可靠性:软件稳定,关键时刻靠得住。

    软件流程的质量:团队要有一个分工明确的合作,按时交付软件。

    可维护性:出了问题方便解决。

    1.3  练习与讨论

    2.

    (1)效能分析工具VSTS怎么使用?

    (2)极限编程是什么?

    (3)调用关系树是什么?

    (4)软件的开发流程是固定不变的吗?

    (5)设计软件是团队人员之间如何有效的分工?

    3.

    社交软件       QQ、微信、微博

    服务类软件   去哪儿旅行 、高德地图、淘宝、京东

    娱乐软件       腾讯视频、抖音、王者荣耀、QQ音乐、bilibili、斗鱼

    学习软件       百度翻译 、CSDN、超级课程表

    (1)洞悉用户的需求  目标是盈利   赚取现金提供服务

    (2)应用商店   大一   提供了便利的服务

    (3)通过版本的更新  在应用商店升级

    (4)提供优惠活动 

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/changheng/p/11483074.html
Copyright © 2011-2022 走看看