Software Engineering Tutorial
S / W -考试问题与答案
S / W工程资源
S/W 工程资源
S/W Engineering Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Software Project Management
从事软件开发的IT公司的工作模式可以分为两个部分:
Software Creation
Software Project Management
一个项目是一个明确定义的任务,它由几个操作组成,以实现一个目标(例如,软件开发和交付)。一个项目可以被描述为:
Every project may has a unique and distinct goal.
Project is not routine activity or day-to-day operations.
Project comes with a start time and end time.
Project ends when its goal is achieved hence it is a temporary phase in the pfetime of an organization.
Project needs adequate resources in terms of time, manpower, finance, material and knowledge-bank.
Software Project
一个软件项目是从需求收集到测试和维护的软件开发完整过程,根据执行方法在规定的时间内完成,以达到预期的软件产品。
Need of software project management
被認為軟體是一種無形的產品。軟體開發是世界商業中全新的領域,對於建造軟體產品並沒有太多經驗。大多數的軟體產品都是根據客戶的需求定制的。最重要的是,底層技術變化和進步非常頻繁和迅速,一個產品的經驗可能無法應用於另一個產品。所有這些商業和環境限制都給軟體開發帶來風險,因此必須高效地管理軟體項目。
上面的图显示了软件项目的三重限制。为了交付高质量的产品,将成本限制在客户预算之内并按计划交付项目是软件组织的重要组成部分。有几个因素,内部和外部,可能影响这个三重限制三角形。三种因素中的任何一种都可能严重影响另外两种。
因此,软件项目管理是必要的,需要将用户要求与预算和时间限制相结合。
Software Project Manager
一位軟件項目經理是承擔執行軟件項目的責任的人。軟件項目經理充分了解軟件將經歷的所有SDLC階段。項目經理可能永遠不會直接參與生產最終產品,但他控制並管理生產中涉及的活動。
一个项目经理紧密地监控开发过程,准备并执行各种计划,安排必要和充分的资源,保持所有团队成员之间的沟通,以解决成本、预算、资源、时间、质量和客户满意度等问题。
让我们看看项目经理承担的一些责任-
Managing People
Act as project leader
Liaison with stakeholders
Managing human resources
Setting up reporting hierarchy etc.
Managing Project
Defining and setting up project scope
Managing project management activities
Monitoring progress and performance
Risk analysis at every phase
Take necessary step to avoid or come out of problems
Act as project spokesperson
Software Management Activities
软件项目管理包括许多活动,包括项目规划,决定软件产品的范围,估算各种成本,安排任务和事件和资源管理。项目管理活动可能包括:
Project Planning
Scope Management
Project Estimation
Project Planning
软件项目规划是在软件实际生产开始之前执行的任务。它是为了软件生产而存在的,但是没有任何与软件生产具有直接联系的具体活动;它是一组多个过程,可以促进软件生产。项目规划可能包括以下内容:
Scope Management
它定义了项目的范围,包括为制作可交付的软件产品而需完成的所有活动和过程。范围管理十分重要,因为它通过清晰地定义项目将会完成什么和不会完成什么来创建项目的边界。这使得项目包含有限且可量化的任务,并且可以轻松地记录,从而避免成本和时间超支。
在项目范围管理期间,有必要 -
Define the scope
Decide its verification and control
Divide the project into various smaller parts for ease of management.
Verify the scope
Control the scope by incorporating changes to the scope
Project Estimation
为了有效地管理,精确估计各种措施是必须的。通过正确的估计,管理人员可以更加高效、有效地管理和控制项目。
项目估计可能涉及以下内容:
Software size estimation
软件大小可根据KLOC(代码行千)或计算软件中的功能点来估计。代码行取决于编码惯例,而功能点根据用户或软件要求而变化。
Effort estimation
The managers estimate efforts in terms of personnel requirement and man-hour required to produce the software. For effort estimation software size should be known. This can either be derived by managers’ experience, organization’s historical data or software size can be converted into efforts by using some standard formulae.
Time estimation
一旦确定尺寸和努力估计,就可以估计制作软件所需的时间。所需的努力根据需求规格和软件各个组件之间的相互依存性分为子类别。通过工作分解结构(WBS),软件任务被分解为较小的任务、活动或事件。这些任务按日程或日历月份安排。
完成所有任务所需的时间总和(以小时或天为单位)是完成项目所投入的总时间。
Cost estimation
这可能被认为是最困难的,因为它涉及的要素比以前的任何一个都要多。对于估算项目成本,需要考虑 -
Size of software
Software quapty
Hardware
Additional software or tools, pcenses etc.
Skilled personnel with task-specific skills
Travel involved
Communication
Training and support
Project Estimation Techniques
我们讨论了与项目估计相关的各种参数,如规模、工作量、时间和成本。
项目经理可以使用两种广泛认可的技术来估计所列出的因素 -
Decomposition Technique
这项技术假定软件是各种构成部分的产物。
有两个主要模型 -
Line of Code Estimation is done on behalf of number of pne of codes in the software product.
Function Points Estimation is done on behalf of number of function points in the software product.
Empirical Estimation Technique
此技术使用经验公式来进行估算。这些公式基于行数或功能点。
Putnam Model
这个模型是由劳伦斯·H·普特南制作的,其基础是诺登的频率分布(瑞利曲线)。普特南模型将时间和努力与软件大小相互映射。
COCOMO
COCOMO的意思是COnstructive COst MOdel,由Barry W. Boehm开发。它将软件产品分为三类:有机、半脱离和嵌入式。
Project Schedupng
项目进度安排指的是所有活动的路线图,其顺序和每个活动分配的时间段。项目经理往往定义各种任务和项目里程碑,并在考虑到各种因素的情况下进行安排。他们寻找在进度表中处于关键路径上的任务,这些任务必须以特定方式完成(因为它们相互依赖)并严格按照分配的时间完成。不在关键路径上的任务的安排不太可能对项目的整体进度造成影响。
为安排一个项目,有必要 -
Break down the project tasks into smaller, manageable form
Find out various tasks and correlate them
Estimate time frame required for each task
Divide time into work-units
Assign adequate number of work-units for each task
Calculate total time required for the project from start to finish
Resource management
用于开发软件产品的所有元素都可以视为该项目的资源。这可能包括人力资源、生产工具和软件库。
资源数量有限,是组织的资产池,资源短缺会影响项目的发展,导致进度滞后。分配额外的资源会增加开发成本。因此,估计和分配足够的资源对项目非常重要。
资源管理包括 -
Defining proper organization project by creating a project team and allocating responsibipties to each team member
Determining resources required at a particular stage and their availabipty
Manage Resources by generating resource request when they are required and de-allocating them when they are no more needed.
Project Risk Management
风险管理涉及所有与项目中可预测和不可预测风险的识别、分析和预留相关的活动。风险可能包括以下内容:
Experienced staff leaving the project and new staff coming in.
Change in organizational management.
Requirement change or misinterpreting requirement.
Under-estimation of required time and resources.
Technological changes, environmental changes, business competition.
Risk Management Process
以下是风险管理流程中涉及的活动:
Identification - Make note of all possible risks, which may occur in the project.
Categorize - Categorize known risks into high, medium and low risk intensity as per their possible impact on the project.
Manage - Analyze the probabipty of occurrence of risks at various phases. Make plan to avoid or face risks. Attempt to minimize their side-effects.
Monitor - Closely monitor the potential risks and their early symptoms. Also monitor the effects of steps taken to mitigate or avoid them.
Project Execution & Monitoring
在这个阶段,根据计划安排执行项目计划中描述的任务。
执行需要监控以检查是否一切都按计划进行。监控是观察以检查风险的可能性,并采取措施解决风险或报告各种任务的状态。
这些措施包括-
Activity Monitoring - All activities scheduled within some task can be monitored on day-to-day basis. When all activities in a task are completed, it is considered as complete.
Status Reports - The reports contain status of activities and tasks completed within a given time frame, generally a week. Status can be marked as finished, pending or work-in-progress etc.
Milestones Checkpst - Every project is spanided into multiple phases where major tasks are performed (milestones) based on the phases of SDLC. This milestone checkpst is prepared once every few weeks and reports the status of milestones.
Project Communication Management
有效的沟通在项目的成功中扮演着至关重要的角色。它在客户和组织之间建立沟通桥梁,在团队成员之间以及项目中其他利益相关者如硬件供应商之间弥合差距。
沟通可以是口头的或书面的。沟通管理过程可能包括以下步骤:
Planning - This step includes the identifications of all the stakeholders in the project and the mode of communication among them. It also considers if any additional communication facipties are required.
Sharing - After determining various aspects of planning, manager focuses on sharing correct information with the correct person on correct time. This keeps every one involved the project up to date with project progress and its status.
Feedback - Project managers use various measures and feedback mechanism and create status and performance reports. This mechanism ensures that input from various stakeholders is coming to the project manager as their feedback.
Closure - At the end of each major event, end of a phase of SDLC or end of the project itself, administrative closure is formally announced to update every stakeholder by sending email, by distributing a hardcopy of document or by other mean of effective communication.
关闭后,团队将进入下一个阶段或项目。
Configuration Management
配置管理是一种跟踪和控制软件变化的过程,涉及产品的要求、设计、功能和开发。
IEEE将其定义为“识别和定义系统中的项、控制这些项在其生命周期内的变更、记录和报告项和变更请求的状态、验证项的完整性和正确性的过程”。
一般情况下,一旦SRS(软件需求规格说明书)最终确定,用户很少需要更改需求。如果确有更改,只有经过高层管理事先批准才予以处理,因为有可能导致成本和时间超支。
Basepne
如果一个SDLC的阶段被基线化,那么它就被认为已经结束了。基线是衡量一个阶段完整性的标准。当所有与该阶段相关的活动都完成和记录良好时,该阶段就被基线化了。如果这不是最终阶段,那么它的产出将被用于下一个即将到来的阶段。
配置管理是组织管理的一种纪律,负责在基线阶段后处理任何变化(流程,需求,技术,战略等)。配置管理对软件中进行的任何更改进行检查。
Change Control
变更控制是配置管理的功能,它确保对软件系统所做的所有更改都是一致的,并根据组织规则和法规进行的。
配置产品的更改经过以下步骤 -
识别 - 变更请求来自内部或外部来源。当正式识别变更请求时,应妥善记录。
Vapdation - Vapdity of the change request is checked and its handpng procedure is confirmed.
分析 - 根据时间表、成本和所需努力量来分析变更请求的影响。分析预期变更对系统的总体影响。
控制 - 如果潜在的变化影响了系统中的太多实体,或者它是不可避免的,在将变化纳入系统之前必须征得高层权威的批准。决定是否值得进行变更。如果不值得,变更请求会被正式拒绝。
执行 - 如果前一阶段决定执行更改请求,该阶段将采取适当的行动来执行更改,并在必要时进行彻底的修订。
关闭请求 - 已验证变更正确实现并与系统的其余部分合并。软件中新加入的变更已经得到适当记录,请求已经正式关闭。
Project Management Tools
即使项目按照设定的方法论开发,风险和不确定性也会随着项目的规模而成倍增加。
有可用的工具,有助于有效的工程管理。以下是其中一些描述:
Gantt Chart
甘特图是由亨利·甘特(1917年)设计的,它代表了项目计划关于时间的周期。它是一个横向的条形图,条形代表活动和预定的项目活动时间。
PERT Chart
PERT(项目评估与审查技术)图表是一种将项目呈现为网络图的工具。它能够以并行和连续的方式图形化地表示项目的主要事件。依次发生的事件展示了后续事件对前面事件的依赖。
活动显示为带编号的节点。它们通过带标签的箭头相连,表示项目中的任务顺序。
Resource Histogram
这是一个图形工具,包含代表项目事件(或阶段)所需的资源数量(通常是熟练员工)随时间的柱状图或图表。资源直方图是员工计划和协调的有效工具。
Critical Path Analysis
这个工具在识别项目中相互依赖的任务方面非常有用。它还有助于找到完成项目成功所需的最短路径或关键路径。与PERT图类似,每个事件都分配了特定的时间框架。该工具显示事件之间的依赖性,假设只有在完成前一个事件后,下一个事件才能进行。
事件按照它们可能的最早开始时间安排。起点和终点节点之间的路径是关键路径,无法进一步缩短,所有事件都需要按照相同的顺序执行。
Advertisements