Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

This is computer science more programming and critical thinking solving, Summaries of Network Programming

Need more time and understanding

Typology: Summaries

2020/2021

Uploaded on 08/18/2023

Neicy_25
Neicy_25 🇵🇭

1 document

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Introduction to
Software Engineering
Prof. Lyle N. Long
lnl@psu.edu
http://www.personal.psu.edu/lnl
What is Software Engineering
Sources of Material
Software Engineering, 7th Edition, by Ian
Sommerville
CSDP Exam Prep Course Notes, Richard
Thayer, 2005
For more info:
AERSP 440 course, Software Engineering, by Lyle
Long
What is software?
Computer programs and associated documentation such
as requirements, design models and user manuals.
Software products may be developed for a particular
customer or may be developed for a general market.
Software products may be
Generic - developed to be sold to a range of different
customers e.g. PC software such as Excel or Word.
Custom - developed for a single customer according to their
specification.
New software can be created by developing new
programs, configuring generic software systems or
reusing existing software.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download This is computer science more programming and critical thinking solving and more Summaries Network Programming in PDF only on Docsity!

http://www.personal.psu.edu/lnllnl@psu.eduProf. Lyle N. LongSoftware EngineeringIntroduction to

What is Software Engineering

 Software Engineering, 7 Sources of Material

Edition, by Ianth^

Long•^ AERSP 440 course, Software Engineering, by Lyle^ ^ For more info:Thayer, 2005^ ^ CSDP Exam Prep Course Notes, RichardSommerville

reusing existing software.programs, configuring generic software systems or^ ^ New software can be created by developing newspecification.• Custom - developed for a single customer according to theircustomers e.g. PC software such as Excel or Word.• Generic - developed to be sold to a range of different^ ^ Software products may becustomer or may be developed for a general market.^ ^ Software products may be developed for a particularas requirements, design models and user manuals.^ ^ Computer programs and associated documentation such What is software?

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

spite of component failuresthe ability of a system to continue in operation in^ ^ Survivability subsumes the notion of resilience -compromiseddistributed systems whose security can be^ ^ This is an increasingly important attribute foraccidental attackservices to users in the face of deliberate or^ ^ The ability of a system to continue to deliver its

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

 Software Engineering

just hacking^ ^ Programming without Software Engineering is

 Standards are not used or documented  Design is changed without changing requirementschanges in software plans  Changes in requirements are not accompanied byis often unknown  Software development progress is difficult to see, progress  Software quality is difficult to specify, design, and build-toor established by management edict  Project cost and schedule estimates are underestimatedignored  Project planning is frequently unrealistic, incomplete, orneeds or customer expectations  Software requirements do not adequately describe user What is causing software crisis?

Software Engineering^ ^ How do we solve software engineering crisis?

know how and just don’t do it….”conduct software projects, but that wethat we don’t know how to plan and “The tragedy of software engineering is not Software Crisis

Richard E. Fairley

engineering has worked!”reliable systems. Software “We can successfully build large Software Crisis

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

  • (^) Component-based software engineering.• (^) Iterative development;• (^) Waterfall;^ ^ Generic process modelspresented from a specific perspective.^ ^ A simplified representation of a software process, What is a software process model?

Life Cycle Models Coding

Hacking (code and fix) Risk Management

Spiral Exploratory Development

Evolutionary Evolving Product

Incremental Project Phases

Waterfall (conventional)

Model Emphasis

Life Cycle Model

Waterfall model

requirements/design Spiral model of

Ethics vs Law

result in malpractice suit, loss of job, …)^ ^ Ethics are suggested, not mandated (violation canpunishable by government)^ ^ Law represents will of majority (violation^ ^ Law is minimum standard imposed by society^ ^ Ethics are personal code of behavior

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