Software Development & System Integration: Key Concepts and Best Practices

System Integration: Unifying technology, methodology, and equipment to fulfill business needs by enabling system interaction.

Adverse Effect of Non-Integration: Fragmented data across isolated systems.

System Lifecycles and Integration: Systems persist by integrating legacy processes with current ones.

OLTP (Online Transaction Processing): Prioritizes business support, a primary focus of databases.

OLAP (Online Analytical Processing): Supports informed, strategic decision-making.

Integrating Legacy Systems: Streamlines business operations.

Data Warehouse: A central repository (physical or virtual) for data storage and analysis.

System Effectiveness: Focuses on end-user usability.

Legacy Systems: Often require frequent maintenance.

Java Technologies

JDBC (Java Database Connectivity): Enables Java applications to interact with databases using SQL.

JNDI (Java Naming and Directory Interface): A standard API for accessing directory services (users, machines, objects, networks, etc.).

JTA (Java Transaction API): Provides an interface for managing transactions within applications.

JPA (Java Persistence API): A framework for persisting data in Java applications.

EJB (Enterprise JavaBeans): Server-side components running in an application server container, facilitating distributed, transactional, secure, and portable Java development.

RMI (Remote Method Invocation): Enables remote procedure calls in Java.

CORBA (Common Object Request Broker Architecture): A standard for data exchange between heterogeneous distributed systems.

JSTL (JavaServer Pages Standard Tag Library): Simplifies JSP development by providing tag libraries, reducing the need for Java code within JSP pages.

Servlets: Java classes that dynamically process requests and responses.

Facelets: A JSF sub-project maintained by Sun.

EntityManager: The core service for persistence operations. Entities are Java objects managed like any other Java object.

Databases

Archives: Used for database recovery in case of failure.

LGWR (Log Writer): Transfers information from the redo log buffer to redo log files.

PGA (Program Global Area): Processes data for operations like sorting (e.g., ORDER BY).

Library Cache: Stores SQL and PL/SQL code.

DBWR (Database Writer): Transfers data from the buffer cache to data files.

Software Process Improvement and Quality Standards

  • ISO 9000 Series and ISO 10000: The ISO 9000 series, supplemented by ISO 10000, provides quality management standards.
  • CMM (Capability Maturity Model): A framework describing key elements of effective software processes.
  • CMMI (Capability Maturity Model Integration): A successor to CMM, also with five maturity levels.

Key Concepts in CMM and CMMI

  • Maturity Levels: Indicate the level of process maturity, ranging from chaotic (Level 1) to continuous improvement (Level 5).
  • Key Process Areas (KPAs): Groups of related activities that contribute to achieving specific improvement goals.
  • Quantitative Management: Higher maturity levels emphasize quantitative measurement and control of software processes.

Software Quality Assurance (SQA)

  • SQA and Quality Culture: SQA plays a crucial role in fostering a quality-conscious environment.
  • SQA Team Independence: SQA teams should report directly to senior management to maintain independence from development teams.
  • Collaboration with Developers: SQA professionals should work closely with developers while maintaining their objective evaluation role.

CMM Benefits: Improved productivity, cost control, schedule adherence, and quality.

CMM and CMMI Levels: Provide a roadmap for organizations to improve their software development processes, with higher levels indicating greater maturity and predictability.

Quality Management: The PDCA (Plan-Do-Check-Act) cycle is a fundamental principle of quality management.