Information Technology Essentials Lecture 06 PDF
Document Details
Uploaded by Deleted User
The National School of Artificial Intelligence
2024
Dr. Karim Lounis
Tags
Summary
This document is a lecture on information technology essentials, covering software systems. It explains different types of software, the software development lifecycle, and related concepts. The lecture notes were prepared by Dr. Karim Lounis in Fall 2024 and are presented by The National School of Artificial Intelligence.
Full Transcript
Information Technology Essentials — Lecture 06 Dr. Karim Lounis Fall 2024 Dr. Karim Lounis Information Technology Essentials Fall 2024 1 / 35 Software Systems Software Systems Dr. Karim Lounis...
Information Technology Essentials — Lecture 06 Dr. Karim Lounis Fall 2024 Dr. Karim Lounis Information Technology Essentials Fall 2024 1 / 35 Software Systems Software Systems Dr. Karim Lounis Information Technology Essentials Fall 2024 2 / 35 Software Systems Software and Operating Systems Since you did a Lab on Operating Systems, how do you define an OS? Dr. Karim Lounis Information Technology Essentials Fall 2024 3 / 35 Software Systems Software Software and Operating Systems You have certainly mentioned the concept of Software. So, what is a software? Dr. Karim Lounis Information Technology Essentials Fall 2024 4 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as a single logical object to be run on a computer to perform specific tasks. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 5 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as Program (A.k.a., Computer program). It is a a single logical object to be run finite sequence on a computer of instructions toinperform written specific tasks. a program- ming language to solve a problem. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: Ada Lovelace (1815-1852) - An application isWhen a software, but aissoftware a program is (it executing notisnecessarily running) onanaapplication. - Application software run onwetop computer, callofitsystem software. a process. - A software that is designed to cause harm to computers is called a malware. A process is identified by a PID (Process ID). Dr. Karim Lounis Information Technology Essentials Fall 2024 6 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as On Windows PCs, you can use the command taskmgt to a single logical displayobject to beprocesses the running run on a(Windows computertask to perform manager):specific tasks. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. You - A software canisterminate that designed atoprocess by selecting cause harm it and hitting to computers thea malware. is called “End Process” button (blocked processes, free space,...). Dr. Karim Lounis Information Technology Essentials Fall 2024 7 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as On GNU/Linux, you can use the command ps or top to a single logical displayobject to beprocesses: the running run on a computer to perform specific tasks. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application Yousoftware run on atop can terminate of system process software.their PID and by identifying running the command kill -9 PID on the terminal. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 8 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as Program (A.k.a., Computer program). It is a finite se- a single logical object quence to of be run on a written instructions computer in atoprogramming perform specific tasks. language to solve a problem. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: Ada Lovelace (1815-1852) - An application isSome a software, but acan processes software is notinto be divided necessarily multiple an application. independent execution - Application software flows, run on top called threads of system (lightweight process). software. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 9 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as On GNU/Linux, you can type ps -aux | grep "Google Chrome" to display a singlerelated threads logicaltoobject to beChrome the Google run onbrowser: a computer to perform specific tasks. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: -Threads An application is a software, but a software is not necessarily an application. from Google Chrome & from Adobe Acrobat Reader programs. - Application software run on top of system software. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 10 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as Library. Is a collection of reusable pre-written well-tested code a single logical object to be runfunctions, (e.g., routines, on a computer classes ,tomodules, performpackages, specific tasks. etc), that a programmer can use to develop or run a software. There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. - A software that is designed to cause harm to computers is called a malware. There are two types: static libraries and dynamic libraries. Dr. Karim Lounis Information Technology Essentials Fall 2024 11 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as There are two types: static libraries and dynamic libraries. a single logical object to be run on a computer to perform specific tasks. Static library. A.k.a., archive libraries: There are two different A filetypes of software with extension *.a and *.lib. System Software. Designed to provideobject Contains re-usable compiled the code. essential functions and The entire code is incorporated services required for the operation of a computer. into the user’s code. Linking during compilation. Application Software. Designed Increase program to perform size but specificissues. no compatibility tasks and func- tions for the user of a computer. Dynamic library. A.k.a., shared libraries: Note: A file with extension *.so and *.dll. - An application is a Contains software, re-usable but a software is not compiled necessarily object code. an application. - Application softwareThe runcode is not on top of incorporated into the user’s code. system software. The library is loaded at runtime (on demand). - A software that is designed to cause Linking during harm to(dynamic run-time computers is called a malware. linking). Dr. Karim Lounis Information Technology Essentials Fall 2024 12 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as There is actually another type of libraries: a single logical object to be run on a computer to perform specific tasks. Standard libraries. These are collection of precompiled func- tions andtypes There are two different procedures that are part of a programming language’s of software standard distribution. System Software. Designed to provide the essential functions and They are services required for provided as partofofa the the operation compiler toolchain and are computer. linked automatically during the compilation process. E.g.,: Application Software. Designed to perform specific tasks and func- The tions for the user of Ca standard library (libc) computer. Note: The C++ standard library (libstdc++). - An application is a software, The Java standard but library a software (includes is not lang,an necessarily util, io, etc) application. - Application software The run on top ofstandard Python system library (includes os, sys, etc) software. etc - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 13 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as Data. It refers to raw, unprocessed facts, figures, sym- a single logical object bols, ortovalues, be rune.g., on anumbers, computertext, to perform images, specific audio, ortasks. video, generally pre-collected, recorded, or generated thru There are two different typesmeasurements, observations, of software or interactions. System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 14 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as Documentation It refers to a set of documents and files a single logical object to to that aim beexplain run onwhat a computer to perform the software is, how specific it can betasks. installed, used, or should be used (terms and conditions). There are two different types of software System Software. Designed to provide the essential functions and services required for the operation of a computer. Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. Also, there are other files that may come with the software, - A software that is designed to cause harm to computers is called a malware. such as configuration files. Dr. Karim Lounis Information Technology Essentials Fall 2024 15 / 35 Software Systems Software Software Definition Software. It is a collection of programs, libraries, data, documentation as a single logical object to be run on a computer to perform specific tasks. There are two different types of software Application Software. Designed to perform specific tasks and func- tions for the user of a computer. System Software. Designed to provide the essential functions and services required for the operation of a computer. Note: - An application is a software, but a software is not necessarily an application. - Application software run on top of system software. - A software that is designed to cause harm to computers is called a malware. Dr. Karim Lounis Information Technology Essentials Fall 2024 16 / 35 Software Systems Software Software Application Software. Designed to perform specific tasks and func- tions for the user of a computer. Some examples (so there are more): Web browser. E.g., Google Chrome, MS IE, Apple Safari, etc. Graphic processing tools. E.g., Adobe Photoshop, paint, , etc. Word processing tools. E.g., MS word, Libreoffice, Google Docs, etc. Spreadsheet tools. E.g., MS Excel, Google Sheet, etc Media players. E.g., VLC MP, WMP, iTunes, etc Email clients. E.g., MS outlook, gmail, Thunderbird, etc. Gaming applications. E.g., GTA, NFS, FIFA, etc. System Software. Designed to provide the essential functions and services required for the operation of a computer. Some examples: Operating systems. E.g., MS Windows, GNU/Linux OS, MacOS, etc. Firmware. E.g., OpenWRT, DD-WRT, TinyOS, etc. Device drivers. E.g., Ralink 802.11n, Compilers. E.g., gcc, g++, JRE, etc (sometimes application software) Utility Software. E.g., disk cleaners, backup software, assembler, etc Middleware. E.g., Message Brockers (Kafka, RabbitMQ), gRPC, etc. Dr. Karim Lounis Information Technology Essentials Fall 2024 17 / 35 Software Systems Software Software Development LifeCycle Dr. Karim Lounis Information Technology Essentials Fall 2024 18 / 35 Software Systems Software Software Development What comes to your mind when it comes of software development? Dr. Karim Lounis Information Technology Essentials Fall 2024 19 / 35 Software Systems Software Software Development The development of software invovles: 1 Team work (cross-functional members). 2 Good planning and project management. 3 Adopt new programming languages, platforms, and frameworks. 4 Follow standard project management methodologies (e.g., scrum, xp,...). 5 Decision making and customer satisfaction. 6 Commitement, accountability, and sustainabiity. 7 Ability of writing clean, well-documented, and efficient code. 8 Preserving users privacy, confidentiality, security, and safety. Dr. Karim Lounis Information Technology Essentials Fall 2024 20 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages are as follows: 1 Requirement Analysis. Identify and understand the requirements and functionalities of the software. 2 System Design. Create a high-level system architecture that outlines the components of the software and their interaction. It includes de- signing the user interface (UI) and user experience (UX). 3 Implementation. A.a.k., coding. Here, the source code of the soft- ware is written using a selected programming language. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 21 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 1 — Requirement Analysis: In this step, the as follows: 1 Requirement requirements Analysis. (functional Identify andand non-functional) understand for the and the requirements software functionalities of theare analysed. The purpose of requirement software. 2 System Design. Createensure analysis is to that the a high-level software system works properly architecture that outlines at the end and it is what the client the components of the software and their interaction. asked for.It includes de- signing theThe userapproximate interface (UI) andtouser time experience complete (UX). de- the software 3 Implementation. A.a.k., coding. Here, the source velopment is also estimated in this task. The codeoutput of the soft- ware is written using of this taskaisselected programming the software language. requirements specification. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 22 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 2 — Design: Once the analysis for require- as follows: 1 Requirement ment is completed, Analysis. the and Identify design process isthe understand started. This and requirements taskofbuilds functionalities the basic architecture of the project fol- the software. lowing which 2 System Design. Create a further development high-level is made. that system architecture It in-outlines volves a software architect, software designer, UX the components of the software and their interaction. It includes and de- UI designer, database and security expert, signing the user interface (UI) and user experience (UX). etc. 3 Implementation. A.a.k., One of the coding. output of this Here, phase,the source is the codedesign software of the soft- ware is written using a selected programming language. documents. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 23 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 3 — Implementation: A.k.a., Development as follows: 1 Requirement or programming phase.and Analysis. Identify After the design understand theprocess, the and requirements taskofofthe functionalities coding starts, which is also called as develop- software. 2 System Design. Create aThe ment process. requirements high-level system and functionalities architecture that outlines of the software are created in this stage. the components of the software and their interaction. It includes de- signing the user interface (UI) and user experience (UX). 3 Implementation. A.a.k., coding. Here, the source code of the soft- ware is written using a selected programming language. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 24 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 4 — Testing: Once the coding is done, testing as follows: 1 Requirement is performed Analysis. to ensureand Identify that the software understand is working and the requirements correctly. functionalities This task assesses the software for errors of the software. and documents bugs if anything 2 System Design. Create a high-level system is present there architecture thatinoutlines the coding. It is performed by a team of testers which the components of the software and their interaction. It includes de- signing theuses user known testing interface (UI) patterns. and user experience (UX). 3 Implementation. A.a.k., coding. Here, the source code of the soft- ware is written using a selected programming language. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 25 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 5 — Deployment and Integration: A.k.a, as follows: 1 Requirement operation step.Identify Analysis. It is and the understand crucial task thefor running and requirements the of functionalities developed software assessed by the stakeholders. the software. This stage ensures 2 System Design. Create a high-levelthat the system developed software isthat architecture run-outlines ning according to the customer’s requirements. the components of the software and their interaction. It includes de- signing the user interface (UI) and user experience (UX). 3 Implementation. A.a.k., coding. Here, the source code of the soft- ware is written using a selected programming language. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 26 / 35 Software Systems Software Software Development Lifecycle — SDLC The development of a software goes through various stages — these states are knowns Software Development Lifecycle. These stages areStep 6 — Maintenance and Support: After the as follows: 1 Requirement integration Analysis. is done, theand Identify maintenance understandprocess occurs. and the requirements It isofa the functionalities verysoftware. necessary step for every software devel- opment. In this 2 System Design. Create a high-levelstep, all the necessary system upgrades architecture andoutlines that modifications are performed timely to add all the components of the software and their interaction. It includes the lat- de- est features in the software. signing the user interface (UI) and user experience (UX). 3 Implementation. A.a.k., coding. Here, the source code of the soft- ware is written using a selected programming language. 4 Testing. The developed software code is then tested (bugs hunting). 5 Integration and Depeloyment. A.k.a., operation. The subsystems are put together and the software is deployed for usage. 6 Maintenance and Support. Monitor the bahavior of the software, provide updates, fix flaws, and address user feedback. Dr. Karim Lounis Information Technology Essentials Fall 2024 27 / 35 Software Systems Software Software Development Lifecycle — SDLC Developing software is not about writing, compiling, and executing code, then getting paid a big amount of money. It involves: Preserving names and reputation. Creating teams and cooperating with people you do not like, know, or even approach, or lazy + careless people (different level). Communicating and messaging over online platforms, e.g., Slack, MS Teams, Discord, etc (risk of misunderstanding & unprofessionalism). Managing projects using tools such as Asana, Basecamp, Jira, etc. Collaborative coding, using platforms such as github, bitbucker, etc. Developing soft-skills and respecting deadlines (commitments). Dealing with difficult situations and unexpected incidents. Dr. Karim Lounis Information Technology Essentials Fall 2024 28 / 35 Software Systems Software Software (Exercise) How would you classify the virtual machine creator “Virtual Box”? How would you classify a linker and how would you classify a malware? Which among the following requires a lot of expertise and efforts to develop: hardware, software, firmware, middleware, or malware? How do we call the active version of a program (i.e., while the program is running on a computer)? When a program is executing, different sets of code can be run simul- taniously. How we call those sets? What does it mean “kill -9 4533” in a GNU/Linux’s terminal? Which part of the SDLC is considered crucial and may result in software development project failure? Dr. Karim Lounis Information Technology Essentials Fall 2024 29 / 35 Software Systems Software Software, Free, Open-source, or blackbox When companies or a group of people develop a software, the latter may be published as: Proprietary Software. This type of software is developed by a com- pany and its source code is not disclosed (closed-source software). It is a blackbox — it provides the required services but does not show how. This type of software is usually not free. Maintenance is ensured. E.g., MS Windows, Apple’s MacOS, Safari, MS Skype, GTA5, etc. Open-source Software. This type of software (OSS) released with a license that grants the public the right to view, use, modify, and distribute the source code of the software. It encourages collaboration and community involvement, allowing anyone to contribute to its de- velopment and improvement. They are free, but not always FREE. E.g., GNU/Linux OS, Mozilla firefox, libreOffice suite, GIMP, WordPress, VLC Media player, the Apache HTTP server, etc. Dr. Karim Lounis Information Technology Essentials Fall 2024 30 / 35 Software Systems Software Software, Free, Open-source, or blackbox When companies or a group of people develop a software, the latter may be published as: Proprietary Software Software. This type of software is developed by a com- Licenses: pany It is aand its sourceor paper-based code is not digital disclosed proof (closed-source that provides (or groupIt is the usersoftware). a blackbox of — rights users) with it provides to usethethe required softwareservices becausebutthey doespurchased not show or how. Thisittype got of software for free from theisauthor usuallyornot free. Maintenance software developmentiscompany. ensured. E.g., MS Windows, Apple’s MacOS, Safari, MS Skype, GTA5, etc. Open-source Software. This type of software (OSS) released with a license that grants the public the right to view, use, modify, and distribute the source code of the software. It encourages collaboration and community involvement, allowing anyone to contribute to its de- velopment and improvement. They are free, but not always FREE. E.g., GNU/Linux OS, Mozilla firefox, libreOffice suite, the Apache HTTP server, etc. Dr. Karim Lounis Information Technology Essentials Fall 2024 31 / 35 Software Systems Software Software, Free, Open-source, or blackbox When companies or a group of people develop a software, the latter may be published as: Proprietary Software Software. This type of software is developed by a com- Licenses: pany and itssoftware Proprietary source code is not disclosed are published under(closed-source restricted licenses thatIt is software). a blackbox outline — and terms it provides the required conditions for use. services but does They often nothow restrict showthe how. This typecan software of be software is usually used (e.g., pay),not free. Maintenance modified, is ensured. and distributed. Open-source software Apple’s E.g., MS Windows, however,MacOS, are generally Safari,published MS Skype,under open- GTA5, etc. source licenses, such as the GNU General Public License (GPL), Open-source Software. This type of software (OSS) released with Apache License, BSD License, Mozilla public license, Creative Com- a license that grants the public the right to view, use, modify, and mons license, and MIT License. They ensure that the software re- distribute the source code of the software. It encourages collaboration mains open and accessible to the community and that users have and community involvement, allowing anyone to contribute to its de- the freedom to collaborate, improve, and share the software. velopment and improvement. They are free, but not always FREE. E.g., GNU/Linux OS, Mozilla firefox, libreOffice suite, the Apache HTTP server, etc. Dr. Karim Lounis Information Technology Essentials Fall 2024 32 / 35 Software Systems Software Software, Free, Open-source, or blackbox When companies or a group of people develop a software, the latter may be published as: Proprietary Software. This type of software is developed by a com- pany and its source code is not disclosed (closed-source software). It is a blackbox — it provides the required services but does not show how. This type of software is usually not free. Maintenance is ensured. E.g., MS Windows, Apple’s MacOS, Safari, MS Skype, GTA5, etc. Open-source Software. This type of software (OSS) released with a license that grants the public the right to view, use, modify, and distribute the source code of the software. It encourages collaboration and community involvement, allowing anyone to contribute to its de- velopment and improvement. They are free, but not always FREE. E.g., GNU/Linux OS, Mozilla firefox, libreOffice suite, the Apache HTTP server, etc. Dr. Karim Lounis Information Technology Essentials Fall 2024 33 / 35 Software Systems Software Ethics of Software Use It is imporant to know the ethics related to using software: Respecting Software Licensing Agreements legal ramifications (lawsuits, fines,...), reputation damage (destroy partnerships, future opportunities, loss of trust), financial consequences, limitation of software access (updates, patches, etc) Avoiding software piracy (cracked versions) negative impact on the software industry, risk of malware, legal penalties,... Respecting Intellectual Property Rights Violating copyrights, patents, and tradmarks results in lawsuits Regular updates and patches installation issues related to security, bugs, performance, compatibility, etc Use software for good harm computers, people, company, community, country, etc Dr. Karim Lounis Information Technology Essentials Fall 2024 34 / 35 End of Presentation End. Dr. Karim Lounis Information Technology Essentials Fall 2024 35 / 35