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