Mac Music  |  Pc Music  |  440 Audio Software  |  440Forums  |  440tv  |  Zicos  |  AudioLexic

Software application

From AudioLexic

Jump to: navigation, search

Software Application-- An executable software component or tightly coupled set of executable software components (one or more), deployed together, that deliver some or all of a series of steps needed to create, update, manage, calculate or display information for a specific business purpose. In order to be counted, each component must not be a member of another application.

Software Component - An executable set of computer instructions contained in a single deployment container in such a way that it cannot be broken apart further. Examples include a Dynamic Link Library, an ASP web page, and a command line EXE app. A zip file may contain zero or more software components because it is easy to break them down further (by unpacking the ZIP archive).

Software Application and Software Component are technical terms used to describe a specific instance of the class of Application software for the purposes of Application Portfolio Management. See application software for a definition for non-practitioners of IT Management or Enterprise Architecture.

The art and practice of Software Application Portfolio Management requires a fairly detailed and specific definition of an application in order to create a catalog of existing applications that are installed in an organization.

Contents

[edit] The requirements of a definition

The definition of an application has the following needs in the context of Application Portfolio Management:

  • It must be simple for business team members to explain, understand, and apply.
  • It must make sense to development, operations, and project mgmt in the IT groups.
  • It must be useful as an input to a complex function whose output is the overall cost of the portfolio. In other words, there are many factors that lead to the overall cost of an IT portfolio. The sheer number of applications is one of those factors. Therefore, the definition of an application must be useful in that calculation.
  • It must be useful for the members of the Enterprise Architecture team who are attempting to judge a project with respect to their objectives for portfolio optimization and simplification.
  • It must clearly define the boundaries of an application so that a person working on a measurable 'portfolio simplification' activity cannot simply redefine the boundaries of two existing applications in such a way as to call them a single application.

Many organizations will readdress the definition of an application within the context of their IT Portfolio Management and governance practices. For that reason, this definition should be considered as a working start.

[edit] Examples

[edit] Inclusions

By this definition, the following 'things' are applications:

  • A web service endpoint that presents three web services: InvoiceCreate, InvoiceSearch, and InvoiceDetailGet
  • A service oriented business application (SOBA) that presents a user interface for creating invoices, and that turns around and calls the InvoiceCreate service. (note that the service itself is a different application).
  • A legacy system composed of a rich client, a server-based middle tier, and a database, all of which are tightly coupled. (e.g. changes in one are very likely to trigger changes in another).
  • A web site publishing system that pulls data from a database and publishes it to an HTML format as a sub-site on a public URL.
  • A database that presents data to an Excel workbook that queries the information for layout and calculations. This is interesting in that the database itself is an application unless the database is already included in another application (like a legacy system).
  • An Excel spreadsheet that contains a coherent set of reusable macros that deliver business value. The spreadsheet itself constitutes a deployment container for the application (like a TAR or CAB file).
  • A set of ASP or PHP web pages that work in conjunction with one another to deliver the experience and logic of a web application. It is entirely possible that a subsite would qualify as a separate application under this definition if the coupling is loose.
  • A web service end point that no one uses, but which can be rationally understood to represent one or more useful steps in a business process.

[edit] Exclusions

The following thngs are not an application at all

  • An HTML web site.
  • A database that contains data but is not part of any series of steps to deliver business value using that data.
  • A web service that is structurally incapable of being part of a set of steps that provides value. For example, if you create a web service, but you require that the data that arrives can only be useful by the app if it breaks the web service schema, then you have not deployed an app. You have deployed trash.
  • A standalone batch script that compares the contents of two databases by making calls to each and then sends e-mail to a monitoring alias if data anomalies are noticed. In this case, the batch script is very likely to be tightly coupled with at least one of the two databases, and therefore should be included in the application boundary that contains the database that it is most tightly coupled with.

[edit] Composites

The following things are many applications

  • A composite SOA application where you develop a set of reusable services and a user interface that leverages those services. There are at least two applications here (the user interface and one or more service components). Note that you do not count each service as an app. Depending on how many tightly coupled components you built, you may have a single servicies endpoint that presents many services, or you may have a couple of service endpoints that are independent from one another. It is the amount of coupling between the components that defines the application, and therefore it's boundary.
  • A legacy client-server app that writes to a database to store data, and an excel spreadsheet that uses macros to read data from the database to present a report. There are TWO apps in this example. The database clearly belongs to the legacy app in that was developed with it, delivered with it, and is tightly coupled to it. This is true even if the legacy system uses the same stored procedures as the Excel spreadsheet.


This article was started using a Wikipedia application article
Personal tools