SlideShare a Scribd company logo
1 of 14
Download to read offline
Chapter 10




        Software
       Engineering
                                                        ©Brooks/Cole,
                                                                2003




                 OBJECTIVES
 After reading this chapter, the reader should
 be able to:
    Understand the software life cycle.


    Describe the development process models.

    Understand the concept of modularity in software engineering.

    Understand the importance of quality in software engineering.

    Understand the role of documentation in software engineering.

                                                        ©Brooks/Cole,
                                                                2003




                                                                        1
10.1
                     SOFTWARE
                        LIFE
                       CYCLE


                                      ©Brooks/Cole,
                                              2003




Figure 10-1
                            System life cycle




                                      ©Brooks/Cole,
                                              2003




                                                      2
Figure 10-2

                  System development phases




                                                                        ©Brooks/Cole,
                                                                                2003




         System Development: 4 Phases

    • Analysis phase:
         – Requirements that the packages should accomplish.
         – 4 steps:
              • Define the user
                 – Accounting package: For any firm
                 – Customized banking package: For a specific bank
              • Define the needs
                 – The best answers come from the users.
              • Define the requirements
                 – Based on the users’ needs. Define system requirements.
              • Define the methods.

                                                                        ©Brooks/Cole,
                                                                                2003




                                                                                        3
System Development: 4 Phases

• Design Phase:
  – How the systems will accomplish what was
    defined in analysis phase.
  – OS, files and databases are determined.
  – Modularity
         – Divide the package into small modules.
         – Link through a main program.
  – Tools
        – Like structure chart.


                                                    ©Brooks/Cole,
                                                            2003




   System Development: 4 Phases

• Implementation Phase:
  – Create actual programs.
  – Tools:
     • Flowchart, and Pseudocode.
  – Coding
• Test Phase
  – Specialists: test engineers.
  – Two kind of tests
     • Black box testing
     • White box testing


                                                    ©Brooks/Cole,
                                                            2003




                                                                    4
System Development: 4 Phases

• Black box testing:
  – Test without knowing how it works.
  – Test according to package requirements.
• White box testing:
  – Know everything about the program
  – Programmer’s responsibility.
     • Testing plans in design stages
     • Eye toward tests for flowcharts and pseudocodes.


                                                          ©Brooks/Cole,
                                                                  2003




    10.2
             DEVELOPMENT
               PROCESS
               MODELS


                                                          ©Brooks/Cole,
                                                                  2003




                                                                          5
Figure 10-3

                         Waterfall model

                                One phase can’t be started until the
                                previous phase is finished.




     Advantage: Each phase is completed
     before the next phase start. So the next
     phase exactly know what to do.
     Disadvantage: When locating a problem, the entire process should
     be investigated.

                                                               ©Brooks/Cole,
                                                                       2003




Figure 10-4
                       Incremental model
                                   A simplified version Add details…
                                   Begin with main module
                                   Each time add a new module
                                   Don’t go to next step until the previous
                                   version works properly.




                                                               ©Brooks/Cole,
                                                                       2003




                                                                               6
10.3

                MODULARITY




                                                 ©Brooks/Cole,
                                                         2003




                    Modularity

• Definition: Break a large project into small
  parts that can be understood and handled.
• Two tools:
  – Structure chart: procedural programming
     • An example is given in later slide.
  – Class diagram: Object oriented programming
• Two measure for modularity
  – Coupling: Data relation
  – Cohesion: Process relation

                                                 ©Brooks/Cole,
                                                         2003




                                                                 7
A Simple Example for Structure
        Chart and Data Flow




                                                                         ©Brooks/Cole,
                                                                                 2003




                             Coupling

• Definition: Measure of how tightly two modules are
  bounded to each other.
      •   Independent modules are prefer   Loosely coupled
      •   Code reusable
      •   Less likely to create errors.
      •   Easy to maintain
   – Data coupling
      • Only passed min. required data to the called function.
   – Stamp coupling
      • Send the composite object (like array) to the called function.
      • Send extra data might result in errors or side effects.

                                                                         ©Brooks/Cole,
                                                                                 2003




                                                                                         8
Coupling
 – Control coupling
    • Pass the flag that direct the logic flow of a function.
    • Used to communicate the status.
 – Global coupling
    • Use global variables to communicate among functions.
    • When changing the program, not impossible to isolate the
      impact.
    • Functions are not easily reused in other programs.
 – Content coupling
    • One function refers directly to the data or statements in
      another one.
    • Break structure programming

                                                                ©Brooks/Cole,
                                                                        2003




                         Cohesion
