跪求一个软件工程项目的所有东西
你是在校学生
大概不知道一些事情
在进入有一定规模的公司时,是需要签下保密协议的,所以任何与公司有关的代码和文档都不能带出公司。
在学校学习的东西,到了公司基本上没有什么用途,大学需要做的事情是做到双证齐全,四级通过,有能力的考上几个简单的认证(虽然不是很有用,但是至少好看),然后就是实实在在的做一个虚拟项目(Struts必须用,最好是可以用上Hibernate。最好是不要用很简单的东西,Tiles框架,Validator框架最好都用一用),在面试可以突出这个虚拟项目,面试官一般会问你在项目中学到什么,做了什么。你就具体说一说这个项目中运用的技术一类的。
如果这个项目做到了我说的,对于一个在校生来说,并不是一个很容易的事情,准备好吃苦的准备吧。
软件工程项目管理
二进制软件Colloa PM项目管理软件是全流程、移动化、持续优化的,以BPM工作流引擎为核心,能够实现项目计划、任务、进度、工作量、成本、文档等全面管理,项目实施全程可视化、流程化、主动通知和提醒。并能够与 Colloa (CRM、OA、SCM、BPM)以及第三方ERP无缝集成,实现项目售前售后的一体化管理,实时展现多维度统计报表。
相比传统的PM项目管理软件而言,Colloa PM 支持自定义的项目管理要素、单据样式和实施过程,满足个性化的、优化的项目管理需求,具有完整的、全自动的流程管控机制。并能够通过移动设备和手机App,随时随地访问和审批,这是传统的项目不能轻易做到的。
项目案例参考链接:
诚正建设监理:多维度分工,细化监管 http://www.10oa.com/v8/news/1001892.htm
中建企业集团:全方位报表,科学战略布局 http://www.10oa.com/v8/news/1001856.htm
深圳凯莱特科技:全员协作,提升企业效益 http://www.10oa.com/v8/news/1001938.htm
苏交科集团:科学分配、监管质量和风险 http://www.10oa.com/v8/news/1001908.htm
上海左券律师:全面支撑业务体系运营 http://www.10oa.com/v8/news/1001934.htm
常州烟草局:多级衔接、精益化管控 http://www.10oa.com/v8/news/1002005.htm
软件工程有哪些主要阶段?每个阶段的主要工作是什么
三个阶段:
1.定义阶段:可行性研究初步项目计划、需求分析
2.开发阶段:概要设计、详细设计、实现、测试
3.运行和维护阶段:运行、维护、废弃
软件工程实例 报告 文档 程序 都有
1 引言。
1编写目的:
可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解
经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。
1.2 项目背景:
开发软件名称:超市进销存系统。
项目任务提出者:老师。
项目开发者:shu408157847。
用户:超市。
实现软件单位:学校
项目与其他软件,系统的关系:
本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序。
1.3 定义:
[专门术语]:
[缩写词]:
1.4 参考资料:
《软件工程导论》,张海藩,清华大学出版社。
《实用软件工程》,郑人杰等,清华大学出版社。
2.可行性研究的前提
2.1要求
主要功能:
性能要求:
对服务器上的数据必须进行及时正确的刷新。
输出要求:数据完整,详实。
输出要求:简捷,快速,实时。
安全与保密要求:权限不同
完成期限:预计六个月,即截止2007年12月8日。
2.2目标:
系统实现后,大大提高旅游局的机票预定服务效率超市的管理水平。降低误差,减少开销
2.3条件,假定和限制
建议软件寿命:5年。
经费来源:。
硬件条件:服务器sun工作站,终端为pc机。
运行环境:Linux
数据库:Oracle8
投入运行最迟时间:2000/04/04
2.4可行性研究方法
2.5决定可行性的主要因素
1 经济可行性
成本/效益分析结果,短期-长期利益分析。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受。
3.技术可行性分析
3.1系统简要描述
3.2处理流程和数据流程
3.3环境可行性
3.4 人员可行性:操作宜学
3.5 效益分析
投资回收周期
2.3年
4.5敏感性分析
设计系统周期为五年, 估计最长可达10年
处理速度:一般查询速度<4秒
关键数据查询速度: <2秒
5。法律因素
6。其他可供选择的方案
7.结论意见
由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发.
以上为包含步骤,供你参考!!
参考资料:转载
论软件文档在软件工程及项目管理中的作用
软件工程文档的作用: 硬件产品和产品资料在整个生产过程中都是有形可见的,软件生产则有很大不同,文档本身就是软件产品。没有文档的软件,不成为软件,更谈不到软件产品。软件文档的编制在软件开发工作中占有突出的地位和相当的工作量。高效率、高质量地开发、分发、管理和维护文档,对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益有着重要意义。
然而,在实际工作中,文档的编制和使用都存在着许多问题,很多不规范的地方有待于解决。软件开发人员中较普遍地存在着对编制文档不感兴趣的现象。从用户方面看,他们又常常抱怨:文档售价太高、文档不够完整、文档编写得不好、文档已经陈旧或是文档太多、难于使用等。究竟应该怎样要求它,文档应该写哪些,说明什么问题,起什么作用?
软件开发人员在各个阶段中以文档作为前阶段工作成果的体现和后
阶段工作的依据,这个作用是显而易见的。软件开发过程中软件开发人员需制定一些工作计划或工作报告,这些计划和报告都要提供给管理人员,并得到必要的支持。管理人员则可通过这些文档了解软件开发项目安排、进度、资源使用和成果等。软件开发人员需为用户了解软件的使用、操作和维护提供详细的资料,称之为用户文档。可见,文档在开发过程中就起到关键作用。
从某种意义上来说,文档是软件开发规范的体现和指南。按规范要求生成一整套文档的过程,就是按照软件开发规范完成一个软件开发的过程。所以,在使用工程化的原理和方法来指导软件的开发和维护时,应当充分注意软件文档的编制和管理。
在软件开发的过程中,文档的作用不可小视。它们不仅能帮助开发人员了解自己的工作进度,方便自己和他人阅读和改进代码,还能够帮助项目的管理人员管理软件开发进程、提高软件开发的效率和质量、改进软件开发过程。
哥,加Q啊
怎么按软件工程的方法写相应的文档记录?
论如何才能提高软件的开发效率及写代码效率
————给初学者的一些感想
作者:林宣武 著作权所有,转载请带上作者名字
本文的适应读者:刚毕业的学生,并刚入软件公司同时又打算在软件业有所发展的人
首先让我们看一看刚入软件公司会出现的情况:
1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)
——别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,
对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。
——如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。
比如:在学java 知识点时,你最好建一个工程把所有的代码都写到这个工程中,以便对照分析学习.
2. 你可能会常常发现,写完一段码后,编译通过,可是运行起来却出来很多逻辑上的错误。(原因:理解错误或逻辑上想错了)
——
——提高逻辑思维和理解能力
3. 拿到一个需求却不知从那里开始(对系统不太了解)
4. 常常为了一个小小的错误用了很长的时间,不知从那里查,也查不出结果
5. 常常做出来的东西是有了东却少了西(考虑不全)
6. 有时为了一个特殊功能模块的实现查了很工时间却没有查出结果来(备查的资料不全)
7. 有时是否要项目经理叫你做东,你做了完全没有必要的西?(沟通不及时)
8. 有时为了能提前完成某一个任务,加班到深夜,可是到了明天却效率低下,还不如不加班(要注意休息)
9. 有时自已认为已测好了好多次,可以保证不会出错,可是经测试人员一测试却很多错误(不够细心或测试方法有问题)
10. 有时为了避免出错,常常全比写代码的时间超出两倍用于测试(方法有误)
11. 有时写好了一段代码给质量管理人员时却因为代码不够规范而导致重写?(代码不够规范)
为了写好代码(包括,代码没有问题,需求符合,健壮性好,总用时小),那我们应该怎么做呢,有没有什么方法没有.
回答是肯定的!!
可以总结为两大关键点:一是养成好的编程习惯,二是针对自已的工作提高自已的知识含量.
一. 好的编程习惯
1. 写程序前打个草稿可以在心里,最好在纸上:目的要从整体上考虑程序的实现。
如果公司采用建模的方式,有建模工具(rose ,visio )那是最好不过的了。
2. 注意休息,不要浪费自已的休息时间,用去了自已的时间不但会写出的代码因为注意力不集中而会常常出现代码的质量有问题,逻辑常出错
3. 要善于收集相关的专业开发上的资料,以便以后能更快更好的解决问题目。提倡公司能提供内部知识勾通的工具(如知识论坛,内部即时聊天器);提倡公司内部有技术资料的共享库,提高解决问题的能力.
4. 提高对所写的模块的相关全局把握能力,在写程序中要最好先详细设计后再发布.
5. 要学会与他人沟通如非工程师,学会沟通的不同方式,提高沟通的效率。
二. 不同的目标不同的知识重点
(一) 目标:程序员
职责:根据详细设计文档,或根据高级程序员的设计进行相关的开发。
1. 要学会看相关的需求文档及详细设计文档。
注意:你必须要通过阅读这些文档把握住其中的重点,关键点,相关易漏点
2. 如果公司里会用UML来相互的沟通,这时你必须要深刻理解UML 的相关知识,一定要注意千万不要对UML图一知半解的情况下,就着写代码,那样会错的很惨。
3. 学好对应的计算机语言的基础知识,如:程序的语法,关键点,易错点,对应的出错如何出理,如何才能把对就的程序写的键壮一些
4. 如果用到数据库的内容,在学会sql的前提下,尽量学会数据库原理中的相关sql内容, 当然为了提高查询的能力也可以增加一点
5. 如果用到面向对像的语言那最好学点相关的设计模式,这样的可以增加代码的扩展性,及可维护性等,能够理解详细设计中的模块间的设计原则这个也可以提高对模块的内容编写的正确性.
6. 你一定要学会公司内部的通用的编码规范。
7. 学习如何做单元测试比较好.必须要熟悉相关的单元测试工具.
8. 要不断的对相关知识进行总结,同时也要必须把相关的资料进行整理和学习,在学习过后的资料中你可以在遇到问题时更快的找到问题的答题。
9. 在开发你必须记录下大家常出错的地方及大家的解决方法,这个对你以后错误的避免有很大的作用.
10. 在写代码中时必须把上面写过代码记在心里,这样就可以养成习惯,提高代码的速度
11. 对数据库操作时,要尽量共用Connection,并小用以减少Connection的数量
(二) 目标:高级程序员
职责:对需求文档进行系统相关模块的详细设计,并负责对程序员的支持及指导和相关核心模块的编写
所以不但要学会相关程序员要的知识,同时还要学会难度比较大的知识。
1. 程序员的知识,如设计模式你一定要不是简单的看要懂,你还要应用设计模式对相应的模块进行相关的详细设计。
2. 要学好相关详细设计的工具做的有的放矢,这样可以更好提高对自已的设计的表达
3. 为了提高系统的运行效率会运用到
a. 数据库的表结构如何建才能使应用的要查询sql 更快。这时可要认真认真的学习一样数据库原理,千万不要以为采用数据库的范式越高系统的运行效率会越好,有时候适当的表冗余可以大幅度的提高系统的查询效率. 同时适当的建索引,视图,存储过程也是提高系统对数据库的查询的效率之一。
b. 学习多线程的编程,不过千万不要以为线程数越多运行的速度会越快,一般线程的数量超过一定的数量后,系统的运行速度反而会变慢。为了应用好多线程,操作系统这本书也要关于同步及相关进程和线程的知识必不可少。
c. 设计好的一程序的好的算法,可要比起解一道同一复杂的数学题,要难的多,所以要在学好的相关数学的知识上(如线性代数,离散数学,概率论,数理统计)。更要深入计算方法,及数据结构,让数学问题用计算机来解决。
4.为了让系统设计的更加的可扩展性,稳定性,设计模式和软件工程可是不能少的东西。所以必须把设计模式用于模式级的设计.
5. 如果公司采用的是Rose (UML)进行设计的话,你对于UML 的理解一定要非常的准确,同时你要跟小组中的程序之间进行充分的UML概念上及对应用例图,类型图,对象图,协作图的意思多写一些注释加深大家对你的设计上的理解。
(三) 目标:系统分析员
职责:做好与客户之间的关系,同时对客户的需求要正确的理解,要选择合适的开发技术,同时做好与客户间沟通交流,学会说服对方。
1. 学会对客户的沟通:要正确理解客户的需求同时要保证相互之间的沟通顺畅。
2. 对了解来的需求要能用笔正确的描述下来,并能很好的传叙给其他人。这时要学会用如ROSE 等的软件建模的工具。和powerdesign等的数据库建模工具。和相关的UML,数据流程图及相关的内容的知识。
3. 不但要全面的了解客户的需求而且还要对需求进行未来的可能的改变要有相当多的了解。
4. 全面的了解客户的需求后,要选择合适的相关技术用于开发,:
这时要学习各种知识
a. 先择数据库:db2,infomix ,oracle ,sql server,mysql 的优缺点,可以从中选择最适合的数据库及理由。
b. 设计数据库:要扎实在数据库的理论(数据库原理,数据库系统设计)及相关数据库设计经验,要尽量多的分析过去数据库设计,分析这么设计数据库的好处。这时可能要用到 powerdesign等工具。
c. 写需求说明文档和概要设计文档,同时要学会要分析相关需求说明文档的需要的内容的相关知识,如人员工时的计算方法, 一般会用 project 来分析相关的项目的内容。
d. 选择合适的程序语言及相关的架构,一般主流的架构是 J2EE和.net的相应的优点及它们之间的结合,如采用soap xml进行相关的结合,或用java-com 桥 进行相关的功能的调用。和它们之间的相关语言优缺点
e. 还要根据b/s,c/s 结构对开发的网络影响的相关内容采取选择。
5. 学会说服对方,毕竟客户都不是个个是软件专家,他们的选择有时未必是正确的所以学会说服对方,是系统分析员必备的能力条件.
三. 训练的方法:
1. 计划行事:
(1 设定你的未来的学习目标
a. 未来要成为什么样的人(主要是工作角色,如程序员,高级程序员,系统分析员)
b. 你近期要成为什么样的人(当前的工作职责是什么,如果只写代码是程序员等)
c. 要完成近期的工作所必须要知识(如java 程序员,要学习java 基础知识,等),关键的知识(如java中关键要用到的知识有,面向对象等),易错的知识(比较原来的已有知识进行合对)
(2 设定你的学习目标后,并要有针对性的对应目标设定学习时间的按排及学习路线。并直观的记录在案,以便以后随时核对,
(3 常常抽出一定的时间认真核对计划的完成情况,如果没有按时完成计划的内容。分析原因,尽量想法赶上计划内容如果存认是计划有误,要认真总结计划失败出错的原因,对你的未来有很大的帮助。
注意:不要对计划的按排过于乐观 要尽量的考虑实现中的各种情况,同时适当按排一些缓冲时间,以便真正能按照计划行事,以提高按计划行事信心,同时这能有效避免出现计划中途成没有意义的东西。
2. 针对工作角色对自已的能力进行培养和知识进行学习。
关键的能力:
(1. 记忆能力:要学会把自已的写的代码和改的代码记的清清楚楚。要能提高效率。
(2. 逻辑思维能力:要多多的看别人的复杂逻辑的代码,分析复杂逻辑的运算。
(3.全局能力: 不要再范改了东,却西出错。(构造软件这个很重要)
(4.学习能力: 并不是每个项目都你是所熟悉的项目的,并不是每个项目中的知识你都知道,要掌握最新的技术和最有用的知识,是最关键的。要学会,提高能力,这个东西是永远对自己有好处的。
(5. 沟通能力; 学会幽默,学会讲故事,学会交朋友,学会礼节。
(6.自制能力:如果一个人不能自制那这个人以后,不会有很大成果,即使很大机会发展起了,可是因为没有自制能力很容易被人利用,或自己明明知道怎么做,可是就是不能控制自己的欲望.而常做下无法挽回在错误.
四. 例:java 程序员的知识结构及学习流程:
(一) 学习相关工作必须的知识
1.Java 语言的基础(推荐书:《 java 编程思想》)
关键:
(1. java 面向对象及对应的程序现实
(2. java 多线程
(3. java 网络 socket
(4. 应用界面
2.学会用智能集成开发工具jbuilder,eclipse等一种,根据资料里的内容,自已写与例程类似的代码,但注意不要直接抄它,一定要自已写。同时最好写到一个工程中以便对比。
3.如果用b/s结构要学习jsp的知识(推荐书:《 JSP 2.0技术手册 》)
关键:
(1. 界面处理:
a . HTML——超文本标志语言:用于显示页面如:超文本链接, 表格,各种标志等。
b. CSS———层叠样式表:控制正文外观的一组格式.用于美化HTML页面。
c. javaScript—嵌入HTML页面浏览器来执行的脚本语言:让页面可以根据用户的操作或事先设置等在客户端进行动态变化,而且不需传回服务器。比如: 对表单输入的正确性做客户端验证.
(2.jsp元素:如java代码写法,对应标志---jsp:include,jsp:useBean,jsp:setProperty,
jsp:getProperty等.jsp的几大对
(3. javaBean及其在jsp 中的调用和相关应用.
(4. 其他技术:
a. 如何操作数据库—用jdbc(可能要补充一些数据库的知识,如oracle ,sql server,
包括如何写高效率的查询sql,存储过程等) ,
b. 如何发送email—用javaMail,
c. 如何学习如何用实现文件的上传下载,如果操作文件,
d. 如何操作xml --用jdom 及 jaxp(这时有必要学习一下xml 的语法如 dtd等)
e. 如何远程方法调用—用 rmi
f. 如何进行消息服务 ---用 jms
5.再有些公司会用到 J2EE 的架构如 EJB 作为业务逻辑.
(1.EJB中要分清
(2. struts MVC
(3. Hibernate 操作数据库
6.最好学习一下UML
学用Rose建模
五 忠告:
1. 不要以为自已很差,要明白每个人都是这样一步一个脚印的走过来的。(我们要有信心)
告诉自已:比尔盖次,也是同我们一样,出生时也是巴掌大.
我们只有多学,多练才可能有出路.
2. 不要以为自已学的多就很强,世界上的高手多的是,问问自己,你每小时可以写几行代码,代码一次写下来有多少错误,如果你一次写下没有错误,一小时可以写1000代码,那才是真正的高手.
3 . 不要以为自已没有项目做就会落后于他人,人家是参加了很多项目,可是人家只是项目中的一个小角色,如果我们在空时能都写一些开源的项目,或自己开发和设计一些有用的开源的项目,水平及能力很快就上来了.
4. 不要以为自己做过很多的项目就很了不起了。你能说你做的项目中,你能体会整个项目为什么要这样设计,为什么要这样开发吗?相信绝大多数是否定的回答。那还不如多学习一些已做的项目,了解他们为什么要这么做,为什么这么开发,多看一下它们的项目的文档,我们能明白很多,这样把他们的经验放于你未来可能要接手的项目,这样不是更好吗?
5. 不要以为自己的学习能力很牛,你能快速阅读一本书又能快速掌握它的内容吗?
这篇文章应该有些帮助吧!
转载请注明出处51数据库 » 软件工程项目文档 软件工程项目文档生成管理工具
猴子出身