Course Instructor: Dr. Huaming ChenEmail: huaming.chen@sydney.edu.auOffice: 409A, J03
Acknowledgment of Tradition
Acknowledges custodianship and law of the country, honoring those who continue to care for it.
Requirement Definition & Problem Statement
Essential for defining requirements and understanding software development problems, arising from defects, user experience issues, and business demands.
Software Development Needs and Sources
New Software Versions:
Greenfield Development (new products/services, e.g., launching iPhone).
Upgrades (new versions to existing software, e.g., iOS updates) and Patches (security upgrades).
Requirements necessitate revisions driven by investment demands, market pressures, and technology changes.
Cost Estimation in Software Development
Estimated based on effort and correlated costs, utilizing man-months.
Formulas:
Total Cost = Estimated Man-Months x Rate (e.g., $5,000 per man-month).
KLOC = Total Lines of Code / 1000 (measure for estimating costs).
Cost Estimation Examples
Application Development (1982):
Development Time: 10,000 instructions / 10 instructions/person/day = 1,000 man-days.
Total cost = $200,000; Percentage = 61.5%.
Cost Estimation Exercise (2002):
Development Time: 10,000 / 40 = 12.5 man-months.
Cost = $100,000; Percentage = 98%.
Decision Analysis in Software Production
Decision Trees: Models for analyzing decisions with probabilistic outcomes.
Evaluation of investment scenarios and alternative strategies using expected values, based on the following concepts:
Expected Value (EV) = (Probability of Success x Value of Success) + (Probability of Failure x Value of Failure).
This requires analyzing market responses to different strategies.
Demand and Stakeholder Engagement
Demand varies by market, with key elements being entry into new markets and innovation.
Stakeholders engage in defining requirements, influencing decisions, and bridging business and technical specifications through iterative processes.
Requirement Definition Process
Involves qualifications, budgeting, scheduling, and adjustments based on feedback, emphasizing the importance of stakeholder engagement, requirements analysis, and cost estimation for informed software engineering decisions.
This overview underscores the significance of systematically addressing requirements, estimations, and stakeholder involvement for successful software development.