《构建之法》第一章 概论

本文介绍了软件工程的概念,通过大马哈鱼洄游模型阐述软件开发的不同阶段,强调从维护到需求分析的逆向学习过程。软件工程包括程序、数据结构、算法以及软件工程实践,涵盖了需求分析、设计、实现、测试和维护等环节,旨在创造高质量、易维护的软件。同时,文章探讨了软件的复杂性、不可见性、易变性等特性,以及软件工程与计算机科学的关系和目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘至 邹欣《构建之法》一书,以作学习之用

1. 大马哈鱼洄游模型

软件工程按照经典的瀑布模型
1. 需求分析
2. 设计阶段
3. 实现阶段
4. 稳定阶段
5. 发布阶段
6. 维护阶段

事实上在现实世界中,软件工程师的职业发展与瀑布流程刚好相反

  1. 毕业进入公司(或者实习生),开始学习并维护一些已有的软件(维护阶段),主要由自己的师傅(Mentor)带领
  2. 能够在项目中改一些 Bug,然后发现发布小规模的更新版本(稳定/发布阶段),联系重构,开始和其他同事打交道
  3. 有机会负责重写一个较小的模块,没有多少文档,自己要写很多代码(实现阶段
  4. 表现好的员工,有机会设计比较大的模块,自己写一些文档(设计阶段),和更多成员发生工作联系。在一些情况下还能发挥领导作用
  5. 员工逐渐成长为团队的骨干,有机会计划新的项目(需求分析

现实生活中,学习的过程
Alpha 阶段

  1. 开始维护以前的同学开发出来的程序,理解程序,理解用户的痛点
  2. 找 Bug,改 Bug,重构小部分代码;一部分同学可以开发测试用例
  3. 在现有版本的基础上做少部分增量开发,快速分布并收集用户反馈

Beta 阶段

  1. 根据 Alpha 版本的反馈,进一步分析需求,估计实现需求的难度(此时应该能理解客户需求是什么)
  2. 设计 -> 开发(重构)
  3. 回归测试(用到上面开发的测试用例)
  4. 发布,收集用户反馈,看看新的版本是否真的解决了用户的问题

所以这种学习模式就像从瀑布下方一步一步上溯到源头,然后又从源头流下去,故称之为“大马哈鱼

### 数据库系统概论第六版第一章内容概述 #### 1. 数据库系统的基本概念和发展历程 数据库系统的发展经历了多个重要阶段,这些阶段反映了信息技术的进步和技术需求的变化。早期的数据处理方式主要依赖于文件系统,随着数据量的增长和复杂性的增加,这种简单的方式逐渐无法满足实际应用的需求。 现代数据库管理系统(DBMS)不仅能够高效存储大量结构化数据,还提供了强大的查询优化能力、并发控制机制以及事务管理等功能[^1]。 #### 2. 数据库系统的组成及其核心组件 一个典型的数据库系统由硬件平台、操作系统、DBMS软件和支持工具构成。其中,DBMS作为连接应用程序与物理存储介质之间的重要桥梁,在整个体系架构中占据着至关重要的位置。它负责管理和维护所有的数据库对象,并提供给用户访问接口来执行各种操作如创建表单、插入记录等。 此外,为了确保系统的稳定性和安全性,还需要有专门的技术人员——即数据库管理员(DBA),他们承担着设计定义数据库结构的任务;帮助最终用户理解和利用现有的资源;监控日常运行状况并对可能出现的问题及时作出响应;定期实施备份策略以防止意外丢失宝贵资料;不断调整参数设置从而提高整体效率等方面的工作职责[^2]。 #### 3. 关键理论基础与实践案例分析 在这一章节里还会涉及到一些非常实用的知识点,比如如何通过合理的索引来加速特定类型的检索过程。当面对海量级规模的数据集时,如果采用传统的线性扫描方法,则会消耗大量的I/O时间和计算资源。而建立有效的索引结构可以显著减少所需的磁盘读取次数,进而提升性能表现。例如在一个关系型表格R上构建B+树形式的辅助索引后,原本需要遍历全部500个区块才能完成的操作现在只需加载4个即可实现目标定位[^3]。 ```sql SELECT Cname FROM Student, Course, SC WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Student.Smajor = '信息管理与信息系统'; ``` 上述SQL语句展示了针对具体应用场景下的查询逻辑:从多张关联表中筛选符合条件的结果集合。这里特别强调了跨表联接的重要性,这是解决现实世界复杂业务问题不可或缺的一部分技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值