SlideShare une entreprise Scribd logo
1  sur  36
Software Engineering Principles in System
           Software Design
                    1




                                        9/3/2012
Agenda
                                 2


 Introduction

 Definition of Software Engineering

 Principles of Software Engineering

 Example –Compiler

 Software Development Process

 Example –Assembler

 Conclusion


                                       9/3/2012
Introduction
                                        3

 The development of software engineering tools and methods began in the

  late 1960’s.

 The problems in managing a large development project led to increases in

  development costs and decreases in productivity.

 Software Engineering evolved gradually in response to the problems of

  cost, productivity and reliability created by large and complex software
  systems.

 These principles are not only applicable to application software but also for

  the system software.


                                                                             9/3/2012
Software Engineering: Definition
                                  4




 A collection of techniques, methodologies, and tools that help

  with the production of

     a high quality software system

     with a given budget

     before a given deadline




                                                             9/3/2012
Principles of Software Engineering
                           5



 Rigor and formality

 Separation of concerns

 Modularity

 Abstraction

 Anticipation of change

 Generality

 Incrementality


                                     9/3/2012
Rigor and Formality
                                  6



 Rigor means strict precision

     Rigor helps to produce products with higher reliability,
      greater quality while controlling costs and meeting
      expectations.

     Various degrees of rigor can be achieved

 Formality is the highest degree of rigor

     Formality enables tool support

 Degree of rigor depends on application
                                                                 9/3/2012
Separation of concerns
                                  7




 To dominate complexity, separate the issues to concentrate on

  one at a time.

 Divide & conquer.

 Supports parallelization of efforts and separation of

  responsibilities.




                                                            9/3/2012
Modularity
                                  8




 A complex system may be divided into simpler pieces called

  modules

 A system that is composed of modules is called modular

 Supports application of separation of concerns

     when dealing with a module we can ignore details of other
      modules


                                                             9/3/2012
Cohesion and coupling
                                  9


 Each module should be highly cohesive.

     Module understandable as a meaningful unit

     Components of a module are closely related to one another



 Modules should exhibit low coupling.

     Modules have low interactions with others

     Understandable separately

                                                            9/3/2012
A visual representation
                          10




      (a)                           (b)




      High coupling            Low coupling

                                              9/3/2012
Abstraction
                                 11




 Identify the important aspects of a phenomenon and ignore its

  details.

 Special case of separation of concerns.

 The type of abstraction to apply depends on purpose.




                                                           9/3/2012
Anticipation of change
                                    12




 Ability to support software evolution requires anticipating

  potential future changes.

 It is the basis for software evolvability.




                                                                9/3/2012
Generality
                                   13




 While solving a problem, try to discover if it is an instance of a

  more general problem whose solution can be reused in other
  cases.

 Carefully balance generality against performance and cost.

 Sometimes a general problem is easier to solve than a special

  case .


                                                                 9/3/2012
Incrementality
                                      14


 Process proceeds in a stepwise fashion (increments)

 Examples (process)
    Deliver subsets of a system early to get early feedback from expected
     users, then add new features incrementally.

    Deal first with functionality, then turn to performance.

    Deliver a first prototype and then incrementally add effort to turn
     prototype into product.




                                                                           9/3/2012
Example -Compiler
                                       15

Rigor and Formality: Compiler

 Compilers are critical products
     Errors are multiplied on a mass scale

 Very high degree of formalization
     regular expressions, grammars

 Formalization enables tool support
     Scanner generators (lex)
     Parser generators (yacc)



                                              9/3/2012
Separation of Concerns: Compiler
                                         16

 Correctness is primary concern

 Other concerns

     Efficiency of compiler and of generated code

     User friendliness (helpful warnings, etc.)

 Example for interdependencies: runtime diagnostics and efficient code

     Example: runtime assertion checking

     Diagnostics simplify testing, but create overhead

     Typical solution: option to disable checks



                                                                          9/3/2012
Modularity: Compiler
                                        17

 Compilers are modularized into phases

 Each phase has precisely defined input and output

     High cohesion: common functionality in each phase

     Low coupling: pipe-and-filter architecture, symbol table

                                  Symbol Table


Source code                                                        object code

                                               Semantic            Code
   Lexical Analysis         Parsing
                                               Analysis          Generation


                                                                        9/3/2012
