Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering (CSE 314)

Similar presentations


Presentation on theme: "Software Engineering (CSE 314)"— Presentation transcript:

1 Software Engineering (CSE 314)

2 What is software engineering
Software engineering is the process of solving customers’ problems by the systematic development and evolution of large, high quality software systems within cost, time. The establishment and use of sound engineering principles in order to obtain economically developer software that is reliable and works efficiently on real machines. A discipline whose is the production of Quality software, software that is delivered on time, within budget, and that satisfies its requirements.

3 Stakeholders in software engineering
Many people are involved in software engineering Users- who will use software Customers/clients- These are the people who makes the decision about ordering and paying for the software, the may or may not be users, users may work for them. Software Developers- software engineers Development managers-These are the people who run organization that is developing the software.

4 Software Quality Customer- Solve problem at an acceptable cost in terms of money paid and resources used. User- Easy to run, Efficient to use, Helps get work done Developer- Easy to design, Easy to maintain, easy to reuse its parts. Development Manager- Sells more and pleases customers while costing less to develop and maintain.

5 Attributes of software quality
Usability- The higher the usability of software , the easier it is for users to work with it. Efficiency- The more efficient software is, the less it uses of CPU-time, memory, disk space, and other resources. Reliability- software is more reliable if it has fewer failures. Maintainability- This is the ease with which you can change the software. Software engineers can design highly maintainable software by anticipating future changes and adding flexibility.

6 Software Characteristics
Software is developed or engineered, it is not manufactured in the classical sense.- it is one time development effort, duplicity is not an issue. Software doesn’t wear out (bathtub curve) Failure Infant Wear Rate mortality out Time Failure curve for Hardware

7 Failure Rate Time Failure curve for s/w

8 Reusability of components(component based software engineering)
Software is flexible- change

9 Software Crisis The expenses that organizations all around the world are incurring on software purchase compared to those on hardware purchase have been showing a worrying trend over the years . Organizations are spending larger and larger portions of their budget on software. Not long ago when you bought any hardware product, the essential software that ran on it came free with it.

10 Factors of crisis- Large problem sizes, Lack of adequate training in software engineering., increasing skill shortage. Remedy- Spread of software engineering practices among the engineers.

11 Software Myths Management myths
Myth: We already have a book that’s full of standards and procedures for building software. Won’t they provide my people with everything they need to know? Myth: If we get behind schedule, we can add more programmers and catch up.

12 Customer Myths Myth: A general statement of objectives is sufficient to begin writing programs- we can fill in the detail later. Myth: Project requirement continually change, but change can be easily accommodated because software is flexible.

13 Practitioner’s myths Myth: Once we write the program and get it to work , our job is done. Myth: until I get the program running, I have no way of accessing its quality. Myth: The only deliverable work product for a successful project is working program.(documentation). Myth: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.

14 Software Life cycle models Water Fall Model
Requirement analysis and specification phase: The goal of this phase to understand the exact requirement of customer and to document them properly. The requirement describes “What” of the system. Design Phase: The goal of this phase is to transform the requirements specification into a structure that is suitable for imlpementation in some programming languages.(Module, DS)

15 Implementation and unit testing- (coding phase, single module)
Integration and system testing- Operation and maintenance- Error correction, enhancement of capabilities , deletion of capabilities, optimization. This model expects complete and accurate requirements early in the process which is un realistic.

16 Advantage Easy to understand
Define before design and design before code DISADVANTAGES It is difficult to define all the requirements at the beginning of project. This model is not suitable for accomodating any change A working version of system is not seen until late in the projects life. It does not scale up well to large projects.

17

18

19


Download ppt "Software Engineering (CSE 314)"

Similar presentations


Ads by Google