Introduction - Software Engineering

  • Definition
    • SE is a Systematic, Disciplined, Cost-effective techniques for software development
    • Engineering approach to develop a software
  • Evolution
    • 1945 - 1965
      • Origin
    • 1965 - 1985
      • Crisis
      • 98% of the software developed were scrapped or never used
    • 1990 - 2000
      • Internet
    • 2000 - 2010
      • Light Weight
    • 2010 - Now
      • AI, ML, DL
  • Requirement Analysis
  • Software Project Management
    • Risk Management
      • Risk is an uncertain event or condition that has a positive or negative effect on project's objective
      • Systematic attempt to specify threats to the project plan (Estimates, Schedule, Resource)
      • The project manager takes step toward avoiding them when possible and controlling them when necessary
      • Risk Management plan is a document that project manager prepares
      • Strategies
        • Reactive
          • Tries to reduce the damage of potential threats, but assume that those threats will happen eventually
        • Proactive
          • Identifies threats and aim to prevent those events from ever happening
      • Types
        • Business Risk
          • Budget low, No one likes
        • Technical Risk
          • Quality, Design, Interference, Interface, Maintenance
        • Project Risk
          • Schedule, Cost, Resources, Customer related
      • Ways to Handle
        • Risk Assessment
          • Process to rank the risk in terms of their damage
          • Determine the average probability of occurrence value for each risk
          • Determine the impact for each component based on impact assessment matrix (Severity Value)
          • Identify, Analyze, Prioritize
          • RA = Probability * Severity
          • Image Not Loaded
        • Risk Control
          • Specific actions to reduce a risk's event probability of happening
          • Monitor, Avoid, Transfer
        • Risk Mitigation
          • Set of actions to reduce the impact of risk event
          • Control Strategies
            • Risk Avoidance
            • Risk Transfer
            • Risk Reduction
            • Risk Monitoring
  • Software Design
    • Data Flow Diagram (DFD)/Bubble Chart
      • Basic
        • Graphical tool, Useful for communicating with users, managers and others
        • Useful for analyzing existing as well as proposed systems
        • Focus on the movement of data between external entities and processes, and between processes and data stores
        • A relatively simple technique to learn and use
      • DFD ELements
        • Source/Sinks (External entities)
          • Source -=> Supplies data to the system
          • Sink -=> Receives data from the system
          • Represented by Rectangle
          • They do not process data
        • Data Flows
          • Basic
            • Marks movement of data through the system, A pipeline to carry data
            • Connects all other 3
            • Generally unidirectional
            • Represented by Arrows
              • Double headed array
            • Labels are assigned to Data flow
          • Rules
            • Data can flow from
              • External entity to Process
              • Process to External entity
              • Process to Store and back
              • Process to Process
            • Data can't flow from
              • External entity to External entity
              • External entity to Store
              • Store to External entity
              • Store to Store
        • Processes
          • Represented by Circle
            • Incoming Arrow -=> Input data flows
            • Outgoing Arrow -=> Output data flows
        • Data Stores
          • Repository of data
          • Represented by 2 Parallel lines
            • Incoming Arrow -=> Data can be written
            • Outgoing Arrow -=> Data can be read
          • External entities can't read or write
      • Decomposition of DFD
        • A System is too complex to be shown on a single DFD
        • Decomposition is the iterative process of exploding data flow diagrams to create more detail
        • Level 0 data flow diagrams may be exploded into successive low levels of detail
        • The next level of detail would be a level 1 data flow diagram
        • The DFDs become linked together in a hierarchy, which would fully document the system
      • Levels of DFD
        • 0, 1, 2
      • Logical & Physical DFD
  • Coding and Testing
  • Maintenance
  • Quality Management
  • Reuse
Share: