软件开发模型

软件工程阅读作业感想

自闭症网瘾萝莉.ら 提交于 2020-02-03 06:35:11
软件工程老师给我们留了阅读作业,刚开始觉得老师留的作业阅读量太大,而且时间太短,对此感到不是很理解,但是当我开始阅读《移山之道》这本书的时候,感觉这本书真的写的很通俗易懂,利用移山软件公司人员开发经营石头销售的软件的故事贯穿整本书,使我们很清楚的理解每个环节的顺序和重要性,同时也给我们实例展示了怎么开发项目。通过这本书的阅读,我意识到以下几个问题,这都是以前我的误区和不曾想到的事情。 1,软件开发的工具和方法十分重要。想要做出高质量高水平的软件并不是团队中只要有高超的编程能力和熟练地技巧就能完成的。一个软件开发团队需要一系列的管理工具,协作工具,软件构建工具,以及能保证软件质量的测试工具。软件开发的方法很多,每种方法都有着各自的使用原则,虽然说瀑布模型和螺旋模型已经过时的,但是依然有着各自的优势,不能被忽略。 2,软件开发过程不同角色的成员有着不同的作用。刚开始接触的时候,总觉得会编程的就是牛人,个人技术好的就能够独当一面,通过这次阅读,扭转了我的这种想法。PM虽然听起来好像级别高,其实和团队中的每个人都是一样的,只是工作不同;DEV看似是软件工程的核心,没有好的DEV就无法完成代码编程,无法实现高超的功能,也就没法完成软件开发,但是DEV并不是万能的,如果没有PM的需求规划,项目管理,没有好的测试人员寻找小强,就无法完善自己的程序,无法开发出满足顾客需求的软件

面向使用的软件设计随笔01

和自甴很熟 提交于 2020-02-01 22:13:43
  以使用为中心的软件设计是一种流线型但系统化的开发方法,用来设计能很好满足用户真正需求的软件,即不仅更加有用和易于使用,而且简单且易于建造。这种设计方法适应了当前软件开发面临巨大压力的现实。通过几个简单而功能强大的模型,它提供了一种快速理解用户的有关特征、用户执行任务时的工作意图及其所需系统支持的手段。其方法和模型几乎可以用于任何一种软件开发生命周期(SDLC)模型,可以被结合到任何一种现代开发实践中,包括像统一建模语言(UML)这样的各种面向对象(OO)的方法中。以使用为中心的设计方法并不局限于任何特定的语言平台,不论是在使用最新集成技术的可视化开发环境下进行快速迭代开发,还是对于运行在特殊硬件上基于字符显示的控制系统,这种方法都同样有效。   可用性并不能一蹴而就。这经常是一项艰苦的工作,需要对细节的关注,但通过使用几件基本的概念工具,设计开发人员也可以学会怎样发现可用性问题,怎样改进所开发系统的可用性。麻省理工学院的Woody Flowers教授曾经将摄像机交给一些中学生,让他们去发现和拍摄那些难以使用的产品及其现象,并对其原因加以解释。如果没有经过训练的中学生尚且可以学会可用性的基础知识,那就没有理由怀疑成年人能够掌握可用性的基本原理。 来源: https://www.cnblogs.com/dgb152/p/12250203.html

陈皓谈对待技术的态度

一曲冷凌霜 提交于 2020-01-16 08:05:01
最近在 酷壳 上,陈皓撰文阐述了对待技术的态度,如何面对技术的快速更新?是否做软件开发比以前更加困难了?他都给出了自己的见解。 陈皓首先针对“如何看待日新月异的新技术”做出了回答: 遇到新技术我会去了解,但不会把很大的精力放在这些技术(如:NoSQL,Node.js,等)。这些技术尚不成熟,只需要跟得住就可以了。技术十年以上可能是一个门槛。有人说技术更新换代很快,我一点儿都不觉得是这样想。虽然有不成熟的技术不断地涌出,但是成熟的技术,比如Unix,40多年,C,40多年,C++,30多年,TCP/IP,20多年,Java也有将近20年了……,所以,如果你着眼成熟的技术,其实并不多。 他的核心观点是——要了解技术就一定需要了解整个计算机的技术历史发展和进化路线。你要朝着球运动的轨迹去,而不是朝着球的位置去,要知道球的运动轨迹,你就需要知道它历史上是怎么跑的。 然后,他简要回顾了IT技术的脉络,并列出了几条关键的主线: 70年代Unix的出现,是软件发展方面的一个里程碑,那个时期的C语言,也是语言方面的里程碑。(当时)所有的项目都在Unix/C上,全世界人都在用这两样东西写软件。Linux跟随的是Unix, Windows下的开发也是 C/C++。这时候出现的C++很自然就被大家接受了,企业级的系统很自然就会迁移到这上面,C++虽然接过了C的接力棒