Abstraction: Compiler
                                        18

 Abstract syntax to neglect syntactic details such as begin…end vs. {…}

  to bracket statement sequences.

 Abstract syntax

     Abstract while loop syntax:   while( BoolExpr Stmt )

     Concrete Pascal syntax        WHILE BoolExpr DO Stmt ;

     Concrete Java syntax:         while ( BoolExpr ) Stmt




                                                                  9/3/2012
Abstraction: Compiler
                                19




                        Code Generation

    Intermediate Code            Co        Assembler Code
                            Optimization     Generation
        Generation




                                                            9/3/2012
Anticipation of Change: Compiler Case Study
                                   20


 Typical changes

     New versions of processors and operating systems .

     New target machines .

     Language and library extensions (e.g., standards) .




                                                            9/3/2012
Incrementality :Compiler Case Study
                                  21


 Language can be extended incrementally

 Compiler can be enhanced incrementally

     Supported language subset

     Runtime diagnostics

     Optimizations




                                           9/3/2012
Software Development Process
                                      22

 In the water fall model, the software development effort is pictured as

  flowing through a sequence of different stages as given below
                            Requirement
                              Analysis

                               System
                             Specification

                            System Design


                           Implementation


                            System Testing

                            Maintenance                                 9/3/2012
Software Development Process
                                23

Requirement Analysis


• The focus of this stage is on the needs of the users of the

  system .

• The requirements specify what the system must do, but not

  how it will be done.

• The result of the this stage is a requirement document.




                                                                9/3/2012
Software Development Process contd..
                                       24

System Specification

• The goal of this stage is to formulate a precise description of the desired

  system.

• The requirements analysis step looks at the system from the point of view

  of the end user.

• The system specifications are written from the point of view of system

  developers and programmers.




                                                                          9/3/2012
Software Development Process contd..
                                        25


System Design
  •   This stage begins to address the solution itself.

  •   The system design document outlines the most significant
      characteristics of the software to be developed.



Implementation
• In this stage of the development process ,the individual modules or objects

  described by the design process are coded and preliminary testing is done.



                                                                       9/3/2012
Software Development Process contd..
                                         26

System testing
• This phase is usually the most expensive and time consuming part of the

    software development process.

• Several different levels of testing are involved.

Maintenance
• This is the last phase of the Software life-cycle model.

• Maintenance can be made much easier and less costly by the presence of good

    documentation.

•   The document created during the system development should be kept
    throughout the lifetime of the system.
                                                                       9/3/2012
System Specifications -Assembler
                                27

Types of specifications

 •   Input specifications
      Label

      Operation field

      An instruction operand

      Source program




                                     9/3/2012
System Specifications contd..
                              28


 •   Output specifications
      Current location

      Object program




 •   Quality specifications
        Processing time



                                   9/3/2012
System design- Procedural System Design
                        29




Data flow diagram
                                    Object
                                   program


      Source        Assemble
     program        program


                                   Assembly
                                    listing




                                              9/3/2012
Modularized Assembler Design
                                                  30

                                              Assembler


                      Pass _1                                                Pass_2



                                P1_assign_    Access_int     P2_assemb       P2_write_
P1_read_src   P1_assign_loc                                                              P2_write_list
                                   sym           _file         le_inst          obj




                              Access_symtab                P2_search_optab




                                                                                            9/3/2012
System Testing
                                       31




 A large software System, composed of many thousands of lines of Source

  code.

 These are almost too complex to be debugged effectively all at once , when

  error occur there are too many places to look for them.

 Most of systems are tested in a series of stages.

 In each stage the amount of code being debugged is kept small. So it can be

  tested thoroughly and efficiently.



                                                                        9/3/2012
Levels of Testing
                                32

 Unit Testing
 Black box testing

 White box testing
 Integration Testing
 System Testing

              - Alpha testing
              - Beta testing
 Acceptance Testing


                                     9/3/2012
Sequences for Testing
                        33




 Bottom–Up Testing

 Top-down Testing




                             9/3/2012
Conclusion
                                  34




Thus System Software also has the principles for its design.

Software Engineering Principles are not only applicable to

compilers and assemblers but also for other System software

like operating system , linker and loader .




                                                               9/3/2012
Reference
                                35


• Leland L . Beck , System software-An introduction to System

  Programming.

• http://www.d.umn.edu/~gshute/softeng/principles.html




                                                            9/3/2012
36




Thank You




            9/3/2012

Contenu connexe

