CHAPTER 1 SOFTWARE DEVELOPMENT Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm analysis Notation of the Unified Modeling Language (UML) Some issues related to error handling 2 Software engineering Software Engineering is the study of the techniques and theory that support the development of highquality software Solve the right problem Deliver a solution on time and under budget Deliver a high-quality solution Avoid two basic risks: Solve the wrong problem Solve the problem wrong 3 Software Quality 4 Development Models A development life cycle defines a process to be followed during product development problem analysis design implementation evaluation, testing and debugging maintenance 5 Problem Analysis I Analysis : understanding the problem Questions to be answered: What are the objectives of the software system What are the objects to be manipulated, how are they described, how are they related Are there available operations to achieve the desired results 6 Problem Analysis II Various techniques: discussions and negotiations with the client modeling the problem structure and data flow observation of client activities analysis of existing solutions and systems 7 Design Design involves determining: the overall software structure (architecture) the key objects, classes, and their relationships Detailed design Refine the interface of each component Further decomposition Algorithm design 8 Vending Machine Processes EXAMPLE Process customer input Calculate deposited money Perform expected output actions Identify product Refuse service not enough $ is deposited Dispens e product Calculate and dispense change if needed product not available 9 Implementation Turn the design into functional software – actual coding Too many people consider this the primary act of software development May involve the reuse of existing software components 10 Evaluation, Testing, Debugging Does the system solve the problem? Is the solution efficient? It is possible to build a system that has no bugs and yet is completely wrong Testing and debugging: Design test cases Test to see if requirements are met Fix errors 11 Operation and maintenance After a system is initially developed, it must be maintained This includes: fixing errors making enhancements to meet the changing needs of users The better the development effort, the easier the maintenance tasks will be 12 Development Models Waterfall model Spiral model Evolutionary model 13 The Waterfall Model 14 The Waterfall Model II Each stage flows into the next Driven by documentation Advantages: Lays out clear milestones and deliverables Has high visibility – managers and clients can see the status Disadvantages: late evaluation not realistic in many situations 15 The Spiral Model 16 The Spiral Model Developed by Barry Boehm in the mid '80s Embraces an iterative process, where activities are performed over and over again for different aspects of the system Designed to reduce the risks involved Continually refines the requirements Each loop through the spiral is a complete phase of the development 17 The Evolutionary Model 18 The Evolutionary Model Like the spiral model, an evolutionary approach embraces continual refinement Intermediate versions of the system are created for evaluation by both the developers and the client 19 The Waterfall model revised 20
© Copyright 2026 Paperzz