









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Need more time and understanding
Typology: Summaries
1 / 15
This page cannot be seen from the preview
Don't miss anything!
countries.significant fraction of GNP in all developed^ ^ Expenditure on software represents adevelopment.methods and tools for professional software^ ^ Software engineering is concerned with theories,^ ^ More and more systems are software controlleddependent on software.^ ^ The economies of ALL developed nations are Software engineering
Number of Jobs
Lockheed Martin (^) (Feb. 2005) 167 in Systems Engineering708 Job Openings for recent graduates: (^) (23 %)
59 in Mechanical Engineering136 in Software Engineering (19 %) (^) (8 %)
56 in Information Technology (^) (8 %)
45 in Electrical Engineering (^) (6 %)
21 in Aerospace Engineering (^) (3 %)
effective software development.^ ^ Software engineering is concerned with cost-development costs.maintenance costs may be several timesdevelop. For systems with a long life,^ ^ Software costs more to maintain than it does togreater than the hardware cost.costs. The costs of software on a PC are often^ ^ Software costs often dominate computer system Software costs
with other systems.This means it must be understandable, usable and compatible•^ Software must accepted by the users for which it was designed.^ ^ Acceptability•^ Software should not make wasteful use of system resources;^ ^ Efficiency•^ Software must be trustworthy;^ ^ Dependability•^ Software must evolve to meet changing needs;^ ^ Maintainabilitydependable and acceptable.performance to the user and should be maintainable,^ ^ The software should deliver the required functionality and^ What are the attributes of good software?
problemsintroduced into a system because of maintenance^ ^ Very important for critical systems as faults are oftenfeaturesdiscovered or changing the system to include new^ ^ Ease of repairing the system after a failure has been Maintainability
Survivability
information^ ^ Untrustworthy systems may cause loss of valuable^ ^ It may be possible to compensate for poor performancedependable^ ^ It is very difficult to tune systems to make them more^ ^ System failure costs may be very high^ ^ Untrustworthy systems may be rejected by their users^ Dependability vs Performance
dependability have been achievedconvince the system client that the required levels of•^ The increased testing and system validation that is required todependabilityhardware that are required to achieve the higher levels of•^ The use of more expensive development techniques and^ ^ There are two reasons for thisincreasing levels of dependability are required^ ^ Dependability costs tend to increase exponentially as Dependability costs
Low^ Cost Costs of increasing dependability (^) Medium DependabilityhighHigh (^) VeryUltra-high
be adequatein particular, modest levels of dependability may^ ^ Depends on system type - for business systemstrusted may lose future businessfactors. A reputation for products that can’t be^ ^ However, this depends on social and politicalcostsaccept untrustworthy systems and pay for failureachievement, it may be more cost effective to^ ^ Because of very high costs of dependability Dependability economics
(^) Software quality (^) Software engineering tools and methods (^) Software engineering processes (^) Software engineering management (^) Software configuration management (^) Software maintenance (^) Software testing (^) Software construction (^) Software design (^) Software requirements (^) Professionalism, economics, ethics^ Elements of Software Engineering
fit in?programmingWhere does^ Question:
All these are covered on the IEEE CSDP Exam
(^) Programming Engineering Programming vs Software
2000 Ian Sommerville
upon System Engineeringcalled Software System Engineering, it builds^ ^ Software Engineering could be more accurately What is Software Engineering?
a car by just grabbing some tools and metal and building it. Developing software without using software engineering is like buildingconstraints and the resources available.the problem to be solved, the developmentappropriate tools and techniques depending onand organised approach to their work and use (^) Software engineers should adopt a systematicproduction.that is concerned with all aspects of software (^) Software engineering is an engineering discipline What is software engineering?
engineering).engineering (unlike e.g. physics and electricalact as a complete underpinning for software^ ^ Computer science theories are still insufficient topractices than science^ ^ Software engineering is closer to good businessdelivering useful software.with the practicalities of developing andfundamentals; software engineering is concerned^ ^ Computer science is concerned with theory and engineering and computer science?^ What is the difference between software
and deployment.specification, architectural design, integration^ ^ System engineers are involved in systemdatabases in the system.infrastructure, control, applications andconcerned with developing the software^ ^ Software engineering is part of this processsoftware and process engineering.of systems development including hardware,^ ^ System engineering is concerned with all aspects engineering and system engineering?^ What is the difference between software
Effort, Software Size, & Complexity Size and Complexity
Effort EngineeringSoftwareWith EngineeringSoftwareWithout Effort, Software Size, & Complexity Size and Complexity
Effort (e.g. C++)OOP (e.g. Fortran)Procedural
programmingThis same figure applies to OOP vs procedural
(^) IEEE-Std 12207.2-1998 (^) IEEE-Std 12207.1-1997 (^) IEEE-Std 12207.0-1996 (^) IEEE-Std 830-1998 (^) IEEE-Std 829-1998 (^) IEEE-Std 1012-1998 (^) IEEE-Std 1074-1997^ IEEE Software Engineering Standards
V&V = Veridemands.•^ Evolution - changing the software in response to changingwants or meets intended use•^ Validation - checking that the software is what the customerrequirements•^ Verification – checking that the software meets the•^ Development - production of the software systemconstraints•^ Specification - what the system should do and its development^ ^ Generic activities in all software processes are:evolution of software.^ ^ A set of activities whose goal is the development or^ What is a software process? fication and Validation
Life Cycle Models Coding
Hacking (code and fix) Risk Management
Spiral Exploratory Development
Evolutionary Evolving Product
Incremental Project Phases
Waterfall (conventional)
Waterfall model
requirements/design Spiral model of
Ethics vs Law
which is outside their competence level.competence. They should not knowingly accept work•^ Engineers should not misrepresent their level of^ ^ Competencesigned.or not a formal confidentiality agreement has beenof their employers or clients irrespective of whether•^ Engineers should normally respect the confidentiality^ ^ Confidentiality responsibility Issues of professional
say) to extremely serious (dissemination of viruses).from relatively trivial (game playing on an employer’s machine,misuse other people’s computers. Computer misuse ranges•^ Software engineers should not use their technical skills to^ ^ Computer misuseemployers and clients is protected.should be careful to ensure that the intellectual property ofintellectual property such as patents, copyright, etc. They•^ Engineers should be aware of local laws governing the use of^ ^ Intellectual property rights responsibility Issues of professional
profession.makers, as well as trainees and students of theeducators, managers, supervisors and policysoftware engineers, including practitioners,behaviour of and decisions made by professional^ ^ The Code contains eight Principles related to thecode of practice when they join.^ ^ Members of these organisations sign up to thecooperated to produce a code of ethical practice.^ ^ The professional societies in the US have^ IEEE Computer Society Code of Ethics
Eight Principles:engineers shall adhere to the followingand welfare of the public, softwarewith their commitment to the health, safetyand respected profession. In accordanceand maintenance of software a beneficialspecification, design, development, testingthemselves to making the analysis, Software engineers shall commit Code of ethics - preamble
modifications meet the highest professional standards possible.Software engineers shall ensure that their products and related3. PRODUCTinterest.interests of their client and employer consistent with the publicSoftware engineers shall act in a manner that is in the best2. CLIENT AND EMPLOYERinterest.Software engineers shall act consistently with the public^ 1. PUBLIC^ Code of ethics - principles
the profession consistent with the public interest.Software engineers shall advance the integrity and reputation of6. PROFESSIONsoftware development and maintenance.and promote an ethical approach to the management ofSoftware engineering managers and leaders shall subscribe to5. MANAGEMENTin their professional judgment.Software engineers shall maintain integrity and independence^ 4. JUDGMENT^ Code of ethics - principles
of the profession.and shall promote an ethical approach to the practicelearning regarding the practice of their professionSoftware engineers shall participate in lifelong8. SELFtheir colleagues.Software engineers shall be fair to and supportive of^ 7. COLLEAGUES^ Code of ethics - principles