MODULE 1 - SOFTWARE ENGINEERING.pdf

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

Use Quizgecko on...
Browser
Browser