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

Software Engineering: An Overview, Study notes of Software Engineering

An introduction to software engineering, explaining its importance and setting out answers to key questions about the field. Topics covered include faqs about software engineering, professional and ethical responsibility, and the costs and methods of software engineering. Boehm's 'software engineering economics' is referenced throughout.

Typology: Study notes

Pre 2010

Uploaded on 09/17/2009

koofers-user-ksh
koofers-user-ksh 🇺🇸

3.5

(2)

10 documents

1 / 43

Toggle sidebar

Related documents


Partial preview of the text

Download Software Engineering: An Overview and more Study notes Software Engineering in PDF only on Docsity! Chapter 1 Introduction ©lan Sommerville 2000 Software Engineering, Chapter 1 Slide | Introduction e Getting started with software engineering ©lan Sommerville 2000 Software Engineering, Chapter 1 Slide 2  The economies of ALL developed nations are dependent on software.  More and more systems are software controlled.  Software engineering is concerned with theories, methods and tools for professional software development.  Software engineering expenditure represents a significant fraction of GNP in all developed countries. Software engineering  Software costs often dominate system costs*. The costs of software on a PC are often greater than the hardware cost.  Software costs more to maintain than it does to develop*. For systems with a long life, maintenance costs may be several times development costs.  Software engineering is concerned with cost- effective software development. * See Boehm, Software Engineering Economics, Prentice Hall, 1981. Software costs ineering Hardware S4SOD |&}0} JO JUdDIag Barry Boehm, Software Eng Economics, Prentice Hall, 1981. 1985 1970 Year Hardware/software cost trends Slide 7 ineering, Chapter 1 Software Engi ommerville 2000 an S Ole € 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 may be • Generic - developed to be sold to a range of different customers. • Bespoke (custom) - developed for a single customer according to their specification. * Boeing aeronautical engineer: How much does the software weigh? What is software engineering?  Software engineering is an engineering discipline* which is concerned with all aspects of software production.  Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. How old is software engineering? * NSPE has established guidelines for engineering disciplines. What is the difference between software engineering and computer science?  Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.  Computer science theories are (currently?) insufficient to act as a complete underpinning for software engineering. Why?  A simplified representation of a software process, presented from a specific perspective / viewpoint  Examples of process perspectives are: • Workflow perspective - sequence of activities, • Data-flow perspective - information flow, DFD’s • Role/action perspective - who does what. Gantt Charts  Generic process models: • Waterfall (Winston Royce) • Evolutionary development - prototyping • Formal transformation • Integration from reusable components What is a software process model?  Roughly 60% of costs are “development” costs, 40% are “testing” costs. (For custom software,) evolution costs often exceed development costs.  Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability.  Distribution of costs depends on the development model that is used What are the costs of software engineering? Activity cost distribution Wat er fall model It erat ive development Componen t-based software eng ineering Developmen t and evolution cos ts for long-l ifet ime syst ems System evolution 10 200 30 4000 System development Specificat ion Design Developmen t In teg ration and testing 25 50 75 1000 Specificat ion Developmen t In teg ration and testing 25 5 0 75 1000 Specificat ion Iterat ive development System tes ting 25 5 0 75 1000 What is CASE (Computer-Aided Software Engineering)?  Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support.  Upper*-CASE • Tools to support the early process activities of requirements and design.  Lower*-CASE • Tools to support later activities such as programming, debugging and testing. * relative to height in waterfall model representation What are the attributes of “good” software?  The software should deliver the required functionality and performance to the user…  Maintainability • Software must evolve to meet changing needs.  Dependability • Software must be trustworthy.  Efficiency • Software should not make wasteful use of system resources.  Usability • Software must be usable by the users for which it was designed. What are the key challenges facing software engineering?  Coping with legacy systems, coping with increasing diversity, coping with demands for reduced delivery times, ensuring that software is trustworthy. • (Legacy systems – old, valuable systems must be maintained and updated.) – deleted after 6th Edition • Heterogeneity – systems are distributed and include a mix of hardware and software. • Delivery – there is increasing pressure for faster delivery of software. • Trust – the challenge is to develop techniques that demonstrate trustworthiness. 1980’s: improve quality 1990’s: reduce cycle time What is Software?  At the most fundamental level, software is the state of magnetization, voltage level, or current flow in electronic devices  Software is therefore intangible; it has no mass, no volume, taste, odor, or other physical properties  Requirements specifications, design documents, source code, and other work products of software engineering are representations of the inherently invisible software product Foundations of Software Engineering  Logic  Computer science  Economics  Management science Engineering Engineering involves the application of scientific principles to the production of material artifacts within a framework of economic, social, and ethical considerations Professional and ethical responsibility  SE involves wider responsibilities than simply the application of technical skills.  Software engineers must behave honestly and ethically if they are to be respected as professionals.  This goes beyond simply upholding the law.  Consider four important issues of professional responsibility... Issues of professional responsibility  Confidentiality • Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.  Competence • Engineers should never misrepresent their level of competence. They should never knowingly accept work which is outwith their competence. (cont'd) Issues of professional responsibility  Intellectual property rights • Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.  Computer misuse • Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses). Code of ethics - principles Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: Code of ethics - principles 1. PUBLIC Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. (cont'd) Code of ethics - principles 4. JUDGMENT Software engineers shall maintain integrity and independence in their professional judgment. 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. (cont'd) Key points e Software engineering is an engineering discipline which is concerned with all aspects of software production. e Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability. (+1) ©lan Sommerville 2000 Software Engineering, Chapter 1 Slide 40 Key points (cont’d)   Methods are organized ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced, and design guidelines. Key points (and finally...) e CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run. e Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues. e Professional societies publish codes of conduct which set out the standards of behaviour expected of their members. ©lan Sommerville 2000 Software Engineering, Chapter 1 Slide 42
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved