Systems Engineering Flashcards
Software Engineering
concerned with
- technical processes of software dev
- project management activities
- development of tools, methods and theories supporting software dev
What is the main benefit of using Software Engineering Principles?
Better quality code
When does software development take place within the software engineering lifecycle?
- software spec
- software dev < < <
- software testing
- software documentation
- software maintenance
What are the 4 advantages of using software engineering principles?
- Maintainability
- Dependability and Security
- Efficiency
- Acceptability
Maintainability:
- software written to be able to adapt to changing needs
- changing needs of the customer and business
environment is inevitable - code design and written to be easily to changed (without refactoring and completely rewriting)
Dependability and Security:
- dependability = reliable, secure and safe software
- software should not cause physical or economic damage in the case of system failure
- malicious users should not be able to access or damage system
Efficiency:
- software should make efficient use of system resources
- responsiveness, processing time, memory, usage
Acceptability:
- software must be acceptable for its users
- understandable, usable, compatible with OSs
- design for adults different to children
What are the 4 main aspects that make up software engineering?
- software specification
- software development
- software validation
- software evolution
Software specification
- customers and developers define software product to be developed
- scope, functional requirements, constraints
software development
- process of designing and creating the software product
- engineers/developers programming
Software validation:
- checking software to ensure it meets requirements
- testing
software evolution
- modifying software to reflect changing requirements for customer and market
- maintenance
What 3 factors make up software engineering diversity?
- heterogeneity
- social and business change
- security and trust
- considered when producing software to ensure software meets standards
Heterogeneity:
- systems have to operate as distributed systems across networks, including different types of computing devices and operating systems, different languages, etc.
- need to develop techniques for building dependable software that can cope with this heterogeneity