Tendances

Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptxubaidullah75790
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testingHaris Jamil
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)ShudipPal
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsProgrameter
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24koolkampus
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration managementfizamustanser
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modelingramyaaswin
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 

Tendances (20)

Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Unit1
Unit1Unit1
Unit1
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
software quality
software qualitysoftware quality
software quality
 
RMMM Plan
RMMM PlanRMMM Plan
RMMM Plan
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software design
Software designSoftware design
Software design
 
Software process
Software processSoftware process
Software process
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration management
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modeling
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 

Similaire à Software engineering principles in system software design

Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3Warui Maina
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship ChecklistRyan Polk
 
Are You a SOLID Coder?
Are You a SOLID Coder?Are You a SOLID Coder?
Are You a SOLID Coder?Steve Green
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
 
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...Nesma
 
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptWrushabhShirsat3
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NETssusere19c741
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysisIzzat Alsmadi
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Alejandro S.
 
Software enginneering
Software enginneeringSoftware enginneering
Software enginneeringchirag patil
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batchtimfanelli
 
Estimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a frameworkEstimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a frameworkNesma
 
ashimpptonsdlc-141119005634-conversion-gate02.pdf
ashimpptonsdlc-141119005634-conversion-gate02.pdfashimpptonsdlc-141119005634-conversion-gate02.pdf
ashimpptonsdlc-141119005634-conversion-gate02.pdfNagavelliMadhavi
 
Refreshing Domain Driven Design
Refreshing Domain Driven DesignRefreshing Domain Driven Design
Refreshing Domain Driven DesignAndré Borgonovo
 

Similaire à Software engineering principles in system software design (20)

Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Are You a SOLID Coder?
Are You a SOLID Coder?Are You a SOLID Coder?
Are You a SOLID Coder?
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
 
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NET
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...
 
Agile - Monojit basu
Agile - Monojit basuAgile - Monojit basu
Agile - Monojit basu
 
Agile - Monojit Basu
Agile - Monojit BasuAgile - Monojit Basu
Agile - Monojit Basu
 
Software enginneering
Software enginneeringSoftware enginneering
Software enginneering
 
Design pattern
Design patternDesign pattern
Design pattern
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
 
Testing method pptx
Testing method pptxTesting method pptx
Testing method pptx
 
Estimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a frameworkEstimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a framework
 
ashimpptonsdlc-141119005634-conversion-gate02.pdf
ashimpptonsdlc-141119005634-conversion-gate02.pdfashimpptonsdlc-141119005634-conversion-gate02.pdf
ashimpptonsdlc-141119005634-conversion-gate02.pdf
 
Refreshing Domain Driven Design
Refreshing Domain Driven DesignRefreshing Domain Driven Design
Refreshing Domain Driven Design
 

Plus de Tech_MX

Virtual base class
Virtual base classVirtual base class
Virtual base classTech_MX
 
Theory of estimation
Theory of estimationTheory of estimation
Theory of estimationTech_MX
 
Templates in C++
Templates in C++Templates in C++
Templates in C++Tech_MX
 
String & its application
String & its applicationString & its application
String & its applicationTech_MX
 
Statistical quality__control_2
Statistical  quality__control_2Statistical  quality__control_2
Statistical quality__control_2Tech_MX
 
Stack data structure
Stack data structureStack data structure
Stack data structureTech_MX
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application Tech_MX
 
Spanning trees & applications
Spanning trees & applicationsSpanning trees & applications
Spanning trees & applicationsTech_MX
 
Set data structure 2
Set data structure 2Set data structure 2
Set data structure 2Tech_MX
 
Set data structure
Set data structure Set data structure
Set data structure Tech_MX
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating SystemTech_MX
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Tech_MX
 
Motherboard of a pc
Motherboard of a pcMotherboard of a pc
Motherboard of a pcTech_MX
 
More on Lex
More on LexMore on Lex
More on LexTech_MX
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbmsTech_MX
 
Merging files (Data Structure)
Merging files (Data Structure)Merging files (Data Structure)
Merging files (Data Structure)Tech_MX
 
Memory dbms
Memory dbmsMemory dbms
Memory dbmsTech_MX
 

Plus de Tech_MX (20)

Virtual base class
Virtual base classVirtual base class
Virtual base class
 
Uid
UidUid
Uid
 
Theory of estimation
Theory of estimationTheory of estimation
Theory of estimation
 