当下互联网创业公司采用增量模型的原因

谁都会走 提交于 2020-01-14 06:17:27
3.当下大部分互联网创业公司为什么都愿意采用增量模型来做开发? ① 很多软件在开发之前并不知道或者说不完全知道用户的需求,采用增量模型,先发布一个基础软件,根据用户的使用反馈来总结用户需求,在原来的基础上完善软件的功能,这样既不会像瀑布模型一样在软件开发之前就要花大量的时间去做需求分析和管理,也不会做出不符合用户需求的无价值软件,既加快了软件开发步伐,又可以保证软件的质量。 ② 用户的需求不稳定,可能会随时发生变化,再加上软件开发需要投入大量的资金,使用增量模型,如果用户评价不好,收入不好,可以及时停止开发,减少投入资金。 ③ 软件市场不稳定,更新、研发软件的速度也很快,使用增量模型可以早先发布软件,避免被别人抢先发布而带来损失。 来源: https://www.cnblogs.com/cxmlj/p/5244700.html

设计模式在软件开发中的应用——2012年 11 月 25 日高级软件工程课程小论文

筅森魡賤 提交于 2020-01-13 00:34:36
摘要: 设计模式通常是对某一类软件设计问题提出的通用的解决方案,将设计模式引入软件设计和开发过程,目的就在于充分利用已有的软件开发经验,甚至是已有的代码框架。最近一些年,设计模式已经成为软件项目团体中最热门的话题之一,并且经常在社区引起激烈的讨论。 本文介绍了设计模式的概念、描述、法则、分类以及程序设计语言与设计模式的关系,以实际案例介绍设计模式在软件开发中的应用,并在此基础上提出了一些软件设计与开发过程中使用设计模式存在的问题。 关键词: 设计模式;软件设计与开发;面向对象; 1 引言 面向对象的实质是一种系统建模技术,面向对象思想只是一种高级编程规范,我们只有利用它,并且在总结和继承前人开发经验的基础上使用有特色的面向对象软件开发方法,才可能充分地利用其优越性,来解决我们系统的各种需求及需求变更。 模式是一种方案,利用这种方案,我们可以完成某项工作;模式也是一种途径,通过这种途径,我们可以达到某个目的;同时,模式也是一种技术,我们必须获取并利用有效的技术。设计模式也是一种模式,是一种完成某个目的或构思的方案。它要求使用某种面向对象提供的类及相关机制 [1] 。 2 设计模式概述 2.1 设计模式概念 模式(pattern)的概念最早由建筑大师 Christopher Alexander 于 20 世纪 70年代提出,应用于建筑领域。20 世纪 80 年代中期由 Ward

企业内部软件开发的特点和模式

℡╲_俬逩灬. 提交于 2020-01-11 00:35:30
在现代企业中,信息系统已经越来越成为企业管理的重要支撑。因应各种业务需求对软件系统的要求,大多数企业都形式不同地建立了自己的软件开发团队,视企业的规模从一两个兼顾支援网络硬件、进行简单开发的人员到大规模的专业软件开发组织都有。通常说来,大多数企业内部开发团队是企业内部辅助主营业务的、非赢利性的组织。这类带有普遍性的企业内部软件团队是本文的关注点。 和专业软件公司开发过程一样,企业内部软件开发也涉及对过程、工具、质量、人员等各个层面的管理问题,所以目前成熟的或者正在探讨中的各种软件开发模式都可以被企业内部软件开发借鉴和参照。但是,在服务、非赢利的前提下,企业内部软件开发的各方面都有有别于专业软件公司的特点。目前关于企业内部软件开发模式和管理的探讨比较少,很多人,甚至企业内部开发团队的成员本身,都没有明确企业内部软件开发和专业的软件公司开发工作的不同,在项目管理、文档控制等方面经常教条的模仿专业软件公司的开发模式。这种认识上的模糊性削弱了企业内部软件开发团队在软件的生命周期中本来具有的优势。 1 企业内部软件开发的特点 企业内部软件开发有什么值得注意的特点呢?以下通过在几方面和专业软件公司对照的方法来进行一些分析: 1.1 软件开发团队和用户的利益关系。 专业软件开发公司和用户是商业关系,直接目的是销售产品和服务获得收益,用户本身的收益和软件公司不是明确相关的