• Def: Measure how closely the processes in a
  program are related.


  One program
  may have many
  processes.




                                                                ©Brooks/Cole,
                                                                        2003




                                                                                9
An Example to Fork a Process
         (Used in UNIX programming)
• void main()
{
  pid_t p=fork();
  if(p==0)
  {
     //child process
     Do something that a child process should do
   }
   else
   {
       //Parent process
     Do something that a parent process should do
  }
}


                                                    ©Brooks/Cole,
                                                            2003




                              Cohesion
• Functional cohesion
    – Only one process
    – Each function should only do one thing
    – One thing should be done in one place.
• Sequential cohesion
    – The output of one process is input to another
    – Ex: Calculate the price
    – Extend item price Sum item prices Calculate
      the tax Calculate the total.

                                                    ©Brooks/Cole,
                                                            2003




                                                                    10
Cohesion

• Communicational cohesion
   – Process works on the same data
• The above three level are good structured programming
  principles.
• Procedural cohesion
   – Combines unrelated processes that are linked by control flows.
• Temporal cohesion
   – Unrelated processes that occurs together.
   – Init. and finalized of a job.
• Logical and coincidence cohesion
   – Seldom found today.



                                                                      ©Brooks/Cole,
                                                                              2003




     10.4
                           QUALITY




                                                                      ©Brooks/Cole,
                                                                              2003




                                                                                      11
Quality Software

    • How to measure the quality of a software?
    • Definition of Quality software
         – Software that satisfies the user’s explicit and
           implicit needs, is well documented, meets the
           operating standards, run efficiently.
         – Three broad measure
              • See later slide.




                                                              ©Brooks/Cole,
                                                                      2003




Figure 10-5
                             Quality factors
                                                       How long to get
                                                       a program backs
                                                       when it fails.




                                    Sending data to other systems.

                                                              ©Brooks/Cole,
                                                                      2003




                                                                              12
Figure 10-6
                     Quality circle




                                      ©Brooks/Cole,
                                              2003




              10.5

                 DOCUMENTATION




                                      ©Brooks/Cole,
                                              2003




                                                      13
Documentation

• User documentation: manual
• System documentation
   – Analysis phase: information collected, source, methods
   – Design phase: Structure chart
   – Implementation phase
      • General documentation
      • Function documentation
   – Testing phase
• Documentation is an ongoing process until the package
  become obsolete.
                                                          ©Brooks/Cole,
                                                                  2003




                                                                          14

More Related Content

Viewers also liked (12)

akash
akashakash
akash
 
WILDLIFE SAFETY
WILDLIFE SAFETYWILDLIFE SAFETY
WILDLIFE SAFETY
 
negocios electrónicos
negocios electrónicos negocios electrónicos
negocios electrónicos
 
Competencias de las tic
Competencias de las ticCompetencias de las tic
Competencias de las tic
 
Tema 01
Tema 01Tema 01
Tema 01
 
Gopal 110210125076
Gopal 110210125076Gopal 110210125076
Gopal 110210125076
 
Datos abiertos en un mundo de grandes datos (Acuerdo ICSU-IAP-ISSC-TWAS)
Datos abiertos en un mundo de grandes datos (Acuerdo ICSU-IAP-ISSC-TWAS)Datos abiertos en un mundo de grandes datos (Acuerdo ICSU-IAP-ISSC-TWAS)
Datos abiertos en un mundo de grandes datos (Acuerdo ICSU-IAP-ISSC-TWAS)
 
20151015 Tax Credits and the Size of Federal Spending for LinkedIn vs
20151015 Tax Credits and the Size of Federal Spending for LinkedIn vs20151015 Tax Credits and the Size of Federal Spending for LinkedIn vs
20151015 Tax Credits and the Size of Federal Spending for LinkedIn vs
 
Comportamiento ovino
Comportamiento ovinoComportamiento ovino
Comportamiento ovino
 
full project final-PDF
full project final-PDFfull project final-PDF
full project final-PDF
 
Agua y electrolitos
Agua y electrolitosAgua y electrolitos
Agua y electrolitos
 
historia de la danza
historia de la danzahistoria de la danza
historia de la danza
 