Templates in C++
Templates in C++Templates in C++
Templates in C++
 
String & its application
String & its applicationString & its application
String & its application
 
Statistical quality__control_2
Statistical  quality__control_2Statistical  quality__control_2
Statistical quality__control_2
 
Stack data structure
Stack data structureStack data structure
Stack data structure
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application
 
Spss
SpssSpss
Spss
 
Spanning trees & applications
Spanning trees & applicationsSpanning trees & applications
Spanning trees & applications
 
Set data structure 2
Set data structure 2Set data structure 2
Set data structure 2
 
Set data structure
Set data structure Set data structure
Set data structure
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Parsing
ParsingParsing
Parsing
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)
 
Motherboard of a pc
Motherboard of a pcMotherboard of a pc
Motherboard of a pc
 
More on Lex
More on LexMore on Lex
More on Lex
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbms
 
Merging files (Data Structure)
Merging files (Data Structure)Merging files (Data Structure)
Merging files (Data Structure)
 
Memory dbms
Memory dbmsMemory dbms
Memory dbms
 

Dernier

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Software engineering principles in system software design

  • 1. Software Engineering Principles in System Software Design 1 9/3/2012
  • 2. Agenda 2  Introduction  Definition of Software Engineering  Principles of Software Engineering  Example –Compiler  Software Development Process  Example –Assembler  Conclusion 9/3/2012
  • 3. Introduction 3  The development of software engineering tools and methods began in the late 1960’s.  The problems in managing a large development project led to increases in development costs and decreases in productivity.  Software Engineering evolved gradually in response to the problems of cost, productivity and reliability created by large and complex software systems.  These principles are not only applicable to application software but also for the system software. 9/3/2012
  • 4. Software Engineering: Definition 4  A collection of techniques, methodologies, and tools that help with the production of  a high quality software system  with a given budget  before a given deadline 9/3/2012
  • 5. Principles of Software Engineering 5  Rigor and formality  Separation of concerns  Modularity  Abstraction  Anticipation of change  Generality  Incrementality 9/3/2012
  • 6. Rigor and Formality 6  Rigor means strict precision  Rigor helps to produce products with higher reliability, greater quality while controlling costs and meeting expectations.  Various degrees of rigor can be achieved  Formality is the highest degree of rigor  Formality enables tool support  Degree of rigor depends on application 9/3/2012
  • 7. Separation of concerns 7  To dominate complexity, separate the issues to concentrate on one at a time.  Divide & conquer.  Supports parallelization of efforts and separation of responsibilities. 9/3/2012
  • 8. Modularity 8  A complex system may be divided into simpler pieces called modules  A system that is composed of modules is called modular  Supports application of separation of concerns  when dealing with a module we can ignore details of other modules 9/3/2012
  • 9. Cohesion and coupling 9  Each module should be highly cohesive.  Module understandable as a meaningful unit  Components of a module are closely related to one another  Modules should exhibit low coupling.  Modules have low interactions with others  Understandable separately 9/3/2012
  • 10. A visual representation 10 (a) (b) High coupling Low coupling 9/3/2012
  • 11. Abstraction 11  Identify the important aspects of a phenomenon and ignore its details.  Special case of separation of concerns.  The type of abstraction to apply depends on purpose. 9/3/2012
  • 12. Anticipation of change 12  Ability to support software evolution requires anticipating potential future changes.  It is the basis for software evolvability. 9/3/2012
  • 13. Generality 13  While solving a problem, try to discover if it is an instance of a more general problem whose solution can be reused in other cases.  Carefully balance generality against performance and cost.  Sometimes a general problem is easier to solve than a special case . 9/3/2012
  • 14. Incrementality 14  Process proceeds in a stepwise fashion (increments)  Examples (process)  Deliver subsets of a system early to get early feedback from expected users, then add new features incrementally.  Deal first with functionality, then turn to performance.  Deliver a first prototype and then incrementally add effort to turn prototype into product. 9/3/2012
  • 15. Example -Compiler 15 Rigor and Formality: Compiler  Compilers are critical products  Errors are multiplied on a mass scale  Very high degree of formalization  regular expressions, grammars  Formalization enables tool support  Scanner generators (lex)  Parser generators (yacc) 9/3/2012
  • 16. Separation of Concerns: Compiler 16  Correctness is primary concern  Other concerns  Efficiency of compiler and of generated code  User friendliness (helpful warnings, etc.)  Example for interdependencies: runtime diagnostics and efficient code  Example: runtime assertion checking  Diagnostics simplify testing, but create overhead  Typical solution: option to disable checks 9/3/2012
  • 17. Modularity: Compiler 17  Compilers are modularized into phases  Each phase has precisely defined input and output  High cohesion: common functionality in each phase  Low coupling: pipe-and-filter architecture, symbol table Symbol Table Source code object code Semantic Code Lexical Analysis Parsing Analysis Generation 9/3/2012
  • 18. Abstraction: Compiler 18  Abstract syntax to neglect syntactic details such as begin…end vs. {…} to bracket statement sequences.  Abstract syntax  Abstract while loop syntax: while( BoolExpr Stmt )  Concrete Pascal syntax WHILE BoolExpr DO Stmt ;  Concrete Java syntax: while ( BoolExpr ) Stmt 9/3/2012
  • 19. Abstraction: Compiler 19 Code Generation Intermediate Code Co Assembler Code Optimization Generation Generation 9/3/2012
  • 20. Anticipation of Change: Compiler Case Study 20  Typical changes  New versions of processors and operating systems .  New target machines .  Language and library extensions (e.g., standards) . 9/3/2012
  • 21. Incrementality :Compiler Case Study 21  Language can be extended incrementally  Compiler can be enhanced incrementally  Supported language subset  Runtime diagnostics  Optimizations 9/3/2012
  • 22. Software Development Process 22  In the water fall model, the software development effort is pictured as flowing through a sequence of different stages as given below Requirement Analysis System Specification System Design Implementation System Testing Maintenance 9/3/2012
  • 23. Software Development Process 23 Requirement Analysis • The focus of this stage is on the needs of the users of the system . • The requirements specify what the system must do, but not how it will be done. • The result of the this stage is a requirement document. 9/3/2012
  • 24. Software Development Process contd.. 24 System Specification • The goal of this stage is to formulate a precise description of the desired system. • The requirements analysis step looks at the system from the point of view of the end user. • The system specifications are written from the point of view of system developers and programmers. 9/3/2012
  • 25. Software Development Process contd.. 25 System Design • This stage begins to address the solution itself. • The system design document outlines the most significant characteristics of the software to be developed. Implementation • In this stage of the development process ,the individual modules or objects described by the design process are coded and preliminary testing is done. 9/3/2012
  • 26. Software Development Process contd.. 26 System testing • This phase is usually the most expensive and time consuming part of the software development process. • Several different levels of testing are involved. Maintenance • This is the last phase of the Software life-cycle model. • Maintenance can be made much easier and less costly by the presence of good documentation. • The document created during the system development should be kept throughout the lifetime of the system. 9/3/2012
  • 27. System Specifications -Assembler 27 Types of specifications • Input specifications  Label  Operation field  An instruction operand  Source program 9/3/2012
  • 28. System Specifications contd.. 28 • Output specifications  Current location  Object program • Quality specifications  Processing time 9/3/2012
  • 29. System design- Procedural System Design 29 Data flow diagram Object program Source Assemble program program Assembly listing 9/3/2012
  • 30. Modularized Assembler Design 30 Assembler Pass _1 Pass_2 P1_assign_ Access_int P2_assemb P2_write_ P1_read_src P1_assign_loc P2_write_list sym _file le_inst obj Access_symtab P2_search_optab 9/3/2012
  • 31. System Testing 31  A large software System, composed of many thousands of lines of Source code.  These are almost too complex to be debugged effectively all at once , when error occur there are too many places to look for them.  Most of systems are tested in a series of stages.  In each stage the amount of code being debugged is kept small. So it can be tested thoroughly and efficiently. 9/3/2012
  • 32. Levels of Testing 32  Unit Testing  Black box testing  White box testing  Integration Testing  System Testing - Alpha testing - Beta testing  Acceptance Testing 9/3/2012
  • 33. Sequences for Testing 33  Bottom–Up Testing  Top-down Testing 9/3/2012
  • 34. Conclusion 34 Thus System Software also has the principles for its design. Software Engineering Principles are not only applicable to compilers and assemblers but also for other System software like operating system , linker and loader . 9/3/2012
  • 35. Reference 35 • Leland L . Beck , System software-An introduction to System Programming. • http://www.d.umn.edu/~gshute/softeng/principles.html 9/3/2012
  • 36. 36 Thank You 9/3/2012