Slide 1

Slide 1 text

SOFTWARE ENGINEERING CONCEPTS A Brief Introduction 14 July 2001 Dr Michael Papasimeon 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

LIFECYCLE PHASES Business/Domain Modelling Requirements Analysis and Design (Architectural and Detailed) Implementation (Coding and Integration) Testing Deployment Configuration Management Project Management 3

Slide 4

Slide 4 text

LIFECYCLE MODELS Waterfall Spiral Agile Modern software engineering processes are: Iterative and incremental Requirements/functionality driven Architecture driven (importance of design) 4

Slide 5

Slide 5 text

FAILURE RATE: HARDWARE VS SOFTWARE Figure courtesy of http://softwareengineeringhub.blogspot.com.au/2010/03/software-characteristics.html 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

ASSURING SOFTWARE QUALITY Sofware Engineering Methods Formal Techncial Reviews Software Configuration Managment Software Quality Assurance Verification and Validation Standards and Procedures Testing 8

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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