1 / 28

Chapter 10

Chapter 10. Software Engineering. O BJECTIVES. 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.

dillon
Download Presentation

Chapter 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10 SoftwareEngineering

  2. OBJECTIVES 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. Understand the software life cycle. After reading this chapter, the reader should be able to:

  3. software engineering –the establishment and use of sound engineering methods and principles to obtain reliable software. • Software is more of an art than a science. • The Art of Computer Programming • 3-volume series • Knuth, in late 1960s and early 1970s

  4. 10.1 SOFTWARE LIFE CYCLE

  5. System life cycle Figure 10-1

  6. System development phases Figure 10-2

  7. Analysis Phase • Define requirements that specify what the proposed system is to accomplish. • Four steps • Define the user • Define the Needs (user) • Define the Requirements (system) • Define the Method

  8. Design Phase • Define how the system will accomplishwhat was defined in the analysis phase. • Modularity – the system is divided into small moudles.

  9. Implementation Phase • Create the actual programs. • Flowchart • Pseudocode • Coding

  10. Testing Phase • can be a tedious and time-consuming part of program development. • White Box Testing –is the responsibility of the programmer, who knows exactly what is going on inside the program. • Black Box Testing –done by the system test engineer and the user.

  11. 10.2 DEVELOPMENT PROCESS MODELS

  12. Waterfall model • A phase cannot be starteduntil the previous phase is completed. Figure 10-3

  13. Incremental model • 1st version – • a simplified version does not include the details. • Main module with calls to empty submodules. • 2nd version – • Add submodules one by one Figure 10-4

  14. 10.3 MODULARITY

  15. Modularity • Breaking a large project into smaller parts that can be understood and handled easily. • Structure chart – used in procedural programming to show the relationship between procedures or functions. • Class diagram –used in object-oriented programming to show the relationship between classes.

  16. Modularity • Coupling –is a measure of how tightly two modules are bound to each other • The moretightly coupled, the lessindependent they are. • Loose coupling is desirable

  17. Coupling • Data coupling –passes only the minimum required data from the calling function to the called function. • Stamp coupling –the parameters are composite objects such as arrays. • Control coupling –the passing of flags that may be used to direct the logic flow of a function. • Global coupling –uses global variables to communicate between two or more functions. • Content coupling –one function refers directly to the data or statement in another function.

  18. Cohesion • Cohesion – is a measure of how closely the processes in a program are related. • Functional cohesion – a module contains only one process. • Sequential Cohesion –contains two or more related tasks that are closely tied together, usually with the output of one flowing as input to the other. • Communicational Cohesion – combines processes that work on the same data.

  19. Cohesion • Procedural Cohesion – combines unrelated processes that are linked by a control flow. • Temporal Cohesion – combines unrelated processes that always occur together. • Logical Cohesion – combines processes that are related only by the entity that controls them. • Coincidental Cohesion – combines processes that are unrelated.

  20. 10.4 QUALITY

  21. Quality software • satisfies the user’s explicit and implicit requirements, • is well documented, • meets the operating standards of the organization, and • runs efficiently on the hardware for which it was developed.

  22. Quality factors Figure 10-5

  23. Quality factors • Operability – basic operation • Accuracy – a system that is not accurate is worse than no system at all. • Efficiency - performance • Reliability • Security • Timeliness • Usability (user)

  24. Quality factors • Maintainability – keep a system running correctly and up to date. • Changeability – program’s complexity and structure • Correctability – mean time to recovery, which is the time it takes to get a program back in operation after it fails. • Flexibility – how easy to make changes • Testability -

  25. Quality factors • Transferability – move data/system from one platform to another and reuse code. • Code Reusability – functions reused in different programs • Interoperability – sending data to other systems • Portability – move software from one hardware platform to another.

  26. Quality circle Figure 10-6 • Quality is a continuous concept that, like a circle, never ends.

  27. 10.5 DOCUMENTATION

  28. Documentation • User Documentation - manual • System Documentation • Define the package itself. • Written so that the package can be maintained and modified by people other than the original developers.

More Related