Documente Academic
Documente Profesional
Documente Cultură
Managing Systems
Implementation
Erwin Ong, MSCS, MBA, PMP
Software Quality Assurance
Software Engineering
• Software engineering is a software development process that
stresses solid design, accurate documentation, and careful testing.
• Software Engineering Institute (SEI) is a leader in software
engineering and provides quality standards and suggested
procedures for software developers and systems analysts.
• To achieve that goal, SEI designed a set of software development
standards called the Capability Maturity Model (CMM).
• More recently, SEI established a new model, called Capability
Maturity Model Integration (CMMI)®, that integrates software
and systems development into a much larger framework called
process improvement.
ISO
• International Organization for
Standardization (ISO) is a worldwide
body that establishes quality
standards for products and services.
• ISO seeks to offer a global consensus
of what constitutes good management
practices — practices that can help
firms deliver consistently high-quality
products and services.
ISO 90003:2004
• A company can specify ISO standards when it purchases
software from a supplier or use ISO guidelines for in-house
software development to ensure that the final result measures
up to ISO standards.
• ISO requires a specific development plan, which outlines a
step by- step process for transforming user requirements into
a finished product.
• ISO standards can be quite detailed.
Application Development
Application Development
• Application development is the process of constructing the
programs and code modules that serve as the building blocks
of the information system.
• In Chapter 1, you learned that structured analysis, object-
oriented (O-O) analysis, and agile methods are three popular
development options.
• Let us review the tasks involved in the next slide.
Recall
• Traditional Methods
• Agile Methods
Recall the System Development
Tools you can use:
• Entity relationship diagram
• Flow chart
• Pseudocode
• Decision tables & decision trees
• All project management tools
Structured Application
Development
Structured Application
Development
• Structured application development usually involves a top-down
approach, which proceeds from a general design to a detailed
structure. After a systems analyst documents the system’s
requirements, he or she breaks the system down into subsystems
and modules in a process called partitioning.
• This approach also is called modular design and is similar to
constructing a leveled set of DFDs.
• Because all the modules must work together properly, an analyst
must proceed carefully, with constant input from programmers and
IT management to achieve a sound, well integrated structure. The
analyst also must ensure that integration capability is built into
each design and thoroughly tested.
Structure Charts
• Module
• Data couple
• Control couple
• Condition
• Loop
Cohesion & Coupling
Cohesion & Coupling
Cohesion & Coupling
Object-Oriented Application
Development
Object-Oriented Application
Development
• When implementing a structured design, a structure chart is
used to describe the interaction between program modules,
as explained earlier. In contrast, when implementing an
object-oriented design, relationships between objects already
exist. Because object interaction is defined during the O-O
analysis process, the application’s structure is represented by
the object model itself.
Object Oriented Cohesion &
Coupling
• The principles of cohesion and coupling also apply to object-oriented
application development. Classes should be as loosely coupled
(independent of other classes) as possible.
• In addition, an object’s methods also should be loosely coupled
(independent of other methods) and highly cohesive (perform closely
related actions).
• By following these principles, classes and objects are easier to
understand and edit. O-O programmers who ignore cohesion and
coupling concepts may end up creating a web of code that is difficult
to maintain.
• When code is scattered in various places, editing becomes
complicated and expensive.
Agile Application Development
Review our
detailed Agile
topic and read
this part of the
book.
Coding
• Coding is the process of turning program logic into specific
instructions that the computer system can execute. Working
from a specific design, a programmer uses a programming
language to transform program logic into code statements. An
individual programmer might create a small program, while
larger programs typically are divided into modules that
several individuals or groups can work on simultaneously.
Testing
Testing (Important)
• After coding, a programmer must test each program to make
sure it functions correctly.
• This process detects syntax errors, which are language
grammar errors. The programmer corrects the errors until the
program executes properly.
• Next, the programmer desk checks the program. Desk
checking is the process of reviewing the program code to
spot logic errors, which produce incorrect results. This
process can be performed by the person who wrote the
program or by other programmers.
Testing (Important)
• Many organizations require a more formal type of desk checking
called a structured walkthrough, or code review. Typically, a
group of three to five IT staff members participate in code review.
• In addition to analyzing logic and program code, the project team
usually holds a session with users called a design walkthrough,
to review the interface with a cross-section of people who will work
with the new system and ensure that all necessary features have
been included.
• The testing of an individual program or module is called unit
testing. The objective is to identify and eliminate execution errors
that could cause the program to terminate abnormally, and logic
errors that could have been missed during desk checking.
Testing (Important)
• Testing two or more programs that depend on each other is
called integration testing, or link testing. For example,
consider an information system with a program that checks and
validates customer credit status, and a separate program that
updates data in the customer master file. The output from the
validation program becomes input to the master file update
program. Testing the programs independently does not
guarantee that the data passed between them is correct. Only
by performing integration testing for this pair of programs can
you make sure that the programs work together properly.
• After completing integration testing, you must perform system
testing, which involves the entire information system.
Testing (Important)
Additional Reading
Please Study because this Included in our final exam
• https://www.invensis.net/blog/it/software-test-design-techniqu
es-static-and-dynamic-testing/
• https://www.testingexcellence.com/istqb-tutorial/
• https://www.swtestacademy.com/software-testing-techniques/
• https://www.guru99.com/software-testing-techniques.html