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.