computer programs and associated documentation software products may be developed for a particular...
TRANSCRIPT
![Page 1: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/1.jpg)
Introduction toSoftware Engineering
![Page 2: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/2.jpg)
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◦ Custom - developed for a single customer
according to their specification
What is software?
![Page 3: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/3.jpg)
Software has number of attributes which decide whether it is a good or bad
. The definition of a good software changes with the person who evaluates
it. The software is required by the customer , used by the end users of an
organization and developed by software engineer . Each one will evaluate
the different attributes differently in order to decide whether the software
is good.
What is Good Software?
![Page 4: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/4.jpg)
The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.
• 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 attributes of good software?
![Page 5: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/5.jpg)
Software has a dual role. It is a product, but also a vehicle for delivering a product.
Software is a logical rather than a physical system element.
Software has characteristics that differ considerably from those of hardware.
- Software is developed or engineered, it is not manufactured in the classical sense.
- Software doesn’t “wear out”.
- Most software is custom-built, rather than being assembled from existing components.
Software - Characteristics
![Page 6: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/6.jpg)
System Software- A collection of programs written to service other programs at system level.
For example, compiler, operating systems.
Real-time Software- Programs that monitor/analyze/control real world events as they occur.
Business Software- Programs that access, analyze and process business information.
Engineering and Scientific Software - Software using “number crunching” algorithms for different science and applications. System simulation, computer-aided design.
Types of Software
![Page 7: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/7.jpg)
Embedded Software-: Embedded software resides in read-only memory and is used to control
products and systems for the consumer and industrial markets. It has very limited and esoteric functions and control capability.
Artificial Intelligence (AI) Software: Programs make use of AI techniques and methods to solve complex
problems. Active areas are expert systems, pattern recognition, games
Types of Software
![Page 8: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/8.jpg)
Internet Software : Programs that support internet accesses and applications. For
example, search engine, browser, e-commerce software, authoring tools.
Software Tools and CASE environment : Tools and programs that help the construction of application software and systems. For example, test tools,
version control tools.
Types of Software
![Page 9: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/9.jpg)
Software can have a hugeimpact in any aspect of society.
Importance of software
![Page 10: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/10.jpg)
Where can you find software?
![Page 11: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/11.jpg)
Some popular ones…
![Page 12: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/12.jpg)
Some popular ones…
![Page 13: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/13.jpg)
Some popular ones…
![Page 14: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/14.jpg)
And even in…
![Page 15: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/15.jpg)
Conclusion
Software is Almost Everywhere.
![Page 16: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/16.jpg)
Heterogeneity ◦ Increasingly, systems are required to operate as
distributed systems across networks that include different types of computer and mobile devices
Business and social change ◦ Business and society are changing incredibly quickly as
emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software
Security and trust ◦ As software is intertwined with all aspects of our lives, it is
essential that we can trust that software
Chapter 1 Introduction 16
General issues that affect most software
![Page 17: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/17.jpg)
•The final Software doesn´t fulfill the needs of the customer.
•Hard to extend and improve: if you want to add a functionality later is mission impossible.
•Bad documentation.
•Bad quality: frequent errors, hard to use, ...
•More time and costs than expected
Common issues
![Page 18: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/18.jpg)
![Page 19: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/19.jpg)
But
That never happens,
right?
![Page 20: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/20.jpg)
Wrong!
![Page 21: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/21.jpg)
Problems in software development
![Page 22: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/22.jpg)
Requirements
Software
Limitations of Non-engineered Software
Here is the problem!!
![Page 23: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/23.jpg)
Cost: $10 Billion, millions of dollars more than planned Time: 3 years late Quality: First launch of Columbia was cancelled
because of a synchronization problem with the Shuttle's 5 onboard computers.
◦ Error was traced back to a change made 2 years earlier when a programmer changed a delay factor in an interrupt handler from 50 to 80 milliseconds.
◦ The likelihood of the error was small enough, that the error caused no harm during thousands of hours of testing.
Substantial errors still exist.◦ Astronauts are supplied with a book of known software
problems "Program Notes and Waivers".
Software Production has a Poor Track Record Example: Space Shuttle Software
![Page 24: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/24.jpg)
Ariane 5 Flight 501
Cause: design errors in the software
![Page 25: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/25.jpg)
It is not enough to do your best: you must Know what to do, and THEN do your best.-- W. Edwards Deming
Conclusion
Programming is NOT enough!
![Page 26: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/26.jpg)
And Since…
A clever person solves a problem.A wise person avoids it.- Albert Einstein
![Page 27: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/27.jpg)
Solution
![Page 28: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/28.jpg)
Software Engineering
The study of approaches as in Application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. (IEEE 93)
![Page 29: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/29.jpg)
• By “Systematic” we mean Following a well-defined sequence of activities,
- in which desired outputs (deliverables) are well-defined
- by using well-defined inputs(i.e. documented syntax, semantics, context and other relevant properties of the input)
- in a well-defined process (e.g. using organizational standards for interprocess communication, data formats, error handling etc.)
- whose outputs are in turn used similarly as inputs in subsequent process(es),
- until the final output is achieved,
- and where the correctness of the output is verifiable. Note: The “inputs” and “outputs” most often refer to requirements, software specifications, the software itself, documentation, test inputs/outputs and similar software artifacts.Back
![Page 30: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/30.jpg)
Software Engineering - Introduction
30
Each process is followed using organizational principles (e.g. who manages whom, who is responsible for what?),
Intermediate results are carefully documented, as well as final results,
Actions are traceable as to their causes, individuals involved, time of occurrence and circumstances.
By “disciplined” we mean:
Back
![Page 31: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/31.jpg)
Software Engineering - Introduction
31
The size and extent of the required effort
(size of output code, data, documentation, manpower, duration, budget for development, expected error rate and user support)
are predictable within justifiable and acceptable bounds
By “quantifiable” we mean:
![Page 32: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/32.jpg)
Software Engineering
Objective
To produce software that is:
• On time: is deliver at the established date.
• Reliable: doesn´t crash.
• Complete: good documentation, fulfill customer needs.
![Page 33: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/33.jpg)
Stages for software development
Requirements Analysis
Software Design
Implementation
Testing
Maintenance
![Page 34: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/34.jpg)
1. Requirements Analysis
Find out what the client want the software to do
![Page 35: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/35.jpg)
2. Design
Planning the software solution
![Page 36: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/36.jpg)
3. Implementation
Code!!!
![Page 37: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/37.jpg)
4. Testing
Executing the application trying to find software bugs
![Page 38: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/38.jpg)
5. Maintenance
Any activity oriented to change an existing software product.
![Page 39: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/39.jpg)
Major Goals:- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient manner.
Why Software Engineering?
![Page 40: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/40.jpg)
What is the difference between software engineering and computer science?
Computer Science Software Engineering
is concerned with
Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a
foundation for practical aspects of software engineering
theory fundamentals
the practicalities of developing delivering useful software
![Page 41: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/41.jpg)
Software engineering is part of System engineering System engineering is concerned with all aspects of computer-based
systems development including ◦ hardware, ◦ software and ◦ process engineering
System engineers are involved in
system specification
architectural design
integration and deployment
What is the difference between software engineering and system engineering?
![Page 42: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/42.jpg)
Software engineering involves wider responsibilities than simply the application of technical skills
Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals
Ethical behaviour is more than simply upholding the law but involves following a set of principles that are morally correct
Chapter 1 Introduction 42
Software engineering ethics
![Page 43: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/43.jpg)
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 not misrepresent their level of
competence. They should not knowingly accept work which is outwith their competence
Chapter 1 Introduction 43
Issues of professional responsibility
![Page 44: Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market](https://reader035.vdocuments.site/reader035/viewer/2022062314/56649e8a5503460f94b90377/html5/thumbnails/44.jpg)
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).
Chapter 1 Introduction 44
Issues of professional responsibility