Similar to Software eng imp

Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software designTech_MX
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Presentation of the Instance Model Bus
Presentation of the Instance Model BusPresentation of the Instance Model Bus
Presentation of the Instance Model Busjccastrejon
 
Databases Computing Zimbabwe Zimsec Cambridge
Databases Computing Zimbabwe Zimsec CambridgeDatabases Computing Zimbabwe Zimsec Cambridge
Databases Computing Zimbabwe Zimsec CambridgeAlpro
 
CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319ARVIND SARDAR
 
Kutulu: A Domain-specific Language for Feature-driven Product Derivation
Kutulu: A Domain-specific Language for Feature-driven Product DerivationKutulu: A Domain-specific Language for Feature-driven Product Derivation
Kutulu: A Domain-specific Language for Feature-driven Product DerivationOrçun Dayıbaş
 
Getting relational database from legacy data mdre approach
Getting relational database from legacy data mdre approachGetting relational database from legacy data mdre approach
Getting relational database from legacy data mdre approachAlexander Decker
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentationMiha Tisca
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimationPramod Parajuli
 
COCOMO 1 Model ppt AR-1.pdf
COCOMO 1 Model  ppt AR-1.pdfCOCOMO 1 Model  ppt AR-1.pdf
COCOMO 1 Model ppt AR-1.pdf23017156038
 
CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319ARVIND SARDAR
 
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Serge Stinckwich
 
The OSI model and TCP/IP
The OSI model and TCP/IPThe OSI model and TCP/IP
The OSI model and TCP/IPYohniki Gordon
 

Similar to Software eng imp (20)

Clean sw 3_architecture
Clean sw 3_architectureClean sw 3_architecture
Clean sw 3_architecture
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software design
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Presentation of the Instance Model Bus
Presentation of the Instance Model BusPresentation of the Instance Model Bus
Presentation of the Instance Model Bus
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Databases Computing Zimbabwe Zimsec Cambridge
Databases Computing Zimbabwe Zimsec CambridgeDatabases Computing Zimbabwe Zimsec Cambridge
Databases Computing Zimbabwe Zimsec Cambridge
 
cocomo.pptx
cocomo.pptxcocomo.pptx
cocomo.pptx
 
CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319
 
Kutulu: A Domain-specific Language for Feature-driven Product Derivation
Kutulu: A Domain-specific Language for Feature-driven Product DerivationKutulu: A Domain-specific Language for Feature-driven Product Derivation
Kutulu: A Domain-specific Language for Feature-driven Product Derivation
 
Getting relational database from legacy data mdre approach
Getting relational database from legacy data mdre approachGetting relational database from legacy data mdre approach
Getting relational database from legacy data mdre approach
 
Cocomo pooja jadhav
Cocomo pooja jadhavCocomo pooja jadhav
Cocomo pooja jadhav
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentation
 
Strickland dvclub
Strickland dvclubStrickland dvclub
Strickland dvclub
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimation
 
COCOMO 1 Model ppt AR-1.pdf
COCOMO 1 Model  ppt AR-1.pdfCOCOMO 1 Model  ppt AR-1.pdf
COCOMO 1 Model ppt AR-1.pdf
 
CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319CO PO MAPPING CO3I DMS 22319
CO PO MAPPING CO3I DMS 22319
 
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
 
The OSI model and TCP/IP
The OSI model and TCP/IPThe OSI model and TCP/IP
The OSI model and TCP/IP
 

