Download Lecture Slides on Software Development | CMSC 132 and more Exams Computer Science in PDF only on Docsity! 1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park 2 Overview Software Development Choosing a software development process Algorithm and Data Structures Coding and Debugging Testing and Verification Documentation Support Maintenance 5 Do you understand the problem? In many cases, the things we want software to do are not well understood: provide a web interface for students applying for the PhD program build software that allows users to view and manipulate photographs Build a better search engine You have to understand the real-world constraints/interactions May have to build prototype to understand how users can effectively use it 6 What is the cost of change? Say you’ve already completed much of the coding, and realize you need to change something in the design or even the requirements how expensive is that? If it is hugely expensive, you better get the requirements and design right before you start most of the coding 7 Has the cost of change changed? Some people have said that recent software development techniques have substantially changed the cost of change Safe programming languages (e.g., not C/C++/assembly language) OO design programming Test driven development 10 How many people interact with design? How many people interact with the design? Part of the cost of change If you make a change, how many people need to be aware of or consulted on the design change Design changes that interact with a lot of people are expensive and need to be minimized Try to get these design choices right early and document them 11 Algorithms and Data Structures Goal Select algorithms and data structures to implement each component Problems Functionality Provides desired abilities Efficiency Provides desired performance Correctness Provides desired results 12 Algorithms and Data Structures Example Implement list as array or linked list 15 Documentation and Support Goal Provide information needed by users and technical maintenance Problems User documentation Help users understand how to use software Technical documentation Help coders understand how to modify, maintain software 16 Maintenance Goal Keep software working over time Problems Fix errors Improve features Meet changing specification Add new functionality 17 Project #1 Overview of the project and what students are expected to implement.