
Introduction to Software Engineering and Process Models
Explore software engineering fundamentals, process models, and advanced tools in this detailed course. Learn about the nature of software, principles of software engineering, various process models, agile development, and case studies. Gain insights into how software acts as both a product and a means of delivery, along with its role in transforming information.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Unit I Introduction to Software Engineering, Software Process Models (07 Hours )
1. Software Engineering Fundamentals: Nature of Software, Software Engineering Principles, The Software Process, Software Myths. 2. Process Models : 2.1. A Generic Process Model 2.2. Prescriptive Process Models: The Waterfall, Incremental Process(RAD), Evolutionary Process, Unified Process, Concurrent. 3. Advanced Process Models & Tools: 3.1. Agile software development: Agile methods, Plan-driven and agile development, Extreme programming Practices, Testing in XP, Pair programming. 3.2. Introduction to agile tools: JIRA, Kanban, 3.3. Case Studies: An information system (mental health-care system), wilderness weather system
1. Software Engineering Fundamentals: 1.1. Nature of Software, 1.2. Software Engineering Principles, 1.3. The Software Process, 1.4. Software Myths.
2. Process Models : 2.1. A Generic Process Model 2.2. Prescriptive Process Models: 2.2.1.The Waterfall Model, 2.2.2. Incremental Process(RAD) Model, 2.2.3. Evolutionary Process Model, 2.2.4. Unified Process Model, 2.2.5. Concurrent Model.
3. Advanced Process Models & Tools: 3.1. Agile software development: 3.1.1. Agile methods, 3.1.2. Plan-driven and agile development, 3.1.3. Extreme programming Practices, 3.1.4. Testing in XP, 3.1.5. Pair programming. 3.2. Introduction to agile tools: JIRA, Kanban, 3.3. Case Studies: An information system (mental health-care system), wilderness weather system
1. Software Engineering Fundamentals: 1.1. Nature of Software, 1.2. Software Engineering Principles, 1.3. The Software Process, 1.4. Software Myths.
1.1. Nature of Software Software plays on a dual role - It is a product & At the same time, the vehicle for delivering the product.
Software is an information transformer - Producing, managing, acquiring, modifying, displaying or transmitting information. - ex. - Microsoft Office, Paint, PDF Creator, Media Players etc. As a vehicle to used to deliver the product - Operating system - (windows XP, Linux etc.) - - software tools and environments (ex. Visual Studio 2008, Net Beans, Eclipse)
Defining - software Software is Instructions (computer programs) - That when executed, provide desired features, function and performance. Data structures - that enable, programs to adequately manipulate information & Descriptive information - in hard copy & virtual forms that describes the operation & use of the programs.
Nature of software 1. System Software collection of programs, written - to service other programs. Ex Compilers, Editors, Assemblers, Operating System. They establishes communication with the hardware. 2. Application Software Standalone programs, developed for - specific business needs. This software may be supported by database systems. Ex. Microsoft office, Media Player 3. These software are - based on - complex numeric applications. Used as tools for special purpose. Ex MATLAB, WEKA, SCILAB. Engineering/Scientific Software
4. Embedded Software This Software can reside - within a product or system. Controls features and functions, for the end user and for the system itself. Ex robots, drones. 5. Web Applications Contains web pages, that can be retrieved by a browser The web pages - can be developed - using programming languages like JAVA, PERL, CGI, HTML, DHTML. 6. Artificial Intelligence Software Based on - knowledge based expert systems. Used in Robotics, Expert Systems, Image And Voice Recognition, Artificial Neural Networks, Theorem Proving And Game Playing.
Software Myths Dec 12,13, May 14 8marks
Software Myths Management Myths Customer Myths Practitioner s Myths
Management Myths 1. We already have a book, that s full of standards & procedures - for building software. Won t that provide my people with everything they need to know? OR The members of an organization can acquire all- the information, they require from a manual, which contains standards, procedures, and principles;
Reality Standards are often incomplete, inadaptable, and outdated. Developers are often unaware of all the established standards. Developers rarely follow all the known standards
2. If we get behind schedule, we can add more programmers & reduce the time gap Reality Adding more manpower to the project, which is already behind schedule, further delays the project. New workers take longer to learn about the project as compared to those already working on the project.
3. If I decide to outsource the software project to a third party, I can just relax & let that firm build it. Reality Outsourcing software to a third party does not help the organization, which is incompetent in managing, controlling and maintaining the software project internally.
Customer Myths 1. Brief requirement stated in the initial process is enough to start development; detailed requirements can be added at the later stages. Reality - Starting development with incomplete and ambiguous requirements often lead to software failure. Instead, a complete and formal description of requirements is essential before starting development. Adding requirements at a later stage often requires repeating the entire development process.
2. Software is flexible; hence software requirement changes can be added during any phase of the development process. Reality - Incorporating change requests - earlier in the development process - costs lesser than those that occurs at later stages. This is because incorporating changes later - may require redesigning and extra resources.
Practitioners Myths 1. Once we write the program & get it to work, our job is done Reality 50% to 70% of all the efforts are expanded after the software is delivered to the user. 2. The only deliverable work product - for a successive project is the working program To make the project successful the documentation and software configuration also plays crucial role.
3. Software engineering requires unnecessary documentation, which slows down the project. Reality - Proper documentation enhances quality which results in reducing the amount of rework.
4. Software quality can be assessed only after the program is executed. Reality - The quality of software can be measured during any phase of development process by applying some quality assurance mechanism. One such mechanism is formal technical review that can be effectively used during each phase of development to uncover certain errors.