最近做项目对于产品开发过程控制有了新认识,先暂记如下,以后再研究。
需求分析与设计是按主题划分的
基本上一个研发类项目可按如下主题划分:
1.业务与问题主题 分析需求和问题、得出产品构想。
2 解决方案主题 需求分析后设计解决方案(产品架构 核心产品功能设计)。
3.产品功能主题 需求分析后产品功能设计。(覆盖所有功能点)
4.程序设计主题 需求分析后程序设计(详细数据结构、过程设计(时序图))。
5.功能实现主题 根据设计编码。
各个主题都有需求分析过程,但是这里的需求分析是特指当前主题下的需求分析。比如程序设计时的需求分析,是指要实现的界面内容及交互动作是什么。
这些不同的主题内容,会在软件的开发过程中出现。
------------------------------------------------------------------
关于时序图:
从自动路由得来的经验,复杂的程序的第一版顺序图落实到代码上会有很多的漏洞,随着代码的编写需要修改很多次,因此在功能开发时的设计文档,不应包含
详细的顺序图,顺序图应该是存储在工具中的,这样方便随时修改,因为在写代码时变动的可能性太大了。
这个理解是有问题的。如果在开发前,时序图是可以详细明确的,应该放在文档中。对于不同复杂度的程序时序图在未开发前,能明确的程度是不同的。比如swing的调用过程,就比较好明确。没有理由,明明可以画的很详细,却故意画的很简化。
无论怎么画时序图,在开发前,都是想把要开发的内容理清楚,并记录。只是需要寻找一种最佳形式。如果人的思考能力,可以不借助于任何工具,那就可以完全不同时序图了。
开发前时序图是用来发现需要的类和描述详细或概要的主要过程(取决于问题的难度)。不需要将全部过程的顺序图画出来,也不应该用图来限制代码的变化,因为在实现时也许会想到更好的办法或发现之前的想法是错的。详细死板的使用顺序图,现在无用,将来也无用。关键的顺序图写在设计文档中即可,不需要再用uml工具画出来其它过程的图,因为没必要。通过一个顺序图做为敲门砖,可以想通一组相关的过程,那些类似的过程,是没必要再表达为时序图的。
在开发后,文档中的顺序图,能起到读代码的入口,是一个非常不错的定位。这个是要在开发后和软件保持一致的。
通过以上方法,即可以保持设计文档的简捷有效,又因为单个功能需要维护的时序图较少,这就使设计文档和软件保持一致成为可能。
这个思想的总原则是相信人的思考能力,并不需要依赖穷举类型的设计文档,相似的过程是可以举一反三的。
以下也是一个基本事实:
写代码时也是需要进行设计的,有时非常简单可能就是某种技术的直接应用,也可能是非常复杂的,涉及复杂的算法和并发处理,这些内容的实现可能要经过多次的试错才行,这导致详细的设计文档很难准确。因此,必须还是要靠开发人员才能得到最后的实现方法。因此,没必要在设计文档中定义一切,准备的描述关键内容,其它的内容由开发人员补充即可。
--------------------------------------------------------------
象需求、设计、架构这样的词汇,都有自已的内含。但在不同的主题范围内,指代内容又不同。因此有其泛指和特指。
---------------------------------------------------------------
分享到:
相关推荐
最后,软件开发人员还需要具备一种软件过程,RUP/XP/CMM 等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。软件过程是软件开发的重要组成部分,是软件开发人员必须具备的知识。 正确的路线...
要想成为一名优秀的软件开发人员,需要熟练应用编程语言和开发工具,更重要的是能够领悟优美代码背后的原则和前人总结的经验——这正是《敏捷软件开发:原则、模式与实践(C#版)》的主题。 不要被书名误导了,《敏捷...
通过这个蓝图,学员可以系统地了解软件开发过程中所需掌握的各类技能和知识。蓝图的制定会包含多方面的内容,从基础的编程语言学习到深入的系统架构设计,甚至是对特定行业软件开发需求的解析。 文件中明确出现了...
《领悟嵌入式:从硬件搭建到软件实现》是一本深度探讨嵌入式系统的书籍,旨在帮助读者全面理解和掌握从底层硬件设计到上层软件开发的全过程。在嵌入式领域,硬件与软件的紧密结合是关键,这本书通过82个章节深入浅出...
在我的职业生涯中,我逐渐领悟到,在软件开发的全过程中,需求分析、数据库设计、性能优化以及用户界面设计等环节的重要性。每一步都关乎到项目的成败,它们共同构成了软件开发的骨架和灵魂。下面,我将对自己在这些...
- **软件危机**:随着计算机技术的发展,早期的软件开发过程中出现了诸多问题,如质量低下、错误频发等,这些问题引发了所谓的“软件危机”。为了应对这些挑战,1968年的一次会议上提出了“软件工程”这一概念,旨在...
这份实习报告详细记录了一位实习生在软件开发过程中的学习和反思,涵盖了多个关键知识点。 首先,实习过程中强调了代码的组织和维护。在产品开发中,良好的代码管理习惯至关重要。变量名的设置应当具有描述性,且与...
【描述】: 本文将详细探讨一名大学生在软件开发实习过程中的体验、收获与感悟,重点分析实习对于个人技能提升和未来职业发展的影响。 【标签】: 互联网 【正文】: 在为期四周的实习期间,实习生在山东大学的软件...
【软件开发过程】 软件开发是一个复杂且系统的过程,它涵盖了从需求分析到系统维护的多个阶段。在描述中提到的实习经历中,实习生参与了一个完整的软件开发项目,其中包括了以下关键步骤: 1. **需求分析**:这是...
不要被书名误导了,本书不是那种以开发过程为主题的敏捷软件开发类图书。在书中,作者延续了自己一贯的写作风格,让你亲历现场,并用幽默亲切的语言和插图,通过一步步展示来自开发一线的代码,分析各种设计决策...
在编程领域,设计模式是软件开发中的重要概念,它代表了在特定上下文中解决常见问题的最佳实践。"与大虾对话 领悟设计模式"这个主题,暗示我们将通过一个交流或者讨论的形式来深入理解设计模式的核心思想和应用场景...
在当今这个日新月异的时代,软件开发行业作为其中的佼佼者,正处于蓬勃发展之中。各大企业对于技术人才的需求也在日益增长。因此,对于即将步入社会的大学生而言,实习经历显得尤为重要。2018年,一位大四学生在软件...
软件设计师在IT行业中扮演着至关重要的角色,他们不仅需要具备扎实的编程技能,还需要有对整个软件开发流程的全局把控。以下是对软件设计师工作计划中提及的关键知识点的详细阐述: 1. **整体把握软件架构**:软件...
软件工程强调规范化的开发流程、有效的项目管理、以及对软件质量和可靠性的严格控制,力求通过科学的管理和技术手段提高软件开发效率和质量,避免软件危机的再次发生。 ### 林锐的《软件工程思想》 林锐的《软件...