SWE 3313 Exam 1 Part 2
it estimates or predicts the effort required for the project, total project cost and scheduled time for the project based on 3 project modes
- Organic: handled by a small team with good domain knowledge and few rigid requirements
- Semidetached: intermediate where the team having mixed experience to deals with rigid/nonrigid requirements
- Embedded: high level of complexity with a large team size by considering all sets of parameters
COCOMO Estimation Models
estimate the amount of impact each factor will have on the project; 15 drivers in 4 main groups
- Product attributes: required software reliability, database size, product complexity
- Computer attributes: execution time constraint, main memory constraint, virtual machine complexity, computer turnaround time
- Personnel attributes: analyst/programmer capability, virtual machine complexity, programming language experience
Project attributes: modern practice, software tools, development schedule, effort from estimated values
COCOMO Cost Drivers
it depends on logical view flow of the application i.e.,the number of functionalities delivered to the users; five components ranked either simple, average, or complex
- Number of external inputs (EI) and outputs (EO)
-Number of external inquiries (EQ); prompts/interrupts
- Number of internal files (ILF); databases/directors
- Number of external interfaces (EIF)/shared databases/routines
Function Point Estimation
based on an estimated number of components or classes that would be in the final software product and associating some weight to the classes; categorize types of user interfaces and assign weights
Simple OO Effort Estimation
depiction of the project in terms of discrete subactivities that must be conducted to complete the project
- Examine and determine the required external deliverables of the software project
- Identify the steps and tasks required to produce each of the external deliverables
- Sequence the tasks
- Provide an estimate of the effort required for each task
- Provide an estimate of the productivity of the personnel
- Calculate the time required to accomplish each of the tasks
- For each external deliverable, lay out the timeline of all the tasks needed to produce thatdeliverable and label the resources that will be assigned to the tasks
Work Breakdown Structure (WBS)
a project can be broken down into sequential phases; Each of these phases canfurther be divided into smaller chunks of work
Phase-based Work Breakdown Structure
the flowchart structure is based on the deliverables; that can in turn be split into smaller units
Deliverable-based Work Breakdown Structure
project is divided based on team functions and responsibilities
Responsibility-based Work Breakdown Structure
The measurement of actual project status versus expected project status as of the measurement date
- Realistic picture of project status
- Predict any budget gaps and schedule issues
- Schedule variance and cost variance
Earned Value Analysis
estimated effort for each of the work tasks
Budgeted cost of work (BCW)
sum of estimated effort of all the tasks that were planned to be completed (by a specific date)
Budgeted cost of work scheduled (BCWS)
estimate of the total project effort or sum of all the BCWs
Budget at completion (BAC)
The sum of the estimated efforts of all the tasks that have been completed (by a specific date)
Budgeted cost of work performed (BCWP
The sum of the actual efforts of all the tasks that have been completed (by a specific date)
Actual cost of work performed (ACWP)
indicates how much of the estimated work is completed on a specific date
Earned value (EV)
A proven technique used for goal-oriented measures; 3 steps
- Goals are defined and described clearly
- Conversion of goals into appropriate questions
- Questions are transformed into metrics
Goal/Question/Metric (GQM)
defined as a scale used for labeling variables into distinct classifications and doesn't involve a quantitative value or order.
Nominal Scale
categorize and rank your data in an order, but you cannot say anything about the intervals between the rankings
Ordinal Scale
categorize, rank, and infer equal intervals between neighboring data points, but there is no true zero point
Interval Scale
categorize, rank, and infer equal intervals between neighboring data points, and there is a true zero point
Ratio Scale
Chaos Report (1995 and 2009)
16% projects completed on-time and within-budget, 32% in 2009
User involvement, executive management support, clear requirements, and proper planning
Reasons for Project Success
errors in: code, design, documentation, requirements, and bad-fix; requirement errors snowball
Software Product Failures
commitment and leadership, thorough planning business and technical side, skilled and experience work-force, management focus and project monitoring, and willingness to make changes and adjustments
Non-technical Concerns
Three key strategies to ensure delivery high quality software on time within budget
- Focused attention on software development environment
- Disciplined development process
- Use of metrics to gauge cost, schedule, and functional performance
GAO Report
multi-person construction of multi-version software
David Parnas
an engineering discipline whose focus is the cost-effective development of high-quality software system"
Sommerville
application of computing tools to solving problems
Pfleeger
creating high-quality software in a systematic, controlled, and efficient manner. the broad field that touches upon all aspects of developing and supporting a software system
Software engineering
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to themanagement of software development and maintenance.6. 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues
.8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote anethical approach to the practice of the profession
Eight principles for ethics in software engineering
- Make quality number 1
- High-quality software is possible
- Give products to customers early
- Determine the problem before writing the requirements
- Evaluate design alternatives
- Use an appropriate process model
- Use different language for different phases
- Minimize intellectual distances
- Put techniques before tools
- Get it right before you make it faster
- Inspect code
- Good management is more important that good technology
- People are the key to success
- Follow with care
- Take responsiblity
Davis's Early Principles
- Architecture first approach
- Establish iterative process, address risk early
Royce's Modern Principles
Abstraction, methods and notation, prototyping, modularity and architecture, reuse, life cycle and process, metrics, tools and integrated environment
Wasserman