Download Software Engineering . and more Cheat Sheet Software Engineering in PDF only on Docsity! What is Software Engineering? e Engineering approach to develo software. ‘ ~Building Construction Analogy. e Systematic collection of past experience: techniques, | —methodologies, —guidelines. Software Crisis e Software products: —fail to meet user requirements. —frequently crash. —expensive. —difficult to alter, debug, and enhance. —often delivered late. _ —use resources non-optimally. Object-Oriented Design (80s) e Object-oriented technique: —natural objects (such as employees, pay-roll-register, etc.) occurring in a problem are first identified. e Relationships among objects: —such as composition, reference, and inheritance are determined. Evolution of Other Software Engineering Techniques _ —life cycle models, —specification techniques, —project management techniques, —testing techniques, —debugging techniques, —quality assurance techniques, —software measurement techniques, —CASE tools, etc. Differences between the exploratory style and modern software develo ment ractices e Use of Life Cycle by Models e Software is developed through several well-defined stages: —requirements analysis and specification, —design, —coding, —testing, etc. What is Software Engineering? e Engineering approach to develo software. ‘ ~Building Construction Analogy. e Systematic collection of past experience: techniques, | —methodologies, —guidelines. Software Crisis e Software products: —fail to meet user requirements. —frequently crash. —expensive. —difficult to alter, debug, and enhance. —often delivered late. _ —use resources non-optimally. Object-Oriented Design (80s) e Object-oriented technique: —natural objects (such as employees, pay-roll-register, etc.) occurring in a problem are first identified. e Relationships among objects: —such as composition, reference, and inheritance are determined. Evolution of Other Software Engineering Techniques _ —life cycle models, —specification techniques, —project management techniques, —testing techniques, —debugging techniques, —quality assurance techniques, —software measurement techniques, —CASE tools, etc. Differences between the exploratory style and modern software develo ment ractices e Use of Life Cycle by Models e Software is developed through several well-defined stages: —requirements analysis and specification, —design, —coding, —testing, etc. Differences between the exploratory style and modern software develo ment practices (cont. e During all stages of © development process: Periodic reviews are being carried out e Software testing has become systematic: —standard testing techniques are available. 10 Differences between the exploratory style and modern software develo ment practices CONT. e Projects are being thoroughly planned: —estimation, —~ scheduling, —mionitoring mechanisms. e Use of CASE tools. 11 Life Cycle Model e A software life cycle model (or process model): —a descriptive and diagrammatic model of software life cycle: ~ identifies all the activities required for product development, — establishes a precedence ordering among the different activities, ~ Divides life cycle into phases. 12 Life Cycle Model «oo: e The development team must identify a suitable life cycle model: —and then adhere to it. —Primary advantage of adhering to a life cycle model: «helps development of software in a systematic and disciplined manner. 15 Life Cycle Model «oo: e When a software product is being developed by a team: —there must be a precise understanding among team members as to when to do what, — otherwise it would lead to and project failure. 16 Life Cycle Model «oo: e A life cycle model: —defines entry and exit criteria for every phase. —A phase is considered to be complete: «only when all its exit criteria's are satisfied. 17