- Published on
COMP2120 - Week 1 - What is Software Engineering
Table of Contents
Software Engineering
-
Use of scientific principles to design and build something
-
Concened with all aspects of software production
-
Costs more to maintain than to develop
What is Software?
- Computer programs and associated documentation
Generic Software
-
Stand-alone + sold to any customer who wishes to buy it
-
Owned by software developer with decisions being made by the developer
Custom Software
-
Software commissioned by specific customer
-
Specification owned by the customer with decisions being made by the customer
Software Process Activities
-
Software specification (Requirements) -> Problem is defined that built software will address
-
Development -> Software designed, programmed and documented
-
Validation -> Tested to ensure specifications are satisfied
-
Evolution -> Software maintenance and modifications
Essential Attributes
-
Acceptability -> Must be acceptable to type of users it is designed for.
- Also must be functional, usable and compatible with other systems
-
Dependability -> Software should not cause physical or economic damange in event of a failure. Malicious users should not be able to access or damange the system
- Includes reliability, security and safety
-
Efficiency -> Includes responsiveness, processing time, memory utilisation
-
Maintainability -> Should be created such that it can evolve to meet changing needs of customers as it is an inevitable requirement
General Issues
- Business and societal change
- Heterogeneity -> Systems distributed across different computers and mobile devices
- Security and trust -> Essential we can trust software
- Scale -> Internet and cloud-based systems mean scales may change as software evolves