1. Frequently Asked Questions about software engineering
1) What is software?
- Computer programmes and associated documentation
2) What is the attribute of good software?
- Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable
3) What is software engineering?
- Software engineering is an engineering discipline that is concerned with all aspects of software production
4) What are the fundamental software engineering activities?
- Software specification, software development, software validation and software evolution
5) What are the key challenges facing software engineering?
- Coping with increasing a complexity, demands for reduced delivery times and developing trustworthy software
2. Essential attributes of good software
- Maintainability: software should be written in such as way so that it can evolve to meet the changing needs of customers
- Dependability: dependable software should not cause physical or economic damage in the event of system failure.
* Software dependability includes a range of characteristics including reliability, security and safety,
- Efficiency: software should not make wasteful use of system resources such as memory and processor cycles
* Efficiency includes responsiveness, processing time, memory utilisation, etc
- Acceptability: software must be acceptable to the type of users for which it is designed
http://www.answers.com/Q/What_are_the_attributes_of_a_good_software?#slide=1
3. Software Engineering
: an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use
- Importance: more and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly
- Fundamentals
* Systems should be developed using a managed and understood development process
* Dependability and performance are important for all types of system
* Understanding and managing the software specification and requirements are important ( http://melancholy8914.blogspot.co.uk/2017/01/capturing-requirements.html )
* Where appropriate, you should reuse software that has already been developed rather than write new software
http://www.sei.cmu.edu/
4. Software Failure
- Software failures damage business
- Mostly software failures are caused by Confusion and misunderstanding in software development
- In software development life cycle, cost of fixing requirements or errors grows
* Errors in software can be time-consuming, expensive and possibly life-threatening
* Many problems result from faulty specification and design of systems
=> why is it difficult to identify errors?
=> Lack of precision / Too much complexity
=> Need for precision and abstraction at early stages
5. Validation and Verification
- Validation: ensure that specification of the software system satisfy the requirements of the stakeholders
- Verification: ensure that the finished product satisfies the specification
http://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-validation/
댓글 없음:
댓글 쓰기