Unit I Introduction to Software Engineering Software Process
- Slides: 23
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. Engineering/Scientific Software • These software - based on - complex numeric applications. • Used as – tools for special purpose. • Ex – MATLAB, WEKA, SCILAB.
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 – 8 marks
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 allthe 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.
- What is system in software engineering
- Forward engineering and reverse engineering
- Types of software changes
- Introduction to software engineering course outline
- Prototyping model in software engineering with diagram
- Unified process model in software engineering
- Prototyping process in software engineering
- Process and project metrics in software engineering
- The scm repository
- A generic process framework for software engineering
- Cohesion in software engineering
- Umbrella activities in software engineering
- Generic view of process in software engineering
- Agile view of process in software engineering
- Linear process flow in software engineering
- Scm meaning in software
- Domain pengukuran software
- Software engineering process
- Process patterns in software engineering
- User interface design process in software engineering
- User interface design in software engineering
- Process methods and tools in software engineering
- Communication planning modeling construction deployment
- User interface design steps in software engineering