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