ppt introduction to software engineering
TRANSCRIPT
![Page 1: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/1.jpg)
Introduction to Software Engineering
![Page 2: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/2.jpg)
Software• Software is a general term for the various kinds of programs used to operate computers and related devices.
•systems software : Includes the operating system and all the utilities that enable the computer to function.•applications software : Includes programs that do real work for users. For example, word processors, spreadsheets, and database management systems fall under the category of applications software.
![Page 3: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/3.jpg)
Software products may be…
– Generic - developed to be sold to a range of different customers• E.g. PC software such as Excel or
Word– Bespoke (custom) - developed for a
single customer according to their specification.
![Page 4: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/4.jpg)
Engineering
• The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.
![Page 5: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/5.jpg)
Software Engineering
• Is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build.
• The systematic application of scientific and technological knowledge, through the medium of sound engineering principles, to the production of computer programs, and to the requirements definition, functional specification, design description, program implementation, and test methods that lead up to this code.
![Page 6: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/6.jpg)
Difference between Software Engineering and Computer Science
Computer Science is defined as..• The study of the theoretical foundations of
information and computation, and of practical techniques for their implementation and application in computer systems.
• Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.
![Page 7: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/7.jpg)
Difference between Software Engineering and System Engineering
Systems engineering ..• to identify the roles of hardware, software,
people, database and other system elements involved with that system which is going to be developed.
• is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed.
![Page 8: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/8.jpg)
Software Process
• A set of activities whose goal is the development or evolution of software.
![Page 9: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/9.jpg)
Generic activities in all software processes are:
Specification - what the system should do and its development constraints
Development - production of the software system
Validation - checking that the software is what the customer wants
Evolution - changing the software in response to changing demands.
![Page 10: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/10.jpg)
Software development activities
• Planning• Implementation, testing and documenting• Deployment and maintenance
![Page 11: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/11.jpg)
Implementation, testing and documenting
• Implementation is the part of the process where software engineers actually program the code for the project.
• Software testing is part of the process ensures that defects are recognized as early as possible.
• Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development.
![Page 12: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/12.jpg)
Deployment and maintenance
• Deployment starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment.
• Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software.
![Page 13: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/13.jpg)
Software Development Models
• A simplified representation of a software process, presented from a specific perspective.
• Examples of process perspectives are Workflow perspective - sequence of activities Data-flow perspective - information flow Role/action perspective - which does what.
![Page 14: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/14.jpg)
Cost of Software Engineering
• 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.
![Page 15: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/15.jpg)
Activity Cost Distribution
![Page 16: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/16.jpg)
Product Development Cost
![Page 17: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/17.jpg)
Software Engineering Methods
• Refers to the framework that is used to structure, plan, and control the process of developing an information system.
• Consist of:A software development philosophy, with the
approach or approaches of the software development process
Multiple tools, models and methods, to assist in the software development process.
![Page 18: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/18.jpg)
Topics Regarding Software Development Engineering
• View Model framework which provides the viewpoints on the
system and its environment, to be used in the software development process. It is a graphical representation of the underlying semantics of a view.
• Business process and data modeling Graphical representation of the current state of
information provides a very effective means for presenting information to both users and system developers.
![Page 19: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/19.jpg)
• Computer-aided Software Engineering the scientific application of a set of tools and
methods to a software which results in high-quality, defect-free, and maintainable software products.
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.
![Page 20: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/20.jpg)
Attributes of a Good Software
The software should deliver the requiredfunctionality and performance to the user andshould 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
![Page 21: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/21.jpg)
What are the key challenges facing software engineering?
• Heterogeneity Developing techniques for building software that can
cope with heterogeneous platforms and execution environments
• Delivery Developing techniques that lead to faster delivery of
software• Trust
Developing techniques that demonstrate that software can be trusted by its users
![Page 22: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/22.jpg)
Professional and ethical responsibility
• 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 behavior is more than simply upholding the law.
![Page 23: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/23.jpg)
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 not misrepresent their level of
competence. They should not knowingly accept work which is outwitting their competence.
![Page 24: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/24.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).
![Page 25: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/25.jpg)
Code of ethics - preamble• PreambleThe short version of the code summarizes aspirations at a high level of
the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
• 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:
![Page 26: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/26.jpg)
Code of ethics – principles
• PUBLIC– Software engineers shall act consistently with the public interest.
• 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.
• PRODUCT– Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.• JUDGMENT
– Software engineers shall maintain integrity and independence in their professional judgment.
![Page 27: PPT Introduction to Software Engineering](https://reader035.vdocuments.us/reader035/viewer/2022062404/55274a02550346c3358b4761/html5/thumbnails/27.jpg)
• MANAGEMENT– Software engineering managers and leaders shall subscribe to
and promote an ethical approach to the management of software development and maintenance.
• PROFESSION– Software engineers shall advance the integrity and reputation
of the profession consistent with the public interest.• COLLEAGUES
– Software engineers shall be fair to and supportive of their colleagues.
• 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.