Software eng imp

  • 1. Chapter 10 Software Engineering ©Brooks/Cole, 2003 OBJECTIVES After reading this chapter, the reader should be able to: Understand the software life cycle. Describe the development process models. Understand the concept of modularity in software engineering. Understand the importance of quality in software engineering. Understand the role of documentation in software engineering. ©Brooks/Cole, 2003 1
  • 2. 10.1 SOFTWARE LIFE CYCLE ©Brooks/Cole, 2003 Figure 10-1 System life cycle ©Brooks/Cole, 2003 2
  • 3. Figure 10-2 System development phases ©Brooks/Cole, 2003 System Development: 4 Phases • Analysis phase: – Requirements that the packages should accomplish. – 4 steps: • Define the user – Accounting package: For any firm – Customized banking package: For a specific bank • Define the needs – The best answers come from the users. • Define the requirements – Based on the users’ needs. Define system requirements. • Define the methods. ©Brooks/Cole, 2003 3
  • 4. System Development: 4 Phases • Design Phase: – How the systems will accomplish what was defined in analysis phase. – OS, files and databases are determined. – Modularity – Divide the package into small modules. – Link through a main program. – Tools – Like structure chart. ©Brooks/Cole, 2003 System Development: 4 Phases • Implementation Phase: – Create actual programs. – Tools: • Flowchart, and Pseudocode. – Coding • Test Phase – Specialists: test engineers. – Two kind of tests • Black box testing • White box testing ©Brooks/Cole, 2003 4
  • 5. System Development: 4 Phases • Black box testing: – Test without knowing how it works. – Test according to package requirements. • White box testing: – Know everything about the program – Programmer’s responsibility. • Testing plans in design stages • Eye toward tests for flowcharts and pseudocodes. ©Brooks/Cole, 2003 10.2 DEVELOPMENT PROCESS MODELS ©Brooks/Cole, 2003 5
  • 6. Figure 10-3 Waterfall model One phase can’t be started until the previous phase is finished. Advantage: Each phase is completed before the next phase start. So the next phase exactly know what to do. Disadvantage: When locating a problem, the entire process should be investigated. ©Brooks/Cole, 2003 Figure 10-4 Incremental model A simplified version Add details… Begin with main module Each time add a new module Don’t go to next step until the previous version works properly. ©Brooks/Cole, 2003 6
  • 7. 10.3 MODULARITY ©Brooks/Cole, 2003 Modularity • Definition: Break a large project into small parts that can be understood and handled. • Two tools: – Structure chart: procedural programming • An example is given in later slide. – Class diagram: Object oriented programming • Two measure for modularity – Coupling: Data relation – Cohesion: Process relation ©Brooks/Cole, 2003 7
  • 8. A Simple Example for Structure Chart and Data Flow ©Brooks/Cole, 2003 Coupling • Definition: Measure of how tightly two modules are bounded to each other. • Independent modules are prefer Loosely coupled • Code reusable • Less likely to create errors. • Easy to maintain – Data coupling • Only passed min. required data to the called function. – Stamp coupling • Send the composite object (like array) to the called function. • Send extra data might result in errors or side effects. ©Brooks/Cole, 2003 8
  • 9. Coupling – Control coupling • Pass the flag that direct the logic flow of a function. • Used to communicate the status. – Global coupling • Use global variables to communicate among functions. • When changing the program, not impossible to isolate the impact. • Functions are not easily reused in other programs. – Content coupling • One function refers directly to the data or statements in another one. • Break structure programming ©Brooks/Cole, 2003 Cohesion • Def: Measure how closely the processes in a program are related. One program may have many processes. ©Brooks/Cole, 2003 9
  • 10. An Example to Fork a Process (Used in UNIX programming) • void main() { pid_t p=fork(); if(p==0) { //child process Do something that a child process should do } else { //Parent process Do something that a parent process should do } } ©Brooks/Cole, 2003 Cohesion • Functional cohesion – Only one process – Each function should only do one thing – One thing should be done in one place. • Sequential cohesion – The output of one process is input to another – Ex: Calculate the price – Extend item price Sum item prices Calculate the tax Calculate the total. ©Brooks/Cole, 2003 10
  • 11. Cohesion • Communicational cohesion – Process works on the same data • The above three level are good structured programming principles. • Procedural cohesion – Combines unrelated processes that are linked by control flows. • Temporal cohesion – Unrelated processes that occurs together. – Init. and finalized of a job. • Logical and coincidence cohesion – Seldom found today. ©Brooks/Cole, 2003 10.4 QUALITY ©Brooks/Cole, 2003 11
  • 12. Quality Software • How to measure the quality of a software? • Definition of Quality software – Software that satisfies the user’s explicit and implicit needs, is well documented, meets the operating standards, run efficiently. – Three broad measure • See later slide. ©Brooks/Cole, 2003 Figure 10-5 Quality factors How long to get a program backs when it fails. Sending data to other systems. ©Brooks/Cole, 2003 12
  • 13. Figure 10-6 Quality circle ©Brooks/Cole, 2003 10.5 DOCUMENTATION ©Brooks/Cole, 2003 13
  • 14. Documentation • User documentation: manual • System documentation – Analysis phase: information collected, source, methods – Design phase: Structure chart – Implementation phase • General documentation • Function documentation – Testing phase • Documentation is an ongoing process until the package become obsolete. ©Brooks/Cole, 2003 14