Links

Valid XHTML 1.0 Transitional

Intermediate Software Engineering

A Definition of Software Engineering

"The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines"

(Pressman. 1992).

 

Structure Charts

Example:

Structured Chart Example

 

The structured Chart is a diagram which shows the interaction between each function (or module) within a program sequence. The above example shows the interactions of each function which make up the phone bill system.

 

 

The Symbols:

function example This image symbolizes a function (or process).
Loop This image symbolizes a loop
Pass Data This image symbolizes the passing of data between functions
New data This image symbolizes the passing of a new variable that a function has set.
Unconditional action this image symbolizes that one of the following options must be true.
Conditional action This image symbolizes that one or none of the following options are true.
Top

 

Nassi Schneiderman Diagrams

The Nassi Schneiderman Diagram is a way to visually represent a program in a low level design. The structure is ease for a programmer to read and understand.

 

Key Facts

 

Example:

NSD example

Top

 

Software Design Principles

The following software design principles are always followed when designing and building an Object-Oriented system:

 

However, the principles above can also be applied to other methods of programming.

 

Top

 

Coupling and Cohesion

Coupling is the degree of connectedness between classes. Coupling increases when a class becomes more interdependent.

 

Different types of Coupling:

 

Cohesion implies that a component or class encapsulates only attributes and operations that are closely related to one another and to the calss or component itself (Pressman 2004).

 

Different Types of Cohesion:

Top

 

Object-Oriented system: Objects and Classes

Objects

An object is an entity that has a state. An object has a collection of attributes and operations that are used to define and manipulate the object. Essentially, an object is an instance of a class.

 

Classes

A class is a conceptual description of a set of objects. An example of a class would be CARS, an instance of the class CARS would be FORD. FORD will therefore be an object of the class CARS.

 

Class and Object

Top

 

UML Sequence Diagram

Example:

 

UML sequence Diagram

 

"Sequence diagrams depict the dynamic behavior of elements that make up a system as they interact over time" (Si Alhir, 2003).

Top

 

CRC Diagrams (Class Responsibility Collaboration)

Example:

CRC

Responsibilities

The Class Responsibility Collaboration diagram is a way to diagrammatically Show the interaction between classes.

 

Collaborators

If an operation within a class needs to interact with a second class then the class name of the second class is written in the collaboration column alongside that operation.

 

Top

 

Class Relationships

There are many link types you can have in an object-oriented system and they are:

 

 

 

 

 

 

Top

 

Testing

Verification

Are we building the product right? Verification is the part of testing where we have to check whether the program meets the client specification; does the program do what the user asked for? This part of testing should occur throughout the software development cycle.

 

Validation

Are we building the right product? Validation is the part of testing where we have to check whether the program does what the user wants and needs.

 

Testing Stages

 

White Box Testing

Another name for white box testing is "Glass Box Testing" because the tester is able to see the source code wile testing it. Test cases are created from the analysis of the source code.

 

Black Box Testing

The tester does not create test cases based on the source code of the application but from the requirements specification. These tests are created to test whether the program is doing what it is supposed to do.

Top

 

Z Formal Specification Language

A formal specification is simply a description of a system using a mathematical notation (Bowen. 2003).

 

Z Schema

N Natural Numbers
N1 Natural Numbers Starting From 1
P Power Set
# Cardinality
{} Empty Set
' Prime (new)
U Union
\ Difference
V OR
^ AND
? Input
! Output
Changed Changed
Unchanged Unchanged
Empty Empty Set
Is Member of Is a Member of
Is not Member of Is Not a member of
Universal Set

Universal Set

Subset

Subset

<=>

Equivalence

=> Implies
| Constraint
dom Domain
ran Range
y Restriction

Predicate

¬

Not

Top

References

Bowen, Jonathan (2003). Formal Specification and Documentation using Z: A Case Study Approach. International Thomson Computer Press.

 

Si Alhir, Sinan (2003). Learning UML. United States of America: O'Reilly.

Top