SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
White box ppt
White box pptWhite box ppt
White box ppt
Chintakunta Hariteja
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineering
Mubashir Jutt
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Rad model
Rad modelRad model
Rad model
Sneha Chopra
 
Software design
Software designSoftware design
Software design
Syed Muhammad Hammad-ud-Din
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
Hadi Fadlallah
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
Webtech Learning
 
Design and analysis of algorithms
Design and analysis of algorithmsDesign and analysis of algorithms
Design and analysis of algorithms
Dr Geetha Mohan
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
NayyabMirTahir
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
Debuggers in system software
Debuggers in system softwareDebuggers in system software
Debuggers in system software
gayathri ravi
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal183
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
Amr E. Mohamed
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Software Testing
Software TestingSoftware Testing
Software Testing
Mousmi Pawar
 
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
JAINAM KAPADIYA
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineering
Mubashir Jutt
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
Hadi Fadlallah
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
Webtech Learning
 
Design and analysis of algorithms
Design and analysis of algorithmsDesign and analysis of algorithms
Design and analysis of algorithms
Dr Geetha Mohan
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
NayyabMirTahir
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
Debuggers in system software
Debuggers in system softwareDebuggers in system software
Debuggers in system software
gayathri ravi
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal183
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
Amr E. Mohamed
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
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
JAINAM KAPADIYA
 

Similar to Software engineering principles in system software design (20)

Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
Vishal Singh
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
Warui Maina
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
Ryan 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 OBJECTS
acijjournal
 
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.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
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
Kuwait10
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NET
ssusere19c741
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
Izzat Alsmadi
 
C7-Design _ Implementation_uml_khalid .pptx
C7-Design _ Implementation_uml_khalid .pptxC7-Design _ Implementation_uml_khalid .pptx
C7-Design _ Implementation_uml_khalid .pptx
HakimAlHuribi
 
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.
 
Agile - Monojit basu
Agile - Monojit basuAgile - Monojit basu
Agile - Monojit basu
Roopa Nadkarni
 
Agile - Monojit Basu
Agile - Monojit BasuAgile - Monojit Basu
Agile - Monojit Basu
Roopa Nadkarni
 
best presentation for the last five years
best presentation for the last five yearsbest presentation for the last five years
best presentation for the last five years
AssadLeo1
 
Design pattern
Design patternDesign pattern
Design pattern
Shreyance Jain
 
282600430-Specialized-Process-Models.pptx
282600430-Specialized-Process-Models.pptx282600430-Specialized-Process-Models.pptx
282600430-Specialized-Process-Models.pptx
Coderkids
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
timfanelli
 
LECTURE 155662355366589625633022333.pptx
LECTURE 155662355366589625633022333.pptxLECTURE 155662355366589625633022333.pptx
LECTURE 155662355366589625633022333.pptx
ROHANPAL39
 
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
Nesma
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
Vishal Singh
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
Warui Maina
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
Ryan 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 OBJECTS
acijjournal
 
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.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
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
Kuwait10
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NET
ssusere19c741
 
Open source evolution analysis
Open source evolution analysisOpen source evolution analysis
Open source evolution analysis
Izzat Alsmadi
 
C7-Design _ Implementation_uml_khalid .pptx
C7-Design _ Implementation_uml_khalid .pptxC7-Design _ Implementation_uml_khalid .pptx
C7-Design _ Implementation_uml_khalid .pptx
HakimAlHuribi
 
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.
 
best presentation for the last five years
best presentation for the last five yearsbest presentation for the last five years
best presentation for the last five years
AssadLeo1
 
282600430-Specialized-Process-Models.pptx
282600430-Specialized-Process-Models.pptx282600430-Specialized-Process-Models.pptx
282600430-Specialized-Process-Models.pptx
Coderkids
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
timfanelli
 
LECTURE 155662355366589625633022333.pptx
LECTURE 155662355366589625633022333.pptxLECTURE 155662355366589625633022333.pptx
LECTURE 155662355366589625633022333.pptx
ROHANPAL39
 
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
Nesma
 
Ad

More from Tech_MX (20)

Virtual base class
Virtual base classVirtual base class
Virtual base class
Tech_MX
 
Uid
UidUid
Uid
Tech_MX
 
Theory of estimation
Theory of estimationTheory of estimation
Theory of estimation
Tech_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 application
Tech_MX
 
Statistical quality__control_2
Statistical  quality__control_2Statistical  quality__control_2
Statistical quality__control_2
Tech_MX
 
Stack data structure
Stack data structureStack data structure
Stack data structure
Tech_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
 
Spss
SpssSpss
Spss
Tech_MX
 
Spanning trees & applications
Spanning trees & applicationsSpanning trees & applications
Spanning trees & applications
Tech_MX
 
Set data structure 2
Set data structure 2Set data structure 2
Set data structure 2
Tech_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 System
Tech_MX
 
Parsing
ParsingParsing
Parsing
Tech_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 pc
Tech_MX
 
More on Lex
More on LexMore on Lex
More on Lex
Tech_MX
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbms
Tech_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 dbms
Tech_MX
 
Virtual base class
Virtual base classVirtual base class
Virtual base class
Tech_MX
 
Theory of estimation
Theory of estimationTheory of estimation
Theory of estimation
Tech_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 application
Tech_MX
 
Statistical quality__control_2
Statistical  quality__control_2Statistical  quality__control_2
Statistical quality__control_2
Tech_MX
 
Stack data structure
Stack data structureStack data structure
Stack data structure
Tech_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 & applications
Tech_MX
 
Set data structure 2
Set data structure 2Set data structure 2
Set data structure 2
Tech_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 System
Tech_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 pc
Tech_MX
 
More on Lex
More on LexMore on Lex
More on Lex
Tech_MX
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbms
Tech_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 dbms
Tech_MX
 
Ad

Recently uploaded (20)

Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Vibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdfVibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdf
Baiju Muthukadan
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdfAre Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Telecoms Supermarket
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
5kW Solar System in India – Cost, Benefits & Subsidy 2025
5kW Solar System in India – Cost, Benefits & Subsidy 20255kW Solar System in India – Cost, Benefits & Subsidy 2025
5kW Solar System in India – Cost, Benefits & Subsidy 2025
Ksquare Energy Pvt. Ltd.
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Vibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdfVibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdf
Baiju Muthukadan
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdfAre Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Are Cloud PBX Providers in India Reliable for Small Businesses (1).pdf
Telecoms Supermarket
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
5kW Solar System in India – Cost, Benefits & Subsidy 2025
5kW Solar System in India – Cost, Benefits & Subsidy 20255kW Solar System in India – Cost, Benefits & Subsidy 2025
5kW Solar System in India – Cost, Benefits & Subsidy 2025
Ksquare Energy Pvt. Ltd.
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 

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