如何评测软件工程知识技能水平?

最后都变了- 提交于 2020-01-07 14:11:19
软件工程知识技能水平高低的主要体现方面 1. 开发语言:至少熟练掌握一门编程语言 2. 数据结构与算法:算法是软件工程师的重点知识结构,算法的掌握情况往往能够决定软件工程师的成长高度 3. 开发环境:熟练掌握Windows、Linux等大型主流操作系统的操作,熟练掌握编程环境配置与软件环境部署 4. 软件开发流程: 熟悉掌握瀑布模型、敏捷开发等软件工程开发的流程。了解软件开发各周期或阶段的目标以及作用。了解软件开发的一些原则技术及方法 5. 团队协作能力:队员间在各个开发环节需要沟通协作 软件工程知识技能水平测评试题 一.选择题(共40分,一题4分) 1. 软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( )不是软件开发期所应包含的活动。 A. 可行性分析 B. 需求获取和需求建模 C. 软件体系结构设计和数据设计 D. 软件集成与系统测试 答案:D 软件开发期所应包含的活动有:可行性分析、需求获取和需求建模和软件体系结构设计和数据设计。 2. “软件危机”是指( ) A. 大众不适应软件的使用 B. 软件开发相关人才过少 C. 软件开发和维护中出现的一系列问题 D. 大量黑客出现 解析:C 软件危机指的是随着软件规模不断扩大而产生的一系列开发与维护的难题 3. 下列哪个不是瀑布模型的优点( ) A. 项目提供了按阶段划分的检查点 B. 当前一阶段完成后

如何评测软件工程知识技能水平?

混江龙づ霸主 提交于 2020-01-07 04:41:30
首先,先来说一下上完高级软件工程这门课的感受,在这门课中,孟老师由浅入深,循序渐进的给我们讲解软件工程方面的知识。孟老师授课的高明之处在于,他能将一个个知识点与软件开发过程中的案例甚至是生活中的事例结合,帮助我们理解。此外,孟宁老师还十分注重对我们基本功的培养,比如代码规范,在每一次上课中都会提及。我虽并不能完全理解孟老师所讲的所有内容,毕竟之前也没有接触过软件工程,但是我觉得,学习任何东西,启蒙是重中之重。孟老师可以说是我在软件工程方面的启蒙老师了,相信有了孟老师帮我打的基础,我在以后的学习工作中一定会有快速的成长,或许有一天,当我能够完全理解孟宁老师讲过的知识的时候,我会有不一样的感触。学习《高级软件工程》课程,使我从一个只会写小程序的“门外汉”慢慢成为一个具备了基本软件工程素养的“准程序员”。通过学习,我掌握了很多代码风格规范的知识,也了解了软件开发的基本原则、基本方法等等。这门课相当于在帮助我基础,相信在以后的学习中我一定能够较快成长,成为一名合格的软件工程师。 如何才能评价一个软件工程师的专业技术呢,这需要从很多方面来看。 (1)具有扎实的计算机专业知识    这是软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。 (2)良好的语言表达能力和沟通能力   

如何评测软件工程知识技能水平

♀尐吖头ヾ 提交于 2020-01-06 20:14:24
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

当下互联网创业公司采用增量模型的原因

徘徊边缘 提交于 2020-01-06 02:57:03
3.当下大部分互联网创业公司为什么都愿意采用增量模型来做开发? ① 很多软件在开发之前并不知道或者说不完全知道用户的需求,采用增量模型,先发布一个基础软件,根据用户的使用反馈来总结用户需求,在原来的基础上完善软件的功能,这样既不会像瀑布模型一样在软件开发之前就要花大量的时间去做需求分析和管理,也不会做出不符合用户需求的无价值软件,既加快了软件开发步伐,又可以保证软件的质量。 ② 用户的需求不稳定,可能会随时发生变化,再加上软件开发需要投入大量的资金,使用增量模型,如果用户评价不好,收入不好,可以及时停止开发,减少投入资金。 ③ 软件市场不稳定,更新、研发软件的速度也很快,使用增量模型可以早先发布软件,避免被别人抢先发布而带来损失。 来源: https://www.cnblogs.com/cxmlj/p/5244700.html