MODULE 1 - SOFTWARE ENGINEERING.pdf
Document Details
Uploaded by KnowledgeableSuprematism8868
Full Transcript
SOFTWARE ENGINEERING MODULE 01 MR. DEXTER DUMAYAG | FIRST SEMESTER | A.Y 24-25...
SOFTWARE ENGINEERING MODULE 01 MR. DEXTER DUMAYAG | FIRST SEMESTER | A.Y 24-25 and subsystems UNIT 1: INTRODUCTION TO SOFTWARE that work together. ENGINEERING Needs quality assurance. Software Engineering - a practice of Made with developing and maintaining software using scalabitlity and engineering concepts. maintenance. Software engineering is the practice of SOFTWARE EVOLUTION using theory, knowledge, tools, and techniques to build software systems The first stage was “initial and chaotic that are efficient, reliable, and easy to stage”, people work with no clear plan maintain (Pressman and Maxim 2015) (Books 1995). Structured programming was created Software engineering is “the in 1970s. Focuses in using well-defined systematic, disciplined, and program structures and control flow measurable way to build, run and constructs (Dijkstra 1972). maintain software” (Sommerwille, Became an official field of study in 2016). 1980s. Agile methods came in 1980s to fix the LESSON 1: SOFTWARE OVERVIEW the traditional software engineering methods. Focuses on flexibility, Software engineering’s nature of the collaboration and quick iterations things that are made differs from (Beck et al., 2001) other types of engineer. It makes things like code, SOFTWARE PARADIGM documentation, and user interfaces. Software systems are complicated Software paradigm is a collection of and changeable. concepts methodologies, and Due to fast changing in technology, principles used in the creation of software engineers always learn how software. to use new technologies and Offers framework for designing, techniques to stay effective. developing, and maintaining software systems. PROGRAM VS SOFTWARE PRODUCT The paradigm chosen determined by - are both form of software. the specific demands and requirements of software systems. Program Software Product Set of instruction Set of programs, 1. Object-oriented Programming that tells a data, Paradigm (OOP) computer to do a documentation, and One of the most widely used certain task other parts that are paradigm. (Pressman and meant to work The foundation is the idea of Maxim 2015). together objects, which are examples of (Sommerville 2016). classes that includes information A piece of software about both data and actions. that does only one Modular and reusable approach. thing. Easier to maintain and adapt Pretty simple and Very complicated software systems overtime. easy to understand. with many parts Notes by Ruby SOFTWARE ENGINEERING MODULE 01 MR. DEXTER DUMAYAG | FIRST SEMESTER | A.Y 24-25 2. Structured Programming Paradigm development process more efficient use of control structures and and effective. procedures to breakdown program into smaller and CHARACTERISTICS OF A GOOD manageable components SOFTWARE (Dijkstra 1972). Logical and transparent approach A. Correctness: means that it does what it to software development, making supposed to do reliably and correctly code easier to understand and (Pressman & Maxim 2015). debug. B. Maintainability: easy to keep up-to-date, 3. Functional Programming so it adopts to users’ changing needs and Use pure functions and immutable wants (Sommerville 2016). data structures to develop systems (Bird 2014). C. Usability: easy to us. Clear and easy to Declarative approach that allows understand interface(Nielsen 1993). for easier reasoning and testing of software systems. D. Efficiency: must be efficient, which means it uses system resources like NEED FOR SOFTWARE ENGINEERING memory and processing power in the best this field aims to make easier and way possible. faster to make high quality software products. E. Portability can be utilized without focuses on using different method, modification on multiple platforms and techniques, and tools to handle operating systems (Sommerville 2016). complexity of software systems. F. Security: it must protect from viruses, Most important needs of Software malware, and hacking (Menezes 1996). Engineering (Sommerville 2016): G. Reliability: means it works the same way 1. Requirements engineering: getting every time, with few to none errors or requirements form stakeholders and downtime. analyzing them to make sure that the system meets the needs and H. Scalability: means it can handle more expectation. data or more users without losing a lot of 2. Design: Uses systematic and rigorous speed (Sommerville 2016). design techniques to make software architectures that are scalable, easy to maintain, and can change to meet new needs. 3. Testing: it is important to test software systems to find and fix bugs before served. 4. Maintenance: it is important to maintain software systems throughout their entire life cycle so that they can continue to meed new needs. 5. Process Improvements: using techniques like metrics and quality assurance to make software Notes by Ruby SOFTWARE ENGINEERING MODULE 01 MR. DEXTER DUMAYAG | FIRST SEMESTER | A.Y 24-25 LESSON 2: SOFTWARE CLASSIFICATION OF SOFTWARE CLASSIFICATION AND ENGINEERING BASED ON THE INTENDED TARGET AUDIENCE CLASSIFICATION OF SOFTWARE BASE ON FUNCTIONALITY 1. Personal Software Made for one person use. Usually 1. SYSTEM SOFTWARE for their entertainment, work, or makes it possible for application organization. software to run and for hardware Examples: media players, video resources to be managed. games, manage personal It has operating systems, drivers for finances, for getting work done devices, and utilities like disk like word processor or personal management tools. organizers. 2. APPLICATION SOFTWARE 2. Business Software Designed to help users do specific Used in business and tasks or functions organizations. Examples: Word processors, Helps people to work faster and spreadsheet software, and video better. editing software. Includes: manages finances, track inventory, or handle costumer 3. PROGRAMMING SOFTWARE relations. Used by programmers to make other types of software. 3. Educational software Has tools, compilers, debuggers, and Made for schools, colleges, and Integrated development training centers where people are environments (IDE). learning. Can be used for learning, teaching, 4. WEB-BASED SOFTWARE and researching. Designed to run on web servers and Can be games or quizzes or accessed through a web browser. complicated simulations or online Examples: online shopping sites, learning management systems. social networking sites, email clients. (LMS)’ 5. ARTIFICIAL INTELLIGENCE SOFTWARE OBJECTIVES OF SOFTWARE Uses machine learning algorithms to ENGINEERING look at data and make decisions To create high-quality software based on data. To achiever corporate objectives Examples: speech recognition, To manage software development image recognition, self-driving cars. projects To lower software development cost 6. GAMES AND ENTERTAINMENT SOFTWARE To assure software maintainability Is made for entertainment or amuse To increase software security the end user. Examples: video games, virtual reality environment, and tools for making multimedia. Notes by Ruby SOFTWARE ENGINEERING MODULE 01 MR. DEXTER DUMAYAG | FIRST SEMESTER | A.Y 24-25 CHARACTERISTICS OF A GOOD SOFTWARE ENGINEERS A. NEEDS TECHNICAL SKILLS Must know programming languages, frameworks, and software development tools. B. MUST COMMUNICATE Must understand team, stakeholder, and end-user demands. Must communicate effectively and well. C. WORK WELL TOGETHER Software development involves team work and diverse skills sets. D. PROBLEM-SOLVERS Must recognize and solve difficult issues. Involves technical skills, critical thinking, and thorough understanding. E. NEED ADAPTABILITY Must adapt to new technology and development methods as the industry evolves. Notes by Ruby