Académique Documents
Professionnel Documents
Culture Documents
2/5/2012
Software Engineering
Software Engineering (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. Systematic collection of past experience: Techniques, Methodologies, Guidelines.
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 2
2/5/2012
2/5/2012
2/5/2012
PROGRAM vs SOFTWARE
PROGRAM Usually small in size Author himself is sole user Single developer Lacks proper user interface Lacks proper documentation Ad hoc development. (Programmer Centric) SOFTWARE Large Large number of users Team of developers Well-designed interface Well documented & usermanual prepared Systematic development (Organization/Project Centric)
7
2/5/2012
SOFTWARE
Software consists of three components: -Program, when executed provides desired function and performance. -Documents, that describe the operation and use of the program. -Data structure, that enable the programs to adequately manipulate information.
2/5/2012
Supports or directly provides system functionality Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Helps build other software (e.g., software tools)
MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 9
Types of software:
1.System software 2.Application software/PC software 3.Engg. &scientific software 4.Real time software 5.Web based software 6.AI software 7.Embedded software
2/5/2012
11
Web-based software : act as interface between user and internet .In other words it is used to develop web based application. Ex-HTML , ASP , web browser etc. AI software : used where the problem solving technique is non algorithmic in nature. Ex-Robotics , game playing technique etc. Embedded software : it is very small and embedded in a small chip to perform limited application. Ex-automatic washing machine , s/w in DVD player etc.
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 12
Legacy Software
Why must it change?
software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment.
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 13
Characteristics of software
1.Efficiency: the s/w must use the resource properly. 2.Maintainability: the s/w can change with a change with users requirement. 3. On time: the s/w development must be within the time specified by the client. 4.Within the budget: the development cost of s/w shouldnt exceed budget specified by the client. 5.Functionality: it should meet all the functionality specified by the requirement. 6.Dependability: the s/w must be secured and reliable.
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 14
Characteristics of software
1. Software is developed or engineered, it is not manufactured in the classical sense. 2. software doesnt wear out.
2/5/2012
15
2/5/2012
16
2/5/2012
17
SE is a layered technology
2/5/2012
18
Emergence of SE
1. 2. 3. 4. 5. 6. 7. 8. Early computer programming High level language programming Control flow based design Structure oriented design Data structure oriented design Data flow oriented design Object oriented design Aspect orientation client-server design , embedded s/w design.
Every programmer developed his own style of writing(Coding, documentation etc.) programs: According to its intuition and in an ad hoc manner. (exploratory programming). (build & fix)
2/5/2012
22
2/5/2012
27
2/5/2012
28
2/5/2012
31
2/5/2012
32
2/5/2012
34
Structured Programming
A program is called structured When it uses only the following types of constructs: sequence selection iteration
2/5/2012
35
Structured Programming
Unstructured control flows are avoided. Consist of a neat set of modules. Use single-entry, single-exit program constructs.
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 36
Structured Programming
However, violations to this feature are permitted: Due to practical considerations such as: Premature loop exit to support exception handling.
2/5/2012
37
Structured Programming
Structured programs are: Easier to read and understand, Easier to maintain, Require less effort and time for development.
2/5/2012
38
2/5/2012
39
2/5/2012
40
2/5/2012
41
2/5/2012
42
2/5/2012
44
2/5/2012
45
2/5/2012
46
2/5/2012
48
Software Crisis
Software products: Fail to meet user requirements. Frequently crash. Expensive. Difficult to alter, debug, and enhance. Often delivered late. Use resources non-optimally
2/5/2012 MODULE:I INTRODUCTION TO SOFTWARE ENGINEERING 49
2/5/2012
50
2/5/2012
51
2/5/2012
52
Reference
Fundamentals of Software Engineering, Prentice-Hall of India, By R.Mall CHAPTER -1. Software Engineering: A Practitioners Approach,TMH, By R.S.Pressman,6th Edition, CHAPTER-1.
2/5/2012
53