TAILIEUCHUNG - Lecture Software engineering II: Chapter 10 - Dr. Muzafar Khan
This lecture discusses the basic concepts related to software design. Design is all about the creativity; design is the representation/model/development of the system or software to achieve goals within constraints. Goals may be the stakeholder requirements, business needs, and technical considerations. Constraints are often related to time, cost, quality, and technology. Software design includes architecture, components, data structures, andinterfaces. | Software Design SEII-Lecture 10 Dr. Muzafar Khan Assistant Professor Department of Computer Science CIIT, Islamabad. 1 Recap Basic concepts Risk, positive/negative risk management, Risk utility / tolerance (risk averse, risk seeking, risk neutral) Planning risk management Risk management plan, contingency and fallback plans Identifying risks Brainstorming, Delphi technique, interviewing, SWOT analysis, checklists, risk registers Performing qualitative and quantitative risk analysis Planning risk responses Risk avoidance, risk acceptance, risk transference, risk mitigation, Risk exploitation, Risk sharing Monitoring and controlling risks 2 What is Design? Creativity Achieving goals within constraints Stakeholder requirements, business needs, and technical considerations Representation or model of the software Software architecture, components, data structures, and interfaces 3 Goal of Design Roman architecture critic Vitruvius said, “well-designed buildings were those which exhibited firmness, commodity, and delight” Same for the good software Firmness: bug-free Commodity: suitable for the intended purpose Delight: pleasurable user experience Model that exhibits firmness, commodity, and delight 4 Design Within the Context of SE Technical kernel of software engineering Independent of software process model Last modeling activity before coding Focus on quality Translation of stakeholder requirements into a software product Without design, you are at risk Lot of rework 5 Design Process An iterative process Different levels of abstraction Criteria to evaluate software design Design must implement all explicit and implicit requirements Design must be readable and understandable Design should provide the complete picture 6 Quality Guidelines [1/2] Design should exhibit Recognizable design patterns Good design characteristics Implementation in an evolutionary fashion Design should be modular Design should contain distinct representations of data, architecture, interfaces,
đang nạp các trang xem trước