Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.

Similar presentations


Presentation on theme: "Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in."— Presentation transcript:

1 Chapter 10 Software Engineering

2 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. After reading this chapter, the reader should be able to: O BJECTIVES Understand the role of documentation in software engineering.

3 software engineering 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 SOFTWARELIFECYCLESOFTWARELIFECYCLE 10.1

5 Figure 10-1 System life cycle

6 Figure 10-2 System development phases

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

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

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

10 Testing Phase can be a tedious and time-consuming part of program development. 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. 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. Black Box Testing – done by the system test engineer and the user.

11 DEVELOPMENTPROCESSMODELSDEVELOPMENTPROCESSMODELS 10.2

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

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

14 MODULARITYMODULARITY 10.3

15 Modularity Breaking a large project into smaller parts that can be understood and handled easily. 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 Coupling – is a measure of how tightly two modules are bound to each other The more tightly coupled, the less independent they are. The more tightly coupled, the less independent they are. Loose coupling is desirable Loose coupling is desirable

17 Coupling Data coupling – passes only the minimum required data from the calling function to the called function. 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. 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. 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. 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. 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. Cohesion – is a measure of how closely the processes in a program are related. 1. Functional cohesion – a module contains only one process. 2. 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. 3. Communicational Cohesion – combines processes that work on the same data.

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

20 QUALITYQUALITY 10.4

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

22 Figure 10-5 Quality factors

23 Operability – basic operation 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. 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. 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. Quality is a continuous concept that, like a circle, never ends.

27 DOCUMENTATIONDOCUMENTATION 10.5

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


Download ppt "Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in."

Similar presentations


Ads by Google