Download presentation
Presentation is loading. Please wait.
Published byCora Moody Modified over 9 years ago
1
CS48720-1/39 Illinois Institute of Technology CS487 Software Engineering David A. Lash
2
CS48720-2/39 Project Elements u The planning & monitoring & control of people, process and event as software evolves – 2-4 developers working together may not need much but... What about 30-40, 300? – Organized customer communication, right development process, estimated effort, quality checkpoints, on-going monitoring of tasks – Output is project plan with set(s) of tasks. – Manage, People, Product, Process and Project
3
CS48720-3/39 Problem u What is the appropriate level of rigor? u What, if any, standards apply? u Software Scope – Context. u How does this item fit into a larger picture – Information objective. u What is the customer going to see. – Function and performance. u How is the software going to process the information.
4
CS48720-4/39 People u All people who work in the development process are not interchangeable. u Many people find it objectionable to be called a resource. u Any time there are more than 1 person working to solve a problem, an organization is recommended
5
CS48720-5/39 Development Team u What is teamwork? – Joint action by a group of people, in which individual interests are subordinated to group unity and efficiency; coordinated effort, as of an athletic team. u Team size about 4 people. Requires minimal training for the leader. u Each individual should have a unique primary function i.e. leader, librarian, developer, tester. u Periodically switch functions to cross train.
6
CS48720-6/39 Development Team Organization u Democratic decentralized – no traditional leader. Works best when the average experience is 15 years +. Consensus decisions u Controlled decentralized – a defined leader with secondary leaders. Multiple teams. u Controlled Centralized – Managed by a team leader. Good for a cross section of people. Lead gets top-level decisions and internal coordination
7
CS48720-7/39 Process u Selecting the right process? – Waterfall – Traditional
8
CS48720-8/39 Process – Incremental – Solves a number of problems – Spiral – Must be adopted at the enterprise level.
9
CS48720-9/39 How do you evaluate process? u Are you using the process correctly? u Are you using the correct process? u What can you do better?
10
CS48720-10/39 Capability Maturity Model u Developed and controlled by the Software Engineering Institute (SEI) u What is the CMM? Arbitrary Not a process Develop for the DOD to evaluate software contractors. Being adopted by a number of regulators. Defines activities that should be going on. Arranged to make easy to progress through the 5 levels.
11
CS48720-11/39 CMM - Review 1. Chaotic - Productivity and Quality are based on individual effort. No control 2. Repeatable - Requirements Management, Project Planning, Quality Assurance, Configuration Management, Subcontractor management 3. Defined - Organization Process Focus, Organization Process Definition, Training Program 4. Managed - Quantitative Process Management, Software Quality Management 5. Optimizing - Defect Prevention, Technology change management, Process change management
12
CS48720-12/39 Project Planning u What are the tasks necessary for this project? u How do these tasks relate to each other? u Planning and scheduling are different: – Planning defines the tasks, personnel and equipment necessary to deliver the product. – To determine personnel requirements you must estimate the size of each task. – Planning is done at the beginning of the project when you know the least about the problem
13
CS48720-13/39 Estimating u How long is the project going to take? u First, how long is are the tasks going to take?
14
CS48720-14/39 Estimating u Done early in the process high degree of error u Can only accurately estimate the next step. u Must re-plan at the beginning of each phase. u Establish size metric. u Estimation requires – Experience building this specific application – Knowledge of the Environment – History of similar projects
15
CS48720-15/39 General Estimation Formula Where E is one person effort A, B and C are empirically derived constants EV is an estimation of some measure of size The values of A & B are calibrated for local environment using regression analysis and real data.
16
CS48720-16/39 Three-point u Three-point or expected value Where S opt - Optimistic Estimate S m - Most-likely Estimate S pess - Pessimistic Estimate EV- Estimation Variable
17
CS48720-17/39 Three-point u For example, assume to build a software module. Have some LOC estimates: – optimistic - 4600 – most likely - 6900 – pessimistic - 8600 – (4600 + 6900*4 + 8600)/6 = 6800 u Can also be useful for time to complete
18
CS48720-18/39 Function Points u Good method for IT projects. Use Feature Points for embedded and systems projects u An estimation technique that uses the types of I/O for a problem to determine the size of the project u Called an early measure of size u Function Points convert directly to KLOC
19
CS48720-19/39 Function Points u Method – Count of Information elements u Input files u Output files u Inquiry transactions u Logical files u External interfaces – Total “complexity” factors
20
CS48720-20/39 Function Point Counting
21
CS48720-21/39 Function Points Calculation Where: - FP unadjusted = previous calculation - F i = sum of complexity adjustment values based on subjective ratings from 0-5 on 14 complexity items: - 0 - no influence - 1 - incidental - 2 - moderate - 3 - average - 4 - significant - 5 - Essential
22
CS48720-22/39 Complexity Factors
23
CS48720-23/39 Complexity Factors
24
CS48720-24/39 COCOMO Estimation u COnstructive COst Model - BB[89] COCOMO II BB[96] u Uses function points, KLOC or object points (A BB funct PT like metrics with different elements) u A hierarchy of estimation models for prototype, requirements established and post-architecture stages – Basic - Compute development effort as a function of size in KLOC – Intermediate - Compute development effort as a function of size and cost drivers (HW, people) – Advanced - Intermediate version plus assessment of cost driver impact on each step (e.g., analysis design, architecture)
25
CS48720-25/39 COCOMO Project Types u Organic – In-house development – Small teams with extensive application experience – Characteristics u Stable development environment u Minimal need for innovative data processing u Low premium on early completion
26
CS48720-26/39 COCOMO Project Types u Semidetached – One of two types of projects 1.An intermediate level of the project 2.A mixture of the organic and embedded – Characteristics u Team members have an intermediate level of experience u Team has a wide mixture of experienced and inexperienced people u Team members have experience related to some aspects of the system under development, but not others
27
CS48720-27/39 COCOMO Project Types u Embedded – Not limited to our current definition of embedded meaning firmware, but also includes large scale turn-key system – A major distinguishing factor is a need to operate within tight constraints – Require a high degree of rigor
28
CS48720-28/39 COCOMO: Basic Where E = Effort in person months D = Chronological months
29
CS48720-29/39 COCOMO: Basic
30
CS48720-30/39 COCOMO: Intermediate
31
CS48720-31/39 COCOMO: Intermediate Where E = Effort in person months D = Chronological months EAF = Effort Adjustment Factor - based on subjective rating from very low to extra high on 15 project attributes
32
CS48720-32/39 Effort Adjustment Cost Factors
33
CS48720-33/39 Effort Adjustment Cost Factors
34
CS48720-34/39 COCOMO example u Suppose used three-point analysis to estimate 33,200 LOC. u Using basic model get – E = 2.4(KLOC)**1.05 – -2.4(33.2)**1.05 – 96 person months u Duration would be – D = 2.5E**.38 – 2.5(95)**.38 – 12.3 months u Number of people = N=E/D N=96/12.3 = 8
35
CS48720-35/39 Project Estimation Problems u No Requirements u No Designs u What is a KLOC? – 1000 lines of source code u Are all definitions of a line of code the same?
36
CS48720-36/39 Project Scheduling and Tracking u When will the project finish? u Where is the project now?
37
CS48720-37/39 Project Scheduling u Project Scheduling – Adding resources and personnel to establish a list of dates that monitor the development process – The last completion is when the project is complete – Adding more personnel will make it later. It also can change a projects profile – It is always better to be early than late
38
CS48720-38/39 Project Scheduling Methods u PERT/CPM Charts – Calculate the path with the least amount of slack u Slack is the amount of time between when a task can begin and must begin u Timeline Charts
39
CS48720-39/39 Project Tracking u Get status in a timely manner – Weekly at a low level – Monthly at a high level u Time sheet status reports – Separate time into project and non-project – Project time bill to specific task not project, category or charge code u To avoid 90% complete for 80% of the project. Use Earned Value to determine % completed
40
CS48720-40/39 Project Tracking u Earned Value tells you where you are based on the completed tasks of your plan u Earned Value = task / project * 100 u Example: – In a 1000 hour project, a 15 hour task is 1.5% of the project. When it completes it adds 1.5% to the completion u Projected Earned Value tells you where your plan should be
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.