首页 > 其他分享 >今日总结1.1

今日总结1.1

时间:2024-09-16 21:13:49浏览次数:1  
标签:总结 需求 1.1 软件开发 程序 开发 软件 今日

第一章:软件开发概述
         1.1软件与程序
1.1.1从程序到软件

 计算机程序(简称程序)是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列;
软件是能够完成预定功能和性能的可执行的程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档,即“软件=程序+数据+文档”
1.1.2软件类型

 按功能:系统软件、支撑软件和应用软件。
 按工作方式:实时处理软件、分时软件、交互式软件和批处理软件。
按服务对象的范围:项目软件(定制开发)和产品软件(通用软件)
 其他:商业软件、开源软件、共享软件。

 

1.1.3程序设计与软件开发

        程序=算法+数据结构 程序=算法+数据结构

数据结构指的是程序处理或应用的数据与数据之间的逻辑关系;
算法指的是解决特定问题的步骤和方法。
程序设计的核心就是选择和设计适合特定问题的数据结构。

        1.2软件生存周期
孕育>诞生>成长>成熟>衰亡

1.2.1使用角度的软件生存周期   

提出需求:用户根据需要,提出要解决的问题和需要的软件;
获取软件∶主要是对获取软件的最佳途径做出决策并选择最佳的供应商;
        购买软件;
        定制或开发软件;
        租赁软件或租赁服务。
使用软件:获得软件之后,用户将操作软件使之为其服务。 

1.2.2开发角度的软件生存周期 

        定义软件:

理解问题:用明确的语言描述软件要解决的问题、目标和范围;
可行性研究:从经济、技术、法律等方面分析软件开发的可行性;
需求分析:描述对软件系统的所有需求,即明确要软件做什么 。
  

        开发软件:

软件设计:建立目标软件的解决方案,包括软件的结构和组成;
软件实现:  用程序语言实现设计方案,包括与其他系统的接口和集成;
软件测试:通过各种测试和评审技术,确认软件满足了指定要求。
  

        维护软件:

 软件交付:发布开发的软件,或者安装、部署到用户现场以便使用软件维护;
软件退役:对软件进行修改或对需求的变化做出响应终止对软件的技术支持和维护,软件停止使用。
1.3软件开发过程


1.3.1瀑布式开发过程

 

主要问题在于∶
        阶段划分僵硬,每个阶段不能缺省,而且产生大量文档,增加了工作量;
        开发是线性的,只有等到整个过程的末期才能见到开发成果——可运行软件,不利于快速响应变化的需求;
        早期的错误要等到开发后期的测试阶段才能发现,可能带来严重的后果,增加了开发的风险。

1.3.2增量开发模型

 

 增量开发模型的优点∶

1、在短时间内向用户提交一个可运行软牛,够足用户急用的一些功能。
2、由于每次只提交部分功能,用尸有较允分的时月子习迫应新的产品。
3、在开发过程中,需求的变化是不可避免的。增量开发模型的灵活性可以使软件适应需求变化。
4、有利于系统维护,因为整个系统是由一个个增量(部件)集成在一起的,当需求变更时,只变更部分部件,而不必影响整个系统。
 增量模型存在以下风险∶

1、由于各个部件是逐渐开公二俱软Na称t育T的北的的部件不破坏已构造好的系统,这需要软件具备开放式的体系结构,否则系统将失去稳定的结构。
2、逐步增加部件的方式,很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
3、在一个软件开发中如何一致地定义“增量”?如何界定它的工作量、需求范围、功能或特性?

标签:总结,需求,1.1,软件开发,程序,开发,软件,今日
From: https://www.cnblogs.com/Lyh3012648079/p/18416603

相关文章

  • 今日总结1.2
    一、软件设计模式的产生背景“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(ChristopherAlexander)在他的著作《建筑模式语言:城镇、建筑、构造(APatternLa......
  • 今日总结1.3
    ‌软件构造主要学习设计模式、软件结构、模块化软件构造、面向对象的软件构造、软件重构与交付等方面的知识。‌‌设计模式‌是软件构造中的一个重要部分,它涉及如何针对接口编程而不是针对实现编程,旨在实现对象之间的松耦合设计,以及如何使用面向对象设计原则进行程序编码。学习设......
  • 2024.9.16 下午 总结(考 DS)
    T1做法1:莫队。(考虑一个数的出现次数变化时的影响。)应该可以直接做,似乎也可以正难则反(见做法2)。做法2:[扫描线](?)。按询问右端点排序。记一下每个位置前面最近的和它权值相同的位置。一种是直接做,分讨。一种是正难则反:算前缀和;算出现次数为\(2\)的数的贡献之和,减去这部分贡献。......
  • 错误总结反思
    0.概述这篇文章旨在记录我真实经历过的一些值得反思的错误,可能是自己犯的错误,也可能是其他人犯的错误。但是都是一些值得反思的问题,文章结构可能会比较乱,以后记录的问题多了肯定会再进行梳理。1.vectorsize为0在做"求TopK"算法问题时,遇到结果错误问题。经过调试发现那个长度为......
  • 动态规划理论总结
    三个特征最优子结构问题最优解包含子问题的最优解,即可以通过子问题得到最优解。无后效性有两层含义:在后面的推到过程中,只关心前面的状态值,不关心这个状态是怎么一步步推导出来的。前面的状态如果已经确定,就不会收到后面状态影响子问题重叠不同的决策序列,到达某个......
  • mysql 常用知识点总结
    MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解MySQL的语法对数据库管理和操作非常重要。以下是MySQL语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。1.基础概念数据库(Database):数据库是存储数据的容器,里面可以包含......
  • 2024.9.16 上午 总结(考 DS)
    T1我的做法:合并->并查集。类似建Kruskal重构树。询问跑LCA。注意并查集合并要把两个根都变成一个新点的儿子,而不是把一个作为另一个的儿子。(可能类似建[边](?)Kruskal重构树)要特判询问时\(x=y\)的情况(好像是输出\(0\))。lzh的做法:连出一棵树,边的边权是......
  • 9.15 比赛总结
    突然想起来自己把比赛总结的好习惯忘掉了,所以现在重新拾起,故名曰《朝花夕拾》。T1出了个大阴间题看数据范围明显状压。很明显,\(a,b\)分成两部分处理。\(f_{s,i}\)表示状态为\(s\),\(a=i\)时的所有情况之和,还要计算\(num_{s,i}\)表示此时情况数。\(b\)直接递推模拟即可......
  • STL-vector容器总结
    vector(向量)是C++标准模板库(STL)中最常用的容器之一,它提供了动态数组的功能,可以存储任意类型的元素。vector具有自动管理内存、支持随机访问、动态调整大小等优点,非常适合用于需要频繁增删元素或未知大小的数组场景。下面是对vector的总结和常见用法。先复习一下c++中常用的......
  • 20240915 总结
    这周VP了两场Div.2。均获得较高名次,可能之后需要VPARC这种有点强度的比赛更好一点。联考:20240909T1又是数学。T2唐氏了。注意到有结论,一个合法路径必定可以调整到经过一个在时间上正好能走的边。然后就简单了。正着反着dij,然后\(O(m)\)合并。T3更为唐氏,场上好像......