Software Engineering
what is a software?
computer program and associated documentation
software products
generic
bespoke (custom)
SW costs
often dominate computer system costs
SW costs more to maintain as it does to develop
SWE is concerned w cost-effective SW development
what is SWE?
an engineering discipline that is concerned with all aspects of SW production
SWE and CS
CS: concerned with theory and fundamentals. SWE: concerned with the practicalities of developing and delivering a useful sw
CS theories are still insufficient to act as complete underpinning for SWE
SWE and systen engineering
SysE: concerned w all aspects of computer-based systems development (HW,SW, process eng.). SWE: is part of this process concerned w developing the SW infrastructure, control, applications and DB in the system
SW process
set of activites whose goal is the development or evolution of SW
generic activities
specification
development
validation
evolution
costs of SWE
60% of costs: development costs. 40%: testing costs
costs vary depening on
type of sys being developed
requirement of sys attributes
distribution of costs depends on the development model that is used
CASE
upper-CASE: to support the earl process activites of requirement and design
lower-CASE: to support later activites (programming, debugging and testing)
attributes of good SW
maintainability
dependability
efficiency
acceptability
operation properties
correctness
reliability
efficiency
integrity
usability
revision properties
maintainability
flexibility
testability
transition properties
portability
reusability
interoperability
key challenges
heterogeneity, delivery and trust
high logical complexity
limited possibility to detect defects
customer-supplier business model (lack of info., trustworthiness, cooperation
need for interface w other SW systems
need to continue maintaining for years