Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lecture 1
What is software?
Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market
Software products
Generic products
Stand-alone systems which are produced by a development organization and sold on the open market to any customer
Most software expenditure is on generic products but most development effort is on bespoke systems
4 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Fourth Era
Desktop systems Object Oriented Technologies Expert Systems AI, neural networks Parallel computing Network computers
Second Era
Multi-user, Real-time Database Product software
Third Era
Distributed systems Low cost hardware
Software Characteristics:
Software is developed or engineered, not manufactured. Software doesnt wear-out. Most software is custom built, not assembled from components.
Software Engineering
the systematic approach to the development, operation, maintenance, & retirement of SW. the practical application of scientific knowledge to the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them.
Software Engineering
Technological & managerial discipline concerned with systematic production and maintenance of SW products that are developed & modified on time & within cost estimates .
Software Engineering
IEEE Definition (1993) Software Engineering: (1) The application of a systematic, disciplines, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. (2) The study of approaches as in (1).
9 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Software Engineering
Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineers should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available
10 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Problem Solving
COMPUTER SCIENCE CUSTOMER
Theories
Computer Functions
Problem
SOFTWARE ENGINEERING
Tools and Techniques to Solve Problem
12 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
computer science management science economics communication skills engg approach to problem solving
Distribution of Effort
40% 35% 30% 25% 20% 15% 10% 5% 0%
16 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Implementation
Testing
Adaptation
Enhancement
Fix
Primary Goals:
to improve the quality of SW products to increase productivity & job satisfaction of SW engineers
Dependability
The software should not cause physical or economic damage in the event of failure
Efficiency
The software should not make wasteful use of system resources
Usability
Software should have an appropriate user interface and documentation
19 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Efficiency costs
C o st
Costs tend to rise exponentially if very high levels of any one attribute are required
E f f ic i e n c y
Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
21
Ongoing Problems
Hardware advances outpace ability to build software to tap potential Ability to build new programs cannot meet demand for new programs, nor do we build fast enough to meet business and market needs Widespread use of computers has made society increasingly dependent Struggle to build software with high reliability & quality Ability to support and enhance programs is threatened by poor design and few resources 23
Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Heterogeneity
Systems are distributed and include a mix of hardware and software
Delivery
There is increasing pressure for faster delivery of software
24 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Competence
Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outside their competence.
26 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Computer misuse
Software engineers should not use their technical skills to misuse other peoples computers. Computer misuse ranges from relatively trivial (game playing on an employers machine, say) to extremely serious (dissemination of viruses).
27 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
3. PRODUCT
Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
30 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
5. MANAGEMENT
Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION
Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
31 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
8. SELF
Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
Ethical dilemmas
Disagreement in principle with the policies of senior management Your employer acts in an unethical way and releases a safety-critical system without finishing the testing of the system Participation in the development of military weapons systems or nuclear systems
Key points
Software engineering is an engineering discipline which is concerned with all aspects of software production. Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.
34 Intro to Software Engineering - Lecture 1 - (malony@uc-bcf.edu.ph)
Key points
Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues. Professional societies publish codes of conduct which set out the standards of behaviour expected of their members.