《软件工程》-第二章随笔 | 一世浮华一场空



《软件工程》-第二章随笔 | 一世浮华一场空

软件开发过程中,软件项目失败并不罕见。20世纪80年代,软件项目失败的原因大多是由于过程缺乏规范。软件开发过程中,并无详细的开发规划,这样的过程像一个"黑盒子",我们并不能完全了解过程中会发生的任何事情,也无法估计软件成品的质量。由此,软件过程规逐渐范化,软件开发过程也有了一定的计划。软件过程的基本运动包括初步的问题提出,即背景了解,市场调差等,还有了解软件需求规格说明,软件设计过程规划,软件的实现预确认。

软件开发过程规范化,自然不会只有一种统一的套路。软件过程有各种模型:瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于组件的开发模型。瀑布模型是一种从上到下按序进行的软件过程模型,虽然井井有条却也存在用户需求不明确,并不能适应环境变化等缺点。快速原型模型是建立一个初步原型,在不断地进行优化。增量模型是一点点的将客户的需求添加进去,每一步的添加过程都相同,直到最后形成一个令人满意的成品。螺旋模型是瀑布模型与快速原型模型的结合体。形式化方法模型现将软件需求形式化数学描述,再将数据描述一次次形式化转化为可执行程序。基于组件的开发模型是一种新兴模型,选取现有组件进行选取组装和修改,从而形成产品。

微软公司的软件过程模型由规划,设计,开发,稳定和发布5个阶段组成,每个阶段都有固定的依据与目标。它的开发策略是递进式的,产品功能是一点点进行完善的。


Read full article from 《软件工程》-第二章随笔 | 一世浮华一场空


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts