Software Engineering: Principles, Practices, SDLC, Agile, and Myths, Lecture notes of Javascript programming

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

2018/2019

Uploaded on 08/08/2025

america-america-2
america-america-2 🇮🇳

4 documents

1 / 88

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
MUHAMMED HANEESH KP
PRINCIPLES OF SOFTWARE ENGINEERING
SE
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58

Partial preview of the text

Download Software Engineering: Principles, Practices, SDLC, Agile, and Myths and more Lecture notes Javascript programming in PDF only on Docsity!

PRINCIPLES OF SOFTWARE ENGINEERING

SE

SOFTWARE ENGINEERING

SE

 Introduction  SDLC  Requirement Analysis(SRS)  Software Project Management(COCOMO)  Software Design(Cohesion, Coupling, UML, DFD, Class Diagram)  Coding Testing  Maintenance  Quality Management

TYPES OF SOFTWARE

SE

System softwareApplication SoftwareEngineering/Scientific SoftwareEmbedded SoftwareProduct-line SoftwareWeb Application SoftwareArtificial Intelligence SoftwareLegacy Software System

TYPES OF SOFTWARE

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

SOFTWARE ENGINEERING

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.

SOFTWARE ENGINEERING LAYERS

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

SOFTWARE ENGINEERING

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.

SOFTWARE ENGINEERING

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

Software Engineering Practice

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.

Software Myths (False Belief)

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

Software Myths (False Belief)

SE

Management Software Myths The manager who is responsible for developing software is often under pressure regarding many attributes of the software such as:

  • The budget of the software.
  • Delivering the software within the time limit.
  • Enhance the quality of the software.
  • Providing customer care services, etc.

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:

Software Myths (False Belief)

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?

Software Myths (False Belief)

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.

Software Myths (False Belief)

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.