|
Mann Creek Information Technologies, LLC |
|
Analysis Object Interaction Diagram: Graphical representation of an Analysis Scenario, a high level view of how objects or object instances, defined in the Analysis Object Model, interact in order to carry out the system requirements. The focus is on protocol (how objects interact), including event flows or message passing between objects. Sequence diagram in UML.
Analysis (Object) Model: Fundamental way to document static aspects of objects in the problem domain. The basic idea is to decompose a system down into classes of objects that cooperate by passing messages to solve the problem. May use CRC cards to focus on why classes must interact and Analysis Object Interaction Diagrams to focus on how objects interact. Compare with Design (Object) Model.
Analysis Pattern: In the context of Solution Delivery, the realization that a previously-established pattern is occurring in a business domain and the subsequent representation of that essential business concept in a particular business model and design. Contrast with Business Pattern, Design Pattern and Domain Pattern.
Analysis Scenarios: An elaboration of a use case (use case + initial conditions [assumptions] + outcomes). A reflection of the system requirements. Drives the analysis phase. Often used to develop Object Interaction Diagrams.
Application Developer: Responsible for (among other things): coordination of all database access; ensuring that all developed code (including script) is fully functional, documented, verified and tested; researching solutions (innovation); communication with Designers, Analysts and Architects; communication with customers and clients; conducting design reviews; conducting usability and acceptance testing.
Application Implementation Team: Any collection of individuals convened for the purpose of implementing a technical solution to a specific business need. Typical groups are business account teams in Information Technology (Client Services), Web Development and CIS (Customer Information Services).
Application Requirements/Analysis/Design: That portion of the solution architecture pertaining to the definition and analysis of the business problem to be solved and the design of its solution.
Application Topology: The definition of logical “nodes” to illustrate ways to configure interaction between users, applications and data. An application topology focuses on the principal layout of the application and the application logic. It does not show actual middleware, files or databases (see Runtime Topology). An Application Topology leads to a Runtime Topology.
Business Activity Monitoring (BAM):
Business Cash Flow Model: See Model for generic modeling characteristics and to contrast various model types.
Allowances – Portion of sales expected to be returned, lost in delivery, or otherwise requiring the company to refund the customers' money.
Cost of Sales – Expenses directly related to creating
the goods or services being sold (like the cost of raw materials,
salaries of persons turning raw materials into sellable goods,
depreciation of equipment). Excludes expenses like R&D,
marketing, and interest payments on debt.
Gross Profit – Net revenue minus sales cost and taxes.
Gross Revenue – "Raw" sales income; the
payments actually received by the company when customers make
purchases or receive services.
Net Profit – Also net income or profit. After-tax
profit, before paying dividends.
Net Revenue – Income from sales of goods and services,
minus the cost associated with things like returned or undeliverable
merchandise. A.K.A. sales revenue.
Operating Expenses – Expenses associated with running a
business but not considered directly applicable to the current line
of goods and services being sold. These include Sales and Marketing,
R & D, and General and Administrative costs (including the
salaries of people working in these areas).
Receivables – Sales that have not yet been collected.
Sales – Payments promised to be paid by customers for
services and products.
Business
Functional Requirements:
That collection of requirements that drives application
analysis (e.g. external agents (human and non-human) and scenarios of
usage). See Solution
Delivery Components. Contrast with Business
Non-functional Requirements.
Business Intelligence Enabled Environment: An environment that helps an enterprise combine and analyze disparate data sources. Information derived in this manner could provide key insights and data points that can be used to make informed and intelligent business decisions. This environment typically includes systems such as data warehousing, data mining, trend analysis, simulations, and executive and knowledge asset information management. Knowledge assets are comprised of the knowledge regarding markets, products, technologies, and organizations that businesses own or need to own, and that enable its business processes to generate profits and provide value.
Business Non-functional Requirements: That collection of system requirements that are not directly related
to what the system should do for the business
unit. This includes delivery platform definition, development
platform definition, performance, reliability, maintainability, cost,
response time, security, availability, data consistency, data
integrity. See Solution
Delivery Components. Non-functional requirements drive the
system design. Contrast with Business Functional
Requirements.
Business Pattern:
A business practice abstracted to the point that it is
independent of any specific corporation's implementation, yet is
still applicable to all; does not refer to computer-based
solutions or middleware structure that supports implementation.
See, for instance, Collaboration, Extended Enterprise, Information Aggregation and Self Service. Contrast with Analysis Pattern, Design Pattern and Domain Pattern.
Business Practice: (1) The way a company conducts business -- including business principals, business goals, business processes, and services and products provided. (2) The specific implementation of a Business Process or Processes. Takes into consideration the Business Process(es), the Business Process users, and the mechanism(s) of communication between them.
Business Process: A corporate-internal Business System (or set of internal Business Systems) exercised to serve customers. Also, a Business System (or Systems) with workflow. Business Process analysis, design and modeling might be carried out by a Business Analyst or by business analysis/design/modeling specialists:
Business Proocess Analysis – Assemble information on the
connected activities and relationships that transform specific
business sub-process inputs to outputs, by interviewing corporate
decision makers and process personnel. Activities and
relationships may extend across organizational structures and across
international boundaries. Primary work products are a thorough,
documented understanding of the as-is business process requirements
(goals), inputs, outputs, workflow, IT architecture and resource
utilization.
Business Process Design – Given the business process
analysis results, determine how to make the process more efficient
and effective. "Efficient and effective" may be
measured by various metrics, usually determined by business goals
(e.g. ROI). Bottom-line design requirement
should be to satisfy internal and external customers in a way that is
aligned with the overall business goals. Primary work products
are a set of documents that completely quantify the to-be business
process architecture (inputs, outputs, workflow, IT architecture and
resource utilization).
Business Process Model – An abstraction of a Real World
Business System, used to focus attention on
important business process aspects and as a repository for pertinent
business requirement, analysis, design and implementation
information. Model-driven Software
Development necessitates a close continuity between a business model
and any resulting domain software. See Model
for generic modeling characteristics and to contrast various model
types.
Business Process Execution Language (BPEL): Actually WS-BPEL, Web Services Business Process Execution Language. An XML-based language that models the communication between business domains by using Web Service interfaces. Specifies an executable business process that relies on WSDL. Reference SOE/SOA.
Business Process Modeling Language (BPML):
Business Process Modeling Notation (BPMN): A standardized (OMG) graphical notation for drawing business processes in a workflow. BPMN is intended to serve as a common language for bridging the communication gap that frequently occurs between stakeholders in business process design and business process implementation.
Business Requirements Model: Includes (1) Business Rules: statements that express business policies (business term, roles, rights, duties, ...) and constraints on creating, updating, and removing persistent corporate data (rules that get decomposed into component parts, each with accompanying (graphical) constraint and attribute notation). The core of functional requirements. (2) Operational Rules: statements directly related to performance (response time, security, availability, data consistency, data integrity, ...). The core of non-functional requirements.
Business System: A collection of business entities that work together to reach a common goal or goals. For a modeling example see Business Cash Flow Model, where terms are defined above.
Business Unit: A department identified in the business organization chart, with significant responsibilities and contributions toward the financial success of the company.
Business Vision: In the business development process, a statement from upper management addressing the business value of the the business development to be done. This statement may be often referred to during development to refocus parts of the project.
Capacity Planning: A business process that attempts to predict when future load levels will surpass the current load-carrying capacity of a business process. May also include the ability to model, simulate and analyze forecast business processes.
Business Case – A document that justifies conducting a development project, showing not only direct financial costs and benefits but also the costs and benefits of all related business concerns.
Creative Brief – A document addressing the use and value of the development project end product, from the viewpoint of the target audience (a.k.a. customer) and from the viewpoint of the proposing department (a.k.a. client).
Business Requirements – A list of business conditions or capabilities necessary for the development project to be successful.
Analyze Infrastructure Incremental Needs – Process of converting business needs to technical solutions.
Business Model – Used to gather measurable business objectives and convert them into performance requirements.
Functional Model – Describes the business functions performed by an electronic business.
Customer Model – Captures elements of user behavior in terms of navigational patterns, business functions used, frequency of function access and times between function access (e.g. by using CBMG or CVM) [i] for specific e-business functions.
Workload Model – Describes the electronic business workload in terms of intensity (e.g. arrival rates (hits per time unit, page views (transactions) per time)) and navigational patterns (e.g. CSID, cluster analysis (based on transaction volume/types, transaction complexity)) 1 for specific e-business functions.
Enterprise Architecture – The types of hardware (e.g. servers, routers, load balancers, firewalls, disk farms), software (e.g. operating systems, middleware, database management systems), network components and network protocols used to build an electronic business.
Resource Model – Represents, at some modeling level, the infrastructure (hardware, software, support) components of an electronic business – from both the operations and applications environments.
Performance Model – Used to calculate performance metrics (e.g. response time, throughput, utilization, queue lengths) as a function of architecture (expressed through (a) systems parameters such as load balancing philosophy, queue lengths, number of threads supported by database management systems, network protocol restrictions and (b) resource parameters such as disk seek times, latency and transfer rates, network bandwidth, router latency, CPU speeds, support availability), workload intensity (e.g. number of sessions per time unit, number of secure operations required, number of database transactions required per time unit) and customer navigation patterns (e.g. CPU time of transactions at the application server, total transmission time of responses from Web server to customer, total IO time at the database for a specific access function, actual Web pages traversed, customer think time). Modeling may be carried out by actual measurement (e.g. load testing with performance monitoring), by simulation (e.g. discrete event with system and workload parameters) and/or by analytic equation (e.g. queuing models with system parameters).
Infrastructure Design – The process of determining an IT infrastructure that best supports a given electronic business (by comparing measured infrastructure performance with the business-derived performance model; and model verification, model / infrastructure validation).
Change Management: Attempting to reduce the cost of change (CoC) by anticipation and adaption. Anticipation involves planning for the future and predicting what kinds of change are possible. Adaption means waiting until requirements evolve or changes manifest themselves and then building them into the product. 2
Collaboration: A business pattern that captures the interaction among employees, vendors, customers, suppliers and business partners. E-mail is an example of one of these collaboration tools. Other internal examples include real-time information sharing via agents, shared document libraries, discussion databases, newsgroups, and expert identification and information collection through monitored online chat rooms.
Component Design, Build and Test: Each cycle produces a working and tested yet (incomplete) version of the final product.
Content Auditing: That portion of the presentation pertaining to building and verifying the message given to the customer, and the message continuity with the corporate image.
Corporate Shell: The collection of legacy and electronic business (e-business) practices.
Corrective Maintenance: Transfer ongoing maintenance responsibilities to appropriate groups.
Cost Elements: The general, high level accounting categories forecast in yearly budget estimates. These values would be based on high levelproject requirements and specifications statements.
Customer Care Web Initiative: That part of Customer Relationship Management, Enterprise Resource Planning and Supply Chain Management that does not involve extensive use of a Business Intelligence Enabled Environment, but does require an E-commerce Enable Environment (reference the above links and this Figure). The vision of this initiative is that it be a key driver of future customer relationship, resource planning and supply chain management while meeting the needs of today's customers.
Customer
Relationship Management: A business
process used to learn more about customers’ needs and
behaviors in order to develop stronger customer relationships.
CRM sub-processes include prospecting, marketing, sales, customer
service, and support. These sub-processes cover all the ways in
which customers and the business can interact (person to person, call
center, kiosk, voice-response unit and the Internet). Reference
Customer Care Web Initiative.
Design Object Interaction Diagram: Used for dynamic modeling in an object-oriented design. A graphical representation of object collaborations in a design scenario in terms of design objects and their interactions. Is a result of transforming the corresponding Analysis Object Interaction Diagram (if it exists). The driving force behind the transformation is the system architecture. Not present in UML.
Design (Object) Model:
A static structural representation of the software objects
(classes) that comprise the system
implementation. Comprised of design objects and their
attributes, responsibilities, operations and interrelationships
(expressed as association, aggregation and inheritance links).
Focus is on the structure of the software system, as opposed to the
structure of the problem domain. Compare with Analysis (Object) Model.
Design Pattern: In
the context of Solution
Delivery, an abstraction of some re-occurring programming
task. May be motivated by business needs (see Domain Pattern) or technical needs.
General (abstract) design patterns are customized to a particular
programming context in a particular (Object-Oriented) programming
language by an application
developer. See Model/View/Controller
for an exampe of a technical design pattern. Contrast with Analysis Pattern, Business Pattern and Domain Pattern.
Development environments: A framework for the organization and development of systems and/or software. The framework should be based on specific paradigms that leads to an efficient Solution Delivery for the application of interest. Typical paradigms are (The following isn't intended to be complete, just some that I've been involved with. For more "intense" coverage see, for example, this link, this link, this document and these diagrams.):
Data oriented – A software
development environment that focuses foremost on data entities and
the relationships between data entities. An analyst maps the
real world problem domain into data flows and bubbles, where bubbles
correspond to events. (Events are those occurrences that happen in
the outside world that a planned-response system
must respond to.) Each bubble is named according to what the
system does in response to the event. Appropriate input and output
flows are added to each bubble. Data stores are added between
bubbles that need to communicate with persistent data. Group
the bubbles "that deal with common data structures" and
create successive higher level abstractions, the highest of which
shows the entire system in a single bubble. Apply functional
decomposition to define lower level abstractions, as needed.
Data dictionaries need to be defined at each level. One problem
with data flow modeling is that "following the flow of
data" is not one of the basic methods humans use to manage
complexity (abstraction [procedural, data], encapsulation
(information hiding), inheritance, organization [objects, attributes,
classification structures]). A second is how to pick a reasonable
number of bubbles. A third is to keep the data dictionary
tractable. Since this methodology has a strong functional and
interface emphasis, it also suffers from the same resistance to
change as does functional decomposition. (data flow modeling = data
(& control) flows + data (& control) transformations + data
(& control) store + terminators + minispecs + dictionary)
Procedure oriented
– A software development environment that focuses foremost on
selecting the processing steps and sub-steps (functions and
sub-functions). The focus is on what processing is required for the
new system, followed by specifying the
processing and functional interfaces. Requires the analyst to map
from problem space to functions and sub-functions. (The analyst must
internalize the subject matter and then produce the corresponding
required functions and sub-functions. Because of this, there is no
direct map back from the functionality to the subject matter, which
makes it difficult to assess whether or not the requirements are an
accurate statement of what the system must do.) Additional drawbacks
are that (1) processes and functions are the most volatile (often
changed) aspects of system development , and (2) external interfaces
are the second most volatile. If the system development is based on
them (if they are the foundation of all work to follow), changes will
propagate throughout the analysis, design and implementation phases.
(functional decomp = functions + sub-functions + interfaces)
Object oriented – A software development environment that focuses foremost on encapsulating properties and operations into entities called objects. The power of object modeling, as opposed to data flow or functional decomposition modeling, is that by focusing on modeling complete abstractions (objects) which encapsulate both function and data, it's possible to use the same basic concepts during all development (e.g. business and domain modeling) phases. By contrast, one might analyze a problem conventionally in terms of data and then design in terms of function -- e.g. CORBA in a development environment using it's common programming interface (IDL) and common interoperability protocol (IIOP). Objects are defined by method signatures (object-oriented = objects (abstract encapsulation of attributes and functionality) + classification + inheritance + message communication). There are three basic OO development approaches: (1) Scenario-driven: Functional requirements (as Use Cases) are elaborated into Scenarios, which enumerate the assumption and outcome pairs associated with each Use Case. (2) Data-driven: The data portion of the Object Model is developed first from a pre-existing entity- relationship diagram, database schema, or legacy data structures. (3) State-driven: The State Models are developed first, usually from pre-existing legacy State Models.
Service oriented – A software development environment that focuses foremost on providing services between system entities. A service is defined by messages exchanged with other services, and at a higher abstraction level (lowest common denominator) than object-oriented (might have to interface to a procedural language (e.g. COBOL, PL/I), a queuing system (e.g. JMS, MSMQ), and/or an object-oriented system (e.g. J2EE, .NET)). E.g. SOA development environment based on Web Services -- has a common programming interface (WSDL) and a common interoperability protocol (SOAP). Is suited for satisfying interoperability across object, procedure, data environments (introduces another level of indirection).
Agent oriented –
A software development environment that focuses foremost on the
interaction of autonomous agents with built-in decision making
capabilities. Agents are basically "active" objects
(in the OO sense), objects with autonomy, proactiveness,
responsiveness, and social behavior. Agents promote autonomous
actions and decision making, often better enabling the peer-to-peer
interactions found in business information systems.
JADE is an open source, Java-based
Agent-oriented DEvelopment environment.
Logic oriented –
A software development environment that focuses on defining logical
rules ( predicates) and on using those rules
to navigate / alter complex symbolic structures. To help
in making decisions, Agent-oriented applications may employ
Logic-oriented, ontological concepts of beliefs,
perceptions, local memory, goals and commitments. JADE includes the ability to define
an ontology (via Prolog) that can include schemas for the types of predicates, agent actions and concepts that are pertinent to the addressed domain
.
Aspect oriented
– A type of object-oriented software development focusing on
aspects of the Real
World System that cut across a number of unrelated or
loosely-related functions (functions that might even use different
programming languages and different programming paradigms). See
for instance "Single Sign-on Access, Authentication,
Authorization and Administrative Services" in this
Internet / Extranet implementation.
Development Patterns: See Analysis Pattern, Business Pattern, Design Pattern, Domain Pattern.
Domain: A sphere of knowledge. An architecture.
Domain-driven Development Environment: A development environment based on Business Domain Patterns. Incorporates Model-driven Development techniques as necessary.
Domain (Functional) Architecture: That part of the solution delivery process that addresses the following responsibilities:
Business functionality: e.g. business requirements, ROI, ROE, productive lifespan, justification, competitive need and customer satisfaction.
Application organization: e.g. application topologies, software component identification and modularity.
Application software development: e.g. synchronous or asynchronous interactions, industry standard or custom interfaces, tool set determination.
Application management: e.g. application performance, maintenance, cost containment and currency; business forecasting.
Domain (Non-functional, a.k.a. Operational) Architecture: That part of the solution delivery process that addresses the following responsibilities:
System organization: e.g. hardware platforms, network segmentation and runtime topologies.
Software and data components placement: e.g. mainframe or server, DMZ or internal
Service requirements: e.g. system performance, availability and security (SLAs).
System management: e.g. capacity planning, software distribution, backup, recovery, maintenance, cost containment and runtime forecasting.
Domain Expert: In the context of model development, a member of the modeling team with deep knowledge of the Real World System being modeled. Contrast with Analysis Expert and Modeling Expert. See overview of model-driven design/analysis and contrast with domain-driven design/analysis.
Domain Pattern: A Design Pattern with a business-related
motivation (as opposed to a technical one). Also, an identified
Business Pattern generalized toward
business domain modeling. Domain patterns are used in
organizing domain models. A
business might identify several business principles in conjunction
with a business vision, and these principles
(as Domain Patterns) would influence the business domain model.
In a technical sense, these business principles, as Design Patterns,
would be used as software constraints by an application developer.
Contrast with Analysis Pattern, Business Pattern and Design Pattern.
E-commerce Enabled Environment: A corporate environment that enables a business to offer products and services to existing and new users (customers, employees, suppliers, partners) across channels based on Internet technologies. Provides the foundation for managing electronic transactions, and allowing customers to browse public and private information with convenience and confidence that their transactions are secure and their privacy is protected.
Engineering: The analysis, design, construction, operation and maintenance of useful objects or processes for practical purposes. Engineers use imagination, judgment, and reasoning to apply science, technology, mathematics, and practical experience.
Enterprise Architecture: The types of hardware (e.g. servers, routers, load balancers, firewalls, disk farms), software (e.g. operating systems, middleware, database management systems), network components and network protocols used to build an electronic business.
Enterprise Resource Planning: A business process strategy to integrate major back-office applications. The most frequently cited benefits of ERP center around process automation and integration, and making data available to support business analysis. ERP often requires the top-to-bottom transformation of the way a company operates, does business, and plans for the future. Reference Customer Care Web Initiative.
Equipment: Any electronic hardware utilized for the purpose of aiding a company’s business units or implementation teams in completing their business goals. Equipment is distinguished from operational tool sets in that equipment includes only original purchase (hardware and software) costs, not ongoing maintenance costs.
Evolutionary Production Build Cycles: Incrementally building toward (convergence to) evolving client requirements.
Extended Enterprise: A business pattern addressing the interactions and collaborations between business processes in separate enterprises.
Extended Production Build Cycles: Incrementally building toward (convergence to) extended client requirements.
Extranet: A market facing marriage of the Internet and an intranet.(=> protected access to limited internal data by internal and external personnel + limited ability to act on it)
Functional Implementation and Maintenance Activities
& Tasks: In project planning for a particular
application, specific functional domain responsibilities are
subdivided into activities which are subdivided again into personal
task assignments. See
Solution Delivery Activities.
Functional Labor Resources: Those personnel that work for the implementation team in the capacity of supporting ongoing application technical, interface and content innovation and maintenance, working with both functional tool sets and related application equipment. The portion of application labor resources that apply to ongoing maintenance of business unit processes may be charged back to business units. This category includes educational and outside consulting costs.
Functional (Business)
Model: Represents, at some modeling level, the processes
directly related to the functional requirements of the (business) system. Contrast with Operational (Business) Model. See
Model for generic modeling characteristics and
to contrast various model types.
Functional Tool Sets: That set of utilities (software, documents, organizational structures, etc.) that support application innovation and maintenance by the implementation team. The portion of functional tool sets that apply to ongoing maintenance of business processes may be charged back to business units.
Governance (Corporate):
(1) The executive focus on managing business investments and risk.
(2) A business process established
at the executive level, determining who is empowered to make what
decisions.
Executive questions to be answered:
(1) What are the projected business need, risk and ROI?
(2) What is the probability that the need will go away, any risk can be avoided / reduced and the ROI can be achieved?
Governance process:
(a) Spend some money.
(b) Receive some results.
(c) Decide next investment increment.
Fundamental process of establishing a governance framework:
(a) Establish process to determine who is empowered to make governance decisions.
(b) Establish mechanisms and policies to manage the way those decisions are implemented.
Information Aggregation: A business pattern that addresses allowing users (customers, employees, suppliers, partners) to access and manipulate data aggregated from multiple sources. This business pattern captures the process of using tools to extract useful information from large volumes of data, text, images, video, and so on. These tools may personalize data to suit user preferences, distill summary information from large volumes of data, use algorithms to identify trends hidden in the data, or allow users to ask “what-if” questions.
Information Services: That portion of Information Technology (IT) dealing directly with the operational domain, namely IT planning & Budget Services, IT Technical Services and IT Operations.
Interface Design: That portion of the presentation pertaining to the way customers interact with the application software (e.g. navigation), and the way the application software interacts with the customer (e.g. feedback mechanisms).
Internet: An electronic communications network that connects computer networks and organizational computer facilities around the world (outward facing). Compare with Extranet.
Intranet: A network operating like the Internet, having a Web component, but having access restricted to a limited group of internal authorized users (inward facing). (=> protected access to limited internal data by internal personnel + limited ability to act on it)
Java : (Misc. General Definitions, Notes
and Sample Applications -- not intended to be complete)
J2SE – Java 2 Standard Edition, primarily for developing
desktop applications. Contains the core Java API. (e.g. JADE in
Agent oriented development
can use J2SE)
J2EE – Java 2 Enterprise Edition, primarily for
developing server (e.g. Web) applications. (e.g. JADE in Agent oriented development can
use J2EE.)
J2ME – Java 2 Micro Edition, primarily for developing on
resource-constrained devices (e.g. cell phones). (e.g. JADE in
Agent oriented development
can use J2ME.)
WEB-related Applications:
Applet – A client-side Java-based application that runs within a Web browser.
Servlet – A (Web) server-side Java-based application (via a plug-in) that adds dynamic behavior to an HTML page. It receives requests from and returns responses to a URL requester. May be generated from a JSP. Reference Servlet.
JSP (Java Server Page) – A way to write snippets of servlet code (scriplets) directly within a static HTML page. Intended to remove HTML generation from servlets. Reference JSP. JSTL ( Java Standard Template Library) allows JSP programming using tags, rather than the scriptlet code.
AJAX (Asynchronous JavaScript And XML) – A group of inter-related web development techniques used for creating interactive web applications. A primary characteristic is the increased responsiveness, interactivity and usability of web pages achieved by exchanging small amounts of data with the server "behind the scenes" (asynchronous) so that entire web pages do not have to be reloaded each time there is a need to fetch data from the server. AJAX and applets can be used together in the same UIs. AJAX function calls may be via JavaScript or tag libraries (JSP/JSTL). Reference AJAX and AJAX tags.
JavaScript – A scripting language most often (but not always) used for client-side web development. JavaScript is the scripting language in which AJAX function calls are usually made. Reference JavaScript. Dojo is a set of JavaScript libraries that provide a simple API to extended features. One of these features is the ability to make HTTP requests and receive their responses. Aside from providing AJAX functionality, Dojo also provides packages for string manipulation, DOM manipulation, drag-and-drop support, data structures such as lists, queues, and stacks and abstracts browser differences. Reference Dojo. JSON (JavaScript Object Notation) is a Java library that helps convert Java objects into a string representation. JSON is designed to be used in conjunction with JavaScript code making HTTP requests. Reference JSON and Using Dojo and JSON to Build AJAX Applications.
JavaFX – A family of software products (framework) for creating rich Internet applications (RIA), web applications that have the features and functionality of traditional desktop applications but also include interactive multimedia applications. The JavaFX products can build applications for desktop, mobile, TV and other platforms. Contrast Adobe Flash and Microsoft Silverlight. (Needs to be installed on the platform before launching the application?)
DWR (Direct Web Remoting) – Framework which helps developers write web sites that include AJAX technology. It allows code in a web browser to use Java functions running on a web server as if those functions were within the browser.
JSTL (JavaServer Pages Standard Tag Library) – A
component of the J2EE platform. Extends JSP with XML data processing,
conditional execution, loops, internationalization,… tags.
Struts –
Older UI development technology. Reference vs JSF.
JSF (Java Server Faces) – Newer UI development technology. A Java EE application-development architecture that makes Web-based user interface development easier (uses a component-based approach instead of Struts MVC request-driven approach). Reference vs Struts.
ICEfaces – An integrated AJAX application framework that enables J2EE application developers to create and deploy thin-client Rich Internet Applications (RIA) in pure Java.
Swing – A lightweight (as opposed to Abstract Window Toolkit (AWT)) API for providing a graphical user interface to Java programs. Is Model/View/Controller design pattern-based.
Matisse – NetBeans Swing GUI Builder.
NetBeans – A J2EE extension framework that simplifies the development of desktop applications.
RPC –
CRUD –
Business-related Tools:
BPM (Business Process Management) – Methodologies and technologies for automating business operations.
EJB3 (Enterprise Java Beans version 3) – Java component architecture for application development on Java EE servers. Allows the packaging of functionality into reusable components (beans).
Spring Tools – Spring is a Java EE framework that facilitates the mixing and matching of its components to satisfy application requirements. Spring could, for example, do the application Transaction Management and Aspect-oriented Programming (AOP – a part of Spring functionality), but choose to use Spring MVC (a Spring component) or Struts as the MVC framework (or use JSF as the component-based framework). Reference Spring MVC vs Struts vs JSF.
Database Tools:
Persistence – The characteristic of data that outlives the execution of the program that created it.
DAO (Data Access Object) – See Core J2EE Patterns.
JPA (Java Persistence API) – Java framework that
allows developers to manage relational data in J2SE and J2EE.
Reference JPA.
Several providers (e.g. Hibernate and Toplink (Oracle)).
Hibernate Tools – Provide Object-Relational Mapping (ORM) services for the Java language (maps an object-oriented model into a traditional relational database – manages persistence by allowing storage of POJOs (Plain Old Java Objects) in an SQL database, which are transparent to the database application). Uses runtime reflection to determine the persistent properties of a class. The objects to be persisted are defined in a mapping document (__.hbm.xml), which serves to describe the persistent fields and associations, as well as any subclasses or proxies of the persistent object.
Define session
Define transaction
Define, Collect, save POJOs
Commit transaction
End session
Reference Hibernate, Spring, JSF integration.
Web Services-related tools:
Web Services – XML-based technologies for messaging, service description, discovery and extended features that provides a platform for: pervasive, distributed computing open standards; underlying technology independence; uniform enterprise security, transactions and reliability; composite applications. Along with Service-oriented Architecture (SOA) and Business Process Management (BPM) makes up a Service-Oriented Enterprise.
JAX-WS – Sun Java API for XML Web Services, on J2EE 1.5 or later. Supported by MyEclipse.
XFire – Codehaus Java framework for development and consumption of Web Services, on J2EE 1.3 or 1.4. Competed with Axis2. Superseded by Apache CXF, but MyEclipse still (1/09) supports XFire for 1.3 & 1.4 (discontinued starting with MyEclipse 7).
AXIS – Apache XML-based Web Services framework (Axis1 & Axis2). Not supported by MyEclipse.
Process control tools:
Make – A Unix tool (originally) for automatically building executable programs and libraries from source code (C, C++, Java, …). Has its own declarative programming language.
Ant – An XML-based Apache tool that automates the Java software build process.
Maven – An XML-based Apache tool for Java project management in addition to automating the build process (see Ant). Maven Goals can invoke Ant Tasks.
Unit testing tools:
JUnit – JUnit is a unit testing framework for the Java programming language.
HtmlUnit – HtmlUnit is not a generic unit testing framework. It is specifically a way to simulate a browser for testing purposes and is intended to be used within another testing framework such as JUnit.
JWebUnit – JWebUnit is a Java framework that facilitates creation of acceptance tests for web applications. It evolved from a project that was using HttpUnit and JUnit to create acceptance tests. It wraps existing testing frameworks such as HtmlUnit and Selenium with a unified, simple testing interface to allow you to quickly test the correctness of your web applications. “We are now using HtmlUnit.”
HttpUnit – HttpUnit is an open source software testing framework used to perform testing of web sites without the need for a web browser. HttpUnit supports HTML form submission, JavaScript, HTTP basic access authentication, automatic page redirection, and cookies. Written in Java, HttpUnit allows Java test code to process returned pages as text, XML DOM, or containers of forms, tables and links. HttpUnit is well suited to be used in combination with JUnit, in order to easily write tests that verify the proper behavior of a web site.
Lifecycle Tracking: In the sense of Information Technology hardware/software development, the monitoring of the viability of a given business product with respect to, among other things, competitors abilities/products, system responsiveness, system presentation and system currency.
Marketing: Ongoing process of planning and
executing Product Management, Pricing, Placement (distribution) and
Promotopn (advertising).
Product Management – coordinate product planning (internal activities) and product marketing (external activities) to maximize sales revenues and market share.
Pricing – manual/automatic procss of applying prices to purchase/sales orders based on cost/market factors.
Placement (distribution) – broadcasting a product to the next organization down the distribution channel.
Promotion (advetising) – persuation of potential customers to purchase/consume products.
Selling – transfer of products to customers for compensation.
Marketing Research – systematically gathering/recording/analyzing customer/competitor/market information.
Distribution channel – the chain of intermediaries (if any) between the Supplier (Producer) and the customer. May include Retailers, Wholesalers and Distributers.
Supplier (producer) – entity using resources (labor, supplies, plant space) to make things for sale to Customers.
Customer – entities that purchase goods/services generated by Suppliers.
Retailer – sells goods or merchandise from a fixed location in small or individual lots for direct consumption by Customers.
Wholesaler – sells goods or merchandise to Retailers, to industrial, commercial, institutional, or other professional business users, or to other wholesalers and related subordinated services.
Distributer – a middleman between product Suppliers (producers) and Retailer(s).
Mathematics Notes (general definitions): A collection of miscellaneous mathematics notes.
Methodology: A set or system of methods, principles and rules for regulating a given discipline (e.g. OOP (Object Oriented Programming), Structured Programming, Top-down analysis/design, Bottom-up analysis/design).
Model:
A model is an abstraction of a Real World System (RWS) --
used to focus attention on the system aspects
important to the model being built (related to the reason for
creating the model) and not to “reproduce” the
system. A model includes enough information about the RWS
entities, processes, events and states to emulate system
“reality” and excludes information deemed to be
irrelevant. Model process design requires inductive reasoning
(specific => general; from experience & observation to general
conclusion; the premises may predict a high probability of the
conclusion, but do not ensure that the conclusion is true (see
Problem of Induction)) rather than deductive reasoning (general =>
specific; from laws, rules & widely accepted principles to
specific solution; the conclusion is necessitated by, or reached
from, previously known facts). Generally, a model may be
physical (e.g. a wind tunnel model) or conceptual (i.e. of the
mind). Conceptual models might be explicit (expressible by a
closed-form equation, when it exists, or by a numerical approximation
– e.g. a computer simulation) or might be implicit (e.g.
expressible by a diagram or text). Certain analytic models may
incorporate both implicit and explicit techniques (e.g.
computer-based multi-agent systems where agent actions depend on some
form of (rule-based) reasoning). Contrast Analytical
Model, Analysis (Object) Model, Business Model, Business Process Model, Business Requirements Model, Cash Flow Model, Conceptual
Model, Customer Model, Data Flow Model, Design (Object) Model, Domain Model, Functional
(Business) Model, Functional
Decomposition Model, Functional
Model, Object-oriented Model,
Operational (Business) Model, Performance Model, Resource Model, State Model, Systems (Simulation) Model, Use Case Model, Workflow
Model.
Model-driven Development
Environment / Model-based Design / Domain Model: As
opposed to text(code/pure-mathematical)-based design. A method
of reducing the complexity of systems design by
introducing a (graphical, e.g. UML, or
graphical/mathematical, e.g. Petri Nets)
development environment with hierarchies of pre-defined individual
design blocks specific (at some modeling level) to the type of system
being developed. See, for example, Systems
Engineering and Vee-Model
(a popular systems engineering product development process that
purports to improve the systems engineering verification/validation processes). Also see My History with Modeling, Simulators
and Simulations and the referenced overview of model-driven
design/analysis for my variation of this process. In this last
overview, three types of experts are shown collaborating during model
validation, Domain, Model and Analysis.
This collaboration must center around a basic, common understanding
of the problem at hand. Of up-most importance to this
collaboration is an early definition (and use) of domain-specific
terms (a glossary/vocabulary).
Model/View/Controller:
A (originally) Smalltalk Design
Pattern that uses three classes to build and coordinate application
interaction interfaces (one to the application logic (Model), one to
the presentation logic (View) and one to the input logic
(Controller)).
Modeling Expert:
In the context of model development, a
member of the modeling team with the ability to make understandable
abstractions of pertinent domain concepts (analysis of the domain,
expressed by Domain Expert(s)). In
that role, the Modeling Expert is also responsible for representing
the model abstraction analytically through software. Contrast
with Domain Expert, Analysis Expert and Business Process Modeling. See overview of model-driven
design/analysis.
Object Oriented
Analysis: The component of Object Oriented Development
that deals with analysis (what to) by decomposing the analysis
environment into static and dynamic object-oriented
models of domain-meaningful objects.
Object Oriented
Design: The component of Object Oriented Development
that deals with design (how to) by decomposing the design environment
into static and dynamic object-oriented
models of domain-meaningful objects.
Object Oriented
Model: A real world system
abstraction based on the object-oriented
development paradigm. It includes all essential real world
system capabilities / properties and excludes details extraneous to
the model purpose. See Model for generic
modeling characteristics and to contrast various model types.
Ontology: See Semantic
Web.
Operational
Delivery: The set of operational methodologies (e.g.
Capability Maturity Model (CMM), Rational Unified Process
(RUP), International Standards Organization (ISO), Extreme
Programming (XP)), processes (e.g. risk
identification, testing, implementation), practices (e.g. project
management, collaboration, technical) and people (with skills)
necessary to deliver the goods and services being sold.
Ultimately, the people and their skills determine the delivery
success. [All methodologies are processes, not all processes
are methodologies.]
Operational Labor Resources: Those personnel that work in the capacity of supporting ongoing computer systems-level innovation and maintenance, working with both operational tool sets and equipment. The portion of operational labor resources that apply to ongoing maintenance of business unit processes may be charged back to business units. This category includes education and outside consulting costs.
Operational (Business)
Model: Represents, at some modeling level, the
infrastructure (hardware, software, support) components of an
electronic business – from both the operations and applications
environments. Contrast with Functional
(Business) Model. See Model for generic
modeling characteristics and to contrast various model types.
Operational Support:
Operational Tool Sets: The set of utilities (software, documents, organizational structures, etc.) that support computer equipment systems-level innovation and maintenance. The portion of operational tool sets that apply to ongoing maintenance of business processes may be charged back to business units.
Pervasive Devices: The collection of electronic devices used for communicating with the World Wide Web.
Telephone:
Hand Held Device:
Pager:
Cell Phone:
Workstation:
Smart Phone:
Laptop:
Portfolio Management: In the sense of Information Technology development, the art of selecting and managing technical projects perceived to be beneficial to the business vision. See Corporate Governance.
Presentation: That portion of the solution architecture pertaining to visual design (includes aesthetics, interface design and content auditing).
Production: The environment in which a working, documented and tested version of the current release of a product resides.
Production Build: Build and test the production environment.
Production Build Cycles: Incrementally building toward (convergence to) the original long range client objectives.
Production Deploy: Produce a working, documented and tested version of this release of the product in the production environment.
Project Brief: A document addressing the use and value of the development project end product, from the viewpoint of the target audience and from the viewpoint of the proposing department.
Project Launch: Requirements, business context and architectural scoping; exploration of choices; possible prototyping.
Project Rating Process: Negative Value Definitions. Reference "WSC Members: Rate Individual New Projects" in Web Steering Committee Prioritization.
Content Management Requirements – The degree to which the project will demand ongoing allocation of web team resources in order to make revisions to the graphic and textual content.
Technical Feasibility Demands – How difficult will it be to implement the project from the standpoint of hardware availability and software acquisition or development?
New Data Requirements – The degree to which this project requires the development of new data rather than drawing it from an established source.
Data Protection Risk – The degree to which the project places existing operational or analytical data at risk for corruption as a result of web-based transactions.
Data Confidentiality Risk – The degree to which this project places confidential customer, financial or other forms of data at risk of being indiscriminately dispersed.
Project Rating Process: Positive Value Definitions. Reference "WSC Members: Rate Individual New Projects" in Web Steering Committee Prioritization.
Benefit Effectiveness Measurability – The level of ease with which it could be measured as to whether the project is producing its intended benefit. One should take into consideration such factors as cost, level of measurement effort and likelihood of accurate measurement results.
Productive Lifespan – The length of time the project will endure before it will require major revisions or removal.
Customer Satisfaction Improvement – The degree to which the project will enhance customer satisfaction.
Respects Regulatory Requirements – The degree to which the project will either meet or exceed regulatory agency expectations or regulations.
ROI (Return On Investment) – Does the project have a rate of return on investment? And is it sufficiently substantiated? See below.
ROE (Return on Effort) – Is there a balance between the efforts it will take to produce the project with the benefit it will create?
Supports Corporate Strategic Needs – How strongly does the project contribute to the achievement of corporate strategic goals?
Ease Competitive Pressure – The degree to which the project directly addresses a challenge from competitive forces or prepares the company to meet such challenges in the future.
Supports Other I/T – The degree to which this project ties into existing Information Technology (I/T) projects and the degree to which this project establishes a foundation for future I/T projects.
Prototype: A (programming) method of studying and confirming system requirements / design at an early stage of development. See: staffing; requirements analysis; project launch; interface development; taxonomy.
Return on Investment (ROI): Most generally, ROI = results / investment, which implies to increase ROI requires either an increase in results for the same or smaller investment or a decrease in investment for the same or greater result. Results and investment can be measured by various metrics. Components to be investigated: (1) Value (income) produced; (2) Expenditures; (3) Timing of expenditures and income.
Risk: The chance (e.g. high,
medium, low) of loss (e.g. severe, moderate, nominal) to some entity
(e.g. customer, client, operations, business
process) or in some portion of a process (e.g. requirements
identification, design, implementation). From a high level,
risks identified during business
process modeling can be separated into (1) those that come from business vision formalization and business
requirements and (2) those that come from the technical
implementation of the vision, the requirements and the customer
needs. From a Web development point-of-view, risk management can include several
overlaping corporate organizational entities.
Risk Investigation: Identify, categorize, mitigate events that may jeopardize one or more of the project’s objectives.
Runtime Topology: The definition of “nodes” to group functional and operational components of an Application Topology. This is basically an implementation solution to an Application Topology, including firewalls, servers, load balancers, directory and security services, and databases -- without actually naming brands (see Application Development Projects: Internet / Extranet). Runtime Topologies (development, test and production) eventually get mapped into specific products (e.g. specific application servers, operating systems, LDAP servers, …).
Self Service: A business pattern that captures the essence of direct interactions between interested parties and a business. Interested parties include customers, business partners, stakeholders, employees, and all other individuals with whom the business intends to interact.
Semantic Web (Ontology, Taxonomy): Intended to become the next generation of the Internet, where Internet components understand the meanings of words and relationships. See Semantic Web (for an overview) and Agent Oriented Development (to define an ontology that includes schemas for the types of predicates, agent actions and concepts that are pertinent to the addressed problem domain). The Semantic Web includes hyperlinks and resource metadata that are based on well-defined concepts, relationships and constraints defined in an underlying vocabulary.
Service Level Agreement (SLA):
A formal agreement between technical service providers and technical
service requesters. Usually includes service measurement
metrics such as availability, throughput, response time and mean time
between failure. May tie performance to the requirements of a
particular business process, with penalties for missing
requirements. Sample SLA.
Simulation Analysis
Expert: In the context of simulation
model development, a member of the
modeling team with deep knowledge of statistics, probability and
stochastic analysis. Responsible for gleaning pertinent
information from model simulations and for relaying that information
in a meaningful way to other modeling experts. Contrast with Domain Expert, Modeling
Expert and Business Process
Analyst. See overview of model-driven
design/analysis.
Simulation (Systems) Model: Reference Notes On Systems Modeling. See Model for generic modeling characteristics and to contrast various model types.
Single Sign-on Access: The ability of an Internet/intranet/extranet customer to log into a restricted environment once (username:password), and to repeatedly access portions of that environment without again logging in -- for as long as that customer's original login session is active. See, for example, IBM's Tivoli Access Manager.
SOE (Service-Oriented Enterprise): There are two general approaches to using XML and Web Services for integration and interoperability in an SOA-type environment; (1) WSI (Web Services Integration) - tactical and opportunistic and (2) SOI (Service-oriented Integration) - strategic and systematic (ref. Newcomer 3 ). High level SOE Components:
XML (eXtensible Markup Language) (W3C) – A common, independent data format across the enterprise and beyond that provides: (a) standard types and structures (.dtd, .xsd), independent of any programming language, development environment, or software system; (b) pervasive technology for defining business documents [1] and exchanging business information, including standard vocabularies for many industries; (c) ubiquitous software for handling operations on XML, including parsers, queries and transformations.
WS (Web Services) – XML-based technologies for messaging, service description, discovery, and extended features, providing: (a) pervasive, open standards for distributed computing interface descriptions and document exchange via messages; (b) independence from the underlying execution technology and application platforms; (c) extensibility for enterprise qualities of service such as security, reliability, and transactions; (d) support for composite applications such as business process flows, multi-channel access, and rapid integration.
SOA (Services-Oriented Architecture) – A methodology for
achieving application interoperability and reuse of IT assets that
features: (a) a strong architectural focus, including governance,
processes, modeling and tools; (b) an ideal level of abstraction for
aligning business needs and technical capabilities, and creating
reusable, coarse-grained business functionality; (c) a deployment
infrastructure on which new applications can quickly and easily be
built; (d) a reusable library of services for common business and IT
functions. Also, a methodology for building IT systems
in which business services (requirements, customers, clients,
processes…) are the key organizing principals. Resulting
IT systems are ultimately tied to any underlying development
environment technology ((CICS, IMS – mainframe), CORBA (OMG),
J2EE, and COM/DCOM); may or may not be through WSDL (W3C) and SOAP
(W3C) (object, procedure and data oriented development tend to tie
the resulting systems directly to the underlying development
environment technology).
BPM (Business Process Management) – Methodologies and technologies for automating business operations that: (a) explicitly describe business processes so that they are easier to understand, refine and optimize; (b) make it easier to quickly modify business processes as business requirements change; (c) automate previously manual business processes and enforce business rules; (d) provide real-time information and analysis on business processes for decision makers. IBM Business Integration Reference.
Solution
Delivery: Solution Delivery is a process geared toward the
design and implementation of systems, which
includes sub-processes (activities and activity tasks).
Solution Delivery is associated with and accomplished within a
particular Development
Environment. A solution delivery activity is a state of
product development that focuses on making progress on a particular
development aspect or facet. The activities of most interest
here are:
Requirements – Solution Delivery activity that defines
the purpose of the development, and the conditions or capabilities
needed to solve a problem or achieve an objective. Functional
business requirements can be gleaned from a Business Case, and
functional customer requirements from a Project Brief.
Non-functional (a.k.a. operational) requirements are gleaned from
development and delivery platform needs, and performance,
reliability, availability, interoperability, persistence,
maintainability and cost needs. Usually includes a problem statement.
The main work product is a series of use
cases prioritized by importance, window of opportunity and technical
complexity.
Analysis – Solution Delivery activity that examines the
use cases, defined in the functional requirements activity, to gain a
better understanding of the problem. The main work product is a
series of detailed analysis scenarios and/or diagrams that describe
the component parts necessary to accomplish development, and how
these component parts interact.
System Design – Solution Delivery activity that maps an
analysis into a selected architecture, designing a solution to the
problem. Specifically, the main activities involve planning a
solution to the functional problem detailed in the analysis, with
constraints provided by the non-functional requirements. Application
Design, a component of System Design, starts by dividing the
application into subsystems and defining the Application
Architecture. The main work product is identification of the
hardware/ software architecture necessary to support this application
-- including runtime, test and development structure, communication,
security, component distribution, persistence, information recovery
and error handling.
User Interface Design – Solution Delivery activity that
describes how users will invoke the functions specified in the
requirements and analysis models, and the content necessary to convey
the client’s ideas. The main work products are building
consistent screen flows and layouts, enforcing required interface
standards, and transforming the information intent into a visual
design that meets the client’s standards while meeting the
corporate content and design guidelines.
Build – Solution Delivery activity that pieces together
(builds) the product. This tends to be highly iterative, and
generally proceeds in a collaborative environment between multiple
disciplines (roles). This mainly involves bringing graphic design,
information content and application development (from the UI Design
activity) together within the architectures designed in the System Design activity. The main work products
are graphical layout, site mapping, code, and user support materials
(documentation). The ultimate goal is to produce a testable version
of the application.
Test – Solution Delivery activity that checks the build
activity work products to determine if they satisfy specific quality
criteria. May be subdivided into internal verification (that the
problem is being solved correctly) and validation (that the correct
problem is being solved). Types of testing include: unit, usability,
function, integration, user acceptance, load, stress and performance.
The main purpose is to ensure that the application meets the
requirements set forth in the requirements activity.
Implement – Soution Delivery activity that creates a
working solution of the built and tested System and UI Design
activities.
Maintain – Solution Delivery activity that includes
error detection and correction, and the addition of enhancements
required to adapt the application to a new environment or meet
requirements that were not initially specified. Conducted after the
solution is delivered to the client. Maintenance is actually a full
path through the system development cycle (must
have an understanding of the business and technical requirements,
analyses, systems designs, user interface designs, and building,
testing and implementation).
Special Needs: In a project cost management sense, hardware/software/development that can be identified for the use only by particular business units or implementation teams. May/should be charged back to those units and/or teams.
Supply Chain Management: A business process that supervises the flow of products and information as they move along a supply chain. Successful supply-chain management allows an enterprise to anticipate demand and deliver the right item to the right place at the right time, at the lowest possible cost. SCM aims at improving the efficiency of all the links in the supply chain — thereby providing measurable benefits to the business (e.g. reduced costs, faster cycle times and improved product quality). Reference Customer Care Web Initiative.
Synthetic Reasoning: With regard to systems modeling and model-driven design, a model may be physical (e.g. a wind tunnel model) or conceptual (i.e. of the mind). Conceptual models might be explicit (expressible by a closed-form equation, when it exists, or by a numerical approximation – e.g. a computer simulation) or might be implicit (e.g. expressible by a diagram or text). Certain analytic models may incorporate both explicit and implicit techniques (e.g. computer-based multi-agent systems where agent actions depend on some form of synthetic (rule-based) reasoning).
System: a collection of objects that interact to accomplish a common goal. The system may incorporate several different system processes .
A system process is a time-ordered sequence of system events directed toward some common end. A system process coordinates the lives of the process objects. Computer programming system process examples include: Agile, RAD, RUP, Waterfall, XP.
A system event is a object activity that may change the system state.
The system state is that collection of information necessary to describe the system at any particular time.
Systems Analyst/Designer: As an analyst, knowledgeable and experienced in translating a business requirement into an information technology solution. As a designer, put mechanisms (e.g. runtime and development structure, communication, security, component distribution, persistence, information recovery and error handling) in place that ensure there is a physical system providing the results specified by the analysis. See, for example, my Systems Architecture overview and a specific implementation.
Systems Architect: A participant in Business Analyst' meetings as an observer, to better understand the rationale driving the business process. Interacts with the Systems Analyst/Designer to define and refine the next level of details during the analysis phase. Once the Business Analyst and the various business specialists have modeled the business processes to the lowest level that the business can define without going into the technical details, jointly review as-is business services to determine whether the services already exist or will need to be built. The Systems Architect understands the business goals of the system to be developed and has specialized understanding of particular aspects of the business. The Systems Architect fully understands the current IT architecture and is responsible for mapping new business goals to technical solutions compatible with current IT structure. The solution architect also understands industry patterns and approaches related to the solution such as SOA and Web Services. See, for example, my Systems Architecture overview and a specific implementation.
Taxonomy: See Semantic
Web.
Technical Development: That portion of the solution architecture pertaining to software development (e.g. database interfaces, error messages).
Uncertainty types: [This
breakdown is in the context of probabilistic simulations and doesn't
appear to match a general uncertainty taxonomy; see for example Uncertainty.]
Aleatory – results from variability intrinsic to system behavior. AKA objective uncertainty.
Analysis technique: Frequentist probability theory; used by
Monte Carlo simulation (models first order uncertainties and discrete
event simulations -- which use classical probability theory (e.g.
probability distribution functions).
Epistemic – results from gaps in knowledge
(stochastically unknown) or a deviation from reality (systemically
unknown). AKA subjective uncertainty. (Epistemology: the branch of
philosophy which is concerned with the nature and scope of
knowledge. According to Plato,
knowledge is a subset of the intersection of beliefs and truths.)
Relativist epistemology centers on the belief that knowledge is
relative to cuture and history.
Analysis technique: Generally incorrect to represent epistemic
uncertainty with probability density functions -- use Bayesian
probability theory (subdivided into Objective and Subjective Bayesian
inference). See Bayes'
Theorem and Bayesian
probability. Typical epistemic knowledge unknowns in the
design and risk worlds: requirements,
environment, future design decisions, emergent attributes.
Both types of uncertainty are present in design and risk assessment. Schedule risk is predominately epistemic. Software quality risk can be either epistemic or aleatory. Frequentist and Bayesian interpretations disagree about the ways in which probabilities should be assigned in applications. Frequentists assign probabilities to random events according to their frequencies of occurrence or to subsets of populations as proportions of the whole, while Bayesians describe probabilities in terms of beliefs and degrees of uncertainty. The articles on Bayesian probability and frequentist probability discuss these debates in greater detail.
Unified
Modeling Language (UML): The attempt by Rumbaugh, Jacobson
and Booch (e.g. ref. "The Unified Modeling Language Reference
Manuel, Second Edition") at formalizing a language to
"...specify, visualize, construct and document the artifacts of
a software system.". UML relies heavily on several diagram
types to communicate system component attributes and relationships --
the most popular diagram types being activity, interaction, use case, object/class and package. Diagram
components (shapes, icons, key words, line styles, multiplicity,
constraint types, ...) are rigorously defined so that
UML-knowledgeable people viewing these diagrams operate from a common
dictionary of terms. There is a level, however, at which
diagrams (UML or otherwise) lose their worth (become to time
consuming to maintain and interpret) -- and that level generally
occurs when the detail necessary to convey an idea diagrammatically
surpasses the syntactic capability of the diagram components.
The ultimate, detailed description of a software system lies in the
software code itself; in the end, actual code interpretation (and the
occasional in-line, up-to-date comment) must be relied on to
"...specify, visualize, construct and document" the
artifacts of a software system.
Use Case Model: Captures functional requirements and consists of a set of actors (external agents -- human or other systems), use cases (representing usages of the system by the actors or usages of the actors by the system -- externally visible system behavior that helps define the functional system architecture), and links between the actors and the use cases. For examples, see Selected Technical Application Development Projects.  Not concerned with permutations of assumptions. Use Case Models drive the analysis phase, and Analysis Scenarios are derived from Use Cases.
Validation: That the correct problem is being solved.
Verification: That the problem is being solved correctly.
Vocabulary: A shared
language between domains that expresses the
information necessary for communication. A thesaurus is a
detailed vocabulary that is part of an ontology
, and as such operates in conjunction with concepts such as syntax
(usage rules), semantics (word meanings) and taxonomy (word
classifications). XML vocabularies may be
complex (as in a thesaurus) or simple (as in just expressing the
correct XML syntax). In the spirit of the Semantic Web, XML vocabularies should be
accessible by both humans (e.g. via HTML through XSLT)
and applications (e.g. directly by databases or indirectly
through XML parsers).
Web = World Wide Web (WWW): A part of the Internet designed to allow easy, unrestricted navigation of the network through use of hypertext links between different addresses and graphical user interfaces. Also see intranet, extranet.
Work Products: The outcome of an activity task. May or may not be a deliverable.
XMI (XML Metadata Interchange): A standard adopted by the OMG (Object Management Group) for representing objects in XML (XML is not object-oriented). This standard facilitates the transfer of information between UML applications and the creation of XML schemas from UML models.
XML (eXtensible Markup Language):
(1) XML is a universally accepted, interpreted, tag-based computer
language used for representing data on the World
Wide Web. A collection of properly syntaxed XML statements
(elements) is called an XML document. XML documents can be
manipulated so that the information they contain can be readily
presented to humans (e.g. as HTML on the WWW) and/or can be digested
by computer applications (e.g. by database management systems).
This manipulation is generally done by one or more XSLT
scripts, contained in XSL (XSD) files and written in XML. (2)
In a particular domain, XML is often used to build a domain vocabulary. OWL, Web Ontology
Language, written in XML, is also often used (see Semantic Web). (3) XML is the basic
language used by many UML applications for
representing domain systems. (4) XMI provides a standard for representing modeled
objects in XML. (5) XML is an important component of an SOE. See XML
Usage.
XML schema: A file that
describes the "type" of another XLM file.
"Type" is typically expressed in terms of constraints on
the structure and content of the other file. XSL (XML
Schema Language, from W3C, written in XML, also called XSD) and DTD
(Document Type Definition, written in its own language) files are
kinds of XML schemas. CSS (Cascading Style Sheets) are to HTML
as XML schemas are to XML. CSS and XML schemas can together
operate on XML files. XML schemas can be a part of a domain's vocabularly. XSLTs
(XML Schema Language Transformation) are XSLs written to transform
XML files from one vocabulary to another. See XML Usage.
XSLT (eXtensible Stylesheet
Language: Transformations) Script: A script, written in
XML, that directs how a given XML document will be transformed.
Created by coordinating two XML schemas in
an XSLT editor. Then, using a properly created XSLT file, a
transformation processor and a XML file that has been validated
against the "from" XML schema, an XML file consistent with
the "to" XML schema can be created. See XML Usage.
i Scaling for E-Business, Menasce, Daniel A. and Almeida, Virgilio A. F., Prentice-Hall, Inc. 2000.
1 Sometimes an organization will know the key business documents that need to be exchanged (e.g. purchase order or employee record) prior to defining the services and the service interfaces, and other times, an organization will define the business documents and the service interface together. It is important that all related services share the same service-level data model, including the structure and semantics of the business documents.
2Agile Project Management, Highsmith, Jim, Addison Wesley, 2004.
3Understanding SOA with Web Services, Newcomer, Eric and Greg Lomow, Addison Wesley, 2005.