Introduction To Software Engineering Tut. No. 1 Fall 2024 PDF
Document Details
Uploaded by AstoundedNovaculite6319
May University in Cairo
2024
Dr. Khalil Mohamed, Eng. Lobna Ali
Tags
Summary
This document is a set of lecture notes from a course called Introduction to Software Engineering. It covers topics including what software is, attributes of good software, software engineering activities, challenges, and more. The document was written by Dr. Khalil Mohamed and Eng. Lobna Ali for students enrolled in the Computer Engineering program in Fall semester of 2024.
Full Transcript
FALL 2024 TUT. NO.1 Program: Computer Engineering Date: 7/10/2024 Instructors: Dr. Khalil Mohamed, Eng. Lobna Ali Course: introduction to software engineering 1. What is software? Computer programs and associated documentation....
FALL 2024 TUT. NO.1 Program: Computer Engineering Date: 7/10/2024 Instructors: Dr. Khalil Mohamed, Eng. Lobna Ali Course: introduction to software engineering 1. What is software? Computer programs and associated documentation. It is a program or set of programs containing instructions that provide the desired functionality. Examples: o Web browsers o Adobe Photo-shop o Android 2. What are the attributes of good software? Deliver required functionalities Usable Performance Maintainable 3. What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. 4. What are the fundamental software engineering activities? Specification: customers and engineers define the software requirements with conditions and constraints on operation. Development: design and programming. Validation: testing the system for bugs and to check it meets its requirements and Quality control (QC). Evolution: Modification to meet market requirements and New customer requests (CR) 5. What are the key challenges facing software engineering? Increasing diversity. Reduced delivery times. Trustworthy. 6. What is general issues that affect software? Heterogeneity : System is required to operate as distributed systems across networks that include different types of computers and mobile devices. Business and social change : Business and society are changing incredibly quickly as 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 involved with all aspects of our lives, it is important that we can trust that software. Scale: Software has to be developed across a very wide range of scales like: o Embedded systems o Wearable devices o Web-based o Smart phones o Cloud-based 7. What is Software engineering fundamentals? Adopt development process Dependability and performance Solid software specs and requirements Reuse existing software as possible Incremental delivery where possible 8. What is Software engineering ethics? Confidentiality Competence Computer misuse Intellectual property right 9. Based on your understanding, what are the reasons for software failure? Increasing of system complexity. Poor communication Lack of QC, QA Tight architecture Haphazard development Failure to use software engineering methods. 10. What is the major difference between generic & custom software product types? a. Generic products: Stand-alone systems that are marketed and sold to any customer who wishes to buy them. Example: PC software such as graphics programs. b. Customized products: Software that is dedicated to a specific customer to meet their own needs. Example: embedded control systems. 11. Why is maintainability an essential attribute for good software products? Software should be written in such a way so that it can evolve to meet the changing needs of customers. 12. No one method fits all, discuss the concept in the context of software engineering. The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer and the background of the development team. 13. I Learn: A digital learning environment: A. A digital learning environment is a framework in which a set of general-purpose and specially designed tools for learning may be embedded plus a set of applications that are gathered to the needs of the learners using the system. B. The tools included in each version of the environment are chosen by teachers and learners to suit their specific needs. C. Service-oriented systems: The system is a service-oriented system with all system components considered to be a replaceable service. This allows the system to be updated incrementally as new services become available. It also makes it possible to rapidly configure the system to create versions of the environment for different groups such as very young children who cannot read, senior students, etc. D. I Learn services: E. I Learn service integration: Integrated services are : services which offer an API (application programming interface) and which can be accessed by other services through that API. Direct service-to-service communication is therefore possible. Ex.. Mobile Integration: Responsive design: Ensuring the e-learning system is accessible and usable on various devices. Offline access: Allowing learners to download course content for offline viewing. Push notifications: Sending timely reminders and updates to learners' mobile devices. Independent services are: services which are simply accessed through a browser interface and which operate independently of other services. Information can only be shared with other services through explicit user actions such as copy and paste; re-authentication may be required for each independent service. Ex. Communication Tools: Email: Sending and receiving messages within the e- learning system. Forums and discussion boards: Facilitating online discussions and interactions. Messaging: Enabling direct communication between students and instructors.