Software Engineering based on Wang & King
Software engineering is a discipline that adopts engineering approaches, such as established methologies, processes, measurement, tools, standards, in the development of large-scale software seeking to result in high-productivity, low cost, and measurable development schedule.
Software Engineering by John A McDermid?
Software engineering is the science and art of specifying, designing, implementing and evolving - with economy, timeliness and elegance - programs, documentation and operating procedures whereby computers can be made useful to man.
Ian Somerville definition of Software Engineering?
Software Engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance.
Wang and King?
An engineering discipline.
Large scale software
Characteristics of Software Engineering?
Engineering Dimensions?
Size Cost Quality Lifetime Measurability Repeatability Reusability
What is Size dimension?
Size of problem and its solution
What is Cost dimension?
Cost of the problem
- Minimal cost, high productivity
What is Quality dimension?
Quality of the solution
- Suitability, Maintainability, Extensibility, Reliability, Dependability, Efficiency
What is Lifetime dimension?
Lifetime of the system
- A system that endures and exceeds the lifetime of involvement of original developers
What is Measurability dimension?
Measurability
- Based on the evidence provided by concrete metrics
What is Repeatability dimension?
Capable of achieving the same result with the same constraints and process
What is Reusability dimension?
Capable of reusing and building on existing artefacts to solve similar problems
Software Trade-Off Triangle?
Schedule
Cost
Product
What do Software Engineers do?
Why is Software Engineering difficult?
Cognitive Constraints
Organizational Constraints
Resource Constraints
Cognitive Constraints?
Intangibility Complexity Indeterminacy Diversity Polymorphism Inexpressiveness Inexplicit Embodiment Unquantifiable Quality
Organizational Constraints?
Time Dependency
Conservative Productivity
Labour-Time Interlock
Resource Constraints?
Cost
Human Dependency
Hardware Dependency
What is good software?
8 -ilities
Functional Suitability?
Completeness, correctness, appropriateness.
Usability?
Appropriateness recognizability, learnability, operability, user error protection, user interface aesthetics, accessibility.
Maintainability?
Modularity, reusability, analysability, modifiability, testability
Reliability?
Maturity, availability, fault-tolerance, recoverability