软件工程学习
记录自己学习软件工程课程的相关内容
大图书馆的牧羊人
这个作者很懒,什么都没留下…
展开
-
软件工程课程学习小组项目——网上书店
一、需求分析访谈调研书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店来的,这样挺不方便。而且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。其实,还有一点就是,有不少人进入书店后并不买书,只是查找些资料,有的甚至会在这呆上很长的时间直到把书免费看完。这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。这样我原创 2020-10-26 21:10:10 · 3760 阅读 · 0 评论 -
分而治之的基本思想
“分而治之”( Divide and conquer)(又称“分治术”) ,是有效算法设计中普遍采用的一种技术。所谓“分而治之” 就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解,这种朴素的思想来源于人们生活与工作的经验,也完全适合于技术领域。诸如软件的体系结构设计、模块化设计都是分而治之的具体表现。任何一个可以用计算机求解的问题,所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,所需的计算时间也越少。原创 2020-10-25 10:37:12 · 2618 阅读 · 0 评论 -
阅读思考——为什么软件开发周期总是预估的2~3倍?
为什么软件开发周期总是预估的2~3倍?在开发软件的道路上,总是会有意想不到的情况发生……1、软件开发的思维模式不能像数学一样简单的计算2、开发环境与过程会极大的影响进度3、团队合作极易出现短板效应4、团队还会出现内讧5、etc(还有很多。。。)综上所述,预估时间往往是理想时间,而不是实际时间举个例子:比如说 这个程序很简单 我一天就能搞定好吧 刚开始写 电脑老死机 折腾了半个小时才弄好刚写一会儿,父亲大人来了个电话,咱得接起,听后指示吧,又费了点时间。突然觉得肚子里翻江倒海,必须去厕原创 2020-10-24 09:35:57 · 152 阅读 · 1 评论 -
WBS:工作分解结构(Work Breakdown Structure)
WBSWBS:工作分解结构(Work Breakdown Structure), 创建WBS是把项目工作按阶段可交付成果分解成较小的,更易于管理的组成部分的过程。WBS是项目管理重要的专业术语之一。WBS的基本定义 :以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。无论在项目管理实践中,还是在PMP,IPMP考试中,工作分解结构(WBS)都是最重要的内容之一。WBS总是处于计划过程的中心,也是制定进度计划、资源需求、成本预算、风险管理计划和原创 2020-10-23 21:28:20 · 1555 阅读 · 0 评论 -
Why Software Development Methodologies Suck(为什么软件开发方法论让你觉得糟糕)
为什么软件开发方法论让你觉得糟糕?围绕软件开发实践和方法论,总有很多教条式的口水仗。阶段式(phase-gate)方法能够有效管理软件开发过程的风险,还是说只是风险管理中的花哨噱 头?TDD真的能够促生出高品质软件?结对编程是代码评审的有效替代抑或只是增加了商议沟通代价?我想说,虽然缺乏证据判断这些论调的谬处,但有两条常用的法则能够帮助我们选择好的实践,同时,提升我们所提供软件的价值:划小开发周期以及提升反馈效率。Michael Feathers给出了以下观点:我认为,我们最终还是得倚重开发者的能力,原创 2020-10-22 22:06:26 · 149 阅读 · 0 评论 -
阅读《大象 Thinking in UML》学习笔记(一)——为什么需要UML?
一、UML的定义UML,即Unified Modeling Language又称统一建模语言或标准建模语言,是始于1997年一个OMG(对象管理组织)标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。UML是一种是面向对象软件的标准化建模语言,要弄清UML,首先得搞清楚面向对象和面向过程。二、面向对象和面向过程面向对象和面向过程是两种不同描述世界的方法。面向过程:世界视为过程,世界由一个个相互关联的小程序构建来的。但转载 2020-10-20 21:21:11 · 293 阅读 · 0 评论 -
软件工程--形式化方法
概述形式化方法英文的名称是formal methods。在逻辑科学中是指分析、研究思维形式结构的方法。它把各种具有不同内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互联结的方式如命题中包含概念彼此间的联结,推理中则是各个命题之间的联结,抽取出它们共同的形式结构;再引入表达形式结构的符号语言,用符号与符号之间的联系表达命题或推理的形式结构。例如,把全称肯定命题,用符号形式化为“SAP”;把联言命题、假言命题分别形式化为:“p∧q、“p→q”。又例如:一个具体的假言联言推理“如果这种金原创 2020-10-20 17:39:47 · 1489 阅读 · 0 评论 -
个人简介及软件工程课程目标
一名正在奋斗的小小程序员!作为一名学生党,希望在学校能够学到一些能让自己在社会中谋生的专业知识和技能。最大目标:在未来,能够在计算机这个行业工作到35岁之后。课程目标:通过系统的学习,了解软件开发从项目确定到需求分析,再到概要及详细设计、代码实现、开发后的软件测试这一完整软件开发过程。在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。个人目标:希望学完后能初步具备管理整个软件开发完整流程的能力。原创 2020-10-05 09:41:46 · 349 阅读 · 0 评论 -
软件工程课程小组成员介绍
我们这个软件工程课程小组一共有3名成员:本人:原创 2020-10-06 15:19:07 · 831 阅读 · 0 评论 -
思考——软件工程是不是教会不怎么会写程序的人开发软件呢?
Dijkstra关于“软件工程”Dijkstra on “Software Engineering”“Software engineering, of course, presents itself as another worthy cause, but that is eyewash:if you carefully read its literature and analyse what its devotees actually do , you will discover that softw原创 2020-10-07 09:39:08 · 255 阅读 · 0 评论 -
Manifesto for Software Craftsmanship 软件工艺宣言(译文、观后感)
Manifesto for Software CraftsmanshipAs aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:Not only working software,but als原创 2020-10-08 09:15:30 · 252 阅读 · 0 评论 -
软件工程--MVC与MVP的区别
一、MVC框架MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。其概述图如下:MVC 编程模式MVC 是一种使用 MVC(Model View Controller原创 2020-10-20 17:23:38 · 467 阅读 · 0 评论 -
有人负责,才有质量:写给在集市中迷失的一代
原文:A Generation Lost in the Bazaar (发表于 ACM Queue vol. 10, no. 8, 2012)作者:保尔-亨宁·凯普(Poul-Henning Kamp) 翻译:@李松峰感谢 @蔡学镛 @蒋涛CSDN 老师在新浪微博上推荐13年前,新兴的草根开源软件运动如火如荼,而Eric Raymond的《大教堂与集市》(O’Reilly Media, 2001)一书则重新定义了我们的词汇表,几乎预言了瀑布模型和大型软件公司的终结。这本书有煽动性,但却没有说服我。与此转载 2020-10-08 09:19:14 · 826 阅读 · 0 评论 -
软件工程:软件工程方法论对我们经软件开发有多大用处
软件工程方法论我觉得软件工程方法论更多的是给予开发人员一个可行的、系统性的整体结构的理论框架。软件工程方法论包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回等“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。从对任务的抽象逻辑分析开始,一个阶段一个阶段的开发,前一个阶段任务的完成是后一个阶段工作的前提和基础,而后一个阶段任务的完成通常是使前一阶段提出的解法更进原创 2020-10-08 17:30:37 · 584 阅读 · 0 评论