Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Engineering Concepts

Software Engineering Concepts

Slides presented to a group of computational scientists, operations researchers and analysts undertaking modelling and simulation. The slides are gentle introduction to some relevant Software Engineering concepts.

The presentation is from July 2001. There have been some minor changes from the original presentation. The main being the conversion of the format from Powerpoint to XeLaTeX/Beamer.

Michael Papasimeon

July 14, 2001
Tweet

More Decks by Michael Papasimeon

Other Decks in Programming

Transcript

  1. SOFTWARE ENGINEERING Foundations in System Science and Systems Engineering The

    systematic application of science and management to build and deliver software systems with sufficient quality, that satisfy the requirements and are built on time and budget. Software systems are the most complex systems built by humans. Software Engineering aims to manage this complexity. 2
  2. LIFECYCLE PHASES Business/Domain Modelling Requirements Analysis and Design (Architectural and

    Detailed) Implementation (Coding and Integration) Testing Deployment Configuration Management Project Management 3
  3. LIFECYCLE MODELS Waterfall Spiral Agile Modern software engineering processes are:

    Iterative and incremental Requirements/functionality driven Architecture driven (importance of design) 4
  4. IMPACT OF CHANGE The later the change in the software

    lifecycle the greater the impact on the project. Impact may be measured in effort and cost. For example, there is less impact on the project if a large change is needed during the requirements ellicitation phase as opposed to the implementation or testing phase. 6
  5. SOFTWARE QUALITY FACTORS Correctness Reliability Robustness Usability Efficiency Modularity Reusability

    Traceability Maintainability Extendibility Measuring Software Quality Factors Directly Measurable (e.g. correctness, reliability) Indirectly Measurable (e.g. usability) 7
  6. ASSURING SOFTWARE QUALITY Sofware Engineering Methods Formal Techncial Reviews Software

    Configuration Managment Software Quality Assurance Verification and Validation Standards and Procedures Testing 8
  7. SOFTWARE REUSE Ad-Hoc: Incidental reuse that occurs through movement of

    staff through an organisation. Opportunistic: Organisation taking advantage of reuse opportunities through smart/intelligent design. Integrated: When opportunities are sought out as part of an organisation’s development process. Leveraged: Assumes that a given product is part of product family, the members of which have something in common. Construct domains that take in the product family. Anticipated: Construct domains that anticipate needs 9
  8. COUPLING AND COHESION Inter-Module Coupling The measure of the interdependence

    of one module to another. Modules should have low coupling. Low coupling minimizes the "ripple effect" where changes in one module cause errors in other modules. Intra-Module Cohesion The measure of strength of the association of elements within a module. Modules whose elements are strongly and genuinely related to each other are desired. A module should be highly cohesive. 10
  9. WHY IS QUALITY IMPORTANT? The level of quality required depends

    on the level of impact when risks occur. Mission Critical Systems Safety Critical Security Critical Decision Critical Systems Longer term, safety, security and financial issues Customer/Financial/Enterprise Critical Shorter Term Critical Systems 11
  10. VERIFICATION AND VALIDATION Verification: “Are we building the system right?”

    The process of determining that a model implementation accurately represents the developer's conceptual description of the model and the solution to the model. Validation: “Are we building the right system?” The process of determining the degree to which a model is an accurate representation of the real world from the perspective of the intended uses of the model. Verification and Validation Documentation SVVP Software Verification and Validation Plan SVVR Software Verificatioi and Validation Report 12