Saturday, July 20, 2013


Software Engineering


Software Engineering is concerned with

  •  Technical processes of software development
  •  Software project management
  •  Development of tools, methods and theories to support software production
  •  Getting results of the required quality within the schedule and budget
  •  Often involves making compromises
  •  Often adopt a systematic and organized approach
  •  Less formal development is particularly appropriate for the development of web-based systems

Software Engineering is important because

  •  Individuals and society rely on advanced software systems
  •  Produce reliable and trustworthy systems economically and quickly
  •  Cheaper in the long run to use software engineering methods and techniques for softwaresystems


Fundamental activities being common to all software processes:


  •  Software specification: customers and engineers define software that is to be produced and the constraints on its operation
  •  Software development: software is designed and programmed
  •  Software validation: software is checked to ensure that it is what the customer requires
  •  Software evolution: software is modified to reflect changing customer and market requirements


Software Engineering is related to computer science and systems engineering:


 Computer science

o Concerned with theories and methods

 Software Engineering

o Practical problems of producing software

 Systems engineering

o Aspects of development and evolution of complex systems

o Specifying the system, defining its overall architecture, integrating the different parts to 

create the finished system


General issues that affect many different types of software:


 Heterogeneity

o Operate as distributed systems across networks

o Running on general-purpose computers and mobile phones

o Integrate new software with older legacy systems written in different programming 

languages
o Challenge: build dependable software that is flexible enough to cope with heterogeneity
 Business and social change
o Change existing software and rapidly develop new software
o Traditional software engineering techniques are time consuming
o Goal: reduce time to adapt to changing needs
 Security and trust
o Software is intertwined with all aspects of our lives
o See remote software systems (web page, web service interface)
o Make sure malicious users cannot attack software and information security is 
maintained
Essential attributes of good software
 Maintainability
 Dependability and security
 Efficiency
 Acceptability

Application types
 Stand-alone applications
 Interactive transaction-based applications
 Embedded control systems
 Batch processing systems
 Entertainment systems
 Systems for modeling and simulation
 Data collection systems

No comments:

Post a Comment