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
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
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.
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
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