Software EngineeringBy:      Ashok Mohanty      Reader, Dept. of Mechanical Engg.      College of Engg. & technology, Bhub...
Topics to be discussed• Characteristics of commercial software• Emergence of Software Engineering• Core aspects of softwar...
Software is a general term for Programs & DataCharacteristics of commercial Software• Developed for some clients under for...
Software DevelopmentDesign and development of software requires great amount ofeffort, time and money             Computer...
Software Crisis   During 1970s, large numbers of software projects failed mostly   due to human factors. This problem was ...
Core Aspects of SEThe subject ‘Software Engineering’ is                    inter-disciplinary in nature.Software developme...
SE includes 10 Knowledge Areas1. Software requirements   6. Software configuration mgmt.2. Software design         7. Soft...
Software Process             refers to methods of developing softwareIt has four major component processes    1. Software ...
Process Model Sequential Process Model              Iterative Process Model Sequential Process Models           Iterative ...
Sequential Process ModelsThe Waterfall modelTraditional sequential process modelSoftware development takes place in well d...
Iterative Process ModelsPrototyping Model                           It is of two types Throw-away prototyping             ...
Software is developed to perform certain Functions.Functions is stipulated by Software requirements                       ...
Requirement Engineering Activities1. Inception     Understanding the situation that have initiated                 the sof...
Requirement Engineering Process                         ©Ashok Mohanty,                         <amohanty01@yahoo.com>   14
Typical Structure of SRS Document1. Introduction  1.1 Name & purpose of software; 1.2 Scope, benefits, objectives, and goa...
Software development processComprises of following activities.     System Analysis or Requirement Analysis     Software De...
Approaches to SoftwareEngineeringSystem for which software is to be developed issuccessively broken down (decomposed) into...
Function Oriented vs Object OrientFO approach focus is on functions or processesFunctions Sub-functions more Sub-functions...
Example of academic institutionFunctions                      Entities that do the functionsImpart teaching on theory     ...
Function Oriented ApproachFO approach           is   traditional.   It   supports       structuredprogrammingA structured ...
FO methodology is also called‘Structured System Analysis and Design (SSAD)’.Structured analysis is done to determine:     ...
Tools used in SSAD          Tools                        PurposeData Flow Diagram       Process mapping of system  (DFD)Da...
Structured Analysis      Environmental Model • Statement of Purpose                 Structured Design • Context Diagram • ...
Overview of Object Oriented ApproachWorld is made up of entities or objects.So analysis and design a system in terms of ob...
Object 1                          Object 2 Methods                           Methods  Data                              Da...
Object Oriented Analysis & Design (OOAD)The OOAD comprises of   Object Oriented Analysis (OOA)   Object Oriented Design (O...
Steps of OOA   •Define User View of Requirements   •Identify Analysis Objects and their Characteristics   •Determine Objec...
Fundamental questions in OOD  •What objects do we need?  •What behaviours are required?  •How do we distribute behaviour o...
Diagrams in OOD Name of diagram                     PurposeComponent          Represents high-level parts that make up the...
The OOAD comprises of   Object Oriented Analysis (OOA)   Object Oriented Design (OOD)But there is overlapping of both thes...
SSAD vs OOADSame basic steps   – Understand the problem   – Specify requirements (WHAT)   – Design the solution (HOW)   – ...
How OO Approach is different?•   Different View of the System•   Integration of Data and Method•   Different Documentation...
References1. Software Engineering,   Jibitesh Mishra & Ashok Mohanty,   Pearson Education2. Software Engineering,    Press...
Upcoming SlideShare
Loading in...5
×

software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

8,243

Published on

It gives an overview/ introduction to software engineering

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,243
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
227
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc"

  1. 1. Software EngineeringBy: Ashok Mohanty Reader, Dept. of Mechanical Engg. College of Engg. & technology, BhubaneswarThis ppt is based on: 1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson Education 2. Software Engineering, Pressman, McGrawHill 3. Guide to Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society’s Professional Practices Committee, 2004 ©Ashok Mohanty, <amohanty01@yahoo.com> 1
  2. 2. Topics to be discussed• Characteristics of commercial software• Emergence of Software Engineering• Core aspects of software engineering• Software processes• Software Development Life Cycle Models• Types of software requirements• Methods and Activities in Requirement Engineering• Structure of Software Requirement Specification (SRS)• Approaches to Software Engineering • Function Oriented (FO) approach • Object Oriented (OO) approach ©Ashok Mohanty, <amohanty01@yahoo.com> 2
  3. 3. Software is a general term for Programs & DataCharacteristics of commercial Software• Developed for some clients under formal contracts• Software is designed based on some specification• Developed in teams and not by individuals• Includes detailed documentation• Meant for users• Requires some modification from time to time.• Does not wear out but has a lifespan, after which it becomes obsolete.• Software failure may create catastrophe. So software is designed for utmost reliability.• A computer system is prone to misuse or sabotage. So software is designed to be temper-proof ©Ashok Mohanty, <amohanty01@yahoo.com> 3
  4. 4. Software DevelopmentDesign and development of software requires great amount ofeffort, time and money Computer programming is just one part of the process.It requires a systematic approach that includes • Comprehensive methods • Tools for efficient execution of methods • Procedures for quality assurance • Coordination and controlIt also involves people and their management.All these engineering aspects relating to software developmenthave combined together to evolve as a disciplinecalled Software Engineering. Manufactured product Industrial Engineering Software product Software Engineering ©Ashok Mohanty, <amohanty01@yahoo.com> 4
  5. 5. Software Crisis During 1970s, large numbers of software projects failed mostly due to human factors. This problem was referred to as the “software crisis”.Study by Comptroller General of the United States (1979): 2% of software worked on delivery 3% worked only after some corrections 45% delivered, but never successfully used 20% used, only after major modification/ reworked 30% were paid for, never completed/ deliveredSoftware Crisis led to Software EngineeringSoftware Engineering • Systematic approach to software development • Application of engineering principles • Provides a set of methods, tools, and procedures • Ensures consistent software quality ©Ashok Mohanty, <amohanty01@yahoo.com> 5
  6. 6. Core Aspects of SEThe subject ‘Software Engineering’ is inter-disciplinary in nature.Software development requires active involvement and participation of software users and developers.It requires domain knowledge of various fields including computer science and area for which software being made.Product, Process, People, and Project are the four core aspects of software development. ©Ashok Mohanty, <amohanty01@yahoo.com> 6
  7. 7. SE includes 10 Knowledge Areas1. Software requirements 6. Software configuration mgmt.2. Software design 7. Software engg. Management3. Software construction 8. Software engg. process4. Software testing 9. Software engg. tools &methods5. Software maintenance 10. Software qualitySE knowledge derived from 8 subject areas1. Computer Engineering 5. Project Management2. Computer Science 6. Quality Management3. Management 7. Software Ergonomics4. Mathematics 8. Systems Engineering ©Ashok Mohanty, <amohanty01@yahoo.com> 7
  8. 8. Software Process refers to methods of developing softwareIt has four major component processes 1. Software Development Process 2. Software Project Management Process 3. Software Configuration Management Process 4. Software Process Management ProcessSoftware Development Process It is a structured set of activities that transform the user requirements into a quality software product. ©Ashok Mohanty, <amohanty01@yahoo.com> 8
  9. 9. Process Model Sequential Process Model Iterative Process Model Sequential Process Models Iterative Process ModelsSoftware is developed in a A prototype is developed using thesequence of stages sequential process.Stages are: After one part is completed, all Analysis, Design, activities are repeated for developing the next part. Coding, Testing, etc. ©Ashok Mohanty, <amohanty01@yahoo.com> 9
  10. 10. Sequential Process ModelsThe Waterfall modelTraditional sequential process modelSoftware development takes place in well defined phases 1. System Engineering 4. Implementation or Coding 2. Requirement Analysis 5. Verification or testing 3. Design 6. MaintenanceThe V-modelExtension of Waterfall modelStipulates various kinds of testing, like unit (module) testing andintegration testing.Information from earlier phases also used for testing ©Ashok Mohanty, <amohanty01@yahoo.com> 10
  11. 11. Iterative Process ModelsPrototyping Model It is of two types Throw-away prototyping Evolutionary prototypingUsed for checking software Initial working model of software based requirement specification on outline specification. This prototype is evaluated and refined in number of stages to get final product.Spiral model: Each cycle consists of four step1. Planning 2. Risk Analysis 3. Engineering 4.Validation Spiral model emphasizes on risk management.Iterative Waterfall Model: It overcomes the limitations ofWaterfall Model by adding an “iterative” loop. After end of each phase, itsprevious phases are revisited to modify requirements and to remove errors. ©Ashok Mohanty, <amohanty01@yahoo.com> 11
  12. 12. Software is developed to perform certain Functions.Functions is stipulated by Software requirements (It provides the basis for software development.) Requirement Engineering (RE) is a systematic approach for determining Software Requirement Specifications (SRS)6 types of software requirement specifications • Functional requirement • Design requirement • Implementation requirement • Interface requirement • Performance requirement • Physical requirement. ©Ashok Mohanty, <amohanty01@yahoo.com> 12
  13. 13. Requirement Engineering Activities1. Inception Understanding the situation that have initiated the software project Identification of stakeholders2. Elicitation Seeking information about the software, system and business (through interview, questionnaire, record review, observation, etc). Provides initial user requirements3. Elaboration Developing a refined technical model of software functions, features & constraints4. Negotiation Making tradeoff & fixing priorities5. Validation Requirement specification assessed for correctness & quality ©Ashok Mohanty, <amohanty01@yahoo.com> 13
  14. 14. Requirement Engineering Process ©Ashok Mohanty, <amohanty01@yahoo.com> 14
  15. 15. Typical Structure of SRS Document1. Introduction 1.1 Name & purpose of software; 1.2 Scope, benefits, objectives, and goals; 1.3 Types of audience/ users2. Overall Description 2.1 Product Perspective: Context and origin (how initiated?); Block diagram of overall system to which software relates; 2.2 Product Features: Major features and significant functions; Organization of functions/ modules; 2.3 Category/ types of users; 2.4 Performance Requirements; 2.5 Operating Environment: Hardware platform, operating system, database system, etc.; 2.6 Design and Implementation Constraints; 2.7 Security, safety and privacy Requirements; 2.8 User Documentation; 2.9 Assumptions3. Software Features: (Detailed software features) 3.1 Name of feature; 3.2 Description of feature & its priority; 3.3 Sequences of user actions & system responses; 3.4 Functional Requirements4. External Interface Requirements 4.1 User Interfaces; 4.2 Hardware Interfaces; 4.3 Software Interfaces; 4.4 Communications Interfaces5. Other Non-functional Requirements 5.1 Performance Requirements; 5.2 Safety and Security Requirements; 5.3 Software quality attributes; 5.4 Other requirements if any6. Appendix: ©Ashok Mohanty, 6.1 Glossary of terms; 6.2 List of issues; 6.3 Figures and diagrams <amohanty01@yahoo.com> 15
  16. 16. Software development processComprises of following activities. System Analysis or Requirement Analysis Software Design Implementation or Coding Testing or Inspection Maintenance or AdaptationActivities are performed according to a plan. ©Ashok Mohanty, <amohanty01@yahoo.com> 16
  17. 17. Approaches to SoftwareEngineeringSystem for which software is to be developed issuccessively broken down (decomposed) into partsand arranged in to hierarchy.Decomposition is a convenient way of handling anycomplex problem.TWO approaches to Software Engineering 1. Function-Oriented (FO) Approach 2. Object-Oriented (OO) ApproachSimilarity: System factored into parts in both approachesDifference: lies in the basis on which the system is factored 17
  18. 18. Function Oriented vs Object OrientFO approach focus is on functions or processesFunctions Sub-functions more Sub-functionsOO approach focus is on objects or entitiesObject Parts (child-objects) more parts (child-objects)FO emphasis on ‘what system does (verb)OO emphasis on ‘what system consists of (noun)’. ©Ashok Mohanty, <amohanty01@yahoo.com> 18
  19. 19. Example of academic institutionFunctions Entities that do the functionsImpart teaching on theory Teachers, Classroom, SyllabusImpart teaching on practical Teachers, Laboratories, SyllabusConduct examination Examination section, Classroom, Question-setter, Invigilators, etc.Evaluate students’ Examination section, Examiners,performance etc. FO approach concentrates on functions. OO approach focuses on objects that do the functions. ©Ashok Mohanty, <amohanty01@yahoo.com> 19
  20. 20. Function Oriented ApproachFO approach is traditional. It supports structuredprogrammingA structured program consists of functions (modules) organized in ahierarchy. Higher level function invokes lower level function. Data is either local or global Function 1 Local Data Calls Function 2 Operates on Local Data Calls Global Data Function 3 Local Data Operates on ©Ashok Mohanty, <amohanty01@yahoo.com> 20
  21. 21. FO methodology is also called‘Structured System Analysis and Design (SSAD)’.Structured analysis is done to determine: – Functions to be performed – Data to be manipulated – Constraints on functions and dataFunctional specification specifies ‘what the software is expected todo?’ It provides the basis for design of software.Structured Design is done to develop designspecification. Design specification is the blue print for constructing the software. Design specification is translated into a program code. ©Ashok Mohanty, <amohanty01@yahoo.com> 21
  22. 22. Tools used in SSAD Tools PurposeData Flow Diagram Process mapping of system (DFD)Data Dictionary List of different data items used in systemER Diagram Data modellingProcess Specification Depicts procedures used in systemToolsState Transition Diagram Depicts chronological events and(ST Diagram) corresponding system statesStructure chart Depicts modular design of a programStructured English/ Depicts logic of programPseudocode 22
  23. 23. Structured Analysis Environmental Model • Statement of Purpose Structured Design • Context Diagram • Event List Implementation Model Behavioural Model •Structure chart •Interface design •Data design • Data Flow Diagram •Module specification • Data Dictionary • ER diagram • Process specification • State Transition DiagramFunction Oriented Approach to Software Development ©Ashok Mohanty, <amohanty01@yahoo.com> 23
  24. 24. Overview of Object Oriented ApproachWorld is made up of entities or objects.So analysis and design a system in terms of objects is closer to thereal world modelling.The object oriented approach uses object oriented programmingconcepts.Object consists of data structures combined with relevantfunctions (method)An object is invoked by its method.Invocation of a method may change either the properties of theobject or invoke some other object. ©Ashok Mohanty, <amohanty01@yahoo.com> 24
  25. 25. Object 1 Object 2 Methods Methods Data Data All arrows represent Invokes Object 3 Object 4 Methods Methods Data DataMessages passing within Objects In OO approach, system functionality is expressed in terms of operations or services associated with each object.
  26. 26. Object Oriented Analysis & Design (OOAD)The OOAD comprises of Object Oriented Analysis (OOA) Object Oriented Design (OOD)Documentation Tool • Unified Modelling Language (UML)’ is a documentation tool used in OOAD methodology • UML has evolved from the work of Grady Booch, James Rumbaugh, Ivar Jacobsen, and others at Rational Corporation in 1997. • At present, the UML has almost become an industry standard documentation tool. • UML comprises of number of diagrams ©Ashok Mohanty, <amohanty01@yahoo.com>
  27. 27. Steps of OOA •Define User View of Requirements •Identify Analysis Objects and their Characteristics •Determine Object Dynamics •Determine Object Interactions and relationship Diagrams used in OOA.Use case diagram Describes how users interact with processesClass diagram It is used to refine the use case diagram and define a detailed design of the systemState diagram Represents different states that objects in the system undergo during their life cycleActivity diagram Describes the process flow of the systemSequence diagram Represents interaction between objectsCollaboration diagram Groups together interactions between objects. 27
  28. 28. Fundamental questions in OOD •What objects do we need? •What behaviours are required? •How do we distribute behaviour over the set of objects?Static Modelling’ Classes, Attributes, Methods and Associations Identified in OOA Designed for implementation in OODObjects also perform some action. Defining thebehaviour (methods) of objects is called the‘Dynamic Modelling’. ©Ashok Mohanty, <amohanty01@yahoo.com> 28
  29. 29. Diagrams in OOD Name of diagram PurposeComponent Represents high-level parts that make up thediagram system.Deployment Captures configuration of runtime elementsdiagram of applicationPackage Holds model elements such as classes, state machines and use cases.Subsystem Represents a portion of a system that can be implemented as a distinct component ©Ashok Mohanty, <amohanty01@yahoo.com> 29
  30. 30. The OOAD comprises of Object Oriented Analysis (OOA) Object Oriented Design (OOD)But there is overlapping of both these phases e.g, Class diagram and Object diagram are included in OOA. But these are also useful in OOD.. OO Analysis OO Design OO Coding ©Ashok Mohanty, <amohanty01@yahoo.com> 30
  31. 31. SSAD vs OOADSame basic steps – Understand the problem – Specify requirements (WHAT) – Design the solution (HOW) – Write the code – Test and deploySimilar types of tasks – Elicitation of requirements – Documentation of requirements – Identification of software modules – Design of software modules – Acceptance testsSimilar project management issues e.g. Planning, Estimating, Monitoring & Control, Communicating 31
  32. 32. How OO Approach is different?• Different View of the System• Integration of Data and Method• Different Documentation Tools• Real World Focus• Approach to Project Life Cycle• Approach to Program Coding• Approach to Component Reuse• Approach to Software MaintenanceFO methodology is more suitable for data intensive softwareprojects, whereas OO methodology is more suitable forsoftware project that requires complex algorithm/ processinglogic. ©Ashok Mohanty, <amohanty01@yahoo.com> 32
  33. 33. References1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson Education2. Software Engineering, Pressman, McGrawHill3. Guide to Software Engineering Body of Knowledge, IEEE Computer Society’s Professional Practices Committee, 2004 ©Ashok Mohanty, <amohanty01@yahoo.com> 33
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×