
















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of software engineering principles, processes, and practices. It covers various aspects of the software development life cycle (sdlc), including different process models like waterfall, incremental, and evolutionary models. It also discusses agile development methodologies such as extreme programming (xp) and scrum, along with software myths and process assessment techniques. The document emphasizes the importance of quality assurance, configuration management, and continuous process improvement in software development. It is a useful resource for understanding the fundamental concepts and practices in software engineering, offering insights into both traditional and modern approaches to software development. It also explores the different types of software myths that can hinder the development process and provides a detailed look at the various stages and activities involved in creating high-quality software products.
Typology: Lecture notes
1 / 88
This page cannot be seen from the preview
Don't miss anything!

















































































SE
SE
Introduction SDLC Requirement Analysis(SRS) Software Project Management(COCOMO) Software Design(Cohesion, Coupling, UML, DFD, Class Diagram) Coding Testing Maintenance Quality Management
SE
System software Application Software Engineering/Scientific Software Embedded Software Product-line Software Web Application Software Artificial Intelligence Software Legacy Software System
SE
System software Software that provides a platform to other software such as Microsoft Windows, GNU/Linux, macOS. Application Software Programs designed for end users like Notepad, Firefox, Media players. Engineering/Scientific Software Software built with techniques and formulae specific to specific scientific or engineering field, examples are MATLAB, AUTOCAD. Embedded Software Programs that control machines or devices such as Traffic light control mechanism, Motorcycle dashboard display. Product-line Software A group of products sharing common features that are used to satisfy specific needs of a mission like MS Office supporting home use, business use, enterprise use etc. Web Application Software Programs that are run on web servers and are accessed through a web browser, examples are Gmail, Facebook etc. Artificial Intelligence Software Software that is capable of intelligent behavior, like in Robotics, Game Playing etc. Legacy Software System Software systems that were developed decades ago which becomes costly and risky to maintain and evolve. A legacy system is outdated computing software and/or hardware that is still in use. Windows 7, COBOL: Common Business-Oriented Language
SE
Software Software can be described as a collection of instruction that is executed to get desired functionalities. It is different from a program in the sense that software includes programs, documentation and operating procedures. Engineering on the other hand, is all about developing products, using well-defined, scientific principles and methods.
SE
Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product. IT systematic and disciplined engineering approach applied for building and maintaining software. Software engineering is a fully layered technology, to develop software we need to go from one layer to another. All the layers are connected and each layer demands the fulfillment of the previous layer.
TOOLS
METHODS
PROCESSES
QUALITY PROCESS
SE
1. A quality focus: It defines the continuous process improvement principles of software. It provides integrity that means providing security to the software so that data can be accessed by only an authorized person, no outsider can access the data. It also focuses on maintainability and usability. 2. Process: It is the foundation or base layer of software engineering. It is key that binds all the layers together which enables the development of software before the deadline or on time. Process defines a framework that must be established for the effective delivery of software engineering technology. The software process covers all the activities, actions, and tasks required to be carried out for software development. Process activities are listed below:- Communication: It is the first and foremost thing for the development of software. Communication is necessary to know the actual demand of the client. Planning: It basically means drawing a map for reduced the complication of development. Modeling: In this process, a model is created according to the client for better understanding. Construction: It includes the coding and testing of the problem. Deployment:- It includes the delivery of software to the client for evaluation and feedback.
SE
3. Method: During the process of software development the answers to all “how-to- do” questions are given by method. It has the information of all the tasks which includes communication, requirement analysis, design modeling, program construction, testing, and support. Extreme Programming(XP) Adaptive Software Development Scrum Dynamic Systems Development Method Feature Driven Development Lean Software Development Agile Modeling Agile Unified Process 4. Tools: Software engineering tools provide a self-operating system for processes and methods. Tools are integrated which means information created by one tool can be used by another. Eg: GitHub, ProofHub, Adobe Dreamweaver CC, LeanKit, Codenvy, Crimson Editor, Code Climate, B itbucket, Telerik TeamPulse, Axosoft
SE
Principles of best practice Software should provide value to users. Keep the software design simple. The vision of the project should be kept in mind throughout. Keep your work products in an understandable format for others to work with them easily. Design in a way that can incorporate changes in future. Build reusable components. Think before acting or learn before starting.
SE
Software myths are the beliefs that people consider are true but are not, regarding software and its development process. The software myths have been carried over several years and are now identified by software engineering professionals. The managers and software practitioners are habitual to these myths. However, the old habits are difficult to modify.
Different Types of Software Myths
1.Management Myths 2.Customer Myths 3.Practitioner’s Myth
SE
Management Software Myths The manager who is responsible for developing software is often under pressure regarding many attributes of the software such as:
Under such pressure, even the software manager develops belief in a software myth that lessens. These software myths grasped by the software manager lessen his pressure up to a certain level but this is temporary. Let us discuss some myths perceived by the software manager:
SE
Management Myths Myth 1 The software building team has a book that explains all standards and procedures that are required for developing software. The manager has a myth that the book provides everything to the team required for the software development. Reality 1 Though there exists a book that has all the standards and procedures required to develop software. But are the developers aware of its existence? Do they ever refer to such books? Is the book complete? Can it be referred to? Does the book help the developers to stick to the time-to-deliver even maintain the quality of the software?
SE
Customer Myths The customer is one who requests software either from a software engineer, a technical group, or the marketing sales department. The customer always requests the software under a contract. The customer has some myths regarding the development of software. Hence customer develops false expectations which lead to dissatisfaction with the developer. Let us discuss some myths developed by the customer.
SE
Customer Myths Myth 1 Customers believe that giving a general statement would let the software developer start writing the program. The rest of the details can be filled in later. Reality 1 Although it is not possible for a customer to provide a comprehensive and stable statement. And an ambiguous statement will lead to disaster. The unambiguous statement comes with an iterative communication between the customer and the developer.